Mercurial > hg > Members > tatsuki > bench > jungle-core
diff 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 |
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java Wed Sep 03 23:44:23 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java Sat Sep 06 05:03:10 2014 +0900 @@ -6,7 +6,10 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeAttributes; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultOperationLog; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteChildAtOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; @@ -14,24 +17,30 @@ { private final String key; private final ByteBuffer value; + private OperationLog log; public PutAttribute(String _key,ByteBuffer _value) { key = _key; value = _value; + log = new DefaultOperationLog(); } @Override public Either<Error,TreeNode> edit(TreeNode _e) { - TreeNodeAttributes attrs = _e.getAttributes(); - return attrs.put(key,value); + NodeOperation putAttributeOperation = new PutAttributeOperation(key,value); + Either<Error,TreeNode> either = putAttributeOperation.invoke(_e); + if(either.isA()){ + // error + return either; + } + log = log.add(putAttributeOperation); + return DefaultEither.newB(either.b()); } @Override public OperationLog getLog() { - OperationLog op = new DefaultOperationLog(); - PutAttributeOperation putAttribute = new PutAttributeOperation(key,value); - return op.add(putAttribute); + return log; } }