annotate Main/jungle-main/store/impl/DefaultNodePath.cs @ 28:9588ad364fdd

Last commit before change.
author Kazuma Takeda
date Wed, 18 Jan 2017 19:53:29 +0900
parents 1f99e150f336
children f2ea780b3e80
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
1 using UnityEngine;
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
2 using System.Collections.Generic;
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
3 using System.Collections;
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
4
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
5 namespace JungleDB {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
6 public class DefaultNodePath : NodePath {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
7 private List<int> path = new List<int>();
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
8
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
9 IEnumerator IEnumerable.GetEnumerator()
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
10 {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
11 // call the generic version of the method
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
12 return this.GetEnumerator();
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
13 }
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
14
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
15 public IEnumerator<int> GetEnumerator()
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
16 {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
17 return path.iterator ();
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
18 }
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
19
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
20 public DefaultNodePath() {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
21 path = new List<int> ().addLast (-1);
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
22 }
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
23
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
24 private DefaultNodePath(List<int> path) {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
25 this.path = path;
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
26 }
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
27
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
28 /// <summary>
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
29 /// Listに追加します。
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
30 /// path = path.add(0)を2回する
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
31 /// path = path.add(0).add(0)する
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
32 /// これは同じ
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
33 /// </summary>
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
34 /// <param name="pos">Position.</param>
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
35
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
36 public NodePath add(int pos) {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
37 List<int> newPath = path.addLast(pos);
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
38 return new DefaultNodePath(newPath);
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
39 }
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
40
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
41 public Pair<int, NodePath> pop() {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
42 int head = path.headList();
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
43 List<int> tail = path.deleteHead();
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
44 return new Pair<int, NodePath>(head, new DefaultNodePath(tail));
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
45 }
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
46
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
47 public Pair<int, NodePath> last() {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
48 int last = path.headList();
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
49 List<int> list = path.deleteHead();
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
50 return new Pair<int, NodePath>(last, new DefaultNodePath(list));
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
51 }
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
52
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
53 public override string ToString() {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
54 string s = "List <";
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
55 int list_count = this.path.length();
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
56 int count = 0;
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
57 foreach(var i in this.path) {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
58 if (count != list_count -1){
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
59 s += i.ToString() + ",";
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
60 } else {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
61 s += i.ToString();
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
62 }
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
63 count++;
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
64 }
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
65 return s + ">";
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
66 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
67
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
68 public int size() {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
69 return path.length();
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
70 }
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
71
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
72 public NodePath tail() {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
73 List<int> tail = path.deleteLast ();
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
74 return new DefaultNodePath (tail);
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
75 }
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
76
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
77 public List<DefaultNodePath> inits() {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
78 List<DefaultNodePath> paths = new List<DefaultNodePath> ();
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
79 List<int> coursePath = new List<int> ();
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
80 foreach (int tmpPath in path) {
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
81 List<int> tmp = coursePath.addLast (tmpPath);
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
82 paths = paths.addLast (new DefaultNodePath (tmp));
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
83 coursePath = tmp;
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
84 }
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
85 return paths;
20
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
86 }
1f99e150f336 fix folder and add Object Mapper.
Kazuma Takeda
parents:
diff changeset
87 }
28
9588ad364fdd Last commit before change.
Kazuma Takeda
parents: 20
diff changeset
88 }