Mercurial > hg > Database > jungle-network
comparison src/main/java/alice/jungle/operations/NetworkNodePath.java @ 105:f9e29a52efd3
Move some files
author | one |
---|---|
date | Tue, 26 Nov 2013 06:43:10 +0900 |
parents | src/alice/jungle/operations/NetworkNodePath.java@b3ccefdf2b43 |
children | 2828205bdc3a |
comparison
equal
deleted
inserted
replaced
104:03bf62bb699e | 105:f9e29a52efd3 |
---|---|
1 package alice.jungle.operations; | |
2 | |
3 import java.util.Iterator; | |
4 import java.util.LinkedList; | |
5 | |
6 import org.msgpack.annotation.Message; | |
7 | |
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; | |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; | |
10 | |
11 @Message | |
12 public class NetworkNodePath implements NodePath | |
13 { | |
14 LinkedList<Integer> path; | |
15 | |
16 public NetworkNodePath() { | |
17 path = new LinkedList<Integer>(); | |
18 path.add(-1); | |
19 } | |
20 | |
21 public NetworkNodePath(NodePath _p) { | |
22 path = new LinkedList<Integer>(); | |
23 for(Integer pos: _p) { | |
24 path.add(pos); | |
25 } | |
26 } | |
27 | |
28 private NetworkNodePath(LinkedList<Integer> _path) { | |
29 path = _path; | |
30 } | |
31 | |
32 @Override | |
33 public Iterator<Integer> iterator() { | |
34 return path.iterator(); | |
35 } | |
36 | |
37 @Override | |
38 public NetworkNodePath add(int _pos) { | |
39 LinkedList<Integer> newPath = copyPath(); | |
40 newPath.add(_pos); | |
41 return new NetworkNodePath(newPath); | |
42 } | |
43 | |
44 @Override | |
45 public Pair<Integer, NodePath> pop() { | |
46 LinkedList<Integer> cPath = copyPath(); | |
47 int e = cPath.getFirst(); | |
48 cPath.remove(); | |
49 return new Pair<Integer, NodePath>(e, new NetworkNodePath(cPath)); | |
50 } | |
51 | |
52 @Override | |
53 public int size() { | |
54 return path.size(); | |
55 } | |
56 | |
57 private LinkedList<Integer> copyPath() { | |
58 LinkedList<Integer> newPath = new LinkedList<Integer>(); | |
59 for (Integer i : path) { | |
60 newPath.add(i); | |
61 } | |
62 return newPath; | |
63 } | |
64 | |
65 @Override | |
66 public String toString() { | |
67 return path.toString(); | |
68 } | |
69 | |
70 } |