diff src/alice/jungle/codesegment/LogUpdateCodeSegment.java @ 56:ccfe9b5e8f11

bug LogUpdateCodeSegment
author one
date Sun, 14 Jul 2013 21:26:49 +0900
parents 61b2de3f7730
children 1bfd13f831ea
line wrap: on
line diff
--- a/src/alice/jungle/codesegment/LogUpdateCodeSegment.java	Sun Jul 14 17:23:48 2013 +0900
+++ b/src/alice/jungle/codesegment/LogUpdateCodeSegment.java	Sun Jul 14 21:26:49 2013 +0900
@@ -1,10 +1,14 @@
 package alice.jungle.codesegment;
 
 import java.io.IOException;
+import java.util.Iterator;
 
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultError;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 import jungle.test.bbs.JungleManager;
@@ -39,7 +43,6 @@
 		String h = host.asString();
 		DefaultTreeOperationLogContainer container = parentLog.asClass(DefaultTreeOperationLogContainer.class);
 		HashSetDataSegment ds = hashLog.asClass(HashSetDataSegment.class);
-		System.out.println(container.getHashLogString());
 		if(ds.hash.contains(container.getHashLogString())) {
 			ods.update("hashLog", ds);		
 			new LogUpdateCodeSegment(index);
@@ -74,8 +77,27 @@
 		ods.put("log", container);
 		new LogUpdateCodeSegment(index);
 	}
+
 	
-	private boolean updaterIsMe(String host, DefaultTreeOperationLogContainer container) {
-		return host.equals(container.getServerName());
+	private DefaultEither<DefaultError, Integer> checkTimeStamp(Node node, long newNodeTimeStamp) {
+		int count = 0;
+		long childTimeStamp = 0;
+		for(Iterator<Node> iter = node.getChildren().iterator();iter.hasNext();) {
+			Node n = iter.next();
+			if(n.getAttributes().get("timestamp") == null) {
+				return DefaultEither.newA(new DefaultError());
+			}
+			if(n.getAttributes().get("timestamp") != null) {
+				childTimeStamp = n.getAttributes().get("timestamp").getLong();
+				if (newNodeTimeStamp < childTimeStamp) {
+					break;
+				}
+			}
+			count++;
+		}
+		return DefaultEither.newB(count);
 	}
+	
+	
+
 }