# HG changeset patch # User one # Date 1373806000 -32400 # Node ID 1bfd13f831eaeffd34a4e083cda6800ff16dedc2 # Parent ccfe9b5e8f11f564a0b1849c02b85bef8c58c21c add position field in DefaultTreeOperationLogContainer diff -r ccfe9b5e8f11 -r 1bfd13f831ea src/alice/jungle/codesegment/LogUpdateCodeSegment.java --- 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 either = JungleManager.edit(editor, log); + Either e = checkTimeStamp(tree.getRootNode(), container.getTimeStamp()); + Either either; + if(e.isB()) { + either = JungleManager.edit(editor, log, container.getPosition()); + } else { + either = JungleManager.edit(editor, log); + } if(either.isA()) { throw new IllegalStateException(); } diff -r ccfe9b5e8f11 -r 1bfd13f831ea src/alice/jungle/datasegment/store/operations/DefaultTreeOperationLogContainer.java --- 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; } diff -r ccfe9b5e8f11 -r 1bfd13f831ea src/jungle/test/bbs/NetworkJungleBulletinBoard.java --- 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(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 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 _log, String nextRevision, long timestamp) throws IOException { + private void putDataSegment(String _uuid, String _treeName, String _updaterName, Iterable _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(); diff -r ccfe9b5e8f11 -r 1bfd13f831ea src/jungle/test/bbs/codesegment/ChildLogCheckCodeSegment.java --- 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 e = checkTimeStamp(tree.getRootNode(), container.getTimeStamp()); Either 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); } - - - - }