jp.terasoluna.fw.batch.controlbreak
クラス ControlBreakChunker

java.lang.Object
  上位を拡張 jp.terasoluna.fw.batch.controlbreak.ControlBreakChunker
すべての実装されたインタフェース:
CollectedDataHandler

public class ControlBreakChunker
extends java.lang.Object
implements CollectedDataHandler

コントロールブレイク単位に、チャンクを作成する CollectedDataHandler の実装クラス。

1つのジョブに対して、複数のコントロールブレイクを定義することができる。 またコントロールブレイクのうちの1つは、トランザクション境界と一致するように 定義する必要があり、そのようなコントロールブレイクを "トランザクショナルコントロールブレイク"と呼ぶ。

Collector から、handle()メソッドで収集したデータの処理を依頼 された際に、transactionalBreakKey

に設定されているトランザクショナル コントロールブレイクキーの定義に基づいて、チャンクを分割する。

controlBreakHandlerMap に設定されているコントロールブレイクの 定義に基づいて、handle()メソッドに渡されたビジネスロジック入力データでコント ロールブレイクが発生しているかどうをチェックする。コントロールブレイクが発生 していた場合には、ブレイクキーとそれぞれのブレイクキーの値を設定する。

作成したチャンクは、コンストラクタで渡された WorkQueue に設定 する。


フィールドの概要
private  boolean chunkControlFlg
          チャンクコントロールブレイクの設定有無。
private  int chunkSize
          チャンクサイズ。
private  ControlBreakDef controlBreakDef
          コントロールブレイクの定義情報。
private  ControlBreakChunk currentChunk
          処理中のチャンク。
private  JobContext jobContext
          ジョブコンテクスト。
private  ControlBreakRowObject newRow
          次の処理データ
private  WorkQueue queue
          作成したチャンクをキューイングする WorkQueue インスタンス。
 
コンストラクタの概要
ControlBreakChunker(WorkQueue queue, JobContext jobContext, ControlBreakDef controlBreakDef, int chunkSize)
          コンストラクタ。
 
メソッドの概要
 void close()
          終了処理を行う。
 void handle(java.lang.Object row, int collected)
          コレクタで収集したデータを処理する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

queue

private WorkQueue queue
作成したチャンクをキューイングする WorkQueue インスタンス。


controlBreakDef

private final ControlBreakDef controlBreakDef
コントロールブレイクの定義情報。


currentChunk

private ControlBreakChunk currentChunk
処理中のチャンク。


jobContext

private JobContext jobContext
ジョブコンテクスト。


chunkSize

private int chunkSize
チャンクサイズ。


chunkControlFlg

private boolean chunkControlFlg
チャンクコントロールブレイクの設定有無。


newRow

private ControlBreakRowObject newRow
次の処理データ

コンストラクタの詳細

ControlBreakChunker

public ControlBreakChunker(WorkQueue queue,
                           JobContext jobContext,
                           ControlBreakDef controlBreakDef,
                           int chunkSize)
コンストラクタ。

パラメータ:
queue - 作成したチャンクをキューイングする WorkQueue インスタンス
jobContext - ジョブコンテクスト
controlBreakDef - コントロールブレイクの定義情報
chunkSize - チャンクサイズ
メソッドの詳細

handle

public void handle(java.lang.Object row,
                   int collected)
コレクタで収集したデータを処理する。

コントロールブレイクが発生しているかどうかを判定し、トランザクショナルコ ントロールブレイクが発生している場合には、前データまでをチャンクとしてキ ューイングする。

定義:
インタフェース CollectedDataHandler 内の handle
パラメータ:
row - コレクタで収集したデータ
collected - row が、収集したデータで何番目のデータであるかを 示すインデックス

close

public void close()
終了処理を行う。

処理中のチャンクをキューイングし、WorkQueue インスタンス のクローズ処理を行う。

定義:
インタフェース CollectedDataHandler 内の close