Mercurial > hg > Database > jungle-sharp
comparison src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle-main/store/impl/logger/DefaultTreeOperationLog.cs @ 17:01a08cf4b2d9
Liq Files
author | Kazuma |
---|---|
date | Mon, 07 Nov 2016 01:05:24 +0900 |
parents | abe0c247f5a5 |
children |
comparison
equal
deleted
inserted
replaced
16:8f1ce942abfc | 17:01a08cf4b2d9 |
---|---|
1 using UnityEngine; | |
2 using System.Collections.Generic; | |
3 using System; | |
4 using System.Collections; | |
5 using System.Linq; | |
6 | |
7 | |
8 public class DefaultTreeOperationLog : TreeOperationLog { | |
9 private IEnumerable<TreeOperation> list; | |
10 private int size; | |
11 | |
12 IEnumerator IEnumerable.GetEnumerator() | |
13 { | |
14 // call the generic version of the method | |
15 return this.GetEnumerator(); | |
16 } | |
17 | |
18 public IEnumerator<TreeOperation> GetEnumerator() | |
19 { | |
20 foreach (var i in list) { | |
21 yield return i; | |
22 } | |
23 } | |
24 | |
25 | |
26 public DefaultTreeOperationLog() | |
27 { | |
28 list = new List<TreeOperation>(); | |
29 size = 0; | |
30 } | |
31 | |
32 public DefaultTreeOperationLog(IEnumerable<TreeOperation> _list,int _size) | |
33 { | |
34 list = _list; | |
35 size = _size; | |
36 } | |
37 | |
38 // public IEnumerator<TreeOperation> iterator() | |
39 // { | |
40 // return list.itetator(); | |
41 // } | |
42 | |
43 public TreeOperationLog add(NodePath _p, NodeOperation _op) | |
44 { | |
45 TreeOperation op = new DefaultTreeOperation(_p,_op); | |
46 List<TreeOperation> newList = new List<TreeOperation>(op); | |
47 // java write Iterables.concat ここは間違い | |
48 IEnumerable<TreeOperation> concat = list.Union<TreeOperation>(newList); | |
49 | |
50 return new DefaultTreeOperationLog(concat,size + 1); | |
51 } | |
52 | |
53 public TreeOperationLog append(TreeOperationLog _log) | |
54 { | |
55 int argumentLogSize = _log.length(); | |
56 // java write Iterables.concat | |
57 IEnumerable<TreeOperation> concat = list.Union<TreeOperation>(_log); | |
58 | |
59 return new DefaultTreeOperationLog(concat,argumentLogSize + size); | |
60 } | |
61 | |
62 | |
63 public int length(){ | |
64 return size; | |
65 } | |
66 } |