annotate src/jungle/test/operations/NetworkTreeOperationLog.java @ 1:8ee02d1a2b12

add jungle.test.operations
author one
date Fri, 07 Jun 2013 19:26:08 +0900
parents
children 20498c88a70d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
1 package jungle.test.operations;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
2
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
3 import java.util.Iterator;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
4 import java.util.LinkedList;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
5
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
6 import org.msgpack.annotation.Message;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
7
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
12
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
13 @Message
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
14 public class NetworkTreeOperationLog implements TreeOperationLog
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
15 {
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
16 private Iterable<TreeOperation> list;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
17 private int size;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
18
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
19 public NetworkTreeOperationLog() {
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
20 list = new LinkedList<TreeOperation>();
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
21 size = 0;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
22 }
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
23
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
24 public NetworkTreeOperationLog(Iterable<TreeOperation> _list, int _size)
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
25 {
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
26 list = _list;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
27 size = _size;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
28 }
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
29
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
30 public Iterable<TreeOperation> getOperationLogList() {
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
31 return list;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
32 }
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
33
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
34 @Override
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
35 public Iterator<TreeOperation> iterator() {
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
36 return list.iterator();
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
37 }
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
38
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
39 @Override
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
40 public NetworkTreeOperationLog add(NodePath _p, NodeOperation _op)
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
41 {
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
42 TreeOperation op = new NetworkTreeOperation(_p, _op);
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
43 LinkedList<TreeOperation> newList = new LinkedList<TreeOperation>();
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
44 for(TreeOperation o : this) {
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
45 newList.add(o);
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
46 }
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
47 newList.add(op);
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
48 return new NetworkTreeOperationLog(newList, size+1);
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
49 }
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
50
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
51 @Override
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
52 public NetworkTreeOperationLog append(TreeOperationLog _log)
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
53 {
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
54 LinkedList<TreeOperation> l = new LinkedList<TreeOperation>();
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
55 for (TreeOperation t : _log) {
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
56 l.add(t);
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
57 }
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
58 return new NetworkTreeOperationLog(l, size+_log.length());
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
59 }
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
60
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
61 @Override
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
62 public int length()
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
63 {
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
64 return size;
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
65 }
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
66
8ee02d1a2b12 add jungle.test.operations
one
parents:
diff changeset
67 }