annotate src/jungle/test/datasegment/store/operations/DefaultNodePathContainer.java @ 3:3770d2be3e73

modified DfaultNodePathContainer
author one
date Mon, 10 Jun 2013 01:18:45 +0900
parents 20498c88a70d
children 2900e0b1d7e6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
20498c88a70d add Container
one
parents:
diff changeset
1 package jungle.test.datasegment.store.operations;
20498c88a70d add Container
one
parents:
diff changeset
2
20498c88a70d add Container
one
parents:
diff changeset
3 import java.io.IOException;
3
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
4 import java.util.LinkedList;
2
20498c88a70d add Container
one
parents:
diff changeset
5 import java.util.List;
20498c88a70d add Container
one
parents:
diff changeset
6
3
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
2
20498c88a70d add Container
one
parents:
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
20498c88a70d add Container
one
parents:
diff changeset
9
20498c88a70d add Container
one
parents:
diff changeset
10 import org.msgpack.MessagePack;
20498c88a70d add Container
one
parents:
diff changeset
11 import org.msgpack.annotation.Message;
3
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
12 import org.msgpack.template.IntegerTemplate;
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
13 import org.msgpack.template.ListTemplate;
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
14 import org.msgpack.template.ValueTemplate;
2
20498c88a70d add Container
one
parents:
diff changeset
15 import org.msgpack.type.Value;
20498c88a70d add Container
one
parents:
diff changeset
16
20498c88a70d add Container
one
parents:
diff changeset
17 @Message
20498c88a70d add Container
one
parents:
diff changeset
18 public class DefaultNodePathContainer {
20498c88a70d add Container
one
parents:
diff changeset
19
20498c88a70d add Container
one
parents:
diff changeset
20 public Value pathValue;
20498c88a70d add Container
one
parents:
diff changeset
21
3
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
22 public static void main(String[] args) throws IOException {
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
23 DefaultNodePath p = new DefaultNodePath();
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
24 p = p.add(1).add(2).add(3);
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
25 DefaultNodePathContainer pathContainer = new DefaultNodePathContainer();
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
26 pathContainer.unconvert(p);
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
27 NodePath convertedPath = pathContainer.convert();
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
28 for (int i : convertedPath) {
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
29 System.out.println(i);
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
30 }
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
31 }
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
32
2
20498c88a70d add Container
one
parents:
diff changeset
33 public DefaultNodePathContainer() {
20498c88a70d add Container
one
parents:
diff changeset
34
20498c88a70d add Container
one
parents:
diff changeset
35 }
20498c88a70d add Container
one
parents:
diff changeset
36
20498c88a70d add Container
one
parents:
diff changeset
37 public void unconvert(DefaultNodePath path) throws IOException {
20498c88a70d add Container
one
parents:
diff changeset
38 MessagePack msgpack = new MessagePack();
3
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
39 List<Integer> list = new LinkedList<Integer>();
2
20498c88a70d add Container
one
parents:
diff changeset
40 for(Integer i : path) {
20498c88a70d add Container
one
parents:
diff changeset
41 list.add(i);
20498c88a70d add Container
one
parents:
diff changeset
42 }
3
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
43 /* Remove first Element(-1). */
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
44 list.remove(0);
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
45 msgpack.register(List.class, new ListTemplate(IntegerTemplate.getInstance()));
2
20498c88a70d add Container
one
parents:
diff changeset
46 Value v = msgpack.unconvert(list);
20498c88a70d add Container
one
parents:
diff changeset
47 pathValue = v;
20498c88a70d add Container
one
parents:
diff changeset
48 }
20498c88a70d add Container
one
parents:
diff changeset
49
20498c88a70d add Container
one
parents:
diff changeset
50 public DefaultNodePath convert() throws IOException {
20498c88a70d add Container
one
parents:
diff changeset
51 MessagePack msgpack = new MessagePack();
3
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
52 msgpack.register(List.class, new ListTemplate(IntegerTemplate.getInstance()));
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
53 List<Integer> convertedList = (List<Integer>)msgpack.convert(pathValue, List.class);
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
54 DefaultNodePath path = new DefaultNodePath();
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
55 for (int i: convertedList) {
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
56 path = path.add(i);
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
57 }
3770d2be3e73 modified DfaultNodePathContainer
one
parents: 2
diff changeset
58 return path;
2
20498c88a70d add Container
one
parents:
diff changeset
59 }
20498c88a70d add Container
one
parents:
diff changeset
60 }