2011/12/24

BlazeDSおぼえがき RemoteObjectのBoolean型のアクセサ命名

1. SwfとJavaのRemote Objectの型変換におけるBooleanの特徴。
オフィシャルな情報はこちら。
http://help.adobe.com/ja_JP/Flex/4.0/AccessingData/WS2db454920e96a9e51e63e3d11c0bf69084-7fda.html

↑によると、AS3のBooleanとJavaのjava.lang.Booleanは普通に疎通できるが、
アクセサメソッドの命名について、他の型と若干の開きがある。

StringとIntegerでの命名対応は下記の通り。
//-----------------------------
Java:
private String param;
public String getParam() ;
public void setParam(String param);

AS:
public param:String
-------------------------------//

BooleanでJava側のアクセサをis形式で書いた場合。
AS側ではisをのぞいたメンバ名をターゲットにバインドしようとしてくる。
//-----------------------------
Java:
private Boolean isFoo;
public Boolean isFoo();
public void setFoo(Boolean foo);

AS:
public foo:Boolean;
------------------------------//

BooleanでJava側のアクセサをゲッターセッターで無理矢理
書けばisFooにバインドしにいってくれる。
アクセサ名で判断してんの?
//-----------------------------
Java:
private Boolean isFoo;   (←冷静に考えてbooleanに対してこの変数命名がおかしかった 2011/5/11追記 )
public Boolean getIsFoo();
public void setIsFoo(Boolean foo);

AS:
public isfoo:Boolean;
------------------------------//

ちなみに、HibernateではいてくれるEntityで、
セッターに戻り値があったりすると認識してくれません。
//--------------------------

public String setFoo(String foo);
----------------------------//

上記理由等でRemote Objectの型変換に失敗した場合は、
デバッグ用のFlashを使っていればログにエラー出力が出ます。

0 件のコメント:

コメントを投稿