AMF(正確にはAMF3)のEncode/Decodeを行うライブラリを作成したので
Apache2.0ライセンスで公開します。

※上記タブの「ダウンロード」ページより、ダウンロード出来ます。

特徴としては、

  • Decode時、代入先の型に適合するように自動型変換される。
    • 例えば、代入先の型がBigDecimalの場合、BigDecimal型にDecodeされます。
    • 型情報が不明なAMFデータ(Map型のイメージ)でも、代入先の型(Beanとか)に
      Decodeされます。
  • Java5対応
    • enumのEncode/Decodeができます。
    • Genericsに対応している(Listの要素型も解決し、適合するように自動変換します)
  • Flash Player 10に暫定対応
    • VectorのDecodeができる。
    • DictionaryのDecode/Encodeができる。
  • 依存ライブラリなし
    • Javaの標準ライブラリしか使っていないので、簡単に使用可能。
    • Google App Engineでも問題なく使用可能。
  • Verboseモード搭載
    • Encode/Decode時に、AMFデータの構成を表示できます。
  • カスタマイズ可能
    • Encodeルールを、対象オブジェクトのクラス別に追加・変更できます。
    • 型変換ルールを、代入先のクラス別に追加・変更できます。

※使い方の詳細は、ソース側に含まれているusageフォルダー内のテストケースを参照してください。
※現状、XMLデータ型(Marker: 0×07, 0x0B)には対応していません。
※現状、VectorのEncode機能は未提供です(実装中です…)
※Java5以上必須。Java6推奨。(バイナリは、Java6でコンパイルされています)