package com.tinkerpop.pipes.util;
import com.tinkerpop.pipes.Pipe;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
/**
* An AsPipe wraps a Pipe and provides it a name and 'peak back' access to the last emitted end.
*
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public class AsPipe<S, E> extends AbstractMetaPipe<S, E> implements MetaPipe {
private final String name;
private final Pipe<S, E> pipe;
public AsPipe(final String name, final Pipe<S, E> pipe) {
this.pipe = pipe;
this.name = name;
}
public void setStarts(final Iterator<S> starts) {
this.pipe.setStarts(starts);
this.starts = starts;
}
protected List getPathToHere() {
return this.pipe.getCurrentPath();
}
public E getCurrentEnd() {
return this.currentEnd;
}
public String getName() {
return this.name;
}
public E processNextStart() {
return this.pipe.next();
}
public List<Pipe> getPipes() {
return (List) Arrays.asList(this.pipe);
}
public String toString() {
return PipeHelper.makePipeString(this, this.name, this.pipe);
}
}