blob: 1fa33cf67c9897db7b86b4b150426937918e030f [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/**
Brian O'Connora581b9d2014-06-15 23:32:36 -070012 * Base class for Path representation, which implements the List interface.
Yuta HIGUCHI1fc395e2014-05-13 14:06:28 -070013 */
14public class Path implements List<LinkEvent> {
15
Brian O'Connora581b9d2014-06-15 23:32:36 -070016 private final List<LinkEvent> links;
Yuta HIGUCHI1fc395e2014-05-13 14:06:28 -070017
18 /**
19 * Default constructor to create an empty path.
20 */
21 public Path() {
22 links = new LinkedList<LinkEvent>();
23 }
24
Brian O'Connora581b9d2014-06-15 23:32:36 -070025 /**
26 * Returns a string representation of the path.
27 *
28 * @return "[LinkEvent src->dst],..."
29 */
Yuta HIGUCHI1fc395e2014-05-13 14:06:28 -070030 @Override
31 public String toString() {
32 StringBuilder builder = new StringBuilder();
33 Iterator<LinkEvent> i = this.iterator();
34 while (i.hasNext()) {
35 builder.append(i.next().toString());
36 if (i.hasNext()) {
37 builder.append(", ");
38 }
39 }
40 return builder.toString();
41 }
42
43 @Override
44 public int size() {
45 return links.size();
46 }
47
48 @Override
49 public boolean isEmpty() {
50 return links.isEmpty();
51 }
52
53 @Override
54 public boolean contains(Object o) {
55 return links.contains(o);
56 }
57
58 @Override
59 public Iterator<LinkEvent> iterator() {
60 return links.iterator();
61 }
62
63 @Override
64 public Object[] toArray() {
65 return links.toArray();
66 }
67
68 @Override
69 public <T> T[] toArray(T[] a) {
70 return links.toArray(a);
71 }
72
73 @Override
74 public boolean add(LinkEvent e) {
75 return links.add(e);
76 }
77
78 @Override
79 public boolean remove(Object o) {
80 return links.remove(o);
81 }
82
83 @Override
84 public boolean containsAll(Collection<?> c) {
85 return links.containsAll(c);
86 }
87
88 @Override
89 public boolean addAll(Collection<? extends LinkEvent> c) {
90 return links.addAll(c);
91 }
92
93 @Override
94 public boolean addAll(int index, Collection<? extends LinkEvent> c) {
95 return links.addAll(index, c);
96 }
97
98 @Override
99 public boolean removeAll(Collection<?> c) {
100 return links.removeAll(c);
101 }
102
103 @Override
104 public boolean retainAll(Collection<?> c) {
105 return links.retainAll(c);
106 }
107
108 @Override
109 public void clear() {
110 links.clear();
111 }
112
113 @Override
114 public boolean equals(Object o) {
115 return links.equals(o);
116 }
117
118 @Override
119 public int hashCode() {
120 return links.hashCode();
121 }
122
123 @Override
124 public LinkEvent get(int index) {
125 return links.get(index);
126 }
127
128 @Override
129 public LinkEvent set(int index, LinkEvent element) {
130 return links.set(index, element);
131 }
132
133 @Override
134 public void add(int index, LinkEvent element) {
135 links.add(index, element);
136 }
137
138 @Override
139 public LinkEvent remove(int index) {
140 return links.remove(index);
141 }
142
143 @Override
144 public int indexOf(Object o) {
145 return links.indexOf(o);
146 }
147
148 @Override
149 public int lastIndexOf(Object o) {
150 return links.lastIndexOf(o);
151 }
152
153 @Override
154 public ListIterator<LinkEvent> listIterator() {
155 return links.listIterator();
156 }
157
158 @Override
159 public ListIterator<LinkEvent> listIterator(int index) {
160 return links.listIterator(index);
161 }
162
163 @Override
164 public List<LinkEvent> subList(int fromIndex, int toIndex) {
165 return links.subList(fromIndex, toIndex);
166 }
167}