package org.gcube.data.streams.dsl.pipe; import org.gcube.data.streams.Stream; import org.gcube.data.streams.delegates.PipedStream; import org.gcube.data.streams.dsl.StreamClause; import org.gcube.data.streams.dsl.StreamClauseEnv; import org.gcube.data.streams.generators.Generator; /** * The clause of {@code pipe} sentences in which a {@link Generator} is configured on the output stream. * * @author Fabio Simeoni * * @param the type of stream elements */ public class PipeThroughClause extends StreamClause> { /** * Creates an instance from an input {@link Stream} * * @param stream the stream */ public PipeThroughClause(Stream stream) { super(new StreamClauseEnv(stream)); } /** * Return a {@link Stream} configured with a given {@link Generator}. * * @param generator the generator * @return the stream */ public PipedStream through(Generator generator) { return new PipedStream(env.stream(), generator); } }