[Seasar-user:2838] Re: S2Dao にて Stream を扱いたい

上原 慶三 keizou
2005年 11月 16日 (水) 06:26:11 JST


上原です。返事が遅くなってしまい申し訳ありません。

NAKAMURA Manabu wrote:
> こんにちは、中村です。
> 
> どうも外部からラップして等で対応できなさそうなので、
> 
> ValueTypes.getValueType(Class) 
> を以下の様に変更して頂くことは可能でしょうか?
> 
> public static ValueType getValueType(Class clazz) {
>     for (Class c = clazz; c != null; c = c.getSuperclass()) {
>         ValueType valueType = getValueType0(c);
>         if (valueType != null) return valueType;
>     }
>     return OBJECT;
> }
> 
> こうしても既存の動作に影響は無いと思いますし、
> 独自のValueTypeを追加したい場合に楽になると思うのですが。
> 
> 如何でしょうか。
> ご検討の程、宜しくお願い致します。
 S2Conteinerの方はコミッタではないのでなんともいえないのですが
S2Daoのほうで対応してみましたのでs2ao/brances/s2dao1-1
を試してみてもらえないでしょうか。

s2daoがわからの要望としては、ValueTypesを修正するのと同時に、
BasicHandlerで
---
C:/work/seasar2/modules/s2-extension/src/main/java/org/seasar/extension/jdbc/impl/BasicHandler.java
(revision 118)
+++
C:/work/seasar2/modules/s2-extension/src/main/java/org/seasar/extension/jdbc/impl/BasicHandler.java
(working copy)
@@ -103,7 +103,7 @@
 			return;
 		}
 		for (int i = 0; i < args.length; ++i) {
-			ValueType valueType = ValueTypes.getValueType(argTypes[i]);
+			ValueType valueType = getValueType(argTypes[i]);
 			try {
 				valueType.bindValue(ps, i + 1, args[i]);
 			} catch (SQLException ex) {
@@ -111,7 +111,11 @@
 			}
 		}
 	}
-
+	
+	protected ValueType getValueType(Class argType){
+		return ValueTypes.getValueType(argType);
+	}
+	
 	protected Class[] getArgTypes(Object[] args) {
 		if (args == null) {
 			return null;
見たいなかんじでクラスから、ValueTypeの変換を変更できるように
してもらえればうれしいです。
もしくは、static関数ではなくValueTypeFactoryみたいなものを作って
setできるようにしてもいいと思いますが。

-- 
---
上原 慶三<[E-MAIL ADDRESS DELETED]>



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