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

## Class ComplementStream

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

All Implemented Interfaces:
  Closeable, Serializable, AutoCloseable, Expressible

    public class ComplementStream
    extends TupleStream
    implements Expressible

Emits tuples from streamA which do not exist in streamB. Resulting tuples are ordered the same as they were in streamA. Both streams must be sorted by the fields being compared.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`ComplementStream(StreamExpression expression, StreamFactory factory)`
`ComplementStream(TupleStream streamA, TupleStream streamB, StreamEqualitor eq)`

### Method Summary

All Methods Instance Methods Concrete Methods
`List<TupleStream>` `children()`
`void` `close()`
`int` `getCost()`
`StreamComparator` `getStreamSort()` Return the stream sort - ie, the order in which records are returned
`void` `open()`
`Tuple` `read()`
`void` `setStreamContext(StreamContext context)`
`StreamExpression` `toExpression(StreamFactory factory)`

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

`writeStreamClose, writeStreamOpen`

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

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

### Constructor Detail

#### ComplementStream

    public ComplementStream(TupleStream streamA,
                            TupleStream streamB,
                            StreamEqualitor eq)
                     throws IOException

Throws:
  `IOException`

#### ComplementStream

    public ComplementStream(StreamExpression expression,
                            StreamFactory factory)
                     throws IOException

Throws:
  `IOException`

### Method Detail

#### toExpression

    public StreamExpression toExpression(StreamFactory factory)
                                  throws IOException

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

#### 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`

#### 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

Specified by:
  `getStreamSort` in class `TupleStream`

#### getCost

    public int getCost()

Overrides:
  `getCost` in class `TupleStream`