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

first commit
author Kazuma
date Tue, 21 Jun 2016 17:11:12 +0900
parents
children 02b2ab7bffe6
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.Generic;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
3 using System;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
4 using System.Collections;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
5 using System.Linq;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
6
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
7
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
8 public class DefaultTreeOperationLog : TreeOperationLog {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
9 private IEnumerable<TreeOperation> list;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
10 private int size;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
11
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
12 TreeOperation[] _array;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
13 TreeOperation Count;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
14
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
15 IEnumerator IEnumerable.GetEnumerator()
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
16 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
17 // call the generic version of the method
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
18 return this.GetEnumerator();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
19 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
20
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
21 public IEnumerator<TreeOperation> GetEnumerator()
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
22 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
23 for (int i = 0; i < Convert.ToInt32(Count); i++)
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
24 yield return _array[i];
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
25 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
26
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
27
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
28 public DefaultTreeOperationLog()
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
29 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
30 list = new List<TreeOperation>();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
31 size = 0;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
32 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
33
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
34 public DefaultTreeOperationLog(IEnumerable<TreeOperation> _list,int _size)
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
35 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
36 list = _list;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
37 size = _size;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
38 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
39
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
40 // public IEnumerator<TreeOperation> iterator()
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
41 // {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
42 // return list.itetator();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
43 // }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
44
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
45 public TreeOperationLog add(NodePath _p, NodeOperation _op)
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
46 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
47 TreeOperation op = new DefaultTreeOperation(_p,_op);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
48 List<TreeOperation> newList = new List<TreeOperation>(op);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
49 // java write Iterables.concat ここは間違い
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
50 IEnumerable<TreeOperation> concat = list.Union<TreeOperation>(newList);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
51
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
52 return new DefaultTreeOperationLog(concat,size + 1);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
53 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
54
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
55 public TreeOperationLog append(TreeOperationLog _log)
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
56 {
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
57 int argumentLogSize = _log.length();
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
58 // java write Iterables.concat
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
59 IEnumerable<TreeOperation> concat = list.Union<TreeOperation>(_log);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
60
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
61 return new DefaultTreeOperationLog(concat,argumentLogSize + size);
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
62 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
63
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
64
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
65 public int length(){
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
66 return size;
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
67 }
dec15de2c6ff first commit
Kazuma
parents:
diff changeset
68 }