annotate src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/store/impl/logger/LoggingNode.cs @ 0:dec15de2c6ff

first commit
author Kazuma
date Tue, 21 Jun 2016 17:11:12 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
1 using UnityEngine;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
2 using System.Collections;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
3
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
4 public class LoggingNode {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
5 private TreeNode wrap;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
6 private OperationLog log;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
7
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
8 public LoggingNode(TreeNode _wrap)
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
9 : this(_wrap,new DefaultOperationLog())
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
10 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
11 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
12
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
13 public LoggingNode(TreeNode _wrap,OperationLog _log)
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
14 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
15 wrap = _wrap;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
16 log = _log;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
17 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
18
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
19 public LoggingAttributes getAttributes()
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
20 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
21 return new LoggingAttributes(wrap,log);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
22 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
23
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
24 public LoggingChildren getChildren()
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
25 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
26 Debug.Log ("in gtChildren");
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
27 return new LoggingChildren(wrap,log);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
28 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
29
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
30
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
31 public OperationLog getOperationLog()
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
32 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
33 return log;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
34 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
35
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
36 public Either<Error, LoggingNode> replaceNewRootNode() {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
37 NodeOperation replaceRootNode = new ReplaceRootNodeOperation();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
38 return edit(replaceRootNode);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
39 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
40
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
41 public Either<Error, LoggingNode> edit(NodeOperation op){
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
42 Either<Error,TreeNode> either = op.invoke(wrap);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
43 if(either.isA()){
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
44 return DefaultEither<Error, LoggingNode>.newA(either.a());
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
45 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
46
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
47 TreeNode newWrap = either.b();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
48 OperationLog newLog = log.add(op);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
49 LoggingNode newLoggingNode = new LoggingNode(newWrap,newLog);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
50 return DefaultEither<Error, LoggingNode>.newB(newLoggingNode);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
51 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
52
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
53 public TreeNode getWrap()
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
54 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
55 return wrap;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
56 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
57
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
58 }