Methods Summary |
---|
public static java.lang.Class | classForName(java.lang.String name)
try {
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
if ( contextClassLoader != null ) {
return contextClassLoader.loadClass(name);
}
}
catch ( Throwable t ) {
}
return Class.forName( name );
|
public static java.lang.Class | classForName(java.lang.String name, java.lang.Class caller)
try {
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
if ( contextClassLoader != null ) {
return contextClassLoader.loadClass( name );
}
}
catch ( Throwable e ) {
}
return Class.forName( name, true, caller.getClassLoader() );
|
public static java.lang.Object | getConstantValue(java.lang.String name)
Class clazz;
try {
clazz = classForName( StringHelper.qualifier( name ) );
}
catch ( Throwable t ) {
return null;
}
try {
return clazz.getField( StringHelper.unqualify( name ) ).get(null);
}
catch ( Throwable t ) {
return null;
}
|
public static java.lang.reflect.Constructor | getConstructor(java.lang.Class clazz, org.hibernate.type.Type[] types)
final Constructor[] candidates = clazz.getConstructors();
for ( int i=0; i<candidates.length; i++ ) {
final Constructor constructor = candidates[i];
final Class[] params = constructor.getParameterTypes();
if ( params.length==types.length ) {
boolean found = true;
for ( int j=0; j<params.length; j++ ) {
final boolean ok = params[j].isAssignableFrom( types[j].getReturnedClass() ) || (
types[j] instanceof PrimitiveType &&
params[j] == ( (PrimitiveType) types[j] ).getPrimitiveClass()
);
if (!ok) {
found = false;
break;
}
}
if (found) {
if ( !isPublic(clazz, constructor) ) constructor.setAccessible(true);
return constructor;
}
}
}
throw new PropertyNotFoundException( "no appropriate constructor in class: " + clazz.getName() );
|
public static java.lang.reflect.Constructor | getDefaultConstructor(java.lang.Class clazz)
if ( isAbstractClass(clazz) ) return null;
try {
Constructor constructor = clazz.getDeclaredConstructor(NO_CLASSES);
if ( !isPublic(clazz, constructor) ) {
constructor.setAccessible(true);
}
return constructor;
}
catch (NoSuchMethodException nme) {
throw new PropertyNotFoundException(
"Object class " + clazz.getName() +
" must declare a default (no-argument) constructor"
);
}
|
public static org.hibernate.property.Getter | getGetter(java.lang.Class theClass, java.lang.String name)
return BASIC_PROPERTY_ACCESSOR.getGetter(theClass, name);
|
public static java.lang.reflect.Method | getMethod(java.lang.Class clazz, java.lang.reflect.Method method)
try {
return clazz.getMethod( method.getName(), method.getParameterTypes() );
}
catch (Exception e) {
return null;
}
|
private static org.hibernate.property.Getter | getter(java.lang.Class clazz, java.lang.String name)
try {
return BASIC_PROPERTY_ACCESSOR.getGetter(clazz, name);
}
catch (PropertyNotFoundException pnfe) {
return DIRECT_PROPERTY_ACCESSOR.getGetter(clazz, name);
}
|
public static boolean | isAbstractClass(java.lang.Class clazz)
int modifier = clazz.getModifiers();
return Modifier.isAbstract(modifier) || Modifier.isInterface(modifier);
|
public static boolean | isFinalClass(java.lang.Class clazz)
return Modifier.isFinal( clazz.getModifiers() );
|
public static boolean | isPublic(java.lang.Class clazz, java.lang.reflect.Member member)
return Modifier.isPublic( member.getModifiers() ) && Modifier.isPublic( clazz.getModifiers() );
|
public static boolean | overridesEquals(java.lang.Class clazz)
Method eq;
Method hash;
try {
eq = Object.class.getMethod("equals", OBJECT);
hash = Object.class.getMethod("hashCode", NO_PARAM);
}
catch (Exception e) {
throw new AssertionFailure("Could not find Object.equals() or Object.hashCode()", e);
}
OBJECT_EQUALS = eq;
OBJECT_HASHCODE = hash;
Method equals;
try {
equals = clazz.getMethod("equals", OBJECT);
}
catch (NoSuchMethodException nsme) {
return false; //its an interface so we can't really tell anything...
}
return !OBJECT_EQUALS.equals(equals);
|
public static boolean | overridesHashCode(java.lang.Class clazz)
Method hashCode;
try {
hashCode = clazz.getMethod("hashCode", NO_PARAM);
}
catch (NoSuchMethodException nsme) {
return false; //its an interface so we can't really tell anything...
}
return !OBJECT_HASHCODE.equals(hashCode);
|
public static java.lang.Class | reflectedPropertyClass(java.lang.String className, java.lang.String name)
try {
Class clazz = ReflectHelper.classForName(className);
return getter(clazz, name).getReturnType();
}
catch (ClassNotFoundException cnfe) {
throw new MappingException("class " + className + " not found while looking for property: " + name, cnfe);
}
|