blob: a618822cb8b33e2ca8c161214d7e416910e44a46 [file] [log] [blame]
package net.onrc.onos.core.intent;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import net.onrc.onos.core.topology.LinkData;
/**
* Base class for Path representation, which implements the List interface.
*/
public class Path implements List<LinkData> {
private final List<LinkData> links;
/**
* Default constructor to create an empty path.
*/
public Path() {
links = new LinkedList<LinkData>();
}
/**
* Returns a string representation of the path.
*
* @return "[LinkData src->dst],..."
*/
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
Iterator<LinkData> i = this.iterator();
while (i.hasNext()) {
builder.append(i.next().toString());
if (i.hasNext()) {
builder.append(", ");
}
}
return builder.toString();
}
@Override
public int size() {
return links.size();
}
@Override
public boolean isEmpty() {
return links.isEmpty();
}
@Override
public boolean contains(Object o) {
return links.contains(o);
}
@Override
public Iterator<LinkData> iterator() {
return links.iterator();
}
@Override
public Object[] toArray() {
return links.toArray();
}
@Override
public <T> T[] toArray(T[] a) {
return links.toArray(a);
}
@Override
public boolean add(LinkData d) {
return links.add(d);
}
@Override
public boolean remove(Object o) {
return links.remove(o);
}
@Override
public boolean containsAll(Collection<?> c) {
return links.containsAll(c);
}
@Override
public boolean addAll(Collection<? extends LinkData> c) {
return links.addAll(c);
}
@Override
public boolean addAll(int index, Collection<? extends LinkData> c) {
return links.addAll(index, c);
}
@Override
public boolean removeAll(Collection<?> c) {
return links.removeAll(c);
}
@Override
public boolean retainAll(Collection<?> c) {
return links.retainAll(c);
}
@Override
public void clear() {
links.clear();
}
@Override
public boolean equals(Object o) {
return links.equals(o);
}
@Override
public int hashCode() {
return links.hashCode();
}
@Override
public LinkData get(int index) {
return links.get(index);
}
@Override
public LinkData set(int index, LinkData element) {
return links.set(index, element);
}
@Override
public void add(int index, LinkData element) {
links.add(index, element);
}
@Override
public LinkData remove(int index) {
return links.remove(index);
}
@Override
public int indexOf(Object o) {
return links.indexOf(o);
}
@Override
public int lastIndexOf(Object o) {
return links.lastIndexOf(o);
}
@Override
public ListIterator<LinkData> listIterator() {
return links.listIterator();
}
@Override
public ListIterator<LinkData> listIterator(int index) {
return links.listIterator(index);
}
@Override
public List<LinkData> subList(int fromIndex, int toIndex) {
return links.subList(fromIndex, toIndex);
}
}