annotate src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle/DefaultJungle.cs @ 7:02b2ab7bffe6

fix
author Kazuma
date Tue, 27 Sep 2016 18:36:05 +0900
parents dec15de2c6ff
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
1 using System.Collections;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
2 using System.Collections.Generic;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
3 using System;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
4 using UnityEngine;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
5
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
6 public class DefaultJungle : Jungle {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
7 private Journal journal;
7
Kazuma
parents: 0
diff changeset
8 private TreeMap <string, JungleTree> trees;
0
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
9 private string uuid;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
10 private TreeEditor editor;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
11
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
12 public void Start(){
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
13 DefaultJungle j = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()));
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
14 JungleTree t = j.createNewTree ("fuga");
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
15
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
16 JungleTreeEditor e1 = t.getTreeEditor ();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
17
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
18 DefaultNodePath root = new DefaultNodePath ();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
19 Either<Error, JungleTreeEditor> either = e1.addNewChildAt (root, 0);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
20 e1 = either.b();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
21 either = e1.addNewChildAt (root.add (0), 0);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
22 e1 = either.b ();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
23 e1.success ();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
24 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
25
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
26 public DefaultJungle(Journal journal, string uuid, TreeEditor editor){
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
27 this.journal = new NullJournal();
7
Kazuma
parents: 0
diff changeset
28 this.trees = new TreeMap <string, JungleTree>();
0
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
29 this.uuid = uuid;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
30 this.editor = editor;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
31 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
32
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
33 public JungleTree getTreeByName(string name) {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
34
7
Kazuma
parents: 0
diff changeset
35 JungleTree jungle_tree = trees.get(name);
Kazuma
parents: 0
diff changeset
36 if (jungle_tree != null) {
Kazuma
parents: 0
diff changeset
37 return jungle_tree;
0
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
38 } else {
7
Kazuma
parents: 0
diff changeset
39 Debug.Log ("そのTreeは無いようですね。");
0
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
40 return null;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
41 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
42 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
43
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
44 public JungleTree createNewTree(string name) {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
45 ChangeList list = new InnerChangeList(uuid,name);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
46 DefaultTreeNode root = new DefaultTreeNode ();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
47 InterfaceTraverser traverser = new InterfaceTraverser (root, true);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
48 TreeContext tc = new DefaultTreeContext (root, null, list, uuid, name, 0, traverser);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
49 JungleTree newTree = new DefaultJungleTree (tc, uuid, journal.getWriter (), editor);
7
Kazuma
parents: 0
diff changeset
50 if (newTree != null) {
Kazuma
parents: 0
diff changeset
51 trees = trees.put (name, newTree);
Kazuma
parents: 0
diff changeset
52 } else {
Kazuma
parents: 0
diff changeset
53 Debug.Log ("こんばんは、nullです。");
Kazuma
parents: 0
diff changeset
54 }
0
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
55 return newTree;
7
Kazuma
parents: 0
diff changeset
56 }
0
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
57
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
58 public class InnerChangeList : ChangeList {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
59
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
60 string uuid;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
61 string name;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
62
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
63
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
64 IEnumerator IEnumerable.GetEnumerator()
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
65 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
66 return this.GetEnumerator();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
67 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
68
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
69 public IEnumerator<TreeOperation> GetEnumerator()
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
70 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
71 return iterator ();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
72 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
73
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
74 // construct
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
75 public InnerChangeList(string _uuid, string _name) {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
76 this.uuid = _uuid;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
77 this.name = _name;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
78 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
79
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
80 public IEnumerator<TreeOperation> iterator() {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
81 List<TreeOperation> nil = new List<TreeOperation>();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
82 return nil.iterator();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
83 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
84
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
85 public string uuids() {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
86 return uuid;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
87 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
88
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
89 public string getTreeName() {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
90 return name;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
91 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
92
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
93 public TreeOperationLog getLog() {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
94 return new DefaultTreeOperationLog();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
95 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
96 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
97
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
98
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
99 }