# Interface Gatherer.Downstream<T>

Type Parameters:
  `T` - the type of elements this downstream accepts

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.Downstream<T>
A Downstream object is the next stage in a pipeline of operations, to which elements can be sent.

Since:
  24

## Method Summary

Modifier and Type
Method
Description
`default boolean`
`isRejecting()`
Checks whether the next stage is known to not want any more elements sent to it.
`boolean`
`push(T element)`
Pushes, if possible, the provided element downstream -- to the next stage in the pipeline.

## Method Details

### push

boolean push(T element)
Pushes, if possible, the provided element downstream -- to the next stage in the pipeline.

Implementation Requirements:
  If this method returns `false` then no further elements will be accepted and subsequent invocations of this method will return `false`.
Parameters:
  `element` - the element to push downstream
Returns:
  `true` if more elements can be sent, and `false` if not.

### isRejecting

default boolean isRejecting()
Checks whether the next stage is known to not want any more elements sent to it.

API Note:
  This is best-effort only, once this returns `true` it should never return `false` again for the same instance.
Implementation Requirements:
  The implementation in this interface returns `false`.
Returns:
  `true` if this Downstream is known not to want any more elements sent to it, `false` if otherwise