de.unkrig.commons.lang.protocol
Interface Producer<T>

Type Parameters:
T - The type of the 'products'

public interface Producer<T>

A source that produces a sequence of elements of type T; the so-called 'products'.

IMPORTANT NOTICE:

When using this type in a variable, parameter or field declaration, never write
Producer<product-type>
, but always
Producer<? extends product-type>
.


Method Summary
 T produce()
          Produces the next instance of type T, a so-called 'product'.
 java.lang.String toString()
          Returns a human-readable text which describes the origin of the previously produced element, e.g. file name, line number and column number.
 

Method Detail

produce

@Nullable
T produce()
Produces the next instance of type T, a so-called 'product'. A null return value typically, but not necessarily indicates 'end-of-input'.

Generally products should either be immutable, or the 'ownership' of the product should pass from the producer to the caller. Particularly, the producer should not return one (mutable) instance more than once.


toString

@Nullable
java.lang.String toString()
Returns a human-readable text which describes the origin of the previously produced element, e.g. file name, line number and column number.

Overrides:
toString in class java.lang.Object