Mercurial > hg > Members > tatsuki > bench > jungle-core
comparison src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java @ 92:14ce7a0dedca
Logging Node and Editor
author | one |
---|---|
date | Sat, 06 Sep 2014 05:03:10 +0900 |
parents | fb1dc448ac8c |
children | ef68358ed0e8 |
comparison
equal
deleted
inserted
replaced
86:fb1dc448ac8c | 92:14ce7a0dedca |
---|---|
4 | 4 |
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; | 5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; |
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeAttributes; | 6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeAttributes; |
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultOperationLog; | 7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultOperationLog; |
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog; | 8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog; |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteChildAtOperation; | |
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; | |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; | 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; |
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; | |
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; |
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | 14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; |
12 | 15 |
13 public class PutAttribute implements NodeEditor | 16 public class PutAttribute implements NodeEditor |
14 { | 17 { |
15 private final String key; | 18 private final String key; |
16 private final ByteBuffer value; | 19 private final ByteBuffer value; |
20 private OperationLog log; | |
17 | 21 |
18 public PutAttribute(String _key,ByteBuffer _value) | 22 public PutAttribute(String _key,ByteBuffer _value) |
19 { | 23 { |
20 key = _key; | 24 key = _key; |
21 value = _value; | 25 value = _value; |
26 log = new DefaultOperationLog(); | |
22 } | 27 } |
23 | 28 |
24 @Override | 29 @Override |
25 public Either<Error,TreeNode> edit(TreeNode _e) | 30 public Either<Error,TreeNode> edit(TreeNode _e) |
26 { | 31 { |
27 TreeNodeAttributes attrs = _e.getAttributes(); | 32 NodeOperation putAttributeOperation = new PutAttributeOperation(key,value); |
28 return attrs.put(key,value); | 33 Either<Error,TreeNode> either = putAttributeOperation.invoke(_e); |
34 if(either.isA()){ | |
35 // error | |
36 return either; | |
37 } | |
38 log = log.add(putAttributeOperation); | |
39 return DefaultEither.newB(either.b()); | |
29 } | 40 } |
30 | 41 |
31 @Override | 42 @Override |
32 public OperationLog getLog() { | 43 public OperationLog getLog() { |
33 OperationLog op = new DefaultOperationLog(); | 44 return log; |
34 PutAttributeOperation putAttribute = new PutAttributeOperation(key,value); | |
35 return op.add(putAttribute); | |
36 } | 45 } |
37 } | 46 } |