クラス StaxEventItemReader<T>
java.lang.ObjectSE
org.springframework.batch.item.ItemStreamSupport
org.springframework.batch.item.support.AbstractItemStreamItemReader<T>
org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader<T>
org.springframework.batch.item.xml.StaxEventItemReader<T>
- 実装されたすべてのインターフェース:
ResourceAwareItemReaderItemStream<T>
、ItemReader<T>
、ItemStream
、ItemStreamReader<T>
、org.springframework.beans.factory.InitializingBean
public class StaxEventItemReader<T>
extends AbstractItemCountingItemStreamItemReader<T>
implements ResourceAwareItemReaderItemStream<T>, org.springframework.beans.factory.InitializingBean
StAX に基づく XML 入力を読み取るためのアイテムリーダー。
入力 XML ドキュメントから、処理対象のレコードに対応するフラグメントを抽出します。フラグメントは、スタンドアロン XML ドキュメントのようにさらに処理できるように、StartDocument および EndDocument イベントでラップされます。
実装はスレッドセーフではありません。
- 作成者:
- Robert Kasanicky, Mahmoud Ben Hassine, Glenn Renfro
フィールドサマリー
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明void
すべてのプロパティを設定した後、ItemReader を実行するために必要なすべての依存関係が提供されていることを確認してください。protected void
doClose()
AbstractItemCountingItemStreamItemReader.doOpen()
で開いたリソースを閉じます。protected void
doOpen()
入力の読み取りを開始するために必要なリソースを開きます。protected T
doRead()
次のフラグメントに移動し、アイテムにマップします。protected boolean
protected void
jumpToItem
(int itemIndex) 指定されたアイテムインデックスに移動します。protected boolean
フラグメントルートの StartElement の前にカーソルを移動する責任があります。void
setEncoding
(StringSE encoding) 入力ファイルに使用するエンコーディングを設定します。void
setFragmentRootElementName
(StringSE fragmentRootElementName) void
setFragmentRootElementNames
(StringSE[] fragmentRootElementNames) void
setResource
(org.springframework.core.io.Resource resource) void
setStrict
(boolean strict) 厳格モードでは、入力リソースが存在しない場合、リーダーはAbstractItemCountingItemStreamItemReader.open(org.springframework.batch.item.ExecutionContext)
で例外をスローします。void
setUnmarshaller
(org.springframework.oxm.Unmarshaller unmarshaller) void
setXmlInputFactory
(XMLInputFactorySE xmlInputFactory) XMLInputFactory
SE を設定してください。クラス org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader から継承されたメソッド
close, getCurrentItemCount, isSaveState, open, read, setCurrentItemCount, setMaxItemCount, setSaveState, update
クラス org.springframework.batch.item.ItemStreamSupport から継承されたメソッド
getExecutionContextKey, getName, setExecutionContextName, setName
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.batch.item.ItemReader から継承されたメソッド
read
インターフェース org.springframework.batch.item.ItemStream から継承されたメソッド
close, open, update
フィールドの詳細
DEFAULT_ENCODING
コンストラクターの詳細
StaxEventItemReader
public StaxEventItemReader()
メソッドの詳細
setStrict
public void setStrict(boolean strict) 厳格モードでは、入力リソースが存在しない場合、リーダーはAbstractItemCountingItemStreamItemReader.open(org.springframework.batch.item.ExecutionContext)
で例外をスローします。- パラメーター:
strict
- デフォルトで true
setResource
public void setResource(org.springframework.core.io.Resource resource) - 次で指定:
- インターフェース
ResourceAwareItemReaderItemStream<T>
のsetResource
setUnmarshaller
public void setUnmarshaller(org.springframework.oxm.Unmarshaller unmarshaller) - パラメーター:
unmarshaller
- レコードに対応する xml フラグメントをオブジェクトにマップします
setFragmentRootElementName
- パラメーター:
fragmentRootElementName
- フラグメントのルート要素の名前
setFragmentRootElementNames
- パラメーター:
fragmentRootElementNames
- フラグメントのルート要素の名前のリスト
setXmlInputFactory
XMLInputFactory
SE を設定してください。- パラメーター:
xmlInputFactory
- 使用対象
setEncoding
入力ファイルに使用するエンコーディングを設定します。デフォルトはDEFAULT_ENCODING
です。- パラメーター:
encoding
- 使用されるエンコーディング。null
の可能性があります。この場合、XML イベントリーダーは入力ファイルからエンコーディングを自動検出しようとします。
afterPropertiesSet
すべてのプロパティを設定した後、ItemReader を実行するために必要なすべての依存関係が提供されていることを確認してください。- 次で指定:
- インターフェース
org.springframework.beans.factory.InitializingBean
のafterPropertiesSet
- 例外:
IllegalArgumentExceptionSE
- リソース、FragmentDeserializer、FragmentRootElementName が null の場合、またはルート要素が空の場合。IllegalStateExceptionSE
- リソースが存在しない場合。ExceptionSE
- 関連事項:
InitializingBean.afterPropertiesSet()
moveCursorToNextFragment
protected boolean moveCursorToNextFragment(XMLEventReaderSE reader) throws NonTransientResourceException フラグメントルートの StartElement の前にカーソルを移動する責任があります。この実装は、次の対応する要素を検索するだけであり、要素の入れ子については考慮しません。複合フラグメントを正しく処理するには、このメソッドをオーバーライドする必要があります。
- パラメーター:
reader
- 次のフラグメントを見つけるために使用されるXMLEventReader
SE。- 戻り値:
- 次のフラグメントが見つかった場合は
true
、それ以外の場合はfalse
。 - 例外:
NonTransientResourceException
- カーソルを移動できなかった場合。これは致命的なものとして扱われ、その後の read の呼び出しは null を返します。
doClose
クラスからコピーされた説明:AbstractItemCountingItemStreamItemReader
AbstractItemCountingItemStreamItemReader.doOpen()
で開いたリソースを閉じます。- 次で指定:
- クラス
AbstractItemCountingItemStreamItemReader<T>
のdoClose
- 例外:
ExceptionSE
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします
doOpen
クラスからコピーされた説明:AbstractItemCountingItemStreamItemReader
入力の読み取りを開始するために必要なリソースを開きます。- 次で指定:
- クラス
AbstractItemCountingItemStreamItemReader<T>
のdoOpen
- 例外:
ExceptionSE
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします
doRead
次のフラグメントに移動し、アイテムにマップします。- 次で指定:
- クラス
AbstractItemCountingItemStreamItemReader<T>
のdoRead
- 戻り値:
- データソースが使い果たされた場合、アイテムまたは
null
- 例外:
IOExceptionSE
XMLStreamExceptionSE
jumpToItem
クラスからコピーされた説明:AbstractItemCountingItemStreamItemReader
指定されたアイテムインデックスに移動します。AbstractItemCountingItemStreamItemReader.doRead()
を使用して入力を再読み取りするよりも効率的に特定のインデックスに移動する方法がある場合、サブクラスはこのメソッドをオーバーライドする必要があります。- オーバーライド:
- クラス
AbstractItemCountingItemStreamItemReader<T>
のjumpToItem
- パラメーター:
itemIndex
- ジャンプするアイテムのインデックス(0 ベース)。- 例外:
ExceptionSE
- サブクラスがフレームワークによる解釈のためにチェック済み例外をスローできるようにします
isFragmentRootElementName