package org.gcube.data.streams.dsl.consume; import org.gcube.data.streams.Callback; import org.gcube.data.streams.StreamConsumer; import org.gcube.data.streams.Stream; import org.gcube.data.streams.dsl.StreamClause; import org.gcube.data.streams.dsl.StreamClauseEnv; /** * The clause of {@code consume} sentences in which a {@link Callback} is configured on the input stream. * * @author Fabio Simeoni * * @param the type of stream elements */ public class ConsumeWithClause extends StreamClause> { /** * Creates an instance from an input {@link Stream} * * @param stream the stream */ public ConsumeWithClause(Stream stream) { super(new StreamClauseEnv(stream)); } /** * Return a {@link Stream} configured with a given {@link Callback}. * * @param consumer the consumer */ public void with(Callback consumer) { new StreamConsumer(env.stream(), consumer).start(); } }