src/main/java/org/eiichiro/bootleg/Types.java
public static boolean isUserDefinedValueType(Type type) {
		Class<?> rawType = getRawType(type);
		
		if (rawType == null) {
			return false;
		}
		
		for (Constructor<?> constructor : rawType.getConstructors()) {
			Class<?>[] parameterTypes = constructor.getParameterTypes();
			
			if (parameterTypes.length == 1
					&& parameterTypes[0].equals(String.class)) {
				return true;
			}
		}
		
		for (Method method : rawType.getMethods()) {
			if (method.getName().equals("valueOf")
					&& Modifier.isStatic(method.getModifiers())) {
				return true;
			}
		}
		
		return false;
	}
public static boolean isUserDefinedValueType(Type type) {
		Class<?> rawType = getRawType(type);
		
		if (rawType == null) {
			return false;
		}
		
		for (Constructor<?> constructor : rawType.getConstructors()) {
			Class<?>[] parameterTypes = constructor.getParameterTypes();
			
			if (parameterTypes.length == 1
					&& parameterTypes[0].equals(String.class)) {
				return true;
			}
		}
		
		for (Method method : rawType.getMethods()) {
			if (method.getName().equals("valueOf")
					&& Modifier.isStatic(method.getModifiers())) {
				return true;
			}
		}
		
		return false;
	}
public static boolean isUserDefinedValueType ( Type type ) { Class < ? > rawType = getRawType ( type ) ; if ( rawType == null ) { return false ; } for ( Constructor < ? > constructor : rawType . getConstructors ( ) ) { Class < ? > [ ] parameterTypes = constructor . getParameterTypes ( ) ; if ( parameterTypes . length == 1 && parameterTypes [ 0 ] . equals ( String . class ) ) { return true ; } } for ( Method method : rawType . getMethods ( ) ) { if ( method . getName ( ) . equals ( "valueOf" ) && Modifier . isStatic ( method . getModifiers ( ) ) ) { return true ; } } return false ; }
Returns <code>true</code> if the specified type is an user define value
type.
User defined value type must satisfy either of the following condition.
<ol>
<li>(The class) has a public constructor that takes one String.class parameter.</li>
<li>Has a public static factory method that named 'valueOf' and takes one
String.class parameter.</li>
</ol>

@param type The type to be tested.
@return <code>true</code> if the specified type is an user define value
type.
Returns <code > true< / code > if the specified type is an user define value type . User defined value type must satisfy either of the following condition . <ol > <li > ( The class ) has a public constructor that takes one String . class parameter . < / li > <li > Has a public static factory method that named valueOf and takes one String . class parameter . < / li > < / ol >