abstract class oadd.org.apache.commons.lang.reflect.MemberUtils extends java.lang.Object
{
private static final int ACCESS_TEST;
private static final java.lang.Class[] ORDERED_PRIMITIVE_TYPES;
void <init>()
{
oadd.org.apache.commons.lang.reflect.MemberUtils v;
v := @this: oadd.org.apache.commons.lang.reflect.MemberUtils;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
static boolean setAccessibleWorkaround(java.lang.reflect.AccessibleObject)
{
java.lang.reflect.AccessibleObject v;
int v, v;
java.lang.Class v;
java.lang.SecurityException v;
boolean v, v, v, v;
v := @parameter: java.lang.reflect.AccessibleObject;
if v == null goto label;
v = virtualinvoke v.<java.lang.reflect.AccessibleObject: boolean isAccessible()>();
if v == 0 goto label;
label:
return 0;
label:
v = virtualinvoke v.<java.lang.reflect.AccessibleObject: boolean isAccessible()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.lang.reflect.Member: int getModifiers()>();
v = staticinvoke <java.lang.reflect.Modifier: boolean isPublic(int)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.lang.reflect.Member: java.lang.Class getDeclaringClass()>();
v = virtualinvoke v.<java.lang.Class: int getModifiers()>();
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils: boolean isPackageAccess(int)>(v);
if v == 0 goto label;
label:
virtualinvoke v.<java.lang.reflect.AccessibleObject: void setAccessible(boolean)>(1);
label:
return 1;
label:
v := @caughtexception;
label:
return 0;
catch java.lang.SecurityException from label to label with label;
}
static boolean isPackageAccess(int)
{
int v, v;
boolean v;
v := @parameter: int;
v = v & 7;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static boolean isAccessible(java.lang.reflect.Member)
{
java.lang.reflect.Member v;
int v;
boolean v, v, v;
v := @parameter: java.lang.reflect.Member;
if v == null goto label;
v = interfaceinvoke v.<java.lang.reflect.Member: int getModifiers()>();
v = staticinvoke <java.lang.reflect.Modifier: boolean isPublic(int)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.lang.reflect.Member: boolean isSynthetic()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static int compareConstructorFit(java.lang.reflect.Constructor, java.lang.reflect.Constructor, java.lang.Class[])
{
int v;
java.lang.Class[] v;
java.lang.reflect.Constructor v, v;
oadd.org.apache.commons.lang.reflect.MemberUtils$Executable v, v;
v := @parameter: java.lang.reflect.Constructor;
v := @parameter: java.lang.reflect.Constructor;
v := @parameter: java.lang.Class[];
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils$Executable: oadd.org.apache.commons.lang.reflect.MemberUtils$Executable of(java.lang.reflect.Constructor)>(v);
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils$Executable: oadd.org.apache.commons.lang.reflect.MemberUtils$Executable of(java.lang.reflect.Constructor)>(v);
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils: int compareParameterTypes(oadd.org.apache.commons.lang.reflect.MemberUtils$Executable,oadd.org.apache.commons.lang.reflect.MemberUtils$Executable,java.lang.Class[])>(v, v, v);
return v;
}
static int compareMethodFit(java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Class[])
{
int v;
java.lang.Class[] v;
java.lang.reflect.Method v, v;
oadd.org.apache.commons.lang.reflect.MemberUtils$Executable v, v;
v := @parameter: java.lang.reflect.Method;
v := @parameter: java.lang.reflect.Method;
v := @parameter: java.lang.Class[];
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils$Executable: oadd.org.apache.commons.lang.reflect.MemberUtils$Executable of(java.lang.reflect.Method)>(v);
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils$Executable: oadd.org.apache.commons.lang.reflect.MemberUtils$Executable of(java.lang.reflect.Method)>(v);
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils: int compareParameterTypes(oadd.org.apache.commons.lang.reflect.MemberUtils$Executable,oadd.org.apache.commons.lang.reflect.MemberUtils$Executable,java.lang.Class[])>(v, v, v);
return v;
}
private static int compareParameterTypes(oadd.org.apache.commons.lang.reflect.MemberUtils$Executable, oadd.org.apache.commons.lang.reflect.MemberUtils$Executable, java.lang.Class[])
{
int v;
float v, v;
java.lang.Class[] v;
oadd.org.apache.commons.lang.reflect.MemberUtils$Executable v, v;
v := @parameter: oadd.org.apache.commons.lang.reflect.MemberUtils$Executable;
v := @parameter: oadd.org.apache.commons.lang.reflect.MemberUtils$Executable;
v := @parameter: java.lang.Class[];
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils: float getTotalTransformationCost(java.lang.Class[],oadd.org.apache.commons.lang.reflect.MemberUtils$Executable)>(v, v);
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils: float getTotalTransformationCost(java.lang.Class[],oadd.org.apache.commons.lang.reflect.MemberUtils$Executable)>(v, v);
v = staticinvoke <java.lang.Float: int compare(float,float)>(v, v);
return v;
}
private static float getTotalTransformationCost(java.lang.Class[], oadd.org.apache.commons.lang.reflect.MemberUtils$Executable)
{
byte v, v;
boolean v, v, v, v, v;
float v, v, v, v, v, v, v, v;
oadd.org.apache.commons.lang.reflect.MemberUtils$Executable v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Class[] v, v;
java.lang.Class v, v, v, v, v, v, v, v, v;
v := @parameter: java.lang.Class[];
v := @parameter: oadd.org.apache.commons.lang.reflect.MemberUtils$Executable;
v = virtualinvoke v.<oadd.org.apache.commons.lang.reflect.MemberUtils$Executable: java.lang.Class[] getParameterTypes()>();
v = virtualinvoke v.<oadd.org.apache.commons.lang.reflect.MemberUtils$Executable: boolean isVarArgs()>();
v = 0.0F;
if v == 0 goto label;
v = lengthof v;
v = v - 1;
goto label;
label:
v = lengthof v;
label:
v = lengthof v;
v = v cmp v;
if v >= 0 goto label;
return 3.4028235E38F;
label:
v = 0;
label:
v = v cmp v;
if v >= 0 goto label;
v = v[v];
v = v[v];
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils: float getObjectTransformationCost(java.lang.Class,java.lang.Class)>(v, v);
v = v + v;
v = v + 1;
goto label;
label:
if v == 0 goto label;
v = lengthof v;
v = lengthof v;
if v >= v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = lengthof v;
v = lengthof v;
if v != v goto label;
v = lengthof v;
v = v - 1;
v = v[v];
if v == null goto label;
v = lengthof v;
v = v - 1;
v = v[v];
v = virtualinvoke v.<java.lang.Class: boolean isArray()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = lengthof v;
v = v - 1;
v = v[v];
v = virtualinvoke v.<java.lang.Class: java.lang.Class getComponentType()>();
if v == 0 goto label;
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils: float getObjectTransformationCost(java.lang.Class,java.lang.Class)>(v, class "Ljava/lang/Object;");
v = v + 0.001F;
v = v + v;
goto label;
label:
if v == 0 goto label;
v = lengthof v;
v = v - 1;
v = v[v];
v = virtualinvoke v.<java.lang.Class: java.lang.Class getComponentType()>();
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils: float getObjectTransformationCost(java.lang.Class,java.lang.Class)>(v, v);
v = v + 0.001F;
v = v + v;
goto label;
label:
v = lengthof v;
v = v - 1;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils: float getObjectTransformationCost(java.lang.Class,java.lang.Class)>(v, v);
v = v + 0.001F;
v = v + v;
v = v + 1;
goto label;
label:
return v;
}
private static float getObjectTransformationCost(java.lang.Class, java.lang.Class)
{
float v, v;
java.lang.Class v, v;
boolean v, v, v, v;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<java.lang.Class: boolean isPrimitive()>();
if v == 0 goto label;
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils: float getPrimitivePromotionCost(java.lang.Class,java.lang.Class)>(v, v);
return v;
label:
v = 0.0F;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = virtualinvoke v.<java.lang.Class: boolean isInterface()>();
if v == 0 goto label;
v = staticinvoke <oadd.org.apache.commons.lang.ClassUtils: boolean isAssignable(java.lang.Class,java.lang.Class)>(v, v);
if v == 0 goto label;
v = v + 0.25F;
goto label;
label:
v = v + 1.0F;
v = virtualinvoke v.<java.lang.Class: java.lang.Class getSuperclass()>();
goto label;
label:
if v != null goto label;
v = v + 1.5F;
label:
return v;
}
private static float getPrimitivePromotionCost(java.lang.Class, java.lang.Class)
{
java.lang.Class[] v, v, v, v;
int v, v, v, v, v;
float v;
java.lang.Class v, v, v, v;
boolean v;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.Class;
if v != null goto label;
return 1.5F;
label:
v = 0.0F;
v = v;
v = virtualinvoke v.<java.lang.Class: boolean isPrimitive()>();
if v != 0 goto label;
v = 0.1F;
v = staticinvoke <oadd.org.apache.commons.lang.ClassUtils: java.lang.Class wrapperToPrimitive(java.lang.Class)>(v);
label:
v = 0;
label:
if v == v goto label;
v = <oadd.org.apache.commons.lang.reflect.MemberUtils: java.lang.Class[] ORDERED_PRIMITIVE_TYPES>;
v = lengthof v;
if v >= v goto label;
v = <oadd.org.apache.commons.lang.reflect.MemberUtils: java.lang.Class[] ORDERED_PRIMITIVE_TYPES>;
v = v[v];
if v != v goto label;
v = v + 0.1F;
v = <oadd.org.apache.commons.lang.reflect.MemberUtils: java.lang.Class[] ORDERED_PRIMITIVE_TYPES>;
v = lengthof v;
v = v - 1;
if v >= v goto label;
v = <oadd.org.apache.commons.lang.reflect.MemberUtils: java.lang.Class[] ORDERED_PRIMITIVE_TYPES>;
v = v + 1;
v = v[v];
label:
v = v + 1;
goto label;
label:
return v;
}
static boolean isMatchingMethod(java.lang.reflect.Method, java.lang.Class[])
{
java.lang.Class[] v;
java.lang.reflect.Method v;
oadd.org.apache.commons.lang.reflect.MemberUtils$Executable v;
boolean v;
v := @parameter: java.lang.reflect.Method;
v := @parameter: java.lang.Class[];
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils$Executable: oadd.org.apache.commons.lang.reflect.MemberUtils$Executable of(java.lang.reflect.Method)>(v);
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils: boolean isMatchingExecutable(oadd.org.apache.commons.lang.reflect.MemberUtils$Executable,java.lang.Class[])>(v, v);
return v;
}
static boolean isMatchingConstructor(java.lang.reflect.Constructor, java.lang.Class[])
{
java.lang.Class[] v;
java.lang.reflect.Constructor v;
oadd.org.apache.commons.lang.reflect.MemberUtils$Executable v;
boolean v;
v := @parameter: java.lang.reflect.Constructor;
v := @parameter: java.lang.Class[];
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils$Executable: oadd.org.apache.commons.lang.reflect.MemberUtils$Executable of(java.lang.reflect.Constructor)>(v);
v = staticinvoke <oadd.org.apache.commons.lang.reflect.MemberUtils: boolean isMatchingExecutable(oadd.org.apache.commons.lang.reflect.MemberUtils$Executable,java.lang.Class[])>(v, v);
return v;
}
private static boolean isMatchingExecutable(oadd.org.apache.commons.lang.reflect.MemberUtils$Executable, java.lang.Class[])
{
oadd.org.apache.commons.lang.reflect.MemberUtils$Executable v;
int v, v, v, v, v, v, v;
boolean v, v, v, v;
java.lang.Class[] v, v;
java.lang.Class v, v, v, v, v;
v := @parameter: oadd.org.apache.commons.lang.reflect.MemberUtils$Executable;
v := @parameter: java.lang.Class[];
v = virtualinvoke v.<oadd.org.apache.commons.lang.reflect.MemberUtils$Executable: java.lang.Class[] getParameterTypes()>();
v = staticinvoke <oadd.org.apache.commons.lang.ClassUtils: boolean isAssignable(java.lang.Class[],java.lang.Class[],boolean)>(v, v, 1);
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<oadd.org.apache.commons.lang.reflect.MemberUtils$Executable: boolean isVarArgs()>();
if v == 0 goto label;
v = 0;
label:
v = lengthof v;
v = v - 1;
if v >= v goto label;
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v[v];
v = staticinvoke <oadd.org.apache.commons.lang.ClassUtils: boolean isAssignable(java.lang.Class,java.lang.Class,boolean)>(v, v, 1);
if v != 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
v = lengthof v;
v = v - 1;
v = v[v];
v = virtualinvoke v.<java.lang.Class: java.lang.Class getComponentType()>();
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = staticinvoke <oadd.org.apache.commons.lang.ClassUtils: boolean isAssignable(java.lang.Class,java.lang.Class,boolean)>(v, v, 1);
if v != 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
return 1;
label:
return 0;
}
static void <clinit>()
{
java.lang.Class[] v;
java.lang.Class v, v, v, v, v, v, v;
v = newarray (java.lang.Class)[7];
v = <java.lang.Byte: java.lang.Class TYPE>;
v[0] = v;
v = <java.lang.Short: java.lang.Class TYPE>;
v[1] = v;
v = <java.lang.Character: java.lang.Class TYPE>;
v[2] = v;
v = <java.lang.Integer: java.lang.Class TYPE>;
v[3] = v;
v = <java.lang.Long: java.lang.Class TYPE>;
v[4] = v;
v = <java.lang.Float: java.lang.Class TYPE>;
v[5] = v;
v = <java.lang.Double: java.lang.Class TYPE>;
v[6] = v;
<oadd.org.apache.commons.lang.reflect.MemberUtils: java.lang.Class[] ORDERED_PRIMITIVE_TYPES> = v;
return;
}
}