Packagejp.co.fujitsu.reffi.client.flex.model.rpc
Classpublic class RemoteObjectCore
InheritanceRemoteObjectCore Inheritance RPCCore Inheritance BaseModel Inheritance flash.events.EventDispatcher

[概 要]

RemoteObjectによるリモートモジュール呼び出しをサポートする機能モデルクラスです.

[詳 細]

サーバ側remoting-config.xmlで定義されているRPCモジュールにアクセスする為のクラスです。

[備 考]



サーバ定義されているRPCモジュールにリクエストを行う

・サーバ側RPC定義(remoting-config.xml)

        <destination id="orderDestination">
            <properties>
                <source>test.server.OrderProcesser</source>
            </properties>
        </destination>
  
・サーバ側ロジック(OrderProcesserクラス)
        package test.server;
        
        public class OrderProcesser {
            
            public String requestOrder(int productId, int num){
                
                String responseMessage = "";
                
                String productName = null;
                int price = 0;
                
                switch(productId) {
                    case 0:
                        productName = "ノートPC";
                        price = 120000;
                        break;
                    case 1:
                        productName = "デスクトップPC";
                        price = 180000;
                        break;
                    case 2:
                        productName = "液晶ディスプレイ";
                        price = 56000;
                        break;
                }
                
                if(productName == null) {
                    responseMessage = "productIdに対応する製品が見つかりませんでした";
                } else {
                    responseMessage = productName + "が " + num + "個注文されました:計" + price * num + "円です";
                }
                return responseMessage;
            }
        }
  
・クライアント側ロジック
        package test.client.action {
            import flash.events.Event;
            
            import jp.co.fujitsu.reffi.client.flex.action.BaseAction;
            import jp.co.fujitsu.reffi.client.flex.controller.ParameterMapping;
            import jp.co.fujitsu.reffi.client.flex.events.ModelProcessEvent;
            import jp.co.fujitsu.reffi.client.flex.model.BaseModel;
            import jp.co.fujitsu.reffi.client.flex.model.rpc.RemoteObjectCore;
            
            import mx.rpc.events.ResultEvent;
        
            public class RemoteObjectAction extends BaseAction {
                
                override protected function reserveModels(models:Array):void {
                    models.push(Class(RemoteObjectCore));
                }
                
                override public function nextModel(index:int, prev:ModelProcessEvent, next:BaseModel):Boolean {
                    if(index == 0) {
                        RemoteObjectCore(next).remoteDestination = "orderDestination";
                        RemoteObjectCore(next).methodName = "requestOrder";
                        RemoteObjectCore(next).addRpcParameter(0);
                        RemoteObjectCore(next).addRpcParameter(2);
                    }
                    
                    return true;
                }
                
                override public function successForward(index:int, model:BaseModel, resultEvent:Event):void {
                    trace(ResultEvent(resultEvent).result);
                }
            }
        }
  

Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.



Public Properties
 PropertyDefined by
 Inheritedcontroller : BaseController

[概 要]

このモデルを起動したコントローラインスタンスです.
BaseModel
 InheritedexecuteIndex : int

[概 要]

実行インデックス設定.
BaseModel
  methodName : String

[概 要]

実行するリモートオブジェクトメソッド名です.
RemoteObjectCore
 InheritedparameterMapping : ParameterMapping

[概 要]

MVC各レイヤを伝播するパラメータオブジェクトです.
BaseModel
  remoteDestination : String

[概 要]

RPCリクエスト時のdestinationです.
RemoteObjectCore
  rpcParameter : Array

[概 要]

RPCメソッド引数です.
RemoteObjectCore
 Inheritedservice : IEventDispatcher

[概 要]

継承先で定義される、各種通信オブジェクトのI/Fです.
RPCCore
 Inheritedskip : Boolean

[概 要]

このモデルを実行するか、コントローラが判断する為のフラグです.
BaseModel
 InheritedsuccessCount : int

[概 要]

モデルインスタンス生存中に、何回モデル処理が成功したかを保持します.
BaseModel
Public Methods
 MethodDefined by
  
addRpcParameter(value:Object):Array

[概 要]

RPCメソッド呼び出し時のパラメータに新規パラメータを追加します.
RemoteObjectCore
 Inherited

[概 要]

モデル処理失敗イベントを発行するメソッドです.
BaseModel
 Inherited

[概 要]

モデル処理完了イベントを発行するメソッドです.
BaseModel
 Inherited

[概 要]

モデル処理成功イベントを発行するメソッドです.
BaseModel
 Inherited

[概 要]

ModelProcessEvent.SUCCESS発行回数を1増加させます.
BaseModel
 Inherited
run():void

[概 要]

コントローラにコールされるモデルの主幹メソッドです.
BaseModel
Protected Methods
 MethodDefined by
  
createConcreteService():IEventDispatcher

[概 要]

具象通信オブジェクトを作成します.
RemoteObjectCore
 Inherited
faultHandler(event:FaultEvent):void

[概 要]

受信失敗ハンドラです.
RPCCore
 Inherited
finallyProc():void

[概 要]

run()が終了したタイミングでテンプレートコールされるメソッドです.
BaseModel
  
mainProc():void

[概 要]

RPCリクエストを行います.
RemoteObjectCore
 Inherited
onFailure(event:FaultEvent, parameterMapping:ParameterMapping):void

[概 要]

受信失敗処理用オーバーライドメソッドです.
RPCCore
 Inherited
onSuccess(event:ResultEvent, parameterMapping:ParameterMapping):void

[概 要]

受信成功処理用オーバーライドメソッドです.
RPCCore
 Inherited
postProc():void

[概 要]

後処理テンプレートメソッドです.
BaseModel
 Inherited
preProc():Boolean

[概 要]

前処理テンプレートメソッドです.
BaseModel
 Inherited
resultHandler(event:ResultEvent):void

[概 要]

受信成功ハンドラです.
RPCCore
 Inherited
trap(e:Error):Error

[概 要]

run()内で発生した全例外をハンドリングするメソッドです.
BaseModel
Public Constants
 ConstantDefined by
 InheritedE4X : String = "e4x"
[static] レスポンス返却フォーマット「e4x」を示す定数です.
RPCCore
 InheritedOBJECT : String = "object"
[static] レスポンス返却フォーマット「object」を示す定数です.
RPCCore
 InheritedXML : String = "xml"
[static] レスポンス返却フォーマット「xml」を示す定数です.
RPCCore
Property detail
methodNameproperty
methodName:String  [read-write]

[概 要]

実行するリモートオブジェクトメソッド名です.

[詳 細]

destinationで設定されているオブジェクトが持つメソッド名を指定します。

[備 考]

実装
    public function get methodName():String
    public function set methodName(value:String):void
remoteDestinationproperty 
remoteDestination:String  [read-write]

[概 要]

RPCリクエスト時のdestinationです.

[詳 細]

remoting-config.xmlで設定されているRPCモジュールのdestinationを文字列で指定します。

[備 考]

実装
    public function get remoteDestination():String
    public function set remoteDestination(value:String):void
rpcParameterproperty 
rpcParameter:Array  [read-write]

[概 要]

RPCメソッド引数です.

[詳 細]

methodNameプロパティで指定したメソッドが持つ引数を設定します。
第一引数、第二引数・・・と順番に値が入ります。

[備 考]

実装
    public function get rpcParameter():Array
    public function set rpcParameter(value:Array):void
Method detail
addRpcParameter()method
public function addRpcParameter(value:Object):Array

[概 要]

RPCメソッド呼び出し時のパラメータに新規パラメータを追加します.

[詳 細]

methodNameプロパティで指定したRPCメソッドが持つ引数を設定します。
呼び出すRPCメソッドが以下のシグネチャを持っている場合、

boolean commitData(String name, int age);

addRpcParameter("山田太郎");
addRpcParameter(36);

のようにシグネチャ順に設定します。

[備 考]

パラメータ
value:Object

戻り値
Array
createConcreteService()method 
protected override function createConcreteService():IEventDispatcher

[概 要]

具象通信オブジェクトを作成します.

[詳 細]

RemoteObjectオブジェクトを生成して返却します。

[備 考]

戻り値
IEventDispatcher — RemoteObjectオブジェクト
mainProc()method 
protected override function mainProc():void

[概 要]

RPCリクエストを行います.

[詳 細]

RemoteObjectに対してdestination、メソッド名、パラメータを指定、 リモートモジュールにリクエストします。

[備 考]