Mercurial > hg > Database > jungle-sharp
comparison Main/jungle-main/transaction/DefaultTreeNodeAttribute.cs @ 20:1f99e150f336
fix folder and add Object Mapper.
author | Kazuma Takeda |
---|---|
date | Thu, 15 Dec 2016 22:52:48 +0900 |
parents | |
children | 9588ad364fdd |
comparison
equal
deleted
inserted
replaced
19:0865819106cf | 20:1f99e150f336 |
---|---|
1 using UnityEngine; | |
2 using System.Collections; | |
3 using System.Collections.Generic; | |
4 using System; | |
5 using System.Text; | |
6 | |
7 namespace JungleDB { | |
8 public class DefaultTreeNodeAttribute : TreeNodeAttributes { | |
9 public List<TreeNode> children; | |
10 public TreeMap<string, byte[]> attrs; | |
11 | |
12 public DefaultTreeNodeAttribute(List<TreeNode> _children, TreeMap<string, byte[]> _attrs){ | |
13 children = _children; // null? | |
14 attrs = _attrs; | |
15 } | |
16 | |
17 public TreeMap<string, byte[]> getAttributesAsRawMap(){ | |
18 return attrs; | |
19 } | |
20 | |
21 public Either<Error, TreeNode> delete(string _key) { | |
22 if (_key == null) { | |
23 return DefaultEither<Error,TreeNode>.newA (NodeEditorError.NULL_VALUE_NOT_ALLOWED); | |
24 } | |
25 | |
26 if (null == attrs.getRoot()) { | |
27 return DefaultEither<Error,TreeNode>.newA(NodeEditorError.DELETE_KEY_NOT_FOUND); | |
28 } | |
29 | |
30 TreeMap<string, byte[]> newMap = attrs.delete(_key); | |
31 TreeNode newNode = new DefaultTreeNode(children, newMap); | |
32 return DefaultEither<Error,TreeNode>.newB(newNode); | |
33 } | |
34 | |
35 public Either<Error, TreeNode> put(string _key, byte[] _value){ | |
36 if (_key == null || _value == null) { | |
37 return DefaultEither<Error, TreeNode>.newA (NodeEditorError.NULL_VALUE_NOT_ALLOWED); | |
38 } | |
39 | |
40 TreeMap<string, byte[]> newMap = attrs.put (_key, _value); | |
41 | |
42 TreeNode newNode = new DefaultTreeNode (children, newMap); | |
43 | |
44 return DefaultEither<Error, TreeNode>.newB (newNode); | |
45 } | |
46 | |
47 public byte[] get(string _key) { | |
48 if (_key == null) { | |
49 return new byte[1]{0}; | |
50 } | |
51 byte[] op = attrs.get(_key); //null | |
52 if (op != null) { | |
53 return op; | |
54 } | |
55 return new byte[1]{0}; | |
56 } | |
57 | |
58 public string getString(string key, Encoding enc) { | |
59 char[] attribute = key.ToCharArray(); | |
60 if (attribute != null){ | |
61 return new string(attribute); | |
62 } | |
63 return null; | |
64 } | |
65 | |
66 public string getString(string key) { | |
67 return null; | |
68 } | |
69 public IEnumerator<string> getKeys(){ | |
70 return attrs.keys (); | |
71 } | |
72 | |
73 } | |
74 } |