comparison src/jungle/app/bbs/JungleManager.java @ 96:fcce7ca4adb9

Modified LogUpdateCodesegment
author one
date Mon, 18 Nov 2013 19:34:15 +0900
parents dcd767b76f8d
children 9865ccfd0123
comparison
equal deleted inserted replaced
95:dcd767b76f8d 96:fcce7ca4adb9
3 import java.io.IOException; 3 import java.io.IOException;
4 import java.nio.ByteBuffer; 4 import java.nio.ByteBuffer;
5 import java.util.Iterator; 5 import java.util.Iterator;
6 6
7 import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; 7 import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer;
8 import alice.jungle.operations.NetworkTreeOperationLog;
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle; 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; 12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
81 return editor.deleteChildAt(path, 0); 82 return editor.deleteChildAt(path, 0);
82 } 83 }
83 return null; 84 return null;
84 } 85 }
85 86
86 public static Either<Error, JungleTreeEditor> update(DefaultTreeOperationLogContainer container) { 87 public static Either<Error, JungleTreeEditor> update(NetworkTreeOperationLog netLog) {
87 DefaultTreeOperationLog log = null; 88 String treeName = netLog.getTreeName();
88 try {
89 log = container.convert();
90 } catch (IOException e) {
91 e.printStackTrace();
92 }
93 String treeName = container.getTreeName();
94 Jungle jungle = JungleManager.getJungle(); 89 Jungle jungle = JungleManager.getJungle();
95 if (jungle.getTreeByName(treeName) == null) { 90 if (jungle.getTreeByName(treeName) == null) {
96 if(null == jungle.createNewTree(treeName)){ 91 if(null == jungle.createNewTree(treeName)){
97 throw new IllegalStateException(); 92 throw new IllegalStateException();
98 } 93 }
99 } 94 }
100 JungleTree tree = jungle.getTreeByName(treeName); 95 JungleTree tree = jungle.getTreeByName(treeName);
101 JungleTreeEditor editor = tree.getLocalTreeEditor(); 96 JungleTreeEditor editor = tree.getLocalTreeEditor();
102 int pos = calculatePosition(tree.getRootNode(), container.getTimeStamp()); 97
103 Either<Error, JungleTreeEditor> either = JungleManager.edit(editor, log, pos); 98 // int pos = calculatePosition(tree.getRootNode(), netLog.getTimeStamp());
99 int pos = 0;
100 Either<Error, JungleTreeEditor> either = JungleManager.edit(editor, netLog, pos);
104 if(either.isA()) { 101 if(either.isA()) {
105 throw new IllegalStateException(); 102 throw new IllegalStateException();
106 } 103 }
107 editor = either.b(); 104 editor = either.b();
108 either = editor.success(); 105 either = editor.success();