package com.idega.slide.jcr;
import java.util.List;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
import javax.jcr.Property;
import javax.jcr.PropertyIterator;
import javax.jcr.observation.Event;
import javax.jcr.observation.EventIterator;
import javax.jcr.observation.EventListener;
import javax.jcr.observation.EventListenerIterator;
import javax.jcr.version.Version;
import javax.jcr.version.VersionIterator;
public class IteratorHelper<T> implements NodeIterator, EventListenerIterator, PropertyIterator, VersionIterator, EventIterator {
private int position;
private List<T> items;
public IteratorHelper() {
super();
}
public IteratorHelper(List<T> items) {
this();
this.items = items;
}
@Override
public boolean hasNext() {
return position < items.size();
}
@Override
public Object next() {
try {
return items.get(position);
} finally {
position++;
}
}
@Override
public void remove() {
if (position < getSize()) {
items.remove(position);
}
}
@Override
public void skip(long skipNum) {
// TODO Auto-generated method stub
}
@Override
public long getSize() {
return items.size();
}
@Override
public long getPosition() {
return position;
}
@Override
public EventListener nextEventListener() {
return (EventListener) next();
}
@Override
public Node nextNode() {
return (Node) next();
}
@Override
public Property nextProperty() {
return (Property) next();
}
@Override
public Version nextVersion() {
return (Version) next();
}
@Override
public Event nextEvent() {
return (Event) next();
}
}