[Seasar-user:15471] S2BeansUtilsでEnum型のコンバート

IZUNO Tadashi [E-MAIL ADDRESS DELETED]
2008年 8月 22日 (金) 17:38:27 JST


いづのです。

S2BeansUtilsでEnum型のプロパティをコンバートをするために以下のようなconverterを用意しました。

public class EnumOrdinalConverter implements Converter {
	private final Class<? extends Enum> enumClass;

	public EnumOrdinalConverter(Class<? extends Enum> enumClass) {
		this.enumClass = enumClass;
	}

	public Object getAsObject(String value) {
		if (StringUtil.isEmpty(value)) {
			return null;
		}
		if (!StringUtil.isNumber(value)) {
			return null;
		}
		return enumClass.getEnumConstants()[IntegerConversionUtil.toPrimitiveInt(value)];
	}

	public String getAsString(Object value) {
		return StringConversionUtil.toString((Enum.class.cast(value)).ordinal());
	}

	public boolean isTarget(Class clazz) {
		return clazz == Enum.class;
	}
}

ただこれだと型毎にconverterを指定する必要があるのであまりうれしくありません。
コンバート先の型をみてコンバートできればいいのですが、そういった事は可能でしょうか。

S2JDBCでEnum型の定義もordinal値がサポートされているのでS2BeansUtilsの方でサポートしていただくことはできないでしょうか?

以上


Seasar-user メーリングリストの案内