java.lang.Object
org.praxislive.code.userapi.Data
Support for creating data pipes to work with data of any type. All data
chains are driven by a Data.Sink. Input and output ports of type Data.In and
Data.Out can be created. Only pipes and ports of the identical generic type
can be connected together.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classInput port pipe.static classOutput port pipe.static interfaceA data holder used to wrap data of type T to be passed around a Pipe graph.static classThe base type of pipes that can be connected to form processing graphs.static classData sink to drive pipe graph. -
Method Summary
Modifier and TypeMethodDescriptionstatic final <T> Data.Pipe<T> Create a pipe that applies the function to every type T passing through.static final <T> Data.Pipe<T> combine(BiFunction<T, List<T>, ? extends T> combiner) Create a pipe that applies the combiner function to every type T passing through.static final <T> Data.Pipe<T> combineWith(BiConsumer<T, List<T>> combiner) Create a pipe that applies the combiner function to every type T passing through.static final <T> Data.Pipe<T> identity()Create a pipe that applies no additional processing to every type T passing through.static final <T> Data.Pipe<T> Link provided Data.Pipes together.static final <T> Data.Pipe<T> Create a pipe that supplies new instances of type T.static final <T> Data.Pipe<T> Create a pipe that applies the consumer to every type T passing through.
-
Method Details
-
apply
Create a pipe that applies the function to every type T passing through. The function may return the supplied input or another instance of type T.- Type Parameters:
T- type of data- Parameters:
function- function to apply to data- Returns:
- pipe
-
combine
Create a pipe that applies the combiner function to every type T passing through. The function may return the supplied input or another instance of type T. The first argument of the function corresponds to the first source of the pipe, if there is one, else a cleared T. The second argument is a list of T corresponding to any additional sources.- Type Parameters:
T- type of data- Parameters:
combiner- combination function to apply to data- Returns:
- pipe
-
combineWith
Create a pipe that applies the combiner function to every type T passing through. The first argument of the function corresponds to the first source of the pipe, if there is one, else a cleared T. The second argument is a list of T corresponding to any additional sources. The function should combine data into the first argument T, which assumes that T is mutable. To combine into a different instance of T, usecombine(java.util.function.BiFunction).- Type Parameters:
T- type of data- Parameters:
combiner- combination function to apply to data- Returns:
- pipe
-
identity
Create a pipe that applies no additional processing to every type T passing through. The pipe will use the clear and accumulate functions defined on the sink.This pipe is useful where you need a placeholder element, a clear source, or to combine sources using the default accumulation.
- Type Parameters:
T- type of data- Returns:
- pipe
-
link
Link provided Data.Pipes together.- Type Parameters:
T- common type of data supported by pipes- Parameters:
pipes- pipes to connect- Returns:
- last pipe, for convenience
-
supply
Create a pipe that supplies new instances of type T. This pipe does not support sources.- Type Parameters:
T- type of data to supply- Parameters:
supplier- function to supply instance of T- Returns:
- pipe
-
with
Create a pipe that applies the consumer to every type T passing through. This assumes that either the data type is mutable or that its contents will be used but not changed. To map the type to a different instance of T, useapply(java.util.function.Function).- Type Parameters:
T- type of data- Parameters:
consumer- consumer function to apply to data of type T- Returns:
- pipe
-