クライアント側にMessageBeanクラスを作る

さて、アプリケーションサーバのMessageServiceから結果としてMessageBeanオブジェクトが返ってきたり、引数としてMessageBeanオブジェクトを与えたりする必要があります。この場合、flexではどうすれば良いのかというと、JavaのMessageBeanオブジェクトを表すActionScriptクラスを作ってあげれば良い事になります。
実装方法は単純で、JavaのクラスをそのままActionScriptで表したような形になります。

MessageBean.as

class MessageBean {
	var pk:Number;
	var titleText:String;
	var submitDateText:String;
	var child:Boolean;
	
	var content:String;
	var mail:String;
	var url:String;
	var subject:String;
	var userName:String;
	var userPass:String;
	
	var _remoteClass:String;
	
	function MessageBean() {
		_remoteClass = "bbs.data.MessageBean";
		clear();
	}

	function clear() : Void {
		this.titleText="";
		this.submitDateText="";
		this.child=false;
		this.mail="";
		this.url="";
		this.content="";
		this.subject="";
		this.userName="";
		this.userPass="";
		this.pk=-1;
	}
}

なお、密かに以下の項目が追加されています。

titleText
「■ メッセージのタイトル / ユーザ名」という形でフォーマットされた文字列
submitDateText
投稿日時をフォーマットした文字列

これらはサーバー側のMessage.javaにgetterを実装しておきます。(話が前後してすみません)
追加したメソッドは以下の通りです。

Message.java(抜粋)

SimpleDateFormat formatter = new SimpleDateFormat(" yyyy.MM.dd HH:mm:ss ");

public String getTitleText() {
	StringBuffer strbuf = new StringBuffer("■ ");
	strbuf.append(this.getSubject());
	strbuf.append(" / ");
	strbuf.append(this.getUserName());
	return strbuf.toString();
}

public String getSubmitDateText() {
	return formatter.format(this.getSubmitDate());
}


MessageBean.asで重要なのは

_remoteClass

という変数です。ここの文字列がJavaBeansのクラス名になるという決まりがあるみたいです。これがわかるまで3日くらいかかりました(笑)。ドキュメントの読み方がヘタなんだな・・しかし、こうするだけでFlashRemotingがMessageBeanオブジェクトを作ってくれると言うのは大変便利です。