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 }