53
|
1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger;
|
|
2
|
78
|
3 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
|
53
|
4 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor;
|
|
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
|
|
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
|
|
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
|
|
8
|
|
9 public class LoggingNodeHook implements NodeEditor
|
|
10 {
|
|
11 private OperationLog log;
|
|
12 private final NodeEditor editor;
|
|
13
|
|
14 public LoggingNodeHook(NodeEditor _editor)
|
|
15 {
|
|
16 log = null;
|
|
17 editor = _editor;
|
|
18 }
|
|
19
|
|
20 @Override
|
86
|
21 public Either<Error,TreeNode> edit(TreeNode _e)
|
53
|
22 {
|
78
|
23 //LoggingNode<T> loggingNode = new LoggingNode<T>(_e);
|
81
|
24 Either<Error,TreeNode> either = editor.edit(_e);
|
53
|
25 if(either.isA()){
|
|
26 return DefaultEither.newA(either.a());
|
|
27 }
|
79
|
28 log = editor.getLog();
|
81
|
29 TreeNode newLoggingNode = either.b();
|
78
|
30 //T newNode = newLoggingNode.getWrap();
|
|
31 //log = newLoggingNode.getOperationLog();
|
53
|
32
|
78
|
33 return DefaultEither.newB(newLoggingNode);
|
53
|
34 }
|
|
35
|
|
36 public OperationLog getLog()
|
|
37 {
|
|
38 return log;
|
|
39 }
|
|
40 }
|