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

## Class UpdateStream

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

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

Direct Known Subclasses:
  `DeleteStream`

    public class UpdateStream
    extends TupleStream
    implements Expressible

Sends tuples emitted by a wrapped `TupleStream` as updates to a SolrCloud collection.

Since:
  6.0.0
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
`static String` `BATCH_INDEXED_FIELD_NAME`

### Constructor Summary

Constructors
`UpdateStream​(String collectionName, TupleStream tupleSource, String zkHost, int updateBatchSize)`
`UpdateStream​(StreamExpression expression, StreamFactory factory)`

### Method Summary

All Methods Instance Methods Concrete Methods
`List<TupleStream>` `children()`
`void` `close()`
`protected boolean` `defaultPruneVersionField()` Used during initialization to specify the default value for the `"pruneVersionField"` option.
`protected CloudSolrClient` `getCloudSolrClient()` Only viable after calling `open()`
`protected String` `getCollectionName()` The name of the collection being updated
`StreamComparator` `getStreamSort()`
`void` `open()`
`Tuple` `read()`
`void` `setStreamContext​(StreamContext context)`
`Explanation` `toExplanation​(StreamFactory factory)` Returns an explanation about the stream object
`StreamExpression` `toExpression​(StreamFactory factory)`
`protected void` `uploadBatchToCollection​(List<SolrInputDocument> documentBatch)` This method will be called on every batch of tuples comsumed, after converting each tuple in that batch to a Solr Input Document.

### 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.common.MapWriter

`jsonStr, toMap`

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

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

### Field Detail

#### BATCH_INDEXED_FIELD_NAME

    public static String BATCH_INDEXED_FIELD_NAME

### Constructor Detail

#### UpdateStream

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

Throws:
  `IOException`

#### UpdateStream

    public UpdateStream​(String collectionName,
                        TupleStream tupleSource,
                        String zkHost,
                        int updateBatchSize)
                 throws IOException

Throws:
  `IOException`

### Method Detail

#### getCollectionName

    protected String getCollectionName()

The name of the collection being updated

#### open

    public void open()
              throws IOException

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

#### read

    public Tuple read()
               throws IOException

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

#### close

    public void close()
               throws IOException

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

#### getStreamSort

    public StreamComparator getStreamSort()

Specified by:
  `getStreamSort` in class `TupleStream`

#### children

    public List<TupleStream> children()

Specified by:
  `children` in class `TupleStream`

#### toExpression

    public StreamExpression 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`

#### defaultPruneVersionField

    protected boolean defaultPruneVersionField()

Used during initialization to specify the default value for the `"pruneVersionField"` option. `UpdateStream` returns `true` for backcompat and to simplify slurping of data from one collection to another.

#### getCloudSolrClient

    protected CloudSolrClient getCloudSolrClient()

Only viable after calling `open()`

#### uploadBatchToCollection

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

This method will be called on every batch of tuples comsumed, after converting each tuple in that batch to a Solr Input Document.

Throws:
  `IOException`