1:nのマッピングが正しくできない
http://d.hatena.ne.jp/hoso-kawa/20041205#1102178600
にあった件を、休憩の合間をぬって見てみました。id:MIZOMIZさんの言う通り、JavaBeans - List - JavaBeansの階層だとマッピングされませんでした。List - JavaBeans - List - JavaBeansならマッピングされるのはOpenAMFUtilsが”良き(悪?!)に計らっているから”です(^^;
根本的な解決方法は、2つあります。
- 引数として渡ってくるオブジェクトを全て走査し、_remoteClassを見てオブジェクトのコンバートを行う。S2OpenAMFの変更のみで対応が可能ですが、ちょっと時間かかる。
- OpenAMFのASObjectをいじる。根本的かつ一番簡単です。
public String getType() {
String remoteClass = (String) this.get("_remoteClass");
if (remoteClass != null) {
return remoteClass;
}
return type;
}
// 赤い文字の所が追加した記述
時間がある時に前者の案で実装しちゃってもいいんですけど、根本的な解決を試みるなら、OpenAMF, ASTranslatorのチームにAS2.0への対応をお願いするって所でしょうか。S2OpenAMFのOpenAMFに手を加えずにAS2.0対応をするのは、オーバーヘッドがかかりますから。
月末近くになると思いますが、前者の対応で実装してみようと思います。合わせてOpenAMFのASObjectにパッチを当てたものを配布…需要があれば置いておきますが(^^;