|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjp.co.fujitsu.reffi.client.swing.model.BaseModel
public class BaseModel
[概 要]
Model I/Fを実装した、全てのModelの基底クラスです。[詳 細]
BaseControllerに通常スレッドとして実行されます。この基底Modelクラスを継承したModelクラスは、以下の3つのイベントを 発火する処理を実装する必要が有ります。
Model処理成功イベント:
ModelProcessEvent evt = new ModelProcessEvent(this);
evt.setResult(result); // 任意のモデル処理結果
fireModelSuccess(evt);
Model処理失敗イベント:
ModelProcessEvent evt = new ModelProcessEvent(this);
evt.setExeption(e); // 発生した例外
fireModelFailure(evt);
Model処理完了イベント:
ModelProcessEvent evt = new ModelProcessEvent(this);
fireModelFinished(evt);
成功イベント、失敗イベントをBaseController内のモデル処理監視リスナがハンドリングすることによって、
BaseAction.successForward(int, Model, Object)
と
BaseAction.failureForward(int, Model, Exception)
がコールバックされます。BaseAction.complete(ParameterMapping)
がコールバックされます。[備 考]
Reffiパッケージ内に存在する、~.model.*.~Coreクラスにはイベント発火処理が既に実装されています。 これらのクラスを継承する場合は、イベントディスパッチ処理を実装する必要は有りません。[環 境] JDK 6.0 Update 11
Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.
| コンストラクタの概要 | |
|---|---|
BaseModel()
|
|
| メソッドの概要 | |
|---|---|
void |
addModelProcessListener(ModelProcessListener listener)
[概 要] モデル監視リスナリストにモデル監視リスナを追加します。 |
Object |
call()
[概 要] モデルスレッド処理エントリポイントです。 |
void |
done()
[概 要] 最終処理テンプレートメソッドです。 |
protected void |
finalproc()
[概 要] run()が終了したタイミングでテンプレートコールされるメソッドです。 |
void |
fireModelFailure(ModelProcessEvent evt)
[概 要] モデル処理失敗イベントを発行します。 |
void |
fireModelFinished(ModelProcessEvent evt)
[概 要] モデル処理終了イベントを発行します。 |
void |
fireModelSuccess(ModelProcessEvent evt)
[概 要] モデル処理成功イベントを発行します。 |
BaseController |
getController()
[概 要] このモデルを起動したコントローラインスタンスを返却します。 |
int |
getExecuteIndex()
[概 要] このモデルがコントローラによって実行された実行順位を返却します。 |
List<ModelProcessListener> |
getListenerList()
[概 要] このモデルの正常終了、異常終了を監視するリスナリストを返却します。 |
ParameterMapping |
getParameterMapping()
[概 要] MVC各レイヤを巡回するパラメータオブジェクトを返却します。 |
Object |
getResult()
[概 要] 汎用的なモデル処理結果格納オブジェクトを返却します。 |
int |
getSuccessCount()
[概 要] モデルインスタンス生存中に、何回モデル処理が成功したかを返却します。 |
protected int |
incrementSuccessCount()
[概 要] モデル処理成功回数を1増加させて返却します。 |
void |
init()
[概 要] モデル初期化メソッドです。 |
boolean |
isAsync()
[概 要] このモデルを呼び出し元スレッドと非同期で実行するかどうか調べます。 |
boolean |
isSkip()
[概 要] このモデルを実行するか、コントローラが判断する為のフラグを取得します。 |
protected void |
mainproc()
[概 要] 主処理テンプレートメソッドです。 |
protected void |
postproc()
[概 要] 後処理テンプレートメソッドです。 |
protected boolean |
preproc()
[概 要] 前処理テンプレートメソッドです。 |
void |
removeModelProcessListener(ModelProcessListener listener)
[概 要] モデル監視リスナリストからモデル監視リスナを削除します。 |
void |
run()
[概 要] Modelの処理を開始するメソッドです。 |
void |
setAsync(boolean async)
[概 要] このモデルを呼び出し元スレッドと非同期で実行するかどうか設定します。 |
void |
setController(BaseController controller)
[概 要] このモデルを起動したコントローラインスタンスを設定します。 |
void |
setExecuteIndex(int executeIndex)
[概 要] このモデルがコントローラによって実行された実行順位を設定します。 |
void |
setListenerList(List<ModelProcessListener> listenerList)
[概 要] このモデルの正常終了、異常終了を監視するリスナリストを設定します。 |
void |
setParameterMapping(ParameterMapping parameterMapping)
[概 要] MVC各レイヤを巡回するパラメータオブジェクトを設定します。 |
void |
setResult(Object result)
[概 要] 汎用的なモデル処理結果格納オブジェクトを設定します。 |
void |
setSkip(boolean skip)
[概 要] このモデルを実行するか、コントローラが判断する為のフラグを設定します。 |
protected Exception |
trap(Exception e)
[概 要] run()内で発生した全例外をハンドリングするメソッドです。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public BaseModel()
| メソッドの詳細 |
|---|
public Object getResult()
[概 要]
汎用的なモデル処理結果格納オブジェクトを返却します。[詳 細]
resultフィールド値を変革します。[備 考]
Model 内の getResultpublic void setResult(Object result)
[概 要]
汎用的なモデル処理結果格納オブジェクトを設定します。[詳 細]
resultフィールド値を引数resultで設定します。[備 考]
result - 汎用的なモデル処理結果格納オブジェクトpublic ParameterMapping getParameterMapping()
[概 要]
MVC各レイヤを巡回するパラメータオブジェクトを返却します。[詳 細]
parameterMappingフィールド値を返却します。[備 考]
public void setParameterMapping(ParameterMapping parameterMapping)
[概 要]
MVC各レイヤを巡回するパラメータオブジェクトを設定します。[詳 細]
parameterMappingフィールド値を引数parameterMappingで設定します。[備 考]
parameterMapping - MVC各レイヤを巡回するパラメータオブジェクトpublic BaseController getController()
[概 要]
このモデルを起動したコントローラインスタンスを返却します。[詳 細]
controllerフィールド値を返却します。[備 考]
public void setController(BaseController controller)
[概 要]
このモデルを起動したコントローラインスタンスを設定します。[詳 細]
controllerフィールド値を引数controllerで設定します。[備 考]
controller - public int getExecuteIndex()
[概 要]
このモデルがコントローラによって実行された実行順位を返却します。[詳 細]
executeIndexフィールド値を返却します。[備 考]
public void setExecuteIndex(int executeIndex)
[概 要]
このモデルがコントローラによって実行された実行順位を設定します。[詳 細]
executeIndexフィールド値を引数executeIndexで設定します。[備 考]
executeIndex - このモデルがコントローラによって実行された実行順位public List<ModelProcessListener> getListenerList()
[概 要]
このモデルの正常終了、異常終了を監視するリスナリストを返却します。[詳 細]
listenerListフィールド値を返却します。[備 考]
public void setListenerList(List<ModelProcessListener> listenerList)
[概 要]
このモデルの正常終了、異常終了を監視するリスナリストを設定します。[詳 細]
listenerListフィールド値を引数listenerListで設定します。[備 考]
listenerList - このモデルの正常終了、異常終了を監視するリスナリストpublic void addModelProcessListener(ModelProcessListener listener)
[概 要]
モデル監視リスナリストにモデル監視リスナを追加します。[詳 細]
listenerListフィールドオブジェクトに引数listenerを追加します。[備 考]
Model 内の addModelProcessListenerlistener - モデル監視リスナpublic void removeModelProcessListener(ModelProcessListener listener)
[概 要]
モデル監視リスナリストからモデル監視リスナを削除します。[詳 細]
listenerListフィールドオブジェクトから引数listenerを削除します。[備 考]
listener - モデル監視リスナpublic int getSuccessCount()
[概 要]
モデルインスタンス生存中に、何回モデル処理が成功したかを返却します。[詳 細]
successCountフィールド値を返却します。[備 考]
protected int incrementSuccessCount()
[概 要]
モデル処理成功回数を1増加させて返却します。[詳 細]
successCountフィールド値をインクリメントします。[備 考]
SubscribeCore等、継続的に成功イベントを発行するモデルはsuccessCount値が増大します。
public boolean isSkip()
[概 要]
このモデルを実行するか、コントローラが判断する為のフラグを取得します。[詳 細]
skipフィールドを返却します。[備 考]
このフラグがtrueの場合、コントローラはこのモデルを実行しません。
public void setSkip(boolean skip)
[概 要]
このモデルを実行するか、コントローラが判断する為のフラグを設定します。[詳 細]
skipフィールドを引数skipで設定します。[備 考]
下記例の場合、予約モデルは3つですが、実行されるのは2つになります。
使用例)
・一回目の通信結果を判断して二回目の実行モデルを切り替える
@Override
protected void reserveModels(List> models) {
// 実行する可能性の有るモデルを予め登録
models.add(HTTPRequestCore.class);
models.add(SubscribeCore.class);
models.add(PublishCore.class);
}
@Override
public boolean nextModel(int index, ModelProcessEvent prev, Model next) throws Exception {
switch(index){
case 0:
((HTTPRequestCore)next).setRequestUrl("webcontroller");
((HTTPRequestCore)next).addUrlParameters("model.fqcn", "demo.server.model.DataFetchModel");
break;
case 1:
// 一回目の通信結果を取得
this.dao = (DataDao)prev.getResult();
if(this.dao.getDivision() == 0) {
((SubscribeCore)next).setTopic(channelName);
((SubscribeCore)next).setSubscribe(true);
}else {
// 想定外なのでスキップ。SubscribeCoreをコントローラに実行させない
((SubscribeCore)next).setSkip(true);
}
break;
case 2:
if(this.dao.getDivision() == 1) {
((PublishCore)next).setTopic(channelName);
((PublishCore)next).setPublishObject(handleName + "が入室しました。");
}else{
// 想定外なのでスキップ。PublishCoreをコントローラに実行させない
((PublishCore)next).setSkip(true);
}
break;
}
return true;
}
skip - このモデルを実行するかコントローラが判断する為のフラグpublic boolean isAsync()
[概 要]
このモデルを呼び出し元スレッドと非同期で実行するかどうか調べます。[詳 細]
asyncフィールドを返却します。[備 考]
public void setAsync(boolean async)
[概 要]
このモデルを呼び出し元スレッドと非同期で実行するかどうか設定します。[詳 細]
asyncフィールドを引数asyncで設定します。[備 考]
デフォルトはfalse(同期実行)です。
async - true : 非同期、false : 同期
public Object call()
throws Exception
[概 要]
モデルスレッド処理エントリポイントです。[詳 細]
run()を呼び出してgetResult()を返却します。
[備 考]
Callable<Object> 内の callException
public void init()
throws Exception
[概 要]
モデル初期化メソッドです。[詳 細]
モデルスレッド起動前にコールされます。BaseAction.nextModel(int, ModelProcessEvent, Model)
実行までに行っておきたい初期化処理等を記述出することが出来ます。
[備 考]
Exception
public void run()
throws Exception
[概 要]
Modelの処理を開始するメソッドです。[詳 細]
モデルの処理フローを生成します。 下記のテンプレートメソッドが順にテンプレートコールされます。上記メソッド内で例外が発生した場合、trapメソッドがテンプレートコールされます。
[備 考]
例外が発生した場合、デフォルト動作としてModel処理失敗イベントが発火されますが、 trapオーバーライドメソッドでnullを返却すると、このイベントは発火されません。
Model 内の runException - 発生する可能性の有る全例外
protected boolean preproc()
throws Exception
[概 要]
前処理テンプレートメソッドです。[詳 細]
デフォルト処理はtrueを返却します。
mainprocよりも先に呼ばれるメソッドです。
オーバーライドして、主処理の前に行う初期化を記述します。
nullを返却すると、それ以降のモデル処理は中止されます。
[備 考]
Exception - オーバーライド先で発生する可能性が有る例外
protected void mainproc()
throws Exception
[概 要]
主処理テンプレートメソッドです。[詳 細]
デフォルト処理は有りません。[備 考]
Exception - オーバーライド先で発生する可能性が有る例外
protected void postproc()
throws Exception
[概 要]
後処理テンプレートメソッドです。[詳 細]
デフォルト処理は有りません。[備 考]
Exception - オーバーライド先で発生する可能性が有る例外protected Exception trap(Exception e)
[概 要]
run()内で発生した全例外をハンドリングするメソッドです。
[詳 細]
デフォルト処理は有りません。[備 考]
e - オーバーライド先で発生する可能性が有る例外
protected void finalproc()
[概 要]
run()が終了したタイミングでテンプレートコールされるメソッドです。
[詳 細]
デフォルト処理は有りません。[備 考]
public void done()
throws Exception
[概 要]
最終処理テンプレートメソッドです。[詳 細]
デフォルト処理は有りません。 オーバーライドして接続のcloseやメモリの解放処理を実装します。[備 考]
このメソッドは例外を発生させて異常終了したモデル、setSkip(true)されたモデル に対してもコールされます。
Exceptionpublic void fireModelSuccess(ModelProcessEvent evt)
[概 要]
モデル処理成功イベントを発行します。[詳 細]
モデル処理成功回数を1増加させ、このモデルに登録されているモデル処理監視リスナ群 に対して処理が成功したことを通知します。[備 考]
以下のようにModelProcessEventを生成してから使用します。
// モデル処理イベントインスタンス生成
ModelProcessEvent evt = new ModelProcessEvent(this);
evt.setResult(result);
// 発火
fireModelSuccess(evt);
evt - モデル成功処理結果が入ったModelProcessEventインスタンスpublic void fireModelFailure(ModelProcessEvent evt)
[概 要]
モデル処理失敗イベントを発行します。[詳 細]
このモデルに登録されているモデル処理監視リスナ群に対して処理が失敗したことを通知します。[備 考]
evt - モデル失敗処理結果が入ったModelProcessEventインスタンスfireModelSuccess(ModelProcessEvent)public void fireModelFinished(ModelProcessEvent evt)
[概 要]
モデル処理終了イベントを発行します。[詳 細]
このモデルに登録されているモデル処理監視リスナ群に対して処理が終了したことを通知します。[備 考]
evt - モデル終了処理結果が入ったModelProcessEventインスタンスfireModelSuccess(ModelProcessEvent)
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||