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

Yasuo Higa [E-MAIL ADDRESS DELETED]
2008年 8月 26日 (火) 18:20:23 JST


ひがです。

> いづのです。
> 
> S2BeansUtilsでEnum型のプロパティをコンバートをするために以下のようなconverterを用意しました。
> 
S2BeanUtilsでは、Stringと特定の型の変換をサポートするフレームワークです。
そのため、Enumの場合は、name()による変換のみをサポートしています。

ordinal()を画面に表示したい場合は、f:label()を使うのがお勧めです。
http://sastruts.seasar.org/featureReference.html#JSP

よろしくお願いします。

> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 


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