(7)s2flex2-components S2Flex2Serviceクラス
org.seasar.flex2.rpc.remoting.S2Flex2Serviceクラスを読んでみます。
s2flex2-componentsの最もコアなクラスだと思いますんで、がんばってみます。
順に進めていきます。
Line 25,43 :
import flash.utils.flash_proxy;
・・・
use namespace flash_proxy;
flash.utilsパッケージで宣言された名前空間「flash_proxy」をorg.seasar.flex2.rpc.remotingパッケージで使用すると書いています。
Line 48 :
[IconFile("S2Component.png")]
IconFileメタデータタグ。どんな画像なんでしょうか?
Line 56〜76 :
このコンポーネントが送出できるEventをEventメタデータタグで宣言しています。
- fault(mx.rpc.events.FaultEvent)
- result(mx.rpc.events.ResultEvent)
- ioError(flash.events.IOErrorEvent)
- netStatus(flash.events.NetStatusEvent)
- securityError(flash.events.SecurityErrorEvent)
Line 82 :
public dynamic class S2Flex2Service extends AbstractService implements IMXMLObject {
dynamic ⇒ 動的にプロパティやメソッドを追加できるクラス。
AbstractService ⇒ RPC(リモートプロシージャコール)を実行するOperationを作成する。
IMXMLObject ⇒ ビジュアルを持たないコンポーネントのインターフェイス。
Line 84〜95 129 :
publicプロパティを定義しています。全て[Inspectable] メタデータタグがついています。
[Inspectable] メタデータタグとは、Flex Builderの属性のヒントおよび [Tag Inspector] 領域で公開されるコンポーネントの属性を定義するものだそうです。
Line 136 :
destination:String引数つきコンストラクタ。destinationをセットして、responder用配列を初期化しています。
Cairngormでは、Logic(Delegate)クラスがServiceLocator経由でこのコンストラクタを呼びます。
Line 141 :
initialized()メソッド。IMXMLObjectで定義しています。
実装オブジェクトが作成されて、すべてのコンポーネントプロパティが初期化された後にコンパイラによって呼び出されるそうです。
中ではdocumentをセットしています。
Line 155 :
onResult()メソッド。
responder(RelayResponder)をセット。(RelayResponderはサーバーコール前に用意している。)
ResultEventを送出しています。
Line 163 :
onFault()メソッド。
onResult()と同様にFaultEventを送出しています。
Line 171 :
callProperty()メソッド。
Line 181 〜 195 :
setProperty(),getProperty()メソッド。
RpcOperationのセット、ゲット。
Line 201 〜 225 :
NetConnectionのインスタンス生成、初期化、EventListenerの設定、connectを各メソッドで行っています。
Line 237 :
remoteCall()メソッド。Responderを設定して、サーバーロジックを実行します。
Line 258〜366 :
各種privateメソッド。
- NetStatusEvent,SecurityErrorEvent,IOErrorEventの送出
- credentialsの設定、
- Applicationのパラメータの取得、flash_varsの取得
など。
gatewayUrlの設定方法が3通りありますので、その機能が実装されているようです。
認証系はすっとばしちゃいました。が一通り読んでみました。
難しいです。もっと勉強しようと思いました。
次回は、【RemoteService】を読んでみます。
引用:
- AS3言語仕様(pdfファイル)
- Flex2リファレンスガイド
- S2Flex2リファレンス
- s2flex2-componentsソース