[jboss-cvs] jboss-seam/src/main/org/jboss/seam/util ...
Gavin King
gavin.king at jboss.com
Thu Oct 5 15:43:59 EDT 2006
User: gavin
Date: 06/10/05 15:43:59
Modified: src/main/org/jboss/seam/util Conversions.java
Reflections.java
Log:
association handling in framework
more robust configuration
Revision Changes Path
1.5 +16 -0 jboss-seam/src/main/org/jboss/seam/util/Conversions.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Conversions.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/util/Conversions.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- Conversions.java 25 Jul 2006 04:40:43 -0000 1.4
+++ Conversions.java 5 Oct 2006 19:43:59 -0000 1.5
@@ -36,6 +36,7 @@
//put(Byte.class, new ByteConverter());
//put(BigInteger.class, new BigIntegerConverter());
//put(BigDecimal.class, new BigDecimalConverter());
+ put(Class.class, new ClassConverter());
}};
public static <Y> void putConverter(Class<Y> type, Converter<Y> converter)
@@ -191,6 +192,21 @@
}
}
+ public static class ClassConverter implements Converter<Class>
+ {
+ public Class toObject(PropertyValue value, Type type)
+ {
+ try
+ {
+ return Reflections.classForName( value.getSingleValue() );
+ }
+ catch (ClassNotFoundException cnfe)
+ {
+ throw new IllegalArgumentException(cnfe);
+ }
+ }
+ }
+
public static interface PropertyValue extends Serializable
{
Map<String, String> getKeyedValues();
1.11 +15 -2 jboss-seam/src/main/org/jboss/seam/util/Reflections.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Reflections.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/util/Reflections.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- Reflections.java 27 Sep 2006 03:53:50 -0000 1.10
+++ Reflections.java 5 Oct 2006 19:43:59 -0000 1.11
@@ -1,4 +1,4 @@
-//$Id: Reflections.java,v 1.10 2006/09/27 03:53:50 gavin Exp $
+//$Id: Reflections.java,v 1.11 2006/10/05 19:43:59 gavin Exp $
package org.jboss.seam.util;
import java.beans.Introspector;
@@ -157,7 +157,20 @@
}
}
}
- return null;
+ throw new IllegalArgumentException("no such setter method: " + clazz.getName() + '.' + name);
+ }
+
+ public static Field getField(Class clazz, String name)
+ {
+ for ( Class superClass = clazz; superClass!=Object.class; superClass=superClass.getSuperclass() )
+ {
+ try
+ {
+ return superClass.getDeclaredField(name);
+ }
+ catch (NoSuchFieldException nsfe) {}
+ }
+ throw new IllegalArgumentException("no such field: " + clazz.getName() + '.' + name);
}
}
More information about the jboss-cvs-commits
mailing list