public class org.apache.ibatis.reflection.MetaClass extends java.lang.Object
{
private final org.apache.ibatis.reflection.ReflectorFactory reflectorFactory;
private final org.apache.ibatis.reflection.Reflector reflector;
private void <init>(java.lang.Class, org.apache.ibatis.reflection.ReflectorFactory)
{
org.apache.ibatis.reflection.ReflectorFactory v;
org.apache.ibatis.reflection.Reflector v;
org.apache.ibatis.reflection.MetaClass v;
java.lang.Class v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: java.lang.Class;
v := @parameter: org.apache.ibatis.reflection.ReflectorFactory;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.ReflectorFactory reflectorFactory> = v;
v = interfaceinvoke v.<org.apache.ibatis.reflection.ReflectorFactory: org.apache.ibatis.reflection.Reflector findForClass(java.lang.Class)>(v);
v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector> = v;
return;
}
public static org.apache.ibatis.reflection.MetaClass forClass(java.lang.Class, org.apache.ibatis.reflection.ReflectorFactory)
{
org.apache.ibatis.reflection.MetaClass v;
java.lang.Class v;
org.apache.ibatis.reflection.ReflectorFactory v;
v := @parameter: java.lang.Class;
v := @parameter: org.apache.ibatis.reflection.ReflectorFactory;
v = new org.apache.ibatis.reflection.MetaClass;
specialinvoke v.<org.apache.ibatis.reflection.MetaClass: void <init>(java.lang.Class,org.apache.ibatis.reflection.ReflectorFactory)>(v, v);
return v;
}
public org.apache.ibatis.reflection.MetaClass metaClassForProperty(java.lang.String)
{
org.apache.ibatis.reflection.ReflectorFactory v;
org.apache.ibatis.reflection.Reflector v;
org.apache.ibatis.reflection.MetaClass v, v;
java.lang.Class v;
java.lang.String v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: java.lang.String;
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: java.lang.Class getGetterType(java.lang.String)>(v);
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.ReflectorFactory reflectorFactory>;
v = staticinvoke <org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.MetaClass forClass(java.lang.Class,org.apache.ibatis.reflection.ReflectorFactory)>(v, v);
return v;
}
public java.lang.String findProperty(java.lang.String)
{
int v;
org.apache.ibatis.reflection.MetaClass v;
java.lang.StringBuilder v, v;
java.lang.String v, v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: java.lang.String;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = specialinvoke v.<org.apache.ibatis.reflection.MetaClass: java.lang.StringBuilder buildProperty(java.lang.String,java.lang.StringBuilder)>(v, v);
v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
if v <= 0 goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
goto label;
label:
v = null;
label:
return v;
}
public java.lang.String findProperty(java.lang.String, boolean)
{
org.apache.ibatis.reflection.MetaClass v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: java.lang.String;
v := @parameter: boolean;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String replace(java.lang.CharSequence,java.lang.CharSequence)>("_", "");
label:
v = virtualinvoke v.<org.apache.ibatis.reflection.MetaClass: java.lang.String findProperty(java.lang.String)>(v);
return v;
}
public java.lang.String[] getGetterNames()
{
org.apache.ibatis.reflection.MetaClass v;
java.lang.String[] v;
org.apache.ibatis.reflection.Reflector v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: java.lang.String[] getGetablePropertyNames()>();
return v;
}
public java.lang.String[] getSetterNames()
{
org.apache.ibatis.reflection.MetaClass v;
java.lang.String[] v;
org.apache.ibatis.reflection.Reflector v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: java.lang.String[] getSetablePropertyNames()>();
return v;
}
public java.lang.Class getSetterType(java.lang.String)
{
org.apache.ibatis.reflection.Reflector v;
org.apache.ibatis.reflection.property.PropertyTokenizer v;
org.apache.ibatis.reflection.MetaClass v, v;
java.lang.Class v, v;
java.lang.String v, v, v, v;
boolean v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: java.lang.String;
v = new org.apache.ibatis.reflection.property.PropertyTokenizer;
specialinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: boolean hasNext()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.MetaClass metaClassForProperty(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getChildren()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.MetaClass: java.lang.Class getSetterType(java.lang.String)>(v);
return v;
label:
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: java.lang.Class getSetterType(java.lang.String)>(v);
return v;
}
public java.lang.Class getGetterType(java.lang.String)
{
org.apache.ibatis.reflection.property.PropertyTokenizer v;
org.apache.ibatis.reflection.MetaClass v, v;
java.lang.Class v, v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: java.lang.String;
v = new org.apache.ibatis.reflection.property.PropertyTokenizer;
specialinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: boolean hasNext()>();
if v == 0 goto label;
v = specialinvoke v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.MetaClass metaClassForProperty(org.apache.ibatis.reflection.property.PropertyTokenizer)>(v);
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getChildren()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.MetaClass: java.lang.Class getGetterType(java.lang.String)>(v);
return v;
label:
v = specialinvoke v.<org.apache.ibatis.reflection.MetaClass: java.lang.Class getGetterType(org.apache.ibatis.reflection.property.PropertyTokenizer)>(v);
return v;
}
private org.apache.ibatis.reflection.MetaClass metaClassForProperty(org.apache.ibatis.reflection.property.PropertyTokenizer)
{
org.apache.ibatis.reflection.ReflectorFactory v;
org.apache.ibatis.reflection.property.PropertyTokenizer v;
org.apache.ibatis.reflection.MetaClass v, v;
java.lang.Class v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: org.apache.ibatis.reflection.property.PropertyTokenizer;
v = specialinvoke v.<org.apache.ibatis.reflection.MetaClass: java.lang.Class getGetterType(org.apache.ibatis.reflection.property.PropertyTokenizer)>(v);
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.ReflectorFactory reflectorFactory>;
v = staticinvoke <org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.MetaClass forClass(java.lang.Class,org.apache.ibatis.reflection.ReflectorFactory)>(v, v);
return v;
}
private java.lang.Class getGetterType(org.apache.ibatis.reflection.property.PropertyTokenizer)
{
int v;
java.lang.String v, v, v;
boolean v, v, v, v;
org.apache.ibatis.reflection.Reflector v;
org.apache.ibatis.reflection.property.PropertyTokenizer v;
org.apache.ibatis.reflection.MetaClass v;
java.lang.reflect.Type v, v;
java.lang.reflect.Type[] v;
java.lang.Class v, v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: org.apache.ibatis.reflection.property.PropertyTokenizer;
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: java.lang.Class getGetterType(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getIndex()>();
if v == null goto label;
v = class "Ljava/util/Collection;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getName()>();
v = specialinvoke v.<org.apache.ibatis.reflection.MetaClass: java.lang.reflect.Type getGenericGetterType(java.lang.String)>(v);
v = v instanceof java.lang.reflect.ParameterizedType;
if v == 0 goto label;
v = interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type[] getActualTypeArguments()>();
if v == null goto label;
v = lengthof v;
if v != 1 goto label;
v = v[0];
v = v instanceof java.lang.Class;
if v != 0 goto label;
v = v instanceof java.lang.reflect.ParameterizedType;
if v == 0 goto label;
interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type getRawType()>();
label:
return v;
}
private java.lang.reflect.Type getGenericGetterType(java.lang.String)
{
java.lang.ReflectiveOperationException v;
java.lang.String v;
boolean v, v;
org.apache.ibatis.reflection.Reflector v, v, v;
org.apache.ibatis.reflection.invoker.Invoker v;
org.apache.ibatis.reflection.MetaClass v;
java.lang.reflect.Field v, v;
java.lang.reflect.Type v, v;
java.lang.Class v, v, v, v;
java.lang.Object v, v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: java.lang.String;
label:
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: org.apache.ibatis.reflection.invoker.Invoker getGetInvoker(java.lang.String)>(v);
v = v instanceof org.apache.ibatis.reflection.invoker.MethodInvoker;
if v == 0 goto label;
v = class "Lorg/apache/ibatis/reflection/invoker/MethodInvoker;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getDeclaredField(java.lang.String)>("method");
virtualinvoke v.<java.lang.reflect.Field: void setAccessible(boolean)>(1);
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Object get(java.lang.Object)>(v);
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: java.lang.Class getType()>();
v = staticinvoke <org.apache.ibatis.reflection.TypeParameterResolver: java.lang.reflect.Type resolveReturnType(java.lang.reflect.Method,java.lang.reflect.Type)>(v, v);
label:
return v;
label:
v = v instanceof org.apache.ibatis.reflection.invoker.GetFieldInvoker;
if v == 0 goto label;
v = class "Lorg/apache/ibatis/reflection/invoker/GetFieldInvoker;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getDeclaredField(java.lang.String)>("field");
virtualinvoke v.<java.lang.reflect.Field: void setAccessible(boolean)>(1);
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Object get(java.lang.Object)>(v);
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: java.lang.Class getType()>();
v = staticinvoke <org.apache.ibatis.reflection.TypeParameterResolver: java.lang.reflect.Type resolveFieldType(java.lang.reflect.Field,java.lang.reflect.Type)>(v, v);
label:
return v;
label:
v := @caughtexception;
label:
return null;
catch java.lang.NoSuchFieldException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch java.lang.NoSuchFieldException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
}
public boolean hasSetter(java.lang.String)
{
org.apache.ibatis.reflection.Reflector v, v;
org.apache.ibatis.reflection.property.PropertyTokenizer v;
org.apache.ibatis.reflection.MetaClass v, v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: java.lang.String;
v = new org.apache.ibatis.reflection.property.PropertyTokenizer;
specialinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: boolean hasNext()>();
if v != 0 goto label;
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: boolean hasSetter(java.lang.String)>(v);
return v;
label:
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: boolean hasSetter(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.MetaClass metaClassForProperty(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getChildren()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.MetaClass: boolean hasSetter(java.lang.String)>(v);
return v;
label:
return 0;
}
public boolean hasGetter(java.lang.String)
{
org.apache.ibatis.reflection.Reflector v, v;
org.apache.ibatis.reflection.property.PropertyTokenizer v;
org.apache.ibatis.reflection.MetaClass v, v;
java.lang.String v, v, v, v;
boolean v, v, v, v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: java.lang.String;
v = new org.apache.ibatis.reflection.property.PropertyTokenizer;
specialinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: boolean hasNext()>();
if v != 0 goto label;
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: boolean hasGetter(java.lang.String)>(v);
return v;
label:
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: boolean hasGetter(java.lang.String)>(v);
if v == 0 goto label;
v = specialinvoke v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.MetaClass metaClassForProperty(org.apache.ibatis.reflection.property.PropertyTokenizer)>(v);
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getChildren()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.MetaClass: boolean hasGetter(java.lang.String)>(v);
return v;
label:
return 0;
}
public org.apache.ibatis.reflection.invoker.Invoker getGetInvoker(java.lang.String)
{
org.apache.ibatis.reflection.Reflector v;
org.apache.ibatis.reflection.invoker.Invoker v;
org.apache.ibatis.reflection.MetaClass v;
java.lang.String v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: java.lang.String;
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: org.apache.ibatis.reflection.invoker.Invoker getGetInvoker(java.lang.String)>(v);
return v;
}
public org.apache.ibatis.reflection.invoker.Invoker getSetInvoker(java.lang.String)
{
org.apache.ibatis.reflection.Reflector v;
org.apache.ibatis.reflection.invoker.Invoker v;
org.apache.ibatis.reflection.MetaClass v;
java.lang.String v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: java.lang.String;
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: org.apache.ibatis.reflection.invoker.Invoker getSetInvoker(java.lang.String)>(v);
return v;
}
private java.lang.StringBuilder buildProperty(java.lang.String, java.lang.StringBuilder)
{
org.apache.ibatis.reflection.Reflector v, v;
org.apache.ibatis.reflection.property.PropertyTokenizer v;
org.apache.ibatis.reflection.MetaClass v, v;
java.lang.StringBuilder v;
java.lang.String v, v, v, v, v;
boolean v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v := @parameter: java.lang.String;
v := @parameter: java.lang.StringBuilder;
v = new org.apache.ibatis.reflection.property.PropertyTokenizer;
specialinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: boolean hasNext()>();
if v == 0 goto label;
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: java.lang.String findPropertyName(java.lang.String)>(v);
if v == null goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(".");
v = virtualinvoke v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.MetaClass metaClassForProperty(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.ibatis.reflection.property.PropertyTokenizer: java.lang.String getChildren()>();
specialinvoke v.<org.apache.ibatis.reflection.MetaClass: java.lang.StringBuilder buildProperty(java.lang.String,java.lang.StringBuilder)>(v, v);
goto label;
label:
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: java.lang.String findPropertyName(java.lang.String)>(v);
if v == null goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
return v;
}
public boolean hasDefaultConstructor()
{
org.apache.ibatis.reflection.MetaClass v;
org.apache.ibatis.reflection.Reflector v;
boolean v;
v := @this: org.apache.ibatis.reflection.MetaClass;
v = v.<org.apache.ibatis.reflection.MetaClass: org.apache.ibatis.reflection.Reflector reflector>;
v = virtualinvoke v.<org.apache.ibatis.reflection.Reflector: boolean hasDefaultConstructor()>();
return v;
}
}