Interface Gatherer.Integrator<A,T,R>

Type Parameters:
A - the type of state used by this integrator
T - the type of elements this integrator consumes
R - the type of results this integrator can produce
All Known Subinterfaces:
Gatherer.Integrator.Greedy<A,T,R>
Enclosing interface:
Gatherer<T,A,R>
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public static interface Gatherer.Integrator<A,T,R>
An Integrator receives elements and processes them, optionally using the supplied state, and optionally sends incremental results downstream.
Since:
24
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static interface 
    Greedy Integrators consume all their input, and may only relay that the downstream does not want more elements.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    integrate(A state, T element, Gatherer.Downstream<? super R> downstream)
    Performs an action given: the current state, the next element, and a downstream object; potentially inspecting and/or updating the state, optionally sending any number of elements downstream -- and then returns whether more elements are to be consumed or not.
    static <A,T,R> Gatherer.Integrator<A,T,R>
    of(Gatherer.Integrator<A,T,R> integrator)
    Factory method for turning Integrator-shaped lambdas into Integrators.
    static <A,T,R> Gatherer.Integrator.Greedy<A,T,R>
    Factory method for turning Integrator-shaped lambdas into Gatherer.Integrator.Greedy Integrators.
  • Method Details

    • integrate

      boolean integrate(A state, T element, Gatherer.Downstream<? super R> downstream)
      Performs an action given: the current state, the next element, and a downstream object; potentially inspecting and/or updating the state, optionally sending any number of elements downstream -- and then returns whether more elements are to be consumed or not.
      Parameters:
      state - The state to integrate into
      element - The element to integrate
      downstream - The downstream object of this integration
      Returns:
      true if subsequent integration is desired, false if not
    • of

      static <A,T,R> Gatherer.Integrator<A,T,R> of(Gatherer.Integrator<A,T,R> integrator)
      Factory method for turning Integrator-shaped lambdas into Integrators.
      Type Parameters:
      A - the type of state used by this integrator
      T - the type of elements this integrator receives
      R - the type of results this integrator can produce
      Parameters:
      integrator - a lambda to create as Integrator
      Returns:
      the given lambda as an Integrator
    • ofGreedy

      static <A,T,R> Gatherer.Integrator.Greedy<A,T,R> ofGreedy(Gatherer.Integrator.Greedy<A,T,R> greedy)
      Factory method for turning Integrator-shaped lambdas into Gatherer.Integrator.Greedy Integrators.
      Type Parameters:
      A - the type of state used by this integrator
      T - the type of elements this integrator receives
      R - the type of results this integrator can produce
      Parameters:
      greedy - a lambda to create as Integrator.Greedy
      Returns:
      the given lambda as a Greedy Integrator