annotate src/alice/jungle/datasegment/store/container/DefaultNodeOperationContainer.java @ 75:87ec5dd0dc27

Rename from alice.jungle.datasegment.store.operation to alice.jungle.datasegment.store.container
author one
date Tue, 15 Oct 2013 14:43:29 +0900
parents src/alice/jungle/datasegment/store/operations/DefaultNodeOperationContainer.java@85bc7416ae02
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
75
87ec5dd0dc27 Rename from alice.jungle.datasegment.store.operation to alice.jungle.datasegment.store.container
one
parents: 62
diff changeset
1 package alice.jungle.datasegment.store.container;
2
20498c88a70d add Container
one
parents:
diff changeset
2
20498c88a70d add Container
one
parents:
diff changeset
3 import java.io.IOException;
20498c88a70d add Container
one
parents:
diff changeset
4 import java.nio.ByteBuffer;
20498c88a70d add Container
one
parents:
diff changeset
5
20498c88a70d add Container
one
parents:
diff changeset
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
20498c88a70d add Container
one
parents:
diff changeset
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.AppendChildAtOperation;
20498c88a70d add Container
one
parents:
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteAttributeOperation;
20498c88a70d add Container
one
parents:
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteChildAtOperation;
20498c88a70d add Container
one
parents:
diff changeset
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
20498c88a70d add Container
one
parents:
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation;
20498c88a70d add Container
one
parents:
diff changeset
12
20498c88a70d add Container
one
parents:
diff changeset
13 import org.msgpack.MessagePack;
20498c88a70d add Container
one
parents:
diff changeset
14 import org.msgpack.annotation.Message;
20498c88a70d add Container
one
parents:
diff changeset
15 import org.msgpack.template.OrdinalEnumTemplate;
20498c88a70d add Container
one
parents:
diff changeset
16 import org.msgpack.type.Value;
20498c88a70d add Container
one
parents:
diff changeset
17
62
85bc7416ae02 modified some container using SingletonMessage
one
parents: 31
diff changeset
18 import alice.codesegment.SingletonMessage;
85bc7416ae02 modified some container using SingletonMessage
one
parents: 31
diff changeset
19
2
20498c88a70d add Container
one
parents:
diff changeset
20 @Message
20498c88a70d add Container
one
parents:
diff changeset
21 public class DefaultNodeOperationContainer {
20498c88a70d add Container
one
parents:
diff changeset
22
20498c88a70d add Container
one
parents:
diff changeset
23 public int pos;
20498c88a70d add Container
one
parents:
diff changeset
24 public String key;
20498c88a70d add Container
one
parents:
diff changeset
25 public Value value;
20498c88a70d add Container
one
parents:
diff changeset
26 public Value commandValue;
20498c88a70d add Container
one
parents:
diff changeset
27
3
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
28 public static void main(String[] args) throws IOException {
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
29 String key = "hoge";
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
30 ByteBuffer b = ByteBuffer.wrap("messagepack value".getBytes());
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
31 PutAttributeOperation op = new PutAttributeOperation(key, b);
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
32 DefaultNodeOperationContainer container = new DefaultNodeOperationContainer();
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
33 container.unconvert(op);
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
34 NodeOperation convertedOp = container.convert();
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
35 System.out.println("pos : "+convertedOp.getPosition());
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
36 System.out.println("Command : "+convertedOp.getCommand());
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
37 System.out.println("key : "+convertedOp.getKey());
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
38 System.out.println("value : "+new String(convertedOp.getValue().array()));
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
39
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
40 }
2
20498c88a70d add Container
one
parents:
diff changeset
41
20498c88a70d add Container
one
parents:
diff changeset
42 public DefaultNodeOperationContainer() {
20498c88a70d add Container
one
parents:
diff changeset
43
20498c88a70d add Container
one
parents:
diff changeset
44 }
20498c88a70d add Container
one
parents:
diff changeset
45
20498c88a70d add Container
one
parents:
diff changeset
46 public void unconvert(NodeOperation op) throws IOException {
62
85bc7416ae02 modified some container using SingletonMessage
one
parents: 31
diff changeset
47 // MessagePack msgpack = new MessagePack();
85bc7416ae02 modified some container using SingletonMessage
one
parents: 31
diff changeset
48 MessagePack msgpack = SingletonMessage.getInstance();
2
20498c88a70d add Container
one
parents:
diff changeset
49 pos = op.getPosition();
20498c88a70d add Container
one
parents:
diff changeset
50 key = op.getKey();
20498c88a70d add Container
one
parents:
diff changeset
51 value = null;
20498c88a70d add Container
one
parents:
diff changeset
52 if (op.getValue() != null) {
20498c88a70d add Container
one
parents:
diff changeset
53 ByteBuffer b = op.getValue();
3
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
54 byte[] bytes = b.array();
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
55 Value v = msgpack.unconvert(bytes);
2
20498c88a70d add Container
one
parents:
diff changeset
56 value = v;
20498c88a70d add Container
one
parents:
diff changeset
57 }
20498c88a70d add Container
one
parents:
diff changeset
58 Command c = op.getCommand();
3
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
59 msgpack.register(Command.class, new OrdinalEnumTemplate(Command.class));
2
20498c88a70d add Container
one
parents:
diff changeset
60 Value cValue = msgpack.unconvert(c);
20498c88a70d add Container
one
parents:
diff changeset
61 commandValue = cValue;
20498c88a70d add Container
one
parents:
diff changeset
62 }
20498c88a70d add Container
one
parents:
diff changeset
63
20498c88a70d add Container
one
parents:
diff changeset
64 public NodeOperation convert() throws IOException{
62
85bc7416ae02 modified some container using SingletonMessage
one
parents: 31
diff changeset
65 // MessagePack msgpack = new MessagePack();
85bc7416ae02 modified some container using SingletonMessage
one
parents: 31
diff changeset
66 MessagePack msgpack = SingletonMessage.getInstance();
3
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
67 msgpack.register(Command.class, new OrdinalEnumTemplate(Command.class));
2
20498c88a70d add Container
one
parents:
diff changeset
68 Command c = msgpack.convert(commandValue, Command.class);
20498c88a70d add Container
one
parents:
diff changeset
69 ByteBuffer b = null;
20498c88a70d add Container
one
parents:
diff changeset
70 if (value != null) {
3
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
71 b = ByteBuffer.wrap(msgpack.convert(value, byte[].class));
2
20498c88a70d add Container
one
parents:
diff changeset
72 }
20498c88a70d add Container
one
parents:
diff changeset
73 if (c == Command.PUT_ATTRIBUTE) {
20498c88a70d add Container
one
parents:
diff changeset
74 return new PutAttributeOperation(key, b);
20498c88a70d add Container
one
parents:
diff changeset
75 } else if (c == Command.APPEND_CHILD) {
20498c88a70d add Container
one
parents:
diff changeset
76 return new AppendChildAtOperation(pos);
20498c88a70d add Container
one
parents:
diff changeset
77 } else if (c == Command.DELETE_CHILD) {
20498c88a70d add Container
one
parents:
diff changeset
78 return new DeleteChildAtOperation(pos);
20498c88a70d add Container
one
parents:
diff changeset
79 } else if (c == Command.DELETE_ATTRIBUTE){
20498c88a70d add Container
one
parents:
diff changeset
80 return new DeleteAttributeOperation(key);
20498c88a70d add Container
one
parents:
diff changeset
81 }
20498c88a70d add Container
one
parents:
diff changeset
82 return null;
20498c88a70d add Container
one
parents:
diff changeset
83 }
20498c88a70d add Container
one
parents:
diff changeset
84
20498c88a70d add Container
one
parents:
diff changeset
85 }