code: public static TypeDefinition searchAttributeType(TypeDefinition containerType, String attributeName) {
  		try {
  			Field f = containerType.getBase().getField(attributeName);
  			if ((f.getModifiers() & (Modifier.STATIC | Modifier.FINAL)) != 0)
  				return new TypeDefinition(containerType, f.getGenericType());
  		} catch (Throwable t) { /* ignore */ }
  		try {
  			Method m = containerType.getBase()
  				.getMethod("get" + Character.toUpperCase(attributeName.charAt(0)) + attributeName.substring(1));
  			Class<?> returnType = m.getReturnType();
  			if (returnType != null && !Void.class.equals(returnType) && !void.class.equals(returnType))
  				return new TypeDefinition(containerType, m.getGenericReturnType());
  		} catch (Throwable t) { /* ignore */ }
  		try {
  			Method m = containerType.getBase()
  				.getMethod("is" + Character.toUpperCase(attributeName.charAt(0)) + attributeName.substring(1));
  			Class<?> returnType = m.getReturnType();
  			if (boolean.class.equals(returnType) || Boolean.class.equals(returnType))
  				return new TypeDefinition(containerType, m.getGenericReturnType());
  		} catch (Throwable t) { /* ignore */ }
  		return null;
  	}
docs: Search an attribute in the given type.