diff 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
line wrap: on
line diff
--- a/src/alice/jungle/operations/NetworkTreeOperationLog.java	Wed Oct 16 20:53:44 2013 +0900
+++ b/src/alice/jungle/operations/NetworkTreeOperationLog.java	Fri Oct 25 18:44:29 2013 +0900
@@ -13,17 +13,27 @@
 @Message
 public class NetworkTreeOperationLog implements TreeOperationLog
 {
-	public LinkedList<TreeOperation> list;
+	public LinkedList<NetworkTreeOperation> list;
 	public int size;
 	
 	public NetworkTreeOperationLog() {
-		list = new LinkedList<TreeOperation>();
+		list = new LinkedList<NetworkTreeOperation>();
 		size = 0;
 	}
-	
+
+	public NetworkTreeOperationLog(Iterable<TreeOperation> _list)
+	{
+		list = new LinkedList<NetworkTreeOperation>();
+		for(TreeOperation op: _list) {
+			NetworkTreeOperation nOp = new NetworkTreeOperation(op);
+			list.add(nOp);
+		}
+		size = list.size();
+	}
+
 	public NetworkTreeOperationLog(Iterable<TreeOperation> _list, int _size)
 	{
-		list = new LinkedList<TreeOperation>();
+		list = new LinkedList<NetworkTreeOperation>();
 		for(TreeOperation op: _list) {
 			NetworkTreeOperation nOp = new NetworkTreeOperation(op);
 			list.add(nOp);
@@ -33,7 +43,11 @@
 	
 	@Override
 	public Iterator<TreeOperation> iterator() {
-		return list.iterator();
+		LinkedList<TreeOperation> opList = new LinkedList<TreeOperation>();
+		for(NetworkTreeOperation op : list) {
+			opList.add(op);
+		}
+		return opList.iterator();
 	}
 
 	@Override
@@ -41,7 +55,7 @@
 	{
 		NetworkTreeOperation op = new NetworkTreeOperation(_p, _op);
 		list.add(op);
-		return new NetworkTreeOperationLog(list, size+1);
+		return this;
 	}
 
 	@Override
@@ -51,7 +65,7 @@
 			NetworkTreeOperation op = new NetworkTreeOperation(o);
 			list.add(op);
 		}
-		return new NetworkTreeOperationLog(list, size+_log.length());
+		return this;
 	}
 
 	@Override