# Interface Gatherer.Integrator.Greedy<A,T,R>

Type Parameters:
  `A` - the type of state used by this integrator
  `T` - the type of elements this greedy integrator receives
  `R` - the type of results this greedy integrator can produce

All Superinterfaces:
  `Gatherer.Integrator<A,T,R>`

Enclosing interface:
  `Gatherer.Integrator<A,T,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.Greedy<A,T,R> extends Gatherer.Integrator<A,T,R>
Greedy Integrators consume all their input, and may only relay that the downstream does not want more elements.

Implementation Requirements:
  This interface is used to communicate that no short-circuiting will be initiated by this Integrator, and that information can then be used to optimize evaluation.
Since:
  24

- ## Nested Class Summary

  ### Nested classes/interfaces declared in interface Gatherer.Integrator

  `Gatherer.Integrator.Greedy<A,T,R>`
  Modifier and Type
  Interface
  Description
  `static interface`
  `Gatherer.Integrator.Greedy<A,T,R>`
  Greedy Integrators consume all their input, and may only relay that the downstream does not want more elements.

- ## Method Summary

  ### Methods declared in interface Gatherer.Integrator

  `integrate`
  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.