annotate Main/jungle-main/transaction/DefaultTreeNodeAttribute.cs @ 32:07318c10b894

add getBytes method.
author Kazuma Takeda
date Fri, 20 Jan 2017 07:43:43 +0900
parents 1466993c104c
children f2ea780b3e80
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
1 using UnityEngine;
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
2 using System.Collections;
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
3 using System.Collections.Generic;
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
4 using System;
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
5 using System.Text;
32
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
6 using System.Runtime.Serialization.Formatters.Binary;
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
7 using System.IO;
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
8
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
9 namespace JungleDB {
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
10 public class DefaultTreeNodeAttribute : TreeNodeAttributes {
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
11 public List<TreeNode> children;
31
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
12 public TreeMap<string, object> attrs;
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
13
31
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
14 public DefaultTreeNodeAttribute(List<TreeNode> _children, TreeMap<string, object> _attrs){
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
15 children = _children;
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
16 attrs = _attrs;
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
17 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
18
31
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
19 public TreeMap<string, object> getAttributesAsRawMap(){
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
20 return attrs;
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
21 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
22
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
23 public Either<Error, TreeNode> delete(string _key) {
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
24 if (_key == null) {
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
25 return DefaultEither<Error,TreeNode>.newA (NodeEditorError.NULL_VALUE_NOT_ALLOWED);
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
26 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
27
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
28 if (null == attrs.getRoot()) {
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
29 return DefaultEither<Error,TreeNode>.newA(NodeEditorError.DELETE_KEY_NOT_FOUND);
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
30 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
31
31
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
32 TreeMap<string, object> newMap = attrs.delete(_key);
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
33 TreeNode newNode = new DefaultTreeNode(children, newMap);
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
34 return DefaultEither<Error,TreeNode>.newB(newNode);
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
35 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
36
31
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
37 public Either<Error, TreeNode> put(string _key, object _value){
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
38 if (_key == null || _value == null) {
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
39 return DefaultEither<Error, TreeNode>.newA (NodeEditorError.NULL_VALUE_NOT_ALLOWED);
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
40 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
41
31
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
42 TreeMap<string, object> newMap = attrs.put (_key, _value);
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
43
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
44 TreeNode newNode = new DefaultTreeNode (children, newMap);
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
45
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
46 return DefaultEither<Error, TreeNode>.newB (newNode);
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
47 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
48
31
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
49 public object get(string _key) {
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
50 if (_key == null)
31
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
51 return null;
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
52
31
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
53 object op = attrs.get(_key);
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
54 if (op != null)
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
55 return op;
31
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
56 return null;
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
57 }
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
58
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
59 public T get<T> (string _key) {
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
60 if (_key == null)
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
61 return default(T);
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
62
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
63 T op = (T)attrs.get (_key);
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
64 if (op != null)
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
65 return op;
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
66 return default(T);
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
67 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
68
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
69 public string getString(string key) {
31
1466993c104c byte[] to object Rewrite.
Kazuma Takeda
parents: 28
diff changeset
70 return attrs.get(key).ToString();
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
71 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
72
32
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
73 /// <summary>
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
74 /// Gets the bytes.
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
75 /// need Serializable to class.
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
76 /// </summary>
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
77 /// <returns>byte[]</returns>
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
78 /// <param name="key">Key.</param>
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
79 public byte[] getBytes(string key)
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
80 {
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
81 var formatter = new BinaryFormatter();
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
82 object source = attrs.get (key);
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
83 using (var stream = new MemoryStream())
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
84 {
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
85 formatter.Serialize(stream, source);
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
86 return stream.ToArray();
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
87 }
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
88 }
07318c10b894 add getBytes method.
Kazuma Takeda
parents: 31
diff changeset
89
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
90 public IEnumerator<string> getKeys(){
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
91 return attrs.keys ();
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
92 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
93
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
94 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
95 }