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

## Class DeleteStream

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

All Implemented Interfaces:
  `Closeable`, `Serializable`, `AutoCloseable`, `Expressible`, `MapSerializable`, `MapWriter`, `NavigableObject`

    public final class DeleteStream
    extends UpdateStream
    implements Expressible

Uses tuples to identify the uniqueKey values of documents to be deleted

See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.solr.client.solrj.io.stream.TupleStream

`TupleStream.IgnoreException`

### Nested classes/interfaces inherited from interface org.apache.solr.common.MapWriter

`MapWriter.EntryWriter`

### Field Summary

### Fields inherited from class org.apache.solr.client.solrj.io.stream.UpdateStream

`BATCH_INDEXED_FIELD_NAME`

### Fields inherited from interface org.apache.solr.common.MapWriter

`EMPTY`

### Constructor Summary

Constructors
`DeleteStream​(StreamExpression expression, StreamFactory factory)`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected boolean` `defaultPruneVersionField()` `DeleteStream` returns `false` so that Optimistic Concurrency Constraints are respected by default when using this stream to wrap a `SearchStream` query.
`Explanation` `toExplanation​(StreamFactory factory)` Returns an explanation about the stream object
`protected void` `uploadBatchToCollection​(List<SolrInputDocument> documentBatch)` Overrides implementation to extract the `"id"` and `"_version_"` (if included) from each document and use that information to construct a "Delete By Id" request.

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

`children, close, getCloudSolrClient, getCollectionName, getStreamSort, open, read, setStreamContext, toExpression`

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

`getCost, getShards, getShards, getStreamNodeId, writeMap`

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

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

### Methods inherited from interface org.apache.solr.client.solrj.io.stream.expr.Expressible

`toExpression`

### Methods inherited from interface org.apache.solr.common.MapWriter

`jsonStr, toMap`

### Methods inherited from interface org.apache.solr.common.NavigableObject

`_forEachEntry, _forEachEntry, _forEachEntry, _get, _get, _getStr, _getStr, _size`

### Constructor Detail

#### DeleteStream

    public DeleteStream​(StreamExpression expression,
                        StreamFactory factory)
                 throws IOException

Throws:
  `IOException`

### Method Detail

#### 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`
Overrides:
  `toExplanation` in class `UpdateStream`
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

#### defaultPruneVersionField

    protected boolean defaultPruneVersionField()

`DeleteStream` returns `false` so that Optimistic Concurrency Constraints are respected by default when using this stream to wrap a `SearchStream` query.

Overrides:
  `defaultPruneVersionField` in class `UpdateStream`

#### uploadBatchToCollection

    protected void uploadBatchToCollection​(List<SolrInputDocument> documentBatch)
                                    throws IOException

Overrides implementation to extract the `"id"` and `"_version_"` (if included) from each document and use that information to construct a "Delete By Id" request. Any other fields (ie: Tuple values) are ignored.

Overrides:
  `uploadBatchToCollection` in class `UpdateStream`
Throws:
  `IOException`