/**
*
*/
package org.freeplane.plugin.script.proxy;
import java.util.Iterator;
import java.util.NoSuchElementException;
import org.freeplane.features.link.ConnectorModel;
import org.freeplane.features.link.LinkModel;
import org.freeplane.plugin.script.ScriptContext;
class ConnectorIterator implements Iterator<Proxy.Connector> {
private final ScriptContext scriptContext;
private final Iterator<LinkModel> iterator;
private ConnectorModel next;
public ConnectorIterator(final Iterator<LinkModel> iterator, final ScriptContext scriptContext) {
this.scriptContext = scriptContext;
this.iterator = iterator;
next = getNextConnectorModel();
}
private ConnectorModel getNextConnectorModel() {
while (iterator.hasNext()) {
final LinkModel linkModel = iterator.next();
if (linkModel instanceof ConnectorModel) {
return (ConnectorModel) linkModel;
}
}
return null;
}
public boolean hasNext() {
return next != null;
}
public Proxy.Connector next() {
if (!hasNext()) {
throw new NoSuchElementException();
}
final ConnectorModel current = next;
next = getNextConnectorModel();
return new ConnectorProxy(current, scriptContext);
}
public void remove() {
throw new UnsupportedOperationException();
}
}