public abstract class AbstractItemCountingItemStreamItemReader<T> extends AbstractItemStreamItemReader<T>
ExecutionContext
にアイテムカウントを格納することにより再起動をサポートする ItemReader
の抽象スーパークラス(したがって、実行間でアイテムの順序を保持する必要があります)。サブクラスは本質的にスレッドセーフではありません。コンストラクターと説明 |
---|
AbstractItemCountingItemStreamItemReader() |
修飾子と型 | メソッドと説明 |
---|---|
void | close() ノーオペレーション。 |
protected abstract void | doClose() doOpen() で開いたリソースを閉じます。 |
protected abstract void | doOpen() 入力の読み取りを開始するために必要なリソースを開きます。 |
protected abstract T | doRead() 入力から次の項目を読み取ります。 |
protected int | getCurrentItemCount() |
boolean | isSaveState() 再起動のために内部状態を保存するかどうかを決定するフラグ。 |
protected void | jumpToItem(int itemIndex) 指定されたアイテムインデックスに移動します。 |
void | open(ExecutionContext executionContext) ノーオペレーション。 |
T | read() 入力データの一部を読み取り、次のデータに進みます。 |
void | setCurrentItemCount(int count) 読み取りを開始するアイテムのインデックス。 |
void | setMaxItemCount(int count) 読み込まれるアイテムの最大インデックス。 |
void | setSaveState(boolean saveState) ExecutionContext の内部データを保存するかどうかを決定するフラグを設定します。 |
void | update(ExecutionContext executionContext) 空の ExecutionContext を返します。 |
getExecutionContextKey, setExecutionContextName, setName
public AbstractItemCountingItemStreamItemReader()
@Nullable protected abstract T doRead() throws java.lang.Exception
null
java.lang.Exception
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします protected abstract void doOpen() throws java.lang.Exception
java.lang.Exception
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします protected abstract void doClose() throws java.lang.Exception
doOpen()
で開いたリソースを閉じます。java.lang.Exception
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします protected void jumpToItem(int itemIndex) throws java.lang.Exception
doRead()
を使用して入力を再読み取りするよりも効率的に特定のインデックスに移動する方法がある場合、サブクラスはこのメソッドをオーバーライドする必要があります。itemIndex
- ジャンプするアイテムのインデックス(0 ベース)。java.lang.Exception
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします @Nullable public T read() throws java.lang.Exception, UnexpectedInputException, ParseException
ItemReader
null
を返す必要があります。トランザクション設定では、最初の呼び出しがロールバックされたトランザクション内にあった場合、呼び出し元は連続した呼び出し(またはそれ以外)から同じアイテムを 2 回取得する場合があります。null
ParseException
- 現在のレコードの解析に問題がある場合 (しかし、次のものはまだ有効かもしれません)NonTransientResourceException
- 基礎となるリソースに致命的な例外がある場合。この例外をスローした後、実装は後続の read 呼び出しから null を返すように努める必要があります。UnexpectedInputException
- 入力データに未分類の問題がある場合。潜在的に一時的であると想定します。後続の読み取り呼び出しは成功する可能性があります。java.lang.Exception
- 特定のエラーがない場合。protected int getCurrentItemCount()
public void setCurrentItemCount(int count)
ExecutionContext
にキー [name].read.count
が含まれている場合([name]
はこのコンポーネントの名前です)、ExecutionContext
からの値が優先的に使用されます。count
- 現在のアイテム数の値 ItemStreamSupport.setName(String)
public void setMaxItemCount(int count)
ExecutionContext
にキー [name].read.count.max
が含まれている場合([name]
はこのコンポーネントの名前です)、ExecutionContext
からの値が優先的に使用されます。count
- 最大アイテム数の値。カウントはゼロより大きくなければなりません。ItemStreamSupport.setName(String)
public void close() throws ItemStreamException
ItemStreamSupport
ItemStream
の close
ItemStreamSupport
の close
ItemStreamException
ItemStream.close()
public void open(ExecutionContext executionContext) throws ItemStreamException
ItemStreamSupport
ItemStream
の open
ItemStreamSupport
の open
executionContext
- 現在のステップの ExecutionContext
再起動時のステップの最後の実行からの executionContext になります。ItemStreamException
ItemStream.open(ExecutionContext)
public void update(ExecutionContext executionContext) throws ItemStreamException
ItemStreamSupport
ExecutionContext
を返します。ItemStream
の update
ItemStreamSupport
の update
executionContext
- 更新される ItemStreamException
ItemStream.update(ExecutionContext)
public void setSaveState(boolean saveState)
ExecutionContext
の内部データを保存するかどうかを決定するフラグを設定します。このストリームから状態を保存したくない場合にのみ、これを false に切り替えて、再起動可能にする必要はありません。リーダーが並行環境で使用されている場合は、常に false に設定します。saveState
- フラグ値(デフォルトは true)。public boolean isSaveState()