blob: e8192903c038c577dc5ef780aceee4a9cc665c43 [file] [log] [blame]
Yuta HIGUCHI1fc395e2014-05-13 14:06:28 -07001package net.onrc.onos.core.intent;
2
3import java.util.Collection;
4import java.util.Iterator;
5import java.util.LinkedList;
6import java.util.List;
7import java.util.ListIterator;
8
9import net.onrc.onos.core.topology.LinkEvent;
10
11/**
12 * Base class for Path representation.
13 *
14 * @author Toshio Koide (t-koide@onlab.us)
15 */
16public class Path implements List<LinkEvent> {
17
18 private List<LinkEvent> links;
19
20 /**
21 * Default constructor to create an empty path.
22 */
23 public Path() {
24 links = new LinkedList<LinkEvent>();
25 }
26
27 @Override
28 public String toString() {
29 StringBuilder builder = new StringBuilder();
30 Iterator<LinkEvent> i = this.iterator();
31 while (i.hasNext()) {
32 builder.append(i.next().toString());
33 if (i.hasNext()) {
34 builder.append(", ");
35 }
36 }
37 return builder.toString();
38 }
39
40 @Override
41 public int size() {
42 return links.size();
43 }
44
45 @Override
46 public boolean isEmpty() {
47 return links.isEmpty();
48 }
49
50 @Override
51 public boolean contains(Object o) {
52 return links.contains(o);
53 }
54
55 @Override
56 public Iterator<LinkEvent> iterator() {
57 return links.iterator();
58 }
59
60 @Override
61 public Object[] toArray() {
62 return links.toArray();
63 }
64
65 @Override
66 public <T> T[] toArray(T[] a) {
67 return links.toArray(a);
68 }
69
70 @Override
71 public boolean add(LinkEvent e) {
72 return links.add(e);
73 }
74
75 @Override
76 public boolean remove(Object o) {
77 return links.remove(o);
78 }
79
80 @Override
81 public boolean containsAll(Collection<?> c) {
82 return links.containsAll(c);
83 }
84
85 @Override
86 public boolean addAll(Collection<? extends LinkEvent> c) {
87 return links.addAll(c);
88 }
89
90 @Override
91 public boolean addAll(int index, Collection<? extends LinkEvent> c) {
92 return links.addAll(index, c);
93 }
94
95 @Override
96 public boolean removeAll(Collection<?> c) {
97 return links.removeAll(c);
98 }
99
100 @Override
101 public boolean retainAll(Collection<?> c) {
102 return links.retainAll(c);
103 }
104
105 @Override
106 public void clear() {
107 links.clear();
108 }
109
110 @Override
111 public boolean equals(Object o) {
112 return links.equals(o);
113 }
114
115 @Override
116 public int hashCode() {
117 return links.hashCode();
118 }
119
120 @Override
121 public LinkEvent get(int index) {
122 return links.get(index);
123 }
124
125 @Override
126 public LinkEvent set(int index, LinkEvent element) {
127 return links.set(index, element);
128 }
129
130 @Override
131 public void add(int index, LinkEvent element) {
132 links.add(index, element);
133 }
134
135 @Override
136 public LinkEvent remove(int index) {
137 return links.remove(index);
138 }
139
140 @Override
141 public int indexOf(Object o) {
142 return links.indexOf(o);
143 }
144
145 @Override
146 public int lastIndexOf(Object o) {
147 return links.lastIndexOf(o);
148 }
149
150 @Override
151 public ListIterator<LinkEvent> listIterator() {
152 return links.listIterator();
153 }
154
155 @Override
156 public ListIterator<LinkEvent> listIterator(int index) {
157 return links.listIterator(index);
158 }
159
160 @Override
161 public List<LinkEvent> subList(int fromIndex, int toIndex) {
162 return links.subList(fromIndex, toIndex);
163 }
164}