takezoe/mirage — pull request #12 by dai0304 (2013-09-06 16:13:26+00:00)
Title: enum property type support.

ちょっと複雑で、大きな変更になってしまったので、日本語で失礼します。
SqlManagerImplTest.Magazine にあるような、enum型のプロパティをサポートする変更をしました。
enumを文字列（またはordinalに相当する整数）に変換して保存し、復元時には逆変換をします。
その変換を担う ValueType 実装が jp.sf.amateras.mirage.type.enumerate.EnumStringValueType です。

変更が大きくなってしまった理由は、EnumStringValueType#isSupport の判定材料として従来の「propertyのtype」だけではなく、PropertyDesc も利用する必要があったからです。（フィールドに付与されている @Enumerated アノテーションを読むため）

isSupportメソッドにPropertyDescを渡すために、従来引数として「Object[] params」を渡せば済んでいた多くのメソッドは「PropertyDesc[] propDescs, Object entity」という抽象的な受け取り方をしなければならなくなりました。（params[i] に相当する記述が、propDescs[i].getValue(entity) となる）

というわけで、諸々修正し、テストも通ったんですが、なにぶん変更が大きいので、マージは慎重にお願いします。外部インターフェイスであるSqlManagerは壊していませんが、内部的なインターフェイスはだいぶ変わっています。
マージするとしたらv1.2系に上げるのが妥当かもしれません。

よろしくお願いします。