package org.openntf.domino.graph2.impl; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.ListIterator; import org.openntf.domino.big.NoteCoordinate; import com.tinkerpop.blueprints.Edge; import com.tinkerpop.blueprints.Element; public class DEdgeIterable implements org.openntf.domino.graph2.DEdgeIterable { private org.openntf.domino.graph2.impl.DElementIterable delegate_; public static class DEdgeIterator implements ListIterator<Edge> { private ListIterator<Element> delegate_; public DEdgeIterator(final ListIterator<Element> delegate) { delegate_ = delegate; } @Override public DEdge next() { DEdge result = null; Element chk = delegate_.next(); if (chk instanceof DEdge) { result = (DEdge) chk; } else { throw new IllegalStateException("Next element returned is a " + chk.getClass().getName() + " not an Edge"); } return result; } @Override public boolean hasNext() { return delegate_.hasNext(); } @Override public void remove() { delegate_.remove(); } @Override public void add(final Edge arg0) { delegate_.add(arg0); } @Override public boolean hasPrevious() { return delegate_.hasPrevious(); } @Override public int nextIndex() { return delegate_.nextIndex(); } @Override public int previousIndex() { return delegate_.previousIndex(); } @Override public void set(final Edge arg0) { delegate_.set(arg0); } @Override public DEdge previous() { DEdge result = null; Element chk = delegate_.previous(); if (chk instanceof DEdge) { result = (DEdge) chk; } else { throw new IllegalStateException("Previous element returned is a " + chk.getClass().getName() + " not an Edge"); } return result; } } public DEdgeIterable(final DElementStore store, final List<NoteCoordinate> index) { delegate_ = new org.openntf.domino.graph2.impl.DElementIterable(store, index); } private DEdgeIterable(final org.openntf.domino.graph2.impl.DElementIterable delegate) { delegate_ = delegate; } @Override public Iterator<Edge> iterator() { return new DEdgeIterator(delegate_.listIterator()); } @Override public boolean add(final Edge e) { return delegate_.add(e); } @Override public void add(final int index, final Edge element) { delegate_.add(index, element); } @Override public boolean addAll(final Collection<? extends Edge> c) { return delegate_.addAll(c); } @Override public boolean addAll(final int index, final Collection<? extends Edge> c) { return delegate_.addAll(index, c); } @Override public void clear() { delegate_.clear(); } @Override public boolean contains(final Object o) { return delegate_.contains(o); } @Override public boolean containsAll(final Collection<?> c) { return delegate_.containsAll(c); } @Override public Edge get(final int index) { return (Edge) delegate_.get(index); } @Override public int indexOf(final Object o) { return delegate_.indexOf(o); } @Override public boolean isEmpty() { return delegate_.isEmpty(); } @Override public int lastIndexOf(final Object o) { return delegate_.lastIndexOf(o); } @Override public ListIterator<Edge> listIterator() { return new DEdgeIterator(delegate_.listIterator()); } @Override public ListIterator<Edge> listIterator(final int index) { return new DEdgeIterator(delegate_.listIterator(index)); } @Override public Edge remove(final int index) { return (Edge) delegate_.remove(index); } @Override public boolean remove(final Object o) { return delegate_.remove(o); } @Override public boolean removeAll(final Collection<?> c) { return delegate_.removeAll(c); } @Override public boolean retainAll(final Collection<?> c) { return delegate_.retainAll(c); } @Override public Edge set(final int index, final Edge element) { return (Edge) delegate_.set(index, element); } @Override public int size() { return delegate_.size(); } @Override public List<Edge> subList(final int fromIndex, final int toIndex) { return new DEdgeIterable((DElementIterable) delegate_.subList(fromIndex, toIndex)); } @Override public Object[] toArray() { return delegate_.toArray(); } @Override public <T> T[] toArray(final T[] a) { return delegate_.toArray(a); } }