Package | jp.co.fujitsu.reffi.client.flex.model |
Class | public class BaseModel |
Inheritance | BaseModel ![]() |
Implements | IModel |
Subclasses | ConsumerCore, DefaultModel, ProducerCore, RPCCore, TimerProcessCore, UserInteractiveCore |
[概 要]
全てのModelの基底クラスです.[詳 細]
この基底Modelクラスを継承したModelクラスは、以下の三つのイベントを ディスパッチする処理を実装する必要が有ります。 Model処理成功イベントvar modelSuccessEvent:ModelProcessEvent = new ModelProcessEvent(ModelProcessEvent.SUCCESS); modelProcessEvent.cause = event; dispatchModelSuccess(modelSuccessEvent);
var modelFailureEvent:ModelProcessEvent = new ModelProcessEvent(ModelProcessEvent.FAILURE); modelProcessEvent.cause = event; dispatchModelFailure(modelProcessEvent);
var modelFinishedEvent:ModelProcessEvent = new ModelProcessEvent(ModelProcessEvent.FINISHED); modelFinishedEvent.cause = event; dispatchModelFinished(modelFinishedEvent);
[備 考]
F/Wパッケージ内に存在する、.model.~Coreクラスにはイベントディスパッチ処理が既に実装されています。Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.
Property | Defined by | ||
---|---|---|---|
controller : BaseController
[概 要] このモデルを起動したコントローラインスタンスです. | BaseModel | ||
executeIndex : int [概 要] 実行インデックス設定. | BaseModel | ||
parameterMapping : ParameterMapping
[概 要] MVC各レイヤを伝播するパラメータオブジェクトです. | BaseModel | ||
skip : Boolean [概 要] このモデルを実行するか、コントローラが判断する為のフラグです. | BaseModel | ||
successCount : int [概 要] モデルインスタンス生存中に、何回モデル処理が成功したかを保持します. | BaseModel |
Method | Defined by | ||
---|---|---|---|
dispatchModelFailure(event:ModelProcessEvent):void
[概 要] モデル処理失敗イベントを発行するメソッドです. | BaseModel | ||
dispatchModelFinished(event:ModelProcessEvent):void
[概 要] モデル処理完了イベントを発行するメソッドです. | BaseModel | ||
dispatchModelSuccess(event:ModelProcessEvent):void
[概 要] モデル処理成功イベントを発行するメソッドです. | BaseModel | ||
incrementSuccessCount():int
[概 要] ModelProcessEvent.SUCCESS発行回数を1増加させます. | BaseModel | ||
run():void
[概 要] コントローラにコールされるモデルの主幹メソッドです. | BaseModel |
Method | Defined by | ||
---|---|---|---|
finallyProc():void
[概 要] run()が終了したタイミングでテンプレートコールされるメソッドです. | BaseModel | ||
mainProc():void
[概 要] 主処理テンプレートメソッドです. | BaseModel | ||
postProc():void
[概 要] 後処理テンプレートメソッドです. | BaseModel | ||
preProc():Boolean
[概 要] 前処理テンプレートメソッドです. | BaseModel | ||
trap(e:Error):Error
[概 要] run()内で発生した全例外をハンドリングするメソッドです. | BaseModel |
controller | property |
controller:BaseController
[read-write]
[概 要]
このモデルを起動したコントローラインスタンスです.[詳 細]
[備 考]
実装 public function get controller():BaseController
public function set controller(value:BaseController):void
executeIndex | property |
executeIndex:int
[read-write]
[概 要]
実行インデックス設定.[詳 細]
モデル実行時のインデックスを設定します。[備 考]
実装 public function get executeIndex():int
public function set executeIndex(value:int):void
parameterMapping | property |
parameterMapping:ParameterMapping
[read-write]
[概 要]
MVC各レイヤを伝播するパラメータオブジェクトです.[詳 細]
[備 考]
実装 public function get parameterMapping():ParameterMapping
public function set parameterMapping(value:ParameterMapping):void
skip | property |
skip:Boolean
[read-write]
[概 要]
このモデルを実行するか、コントローラが判断する為のフラグです.[詳 細]
このフラグがtrueの場合、コントローラはこのモデルを実行しません。[備 考]
下記例の場合、予約モデルは3つですが、実行されるのは2つになります。
実装
public function get skip():Boolean
public function set skip(value:Boolean):void
例
一回目の通信結果を判断して二回目の実行モデルを切り替える
override protected function reserveModels(models:Array):void{ // 実行する可能性の有るモデルを予め登録 models.push(Class(HTTPServiceCore)); models.push(Class(ConsumerCore)); models.push(Class(ProducerCore)); } override public function nextModel(index:int, prev:ModelProcessEvent, next:BaseModel):Boolean { switch(index){ case 0: HTTPRequestCore(next).url = "webcontroller"; ((HTTPRequestCore)next).addUrlParameter("model.fqcn", "demo.server.model.DataFetchModel"); break; case 1: // 一回目の通信結果を取得してMVCを伝播するParameterMappingに保存します var dao:DataDao = (DataDao)prev.getResult(); parameterMapping.setParameter("dao", dao); if(this.dao.getDivision() == 0) { ConsumerCore(next).destination = "chat1"; }else { // 想定外なのでスキップ。ConsumerCoreをコントローラに実行させない ConsumerCore(next).skip = true; } break; case 2: // 保存しておいた一回目の通信結果を取り出します dao = parameterMapping.getParameter("dao"); if(dao.getDivision() == 1) { ProducerCore(next).destination = "chat1"; ProducerCore(next).messageBody = handleName + "が入室しました。"; }else{ // 想定外なのでスキップ。PublishCoreをコントローラに実行させない ProducerCore(next).skip = true; } break; } return true; }
successCount | property |
successCount:int
[read-write]
[概 要]
モデルインスタンス生存中に、何回モデル処理が成功したかを保持します.[詳 細]
継承モデルがModelSuccessEvent.SUCCESSイベントをディスパッチした回数を返却します。[備 考]
Consumerのように継続して結果を受信する機能モデルは、 処理終了するまでこの値が継続的にインクリメントされます。 実装 public function get successCount():int
public function set successCount(value:int):void
dispatchModelFailure | () | method |
public function dispatchModelFailure(event:ModelProcessEvent):void
[概 要]
モデル処理失敗イベントを発行するメソッドです.[詳 細]
このモデルに登録されているモデル処理監視リスナ群 に対して処理が成功したことを通知します。[備 考]
パラメータevent:ModelProcessEvent — モデル失敗処理結果が入ったModelProcessEventインスタンス
|
var modelFailureEvent:ModelProcessEvent = new ModelProcessEvent(ModelProcessEvent.FAILURE); modelProcessEvent.cause = event; dispatchModelFailure(modelFailureEvent);
dispatchModelFinished | () | method |
public function dispatchModelFinished(event:ModelProcessEvent):void
[概 要]
モデル処理完了イベントを発行するメソッドです.[詳 細]
このモデルに登録されているモデル処理監視リスナ群 に対して処理が完了したことを通知します。[備 考]
パラメータevent:ModelProcessEvent — モデル失敗処理結果が入ったModelProcessEventインスタンス
|
var modelFailureEvent:ModelProcessEvent = new ModelProcessEvent(ModelProcessEvent.FAILURE); modelProcessEvent.cause = event; dispatchModelFailure(modelFailureEvent);
dispatchModelSuccess | () | method |
public function dispatchModelSuccess(event:ModelProcessEvent):void
[概 要]
モデル処理成功イベントを発行するメソッドです.[詳 細]
モデル処理成功回数を1増加させ、このモデルに登録されているモデル処理監視リスナ群 に対して処理が成功したことを通知します。[備 考]
パラメータevent:ModelProcessEvent — モデル成功処理結果が入ったModelProcessEventインスタンス
|
var modelSuccessEvent:ModelProcessEvent = new ModelProcessEvent(ModelProcessEvent.SUCCESS); modelProcessEvent.cause = event; dispatchModelSuccess(modelSuccessEvent);
finallyProc | () | method |
protected function finallyProc():void
[概 要]
run()が終了したタイミングでテンプレートコールされるメソッドです.[詳 細]
デフォルト処理は有りません。[備 考]
incrementSuccessCount | () | method |
public function incrementSuccessCount():int
[概 要]
ModelProcessEvent.SUCCESS発行回数を1増加させます.[詳 細]
successCountプロパティをインクリメントします。[備 考]
戻り値int — インクリメント後のsuccessCountプロパティ値
|
mainProc | () | method |
protected function mainProc():void
[概 要]
主処理テンプレートメソッドです.[詳 細]
デフォルト処理は有りません。[備 考]
postProc | () | method |
protected function postProc():void
[概 要]
後処理テンプレートメソッドです.[詳 細]
デフォルト処理は有りません。[備 考]
— オーバーライド先で発生する可能性が有る例外
|
preProc | () | method |
protected function preProc():Boolean
[概 要]
前処理テンプレートメソッドです.[詳 細]
デフォルト処理はtrueを返却します。
mainprocよりも先に呼ばれるメソッドです。
オーバーライドして、主処理の前に行う初期化を記述します。
nullを返却すると、それ以降のモデル処理は中止されます。
[備 考]
戻り値Boolean — 以降の処理を継続するかどうかのフラグ(デフォルト:true)
|
run | () | method |
public function run():void
[概 要]
コントローラにコールされるモデルの主幹メソッドです.[詳 細]
モデル処理の基本フローを構築します。 下記のテンプレートメソッドが順にテンプレートコールされます。
[備 考]
例外が発生した場合、デフォルト動作としてModel処理失敗イベントが発火されますが、 trapオーバーライドメソッドでnullを返却すると、このイベントは発火されません。trap | () | method |
protected function trap(e:Error):Error
[概 要]
run()内で発生した全例外をハンドリングするメソッドです.[詳 細]
デフォルト処理は有りません。[備 考]
パラメータe:Error — オーバーライド先で発生する可能性が有るエラー
|
Error — 引数eか、trapオーバーライドメソッドで変換されたエラー
|