annotate src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeAttribute.java @ 183:066d9c5758dc

change TreeContext
author tatsuki
date Mon, 23 Mar 2015 15:44:28 +0900
parents 809f813d1083
children d455e0ee7f4e 868a746996ad
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
37
35e327577b58 added transaction
Shoshi TAMAKI
parents:
diff changeset
1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction;
35e327577b58 added transaction
Shoshi TAMAKI
parents:
diff changeset
2
35e327577b58 added transaction
Shoshi TAMAKI
parents:
diff changeset
3 import java.nio.ByteBuffer;
72
5969848b1bb8 deleting defaultNode(change to DefaultTreeNodeAttribute and DefaultTreeNode)
one
parents: 52
diff changeset
4
5969848b1bb8 deleting defaultNode(change to DefaultTreeNodeAttribute and DefaultTreeNode)
one
parents: 52
diff changeset
5 import fj.data.List;
5969848b1bb8 deleting defaultNode(change to DefaultTreeNodeAttribute and DefaultTreeNode)
one
parents: 52
diff changeset
6 import fj.data.Option;
37
35e327577b58 added transaction
Shoshi TAMAKI
parents:
diff changeset
7 import fj.data.TreeMap;
81
715a9fbf02fc remove <T> many source
one
parents: 78
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
52
Shoshi TAMAKI
parents: 41
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeAttributes;
39
7d78bbf4a9cd added some tests
Shoshi TAMAKI
parents: 37
diff changeset
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditorError;
37
35e327577b58 added transaction
Shoshi TAMAKI
parents:
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
35e327577b58 added transaction
Shoshi TAMAKI
parents:
diff changeset
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
35e327577b58 added transaction
Shoshi TAMAKI
parents:
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
35e327577b58 added transaction
Shoshi TAMAKI
parents:
diff changeset
14
152
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
15 public class DefaultTreeNodeAttribute implements TreeNodeAttributes
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
16 {
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
17 public List<TreeNode> children;
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
18 public TreeMap<String,ByteBuffer> attrs;
172
809f813d1083 minner change
one
parents: 152
diff changeset
19
152
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
20
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
21 public DefaultTreeNodeAttribute(List<TreeNode> _children,TreeMap<String,ByteBuffer> _attrs)
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
22 {
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
23 children = _children;
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
24 attrs = _attrs;
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
25 }
37
35e327577b58 added transaction
Shoshi TAMAKI
parents:
diff changeset
26
152
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
27 @Override
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
28 public TreeMap<String,ByteBuffer> getAttributesAsRawMap(){
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
29 return attrs;
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
30 }
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
31
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
32 @Override
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
33 public Either<Error,TreeNode> delete(String _key)
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
34 {
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
35 if (_key == null) {
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
36 return DefaultEither.newA(NodeEditorError.NULL_VALUE_NOT_ALLOWED);
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
37 }
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
38
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
39 if (!attrs.contains(_key)) {
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
40 return DefaultEither.newA(NodeEditorError.DELETE_KEY_NOT_FOUND);
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
41 }
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
42
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
43 TreeMap<String,ByteBuffer> newMap = attrs.delete(_key);
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
44 TreeNode newNode = new DefaultTreeNode(children,newMap);
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
45 return DefaultEither.newB(newNode);
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
46 }
37
35e327577b58 added transaction
Shoshi TAMAKI
parents:
diff changeset
47
152
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
48 @Override
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
49 public Either<Error,TreeNode> put(String _key, ByteBuffer _value)
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
50 {
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
51 if (_key == null || _value == null) {
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
52 return DefaultEither.newA(NodeEditorError.NULL_VALUE_NOT_ALLOWED);
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
53 }
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
54
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
55 TreeMap<String,ByteBuffer> newMap = attrs.set(_key,_value);
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
56 TreeNode newNode = new DefaultTreeNode(children,newMap);
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
57 return DefaultEither.newB(newNode);
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
58 }
37
35e327577b58 added transaction
Shoshi TAMAKI
parents:
diff changeset
59
152
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
60 @Override
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
61 public ByteBuffer get(String _key)
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
62 {
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
63 if (_key == null) {
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
64 return null;
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
65 }
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
66
183
066d9c5758dc change TreeContext
tatsuki
parents: 172
diff changeset
67 ByteBuffer result = attrs.getLoop(_key);
066d9c5758dc change TreeContext
tatsuki
parents: 172
diff changeset
68 return result;
152
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
69 }
112
98e256d9fd57 treeAttribute add get String but has error
one
parents: 97
diff changeset
70
152
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
71 @Override
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
72 public String getString(String key) {
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
73 ByteBuffer attribute = get(key);
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
74 if (attribute != null)
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
75 return new String(attribute.array());
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
76 return null;
112
98e256d9fd57 treeAttribute add get String but has error
one
parents: 97
diff changeset
77 }
141
3071b1a471fd add getKeys
one
parents: 112
diff changeset
78
152
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
79 @Override
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
80 public List<String> getKeys() {
8a0aa8fc137c Merge with a2c374a2686b82b0ad30f520412e191b84288fa9
one
parents: 148
diff changeset
81 return attrs.keys();
141
3071b1a471fd add getKeys
one
parents: 112
diff changeset
82 }
37
35e327577b58 added transaction
Shoshi TAMAKI
parents:
diff changeset
83 }