org.springframework.batch.item

## Interface ItemStream

- All Known Subinterfaces:
    ItemStreamReader<T>, ItemStreamWriter<T>, ResourceAwareItemReaderItemStream<T>, ResourceAwareItemWriterItemStream<T>
  All Known Implementing Classes:
    AbstractCursorItemReader, AbstractFileItemWriter, AbstractItemCountingItemStreamItemReader, AbstractItemStreamItemReader, AbstractItemStreamItemWriter, AbstractNeo4jItemReader, AbstractPaginatedDataItemReader, AbstractPagingItemReader, AsyncItemWriter, AvroItemReader, AvroItemWriter, CheckpointSupport, ChunkMessageChannelItemWriter, ChunkMonitor, CompositeItemStream, CompositeItemWriter, FlatFileItemReader, FlatFileItemWriter, HibernateCursorItemReader, HibernatePagingItemReader, ItemReaderAdapter, ItemStreamSupport, ItemWriterAdapter, JdbcCursorItemReader, JdbcPagingItemReader, JpaCursorItemReader, JpaPagingItemReader, JsonFileItemWriter, JsonItemReader, KafkaItemReader, LdifReader, MappingLdifReader, MongoItemReader, MultiResourceItemReader, MultiResourceItemWriter, Neo4jItemReader, RepositoryItemReader, ResourcesItemReader, SingleItemPeekableItemReader, StaxEventItemReader, StaxEventItemWriter, StoredProcedureItemReader, SynchronizedItemStreamReader, SynchronizedItemStreamWriter

      public interface ItemStream

  Marker interface defining a contract for periodically storing state and restoring from that state should an error occur.

  Author:
    Dave Syer, Lucas Ward

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` If any resources are needed for the stream to operate they need to be destroyed here.
    `void` | `open(ExecutionContext executionContext)` Open the stream for the provided `ExecutionContext`.
    `void` | `update(ExecutionContext executionContext)` Indicates that the execution context provided during open is about to be saved.

- - ### Method Detail

    - #### open

          void open(ExecutionContext executionContext)
             throws ItemStreamException

      Open the stream for the provided `ExecutionContext`.
      Parameters:
        `executionContext` - current step's `ExecutionContext`. Will be the executionContext from the last run of the step on a restart.
      Throws:
        `java.lang.IllegalArgumentException` - if context is null
        `ItemStreamException`

    - #### update

          void update(ExecutionContext executionContext)
               throws ItemStreamException

      Indicates that the execution context provided during open is about to be saved. If any state is remaining, but has not been put in the context, it should be added here.
      Parameters:
        `executionContext` - to be updated
      Throws:
        `java.lang.IllegalArgumentException` - if executionContext is null.
        `ItemStreamException`

    - #### close

          void close()
              throws ItemStreamException

      If any resources are needed for the stream to operate they need to be destroyed here. Once this method has been called all other methods (except open) may throw an exception.
      Throws:
        `ItemStreamException`