package com.tinkerpop.pipes.filter;
import com.tinkerpop.blueprints.Element;
import com.tinkerpop.blueprints.Predicate;
import com.tinkerpop.pipes.AbstractPipe;
import com.tinkerpop.pipes.util.PipeHelper;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public class IdFilterPipe extends AbstractPipe<Element, Element> implements FilterPipe<Element> {
private final Object id;
private final Predicate predicate;
public IdFilterPipe(final Predicate predicate, final Object id) {
this.id = id;
this.predicate = predicate;
}
protected Element processNextStart() {
while (true) {
final Element s = this.starts.next();
if (this.predicate.evaluate(s.getId(), this.id))
return s;
}
}
public String toString() {
return PipeHelper.makePipeString(this, this.predicate, this.id);
}
}