comparison src/main/java/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java @ 176:6f104ab4eb81

fit jungle core but editMessage is not work
author tatsuki
date Mon, 01 Sep 2014 00:04:32 +0900
parents 7d9b7fcb4d9a
children d6944d788121
comparison
equal deleted inserted replaced
175:ac7d1070f449 176:6f104ab4eb81
6 6
7 import alice.codesegment.CodeSegment; 7 import alice.codesegment.CodeSegment;
8 import alice.jungle.operations.NetworkTreeOperationLog; 8 import alice.jungle.operations.NetworkTreeOperationLog;
9 import app.bbs.codesegment.LogPutCodeSegment; 9 import app.bbs.codesegment.LogPutCodeSegment;
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; 12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; 14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog;
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNodeHook; 15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNodeHook;
28 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; 27 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
29 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; 28 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
30 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; 29 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
31 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter; 30 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter;
32 31
33 public class NetworkDefaultJungleTreeEditor<T extends TreeNode<T>> implements JungleTreeEditor { 32 public class NetworkDefaultJungleTreeEditor<T extends TreeNode> implements JungleTreeEditor {
34 33
35 private final TransactionManager<T> txManager; 34 private final TransactionManager<T> txManager;
36 private final T root; 35 private final TreeNode root;
37 private final TreeEditor editor; 36 private final TreeEditor editor;
38 private final String treeName; 37 private final String treeName;
39 private final TreeOperationLog log; 38 private final TreeOperationLog log;
40 private boolean exportLog; 39 private boolean exportLog;
41 40
42 public NetworkDefaultJungleTreeEditor(String _treeName, T _root,TransactionManager<T> _txManager,TreeEditor _editor) 41 public NetworkDefaultJungleTreeEditor(String _treeName, TreeNode _root,TransactionManager<T> _txManager,TreeEditor _editor)
43 { 42 {
44 this(_treeName, _root,_txManager,_editor,new DefaultTreeOperationLog()); 43 this(_treeName, _root,_txManager,_editor,new DefaultTreeOperationLog());
45 } 44 }
46 45
47 public NetworkDefaultJungleTreeEditor(String _treeName, T _root,TransactionManager<T> _txManager,TreeEditor _editor, TreeOperationLog _log) 46 public NetworkDefaultJungleTreeEditor(String _treeName, TreeNode _root,TransactionManager<T> _txManager,TreeEditor _editor, TreeOperationLog _log)
48 { 47 {
49 treeName = _treeName; 48 treeName = _treeName;
50 root = _root; 49 root = _root;
51 txManager = _txManager; 50 txManager = _txManager;
52 editor = _editor; 51 editor = _editor;
53 log = _log; 52 log = _log;
54 exportLog = true; 53 exportLog = true;
55 } 54 }
56 55
57 public static <T1 extends TreeNode<T1>> NetworkDefaultJungleTreeEditor<T1> NewLocalJungleTreeEditor(String _treeName, T1 _root,TransactionManager<T1> _txManager,TreeEditor _editor) { 56 public static <T1 extends TreeNode> NetworkDefaultJungleTreeEditor<T1> NewLocalJungleTreeEditor(String _treeName, TreeNode _root,TransactionManager<T1> _txManager,TreeEditor _editor) {
58 NetworkDefaultJungleTreeEditor<T1> treeEditor = new NetworkDefaultJungleTreeEditor<T1>(_treeName, _root,_txManager,_editor,new DefaultTreeOperationLog()); 57 NetworkDefaultJungleTreeEditor<T1> treeEditor = new NetworkDefaultJungleTreeEditor<T1>(_treeName, _root,_txManager,_editor,new DefaultTreeOperationLog());
59 treeEditor.exportLog = false; 58 treeEditor.exportLog = false;
60 return treeEditor; 59 return treeEditor;
61 } 60 }
62 61
63 public static <T1 extends TreeNode<T1>> NetworkDefaultJungleTreeEditor<T1> NewLocalJungleTreeEditor(String _treeName, T1 _root,TransactionManager<T1> _txManager,TreeEditor _editor, TreeOperationLog _log) { 62 public static <T1 extends TreeNode> NetworkDefaultJungleTreeEditor<T1> NewLocalJungleTreeEditor(String _treeName, TreeNode _root,TransactionManager<T1> _txManager,TreeEditor _editor, TreeOperationLog _log) {
64 NetworkDefaultJungleTreeEditor<T1> treeEditor = new NetworkDefaultJungleTreeEditor<T1>(_treeName, _root,_txManager,_editor,_log); 63 NetworkDefaultJungleTreeEditor<T1> treeEditor = new NetworkDefaultJungleTreeEditor<T1>(_treeName, _root,_txManager,_editor,_log);
65 treeEditor.exportLog = false; 64 treeEditor.exportLog = false;
66 return treeEditor; 65 return treeEditor;
67 } 66 }
68 67
69 private Either<Error,JungleTreeEditor> _edit(final NodePath _path,NodeEditor _e) 68 private Either<Error,JungleTreeEditor> _edit(final NodePath _path,NodeEditor _e)
70 { 69 {
71 LoggingNodeHook hook = new LoggingNodeHook(_e); 70 LoggingNodeHook hook = new LoggingNodeHook(_e);
72 Either<Error,T> either = editor.edit(root,_path,hook); 71 Either<Error,TreeNode> either = editor.edit(root,_path,hook);
73 if(either.isA()){ 72 if(either.isA()){
74 return DefaultEither.newA(either.a()); 73 return DefaultEither.newA(either.a());
75 } 74 }
76 75
77 T newNode = either.b(); 76 TreeNode newNode = either.b();
78 OperationLog newLog = hook.getLog(); 77 OperationLog newLog = hook.getLog();
79 78
80 IterableConverter.Converter<TreeOperation,NodeOperation> converter = new IterableConverter.Converter<TreeOperation,NodeOperation>(){ 79 IterableConverter.Converter<TreeOperation,NodeOperation> converter = new IterableConverter.Converter<TreeOperation,NodeOperation>(){
81 @Override 80 @Override
82 public TreeOperation conv(NodeOperation _b){ 81 public TreeOperation conv(NodeOperation _b){
163 { 162 {
164 return Long.toString(txManager.getRevision()); 163 return Long.toString(txManager.getRevision());
165 } 164 }
166 165
167 @Override 166 @Override
168 public Node getRoot() 167 public TreeNode getRoot()
169 { 168 {
170 return root.getAsNode(); 169 return root;
171 } 170 }
172 171
173 public String getTreeName() { 172 public String getTreeName() {
174 return treeName; 173 return treeName;
175 } 174 }