Mercurial > hg > Database > jungle-network
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 } |