31
|
1 package alice.jungle.operations;
|
1
|
2
|
|
3 import java.util.Iterator;
|
|
4 import java.util.LinkedList;
|
|
5
|
|
6 import org.msgpack.annotation.Message;
|
|
7
|
|
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
|
|
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog;
|
|
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
|
|
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
|
|
12
|
|
13 @Message
|
|
14 public class NetworkTreeOperationLog implements TreeOperationLog
|
|
15 {
|
79
|
16 public LinkedList<TreeOperation> list;
|
2
|
17 public int size;
|
1
|
18
|
|
19 public NetworkTreeOperationLog() {
|
|
20 list = new LinkedList<TreeOperation>();
|
|
21 size = 0;
|
|
22 }
|
|
23
|
|
24 public NetworkTreeOperationLog(Iterable<TreeOperation> _list, int _size)
|
|
25 {
|
79
|
26 list = new LinkedList<TreeOperation>();
|
|
27 for(TreeOperation op: _list) {
|
|
28 NetworkTreeOperation nOp = new NetworkTreeOperation(op);
|
|
29 list.add(nOp);
|
|
30 }
|
1
|
31 size = _size;
|
|
32 }
|
|
33
|
|
34 public Iterable<TreeOperation> getOperationLogList() {
|
|
35 return list;
|
|
36 }
|
|
37
|
|
38 @Override
|
|
39 public Iterator<TreeOperation> iterator() {
|
|
40 return list.iterator();
|
|
41 }
|
|
42
|
|
43 @Override
|
|
44 public NetworkTreeOperationLog add(NodePath _p, NodeOperation _op)
|
|
45 {
|
79
|
46 NetworkTreeOperation op = new NetworkTreeOperation(_p, _op);
|
|
47 list.add(op);
|
|
48 return new NetworkTreeOperationLog(list, size+1);
|
1
|
49 }
|
|
50
|
|
51 @Override
|
|
52 public NetworkTreeOperationLog append(TreeOperationLog _log)
|
|
53 {
|
79
|
54 for (TreeOperation o : _log) {
|
|
55 NetworkTreeOperation op = new NetworkTreeOperation(o);
|
|
56 list.add(op);
|
1
|
57 }
|
79
|
58 return new NetworkTreeOperationLog(list, size+_log.length());
|
1
|
59 }
|
|
60
|
|
61 @Override
|
|
62 public int length()
|
|
63 {
|
|
64 return size;
|
|
65 }
|
|
66
|
|
67 }
|