|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object rydeen.AbstractProcessor
public abstract class AbstractProcessor
抽象処理器クラスです.
にライフサイクルの概念が導入されています.
Processor
ライフサイクルはStage
クラスで表され,以下のように状態が遷移します.
UNINITIALIZED ↓INITIALIZED ↓
init
↓
prepare
PROCESSING ↓
execute
PROCESSED ↓
perform
↓
finish
FINISHED
summarize
矢印の右に書かれている文字はメソッドを表しており, そのメソッドが呼び出されることで,ライフサイクルの状態が遷移します. 斜体で示されているメソッドが抽象メソッドであり,サブクラスでオーバーライドしなければならないメソッドです. その他のメソッドはfinal宣言されているため,オーバーライドできません. なお,状態は以降,ステージ,もしくはstageとして表記されます.
このオブジェクトが作成された直後のステージはUNINITIALIZEDです. initメソッドが呼び出されることにより,INITIALIZEDに移行します. なお,initメソッドからprepareメソッドを呼び出しますが, prepareメソッド呼び出しの直前にINITIALIZEDにステージは移行します. 続いて,executeメソッドが呼び出され,PROCESSINGステージに移行し, 自動的にperformメソッドが呼び出されます. そして,performメソッドの呼び出しが終了すると,PROCESSEDステージに移行します. 最後にfinishメソッドが呼び出され,finishメソッドからsummarizeメソッドが呼び出されます. summarizeメソッドの呼び出しが終了すると,FINISHEDステージに移行します.
この処理器には5つのステージが存在しますが,それぞれのステージで呼び出せるメソッドは限定されています. 呼び出し可能か否かを表したのが以下の表です.
縦の列がステージを表しており,横の行が各メソッドを表しています. ○のセルがあるのは,その行にあるメソッドがその列のステージのときに呼び出せることを表しています. ×のセルの場合は,IllegalStateException が投げられます.
UNINITIALIZED | INITIALIZED | PROCESSING | PROCESSED | FINISHED | ||
---|---|---|---|---|---|---|
情報取得 |
|
○ | ○ | ○ | ○ | ○ |
|
○ | ○ | ○ | ○ | ○ | |
|
○ | ○ | ○ | ○ | ○ | |
|
○ | ○ | ○ | ○ | ○ | |
|
○ | × | × | × | × | |
|
× | ○ | ○ | ○ | ○ | |
情報設定 |
|
○ | × | × | × | × |
|
× | ○ | ○ | ○ | × | |
処理メソッド |
|
○ | × | × | × | × |
|
× | ○ | × | × | × | |
|
× | × | × | ○ | × | |
オーバーライド |
|
× | ○ | × | × | × |
|
× | × | ○ | × | × | |
|
× | × | × | ○ | × |
コンストラクタの概要 | |
---|---|
protected |
AbstractProcessor(ProcessorService provider)
指定されたサービスプロバイダをもとに処理器オブジェクトを作成します. |
メソッドの概要 | |
---|---|
void |
execute(TargetSource source,
Destination dest)
処理を行うためのメソッドです. |
void |
finish()
終了処理を行います. |
Arguments |
getArguments()
処理器の設定項目を返します. |
Stage |
getCurrentStage()
現在のステージを返します. |
String |
getId()
設定されたIdを返します. |
String |
getProcessorName()
この処理器の名前を返します. |
ProcessorService |
getProvider()
サービスプロバイダを返します. |
Summary |
getSummary()
この処理器のサマリを返します. |
void |
init()
初期設定を行います. |
protected abstract void |
perform(TargetSource source,
Destination dest)
サブクラスでこのメソッドをオーバーライドして実際の処理を実装してください. |
protected abstract void |
prepare(Arguments args)
ユーザ定義の初期設定を行うメソッドです.引数に与えられた
に従って処理を行うよう処理器を設定しなければいけません. |
protected void |
putEntry(Arguments args)
Summaryに出力するためのエントリを追加します. |
protected void |
putEntry(String key,
String value)
Summaryに出力するためのエントリを追加します. |
void |
setId(String id)
Idを設定します. |
protected abstract void |
summarize()
ユーザ定義の終了処理を行うメソッドです.この処理器で使用したリソースを適切に開放しなければいけません. |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
protected AbstractProcessor(ProcessorService provider)
provider
- サービスプロバイダメソッドの詳細 |
---|
public final String getProcessorName()
Processor
内の getProcessorName
ProcessorService.getProcessorName()
public final Stage getCurrentStage()
public final void setId(String id)
Idを設定します.
Idは1セッションの間に,処理器を互いに区別するための文字列です.
このメソッドはステージがUNINITIALIZEDの時だけ呼び出せます. ステージがUNINITIALIZED以外のときには,IllegalStateException が投げられます.
Processor
内の setId
IllegalStateException
- 状態がUNINITIALIZED以外のときに,このメソッドが呼び出された場合.Processor.getId()
public final String getId()
設定されたIdを返します.
Idが設定されていない場合(
が一度も呼び出されていない場合)はnullを返します.
setId
このメソッドは例外を投げません.
Processor
内の getId
public final void init() throws ProcessorException
初期設定を行います.
ユーザ独自の初期設定を行う場合は
メソッドをオーバーライドしてください.
このメソッドはfinal宣言されていますので,オーバーライドできません.
prepare
このメソッド呼び出し前は
であり,
呼び出し後は UNINITIALIZED
になります.
そうでない場合は,INITIALIZED
IllegalStateException
が投げられます.
Processor
内の init
IllegalStateException
- 適切な状態でないときにこのメソッドが呼び出された場合.
ProcessorException
protected abstract void prepare(Arguments args) throws ProcessorException
ユーザ定義の初期設定を行うメソッドです.引数に与えられた
に従って処理を行うよう処理器を設定しなければいけません.
Arguments
初期設定時に例外が起こった場合は,ProcessorExceptionを投げるよう実装してください. なお,このメソッドが呼び出される直前にステージはINITIALIZEDに変更されています.
args
- 処理器に与えるパラメータ.
ProcessorException
public void execute(TargetSource source, Destination dest) throws ProcessorException
処理を行うためのメソッドです.
具体的な処理内容は
メソッドを
オーバーライドしてください.
perform
Processor
内の execute
IllegalStateException
- 適切な状態でないときにこのメソッドが呼び出された場合.
ProcessorException
protected abstract void perform(TargetSource source, Destination dest) throws ProcessorException
ProcessorException
protected abstract void summarize() throws ProcessorException
ProcessorException
public void finish() throws ProcessorException
終了処理を行います.
ユーザ独自の終了処理を行う場合は
メソッドをオーバーライドしてください.
summarize
このメソッドはfinal宣言されていますので,オーバーライドできません.
Processor
内の finish
ProcessorException
public ProcessorService getProvider()
Processor
内の getProvider
public Arguments getArguments()
処理器の設定項目を返します. ステージがUNINITIALIZEDの場合は, このメソッドで返されたオブジェクトの値を変更して, この処理器の設定を変えられます.
ステージがUNINITIALIZEDでない場合は,IllegalStateExceptionが投げられます.
Processor
内の getArguments
public Summary getSummary()
この処理器のサマリを返します. サマリとは処理内容を提示するためのオブジェクトです.
サマリに情報を追加するには
メソッドを使います.このメソッドに渡された項目がサマリオブジェクトに追加されます.
putEntry
ステージがUNINITIALIZEDの場合は,IllegalStateExceptionが投げられます.
Processor
内の getSummary
Summary
protected void putEntry(Arguments args)
Summaryに出力するためのエントリを追加します.
引数に与えられた
にある全ての
Arguments
がArgument
に追加されます.Argumentのnameがkeyに割り当てられます.
ただし,Argumentのvalueがnullの場合は追加されず,無視されます.
Summary
現在の状態がFINISHEDのとき,もしくは,UNINITIALIZEDのときに, このメソッドが呼び出された場合,IllegalStateException が投げられます.
args
-
IllegalStateException
- 現在の状態がFINISHEDもしくはUNINITIALIZEDのとき.Summary
protected void putEntry(String key, String value)
Summaryに出力するためのエントリを追加します.
現在の状態がFINISHEDのとき,もしくは,UNINITIALIZEDのときに, このメソッドが呼び出された場合,IllegalStateException が投げられます.
key
- エントリのキーvalue
- エントリのキーに対応する値
IllegalStateException
- 現在の状態がFINISHEDもしくはUNINITIALIZEDのとき.Summary
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |