org.apache.solr.client.solrj.io.stream

## Class PushBackStream

- java.lang.Object
- - org.apache.solr.client.solrj.io.stream.TupleStream
  - - org.apache.solr.client.solrj.io.stream.PushBackStream

- All Implemented Interfaces:
    Closeable, Serializable, AutoCloseable, Expressible

      public class PushBackStream
      extends TupleStream
      implements Expressible

  A TupleStream that allows a single Tuple to be pushed back onto the stream after it's been read. This is a useful class when building streams that maintain the order of Tuples between multiple substreams.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PushBackStream(TupleStream stream)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `List<TupleStream>` | `children()`
    `void` | `close()`
    `int` | `getCost()`
    `StreamComparator` | `getStreamSort()` Return the stream sort - ie, the order in which records are returned This returns the streamSort of the substream
    `void` | `open()`
    `void` | `pushBack(Tuple tuple)`
    `Tuple` | `read()`
    `void` | `setStreamContext(StreamContext context)`
    `Explanation` | `toExplanation(StreamFactory factory)` Returns an explanation about the stream object
    `StreamExpressionParameter` | `toExpression(StreamFactory factory)`

    - ### Methods inherited from class org.apache.solr.client.solrj.io.stream.TupleStream

      `getStreamNodeId, writeStreamClose, writeStreamOpen`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PushBackStream

          public PushBackStream(TupleStream stream)

  - ### Method Detail

    - #### toExpression

          public StreamExpressionParameter toExpression(StreamFactory factory)
                                                 throws IOException

      Specified by:
        `toExpression` in interface `Expressible`
      Throws:
        `IOException`

    - #### toExplanation

          public Explanation toExplanation(StreamFactory factory)
                                    throws IOException

      Description copied from interface: `Expressible`
      Returns an explanation about the stream object
      Specified by:
        `toExplanation` in interface `Expressible`
      Specified by:
        `toExplanation` in class `TupleStream`
      Parameters:
        `factory` - Stream factory for this, contains information about the function name
      Returns:
        Explanation about this stream object containing explanations of any child stream objects
      Throws:
        `IOException` - throw on any error

    - #### setStreamContext

          public void setStreamContext(StreamContext context)

      Specified by:
        `setStreamContext` in class `TupleStream`

    - #### children

          public List<TupleStream> children()

      Specified by:
        `children` in class `TupleStream`

    - #### open

          public void open()
                    throws IOException

      Specified by:
        `open` in class `TupleStream`
      Throws:
        `IOException`

    - #### close

          public void close()
                     throws IOException

      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in class `TupleStream`
      Throws:
        `IOException`

    - #### pushBack

          public void pushBack(Tuple tuple)

    - #### read

          public Tuple read()
                     throws IOException

      Specified by:
        `read` in class `TupleStream`
      Throws:
        `IOException`

    - #### getStreamSort

          public StreamComparator getStreamSort()

      Return the stream sort - ie, the order in which records are returned This returns the streamSort of the substream
      Specified by:
        `getStreamSort` in class `TupleStream`

    - #### getCost

          public int getCost()

      Overrides:
        `getCost` in class `TupleStream`

Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.