changeset 57:1bfd13f831ea

add position field in DefaultTreeOperationLogContainer
author one
date Sun, 14 Jul 2013 21:46:40 +0900
parents ccfe9b5e8f11
children 4851344e120e
files src/alice/jungle/codesegment/LogUpdateCodeSegment.java src/alice/jungle/datasegment/store/operations/DefaultTreeOperationLogContainer.java src/jungle/test/bbs/NetworkJungleBulletinBoard.java src/jungle/test/bbs/codesegment/ChildLogCheckCodeSegment.java
diffstat 4 files changed, 26 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/alice/jungle/codesegment/LogUpdateCodeSegment.java	Sun Jul 14 21:26:49 2013 +0900
+++ b/src/alice/jungle/codesegment/LogUpdateCodeSegment.java	Sun Jul 14 21:46:40 2013 +0900
@@ -62,7 +62,13 @@
 		}
 		JungleTree tree = JungleManager.getJungle().getTreeByName(treeName);
 		JungleTreeEditor editor = tree.getTreeEditor();
-		Either<Error, JungleTreeEditor> either = JungleManager.edit(editor, log);
+		Either<DefaultError, Integer> e = checkTimeStamp(tree.getRootNode(), container.getTimeStamp());
+		Either<Error, JungleTreeEditor> either; 
+		if(e.isB()) {	
+			either = JungleManager.edit(editor, log, container.getPosition());
+		} else {
+			either = JungleManager.edit(editor, log);
+		}
 		if(either.isA()) {
 			throw new IllegalStateException();
 		}
--- a/src/alice/jungle/datasegment/store/operations/DefaultTreeOperationLogContainer.java	Sun Jul 14 21:26:49 2013 +0900
+++ b/src/alice/jungle/datasegment/store/operations/DefaultTreeOperationLogContainer.java	Sun Jul 14 21:46:40 2013 +0900
@@ -30,6 +30,7 @@
 	String uuid;
 	String updaterName;
 	String revision;
+	int position;
 	long timestamp;
 
 	public DefaultTreeOperationLogContainer() {
@@ -38,6 +39,7 @@
 		uuid = "";
 		updaterName = "";
 		revision = "";
+		position = 0;
 		timestamp = Long.MAX_VALUE;
 	}
 	
@@ -73,6 +75,14 @@
 		return revision;
 	}
 
+	public void setPosition(int p) {
+		position = p;
+	}
+	
+	public int getPosition() {
+		return position;
+	}
+	
 	public void setTimeStamp(long t) {
 		timestamp = t;
 	}
--- a/src/jungle/test/bbs/NetworkJungleBulletinBoard.java	Sun Jul 14 21:26:49 2013 +0900
+++ b/src/jungle/test/bbs/NetworkJungleBulletinBoard.java	Sun Jul 14 21:46:40 2013 +0900
@@ -81,7 +81,7 @@
 		final long timestamp = new Date().getTime();
 		/* Put DataSegment */
 		try {
-			putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor, timestamp);
+			putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor, 0, timestamp);
 		} catch (IOException e1) {
 			e1.printStackTrace();
 		}
@@ -113,7 +113,7 @@
 		editor.success();
 		/* Put DataSegment */
 		try {
-			putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor, timestamp);
+			putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor, 0, timestamp);
 		} catch (IOException e1) {
 			e1.printStackTrace();
 		}
@@ -159,7 +159,7 @@
 			editor = either.b();
 			either = editor.success();
 			try {
-				putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor, timestamp);
+				putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor, size, timestamp);
 			} catch (IOException e1) {
 				e1.printStackTrace();
 			}
@@ -196,7 +196,7 @@
 			editor = either.b();
 			either = editor.success();
 			try {
-				putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor, timestamp);
+				putTreeOperationLog((NetworkDefaultJungleTreeEditor)editor, Integer.parseInt(_uuid), timestamp);
 			} catch (IOException e1) {
 				e1.printStackTrace();
 			}
@@ -223,21 +223,22 @@
 		return new IterableConverter<BoardMessage,Node>(chs,converter);
 	}
 	
-	private void putTreeOperationLog(NetworkDefaultJungleTreeEditor editor, long timestamp) throws IOException {
+	private void putTreeOperationLog(NetworkDefaultJungleTreeEditor editor, int pos, long timestamp) throws IOException {
 		String uuid = editor.getID();
 		String treeName = editor.getTreeName();
 		String updaterName = editor.getUpdaterName();
 		String revision = editor.getRevision();
 		Iterable<TreeOperation> log = editor.getTreeOperationLog();
-		putDataSegment(uuid, treeName, updaterName, log, revision, timestamp);
+		putDataSegment(uuid, treeName, updaterName, log, revision, pos,timestamp);
 	}
 	
-	private void putDataSegment(String _uuid, String _treeName, String _updaterName, Iterable<TreeOperation> _log, String nextRevision, long timestamp) throws IOException {
+	private void putDataSegment(String _uuid, String _treeName, String _updaterName, Iterable<TreeOperation> _log, String nextRevision, int pos, long timestamp) throws IOException {
 		DefaultTreeOperationLogContainer container = new DefaultTreeOperationLogContainer();
 		container.setTreeName(_treeName);
 		container.setUUID(_uuid);
 		container.setUpdaterName(_updaterName);
 		container.setRevision(nextRevision);
+		container.setPosition(pos);
 		container.unconvert(_log);
 		container.setTimeStamp(timestamp);
 		HashLogUpdateCodeSegment cs = new HashLogUpdateCodeSegment();
--- a/src/jungle/test/bbs/codesegment/ChildLogCheckCodeSegment.java	Sun Jul 14 21:26:49 2013 +0900
+++ b/src/jungle/test/bbs/codesegment/ChildLogCheckCodeSegment.java	Sun Jul 14 21:46:40 2013 +0900
@@ -54,7 +54,7 @@
 		Either<DefaultError, Integer> e = checkTimeStamp(tree.getRootNode(), container.getTimeStamp());
 		Either<Error, JungleTreeEditor> either; 
 		if(e.isB()) {	
-			either = JungleManager.edit(editor, log, e.b());
+			either = JungleManager.edit(editor, log, container.getPosition());
 		} else {
 			either = JungleManager.edit(editor, log);
 		}
@@ -95,8 +95,4 @@
 		}
 		return DefaultEither.newB(count);
 	}
-	
-	
-	
-
 }