| ClassHandler.java |
/***************************************
* *
* JBoss: The OpenSource J2EE WebOS *
* *
* Distributable under LGPL license. *
* See terms of license at gnu.org. *
* *
***************************************/
package org.jboss.util.coerce;
import org.jboss.util.CoercionException;
import org.jboss.util.NotCoercibleException;
/**
* A <tt>java.lang.Class</tt> coercion handler.
*
* @version <tt>$Revision: 1.1 $</tt>
* @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
*/
public class ClassHandler
extends BoundCoercionHandler
{
/**
* Get the target class type for this <tt>CoercionHandler</tt>.
*
* @return Class type.
*/
public Class getType() {
return Class.class;
}
/**
* Coerces the given value into the given type (which should be
* <tt>Class</tt>).
*
* <p>This currently only support coercion from a <tt>String</tt>.
*
* @param value Value to coerce.
* @param type <tt>java.lang.Class</tt>.
* @return Value coerced into a <tt>Class</tt>.
*
* @throws CoercionException Failed to coerce.
*/
public Object coerce(Object value, Class type) throws CoercionException {
if (value.getClass().equals(String.class)) {
return coerce((String)value);
}
throw new NotCoercibleException(value);
}
/**
* Coerces the given String into a <tt>Class</tt> by doing a
* <code>Class.forName()</code>.
*
* @param value String value to convert to a <tt>Class</tt>.
* @return <tt>Class</tt> value.
*
* @throws NotCoercibleException Class not found.
*/
public Object coerce(String value) {
try {
return Class.forName(value);
}
catch (ClassNotFoundException e) {
throw new NotCoercibleException(value, e);
}
}
}
| ClassHandler.java |