comparison src/alice/jungle/operations/NetworkTreeOperationLog.java @ 83:b3ccefdf2b43

Added PersistentExample
author one
date Fri, 25 Oct 2013 18:44:29 +0900
parents 3f8ec40d536a
children 82d1d3dac7bc
comparison
equal deleted inserted replaced
82:60d28fedcbf2 83:b3ccefdf2b43
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
12 12
13 @Message 13 @Message
14 public class NetworkTreeOperationLog implements TreeOperationLog 14 public class NetworkTreeOperationLog implements TreeOperationLog
15 { 15 {
16 public LinkedList<TreeOperation> list; 16 public LinkedList<NetworkTreeOperation> list;
17 public int size; 17 public int size;
18 18
19 public NetworkTreeOperationLog() { 19 public NetworkTreeOperationLog() {
20 list = new LinkedList<TreeOperation>(); 20 list = new LinkedList<NetworkTreeOperation>();
21 size = 0; 21 size = 0;
22 } 22 }
23 23
24 public NetworkTreeOperationLog(Iterable<TreeOperation> _list)
25 {
26 list = new LinkedList<NetworkTreeOperation>();
27 for(TreeOperation op: _list) {
28 NetworkTreeOperation nOp = new NetworkTreeOperation(op);
29 list.add(nOp);
30 }
31 size = list.size();
32 }
33
24 public NetworkTreeOperationLog(Iterable<TreeOperation> _list, int _size) 34 public NetworkTreeOperationLog(Iterable<TreeOperation> _list, int _size)
25 { 35 {
26 list = new LinkedList<TreeOperation>(); 36 list = new LinkedList<NetworkTreeOperation>();
27 for(TreeOperation op: _list) { 37 for(TreeOperation op: _list) {
28 NetworkTreeOperation nOp = new NetworkTreeOperation(op); 38 NetworkTreeOperation nOp = new NetworkTreeOperation(op);
29 list.add(nOp); 39 list.add(nOp);
30 } 40 }
31 size = _size; 41 size = _size;
32 } 42 }
33 43
34 @Override 44 @Override
35 public Iterator<TreeOperation> iterator() { 45 public Iterator<TreeOperation> iterator() {
36 return list.iterator(); 46 LinkedList<TreeOperation> opList = new LinkedList<TreeOperation>();
47 for(NetworkTreeOperation op : list) {
48 opList.add(op);
49 }
50 return opList.iterator();
37 } 51 }
38 52
39 @Override 53 @Override
40 public NetworkTreeOperationLog add(NodePath _p, NodeOperation _op) 54 public NetworkTreeOperationLog add(NodePath _p, NodeOperation _op)
41 { 55 {
42 NetworkTreeOperation op = new NetworkTreeOperation(_p, _op); 56 NetworkTreeOperation op = new NetworkTreeOperation(_p, _op);
43 list.add(op); 57 list.add(op);
44 return new NetworkTreeOperationLog(list, size+1); 58 return this;
45 } 59 }
46 60
47 @Override 61 @Override
48 public NetworkTreeOperationLog append(TreeOperationLog _log) 62 public NetworkTreeOperationLog append(TreeOperationLog _log)
49 { 63 {
50 for (TreeOperation o : _log) { 64 for (TreeOperation o : _log) {
51 NetworkTreeOperation op = new NetworkTreeOperation(o); 65 NetworkTreeOperation op = new NetworkTreeOperation(o);
52 list.add(op); 66 list.add(op);
53 } 67 }
54 return new NetworkTreeOperationLog(list, size+_log.length()); 68 return this;
55 } 69 }
56 70
57 @Override 71 @Override
58 public int length() 72 public int length()
59 { 73 {