Mercurial > hg > Members > nobuyasu > jungle-network
diff src/alice/jungle/operations/NetworkAppendChildAtOperation.java @ 71:f1aef52c0611
Added NetworkAppendChildAtTest
author | one |
---|---|
date | Fri, 11 Oct 2013 18:24:46 +0900 |
parents | |
children | 9e3198bf9547 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/jungle/operations/NetworkAppendChildAtOperation.java Fri Oct 11 18:24:46 2013 +0900 @@ -0,0 +1,55 @@ +package alice.jungle.operations; + +import java.nio.ByteBuffer; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; + +import org.msgpack.annotation.Message; + +import alice.jungle.datasegment.store.transformer.NetworkAppendChildAt; + + +@Message +public class NetworkAppendChildAtOperation implements NodeOperation { + + // private final int pos; + /* MessagePack can not handle final.*/ + private int pos; + + /* Position -1 represent root position. */ + public NetworkAppendChildAtOperation() { pos = -2; } + + public NetworkAppendChildAtOperation(int _pos) { + pos = _pos; + } + + @Override + public Command getCommand() { + return Command.APPEND_CHILD; + } + + @Override + public <T extends EditableNode<T>> Either<Error, T> invoke(T _target) { + NetworkAppendChildAt appendChildAt = new NetworkAppendChildAt(pos); + return appendChildAt.edit(_target); + } + + @Override + public int getPosition() { + return pos; + } + + @Override + public String getKey() { + return null; + } + + @Override + public ByteBuffer getValue() { + return null; + } +}