public class SingleItemPeekableItemReader<T> extends java.lang.Object implements ItemStreamReader<T>, PeekableItemReader<T>
ユーザーが 1 つのアイテムを先に覗くことができる PeekableItemReader
。peek()
を繰り返し呼び出すと同じ項目が返され、これが read()
から返される次の項目になります。
意図的にスレッドセーフではない: ピークしたスレッドの 1 つだけが次の read 呼び出しでその項目を取得するため、複数のスレッドでピークを尊重することはできません。
コンストラクターと説明 |
---|
SingleItemPeekableItemReader() |
修飾子と型 | メソッドと説明 |
---|---|
void | close() デリゲートが ItemStream の場合は、呼び出しを渡すだけです。それ以外の場合は、ピークキャッシュをリセットします。 |
void | open(ExecutionContext executionContext) デリゲートが ItemStream の場合は、呼び出しを渡すだけです。それ以外の場合は、ピークキャッシュをリセットします。 |
T | peek() 次の項目を確認し、デリゲートが ItemStream の場合、状態が update(ExecutionContext) への次の呼び出しのために保存されることを確認します。 |
T | read() デリゲートから次のアイテムを取得します(すでにピークされているかどうかに関係なく)。 |
void | setDelegate(ItemReader<T> delegate) デリゲートとして使用するアイテムリーダー。 |
void | update(ExecutionContext executionContext) キャッシュされたピークがある場合は、その時点から実行コンテキストの状態を取得します。 |
public void setDelegate(ItemReader<T> delegate)
read()
で呼び出し元に渡されます。delegate
- 設定するデリゲート @Nullable public T read() throws java.lang.Exception, UnexpectedInputException, ParseException
ItemReader<T>
の read
null
ParseException
- 現在のレコードの解析に問題がある場合 (しかし、次のものはまだ有効かもしれません)NonTransientResourceException
- 基礎となるリソースに致命的な例外がある場合。この例外をスローした後、実装は後続の read 呼び出しから null を返すように努める必要があります。UnexpectedInputException
- 入力データに未分類の問題がある場合。潜在的に一時的であると想定します。後続の読み取り呼び出しは成功する可能性があります。java.lang.Exception
- 特定のエラーがない場合。ItemReader.read()
@Nullable public T peek() throws java.lang.Exception, UnexpectedInputException, ParseException
ItemStream
の場合、状態が update(ExecutionContext)
への次の呼び出しのために保存されることを確認します。PeekableItemReader<T>
の peek
java.lang.Exception
- 問題がある場合 UnexpectedInputException
ParseException
PeekableItemReader.peek()
public void close() throws ItemStreamException
ItemStream
の場合は、呼び出しを渡すだけです。それ以外の場合は、ピークキャッシュをリセットします。ItemStream
の close
ItemStreamException
- 問題がある場合 ItemStream.close()
public void open(ExecutionContext executionContext) throws ItemStreamException
ItemStream
の場合は、呼び出しを渡すだけです。それ以外の場合は、ピークキャッシュをリセットします。ItemStream
の open
executionContext
- 現在のコンテキスト ItemStreamException
- 問題がある場合 ItemStream.open(ExecutionContext)
public void update(ExecutionContext executionContext) throws ItemStreamException
ItemStream
の update
executionContext
- 現在のコンテキスト ItemStreamException
- 問題がある場合 ItemStream.update(ExecutionContext)