public class javassist.convert.TransformCall extends javassist.convert.Transformer
{
protected java.lang.String classname;
protected java.lang.String methodname;
protected java.lang.String methodDescriptor;
protected java.lang.String newClassname;
protected java.lang.String newMethodname;
protected boolean newMethodIsPrivate;
protected int newIndex;
protected javassist.bytecode.ConstPool constPool;
public void <init>(javassist.convert.Transformer, javassist.CtMethod, javassist.CtMethod)
{
javassist.CtMethod v, v;
javassist.convert.Transformer v;
javassist.convert.TransformCall v;
java.lang.String v, v;
javassist.CtClass v;
v := @this: javassist.convert.TransformCall;
v := @parameter: javassist.convert.Transformer;
v := @parameter: javassist.CtMethod;
v := @parameter: javassist.CtMethod;
v = virtualinvoke v.<javassist.CtMethod: java.lang.String getName()>();
specialinvoke v.<javassist.convert.TransformCall: void <init>(javassist.convert.Transformer,java.lang.String,javassist.CtMethod)>(v, v, v);
v = virtualinvoke v.<javassist.CtMethod: javassist.CtClass getDeclaringClass()>();
v = virtualinvoke v.<javassist.CtClass: java.lang.String getName()>();
v.<javassist.convert.TransformCall: java.lang.String classname> = v;
return;
}
public void <init>(javassist.convert.Transformer, java.lang.String, javassist.CtMethod)
{
javassist.CtMethod v;
javassist.convert.TransformCall v;
javassist.CtClass v;
javassist.convert.Transformer v;
int v;
javassist.bytecode.MethodInfo v;
java.lang.String v, v, v, v;
boolean v;
v := @this: javassist.convert.TransformCall;
v := @parameter: javassist.convert.Transformer;
v := @parameter: java.lang.String;
v := @parameter: javassist.CtMethod;
specialinvoke v.<javassist.convert.Transformer: void <init>(javassist.convert.Transformer)>(v);
v.<javassist.convert.TransformCall: java.lang.String methodname> = v;
v = virtualinvoke v.<javassist.CtMethod: javassist.bytecode.MethodInfo getMethodInfo2()>();
v = virtualinvoke v.<javassist.bytecode.MethodInfo: java.lang.String getDescriptor()>();
v.<javassist.convert.TransformCall: java.lang.String methodDescriptor> = v;
v = virtualinvoke v.<javassist.CtMethod: javassist.CtClass getDeclaringClass()>();
v = virtualinvoke v.<javassist.CtClass: java.lang.String getName()>();
v.<javassist.convert.TransformCall: java.lang.String newClassname> = v;
v.<javassist.convert.TransformCall: java.lang.String classname> = v;
v = virtualinvoke v.<javassist.CtMethod: java.lang.String getName()>();
v.<javassist.convert.TransformCall: java.lang.String newMethodname> = v;
v.<javassist.convert.TransformCall: javassist.bytecode.ConstPool constPool> = null;
v = virtualinvoke v.<javassist.CtMethod: int getModifiers()>();
v = staticinvoke <javassist.Modifier: boolean isPrivate(int)>(v);
v.<javassist.convert.TransformCall: boolean newMethodIsPrivate> = v;
return;
}
public void initialize(javassist.bytecode.ConstPool, javassist.bytecode.CodeAttribute)
{
javassist.bytecode.ConstPool v, v;
javassist.bytecode.CodeAttribute v;
javassist.convert.TransformCall v;
v := @this: javassist.convert.TransformCall;
v := @parameter: javassist.bytecode.ConstPool;
v := @parameter: javassist.bytecode.CodeAttribute;
v = v.<javassist.convert.TransformCall: javassist.bytecode.ConstPool constPool>;
if v == v goto label;
v.<javassist.convert.TransformCall: int newIndex> = 0;
label:
return;
}
public int transform(javassist.CtClass, int, javassist.bytecode.CodeIterator, javassist.bytecode.ConstPool) throws javassist.bytecode.BadBytecode
{
javassist.bytecode.ConstPool v;
javassist.convert.TransformCall v;
javassist.CtClass v;
int v, v, v, v, v, v;
java.lang.String v, v, v;
javassist.bytecode.CodeIterator v;
boolean v;
javassist.ClassPool v;
v := @this: javassist.convert.TransformCall;
v := @parameter: javassist.CtClass;
v := @parameter: int;
v := @parameter: javassist.bytecode.CodeIterator;
v := @parameter: javassist.bytecode.ConstPool;
v = virtualinvoke v.<javassist.bytecode.CodeIterator: int byteAt(int)>(v);
if v == 185 goto label;
if v == 183 goto label;
if v == 184 goto label;
if v != 182 goto label;
label:
v = v + 1;
v = virtualinvoke v.<javassist.bytecode.CodeIterator: int u16bitAt(int)>(v);
v = v.<javassist.convert.TransformCall: java.lang.String methodname>;
v = v.<javassist.convert.TransformCall: java.lang.String methodDescriptor>;
v = virtualinvoke v.<javassist.bytecode.ConstPool: java.lang.String eqMember(java.lang.String,java.lang.String,int)>(v, v, v);
if v == null goto label;
v = virtualinvoke v.<javassist.CtClass: javassist.ClassPool getClassPool()>();
v = specialinvoke v.<javassist.convert.TransformCall: boolean matchClass(java.lang.String,javassist.ClassPool)>(v, v);
if v == 0 goto label;
v = virtualinvoke v.<javassist.bytecode.ConstPool: int getMemberNameAndType(int)>(v);
v = virtualinvoke v.<javassist.bytecode.ConstPool: int getNameAndTypeDescriptor(int)>(v);
v = virtualinvoke v.<javassist.convert.TransformCall: int match(int,int,javassist.bytecode.CodeIterator,int,javassist.bytecode.ConstPool)>(v, v, v, v, v);
label:
return v;
}
private boolean matchClass(java.lang.String, javassist.ClassPool)
{
javassist.CtMethod v;
javassist.convert.TransformCall v;
javassist.CtClass v, v, v;
javassist.NotFoundException v, v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v, v;
javassist.ClassPool v;
v := @this: javassist.convert.TransformCall;
v := @parameter: java.lang.String;
v := @parameter: javassist.ClassPool;
v = v.<javassist.convert.TransformCall: java.lang.String classname>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<javassist.ClassPool: javassist.CtClass get(java.lang.String)>(v);
v = v.<javassist.convert.TransformCall: java.lang.String classname>;
v = virtualinvoke v.<javassist.ClassPool: javassist.CtClass get(java.lang.String)>(v);
v = virtualinvoke v.<javassist.CtClass: boolean subtypeOf(javassist.CtClass)>(v);
if v == 0 goto label;
label:
v = v.<javassist.convert.TransformCall: java.lang.String methodname>;
v = v.<javassist.convert.TransformCall: java.lang.String methodDescriptor>;
v = virtualinvoke v.<javassist.CtClass: javassist.CtMethod getMethod(java.lang.String,java.lang.String)>(v, v);
v = virtualinvoke v.<javassist.CtMethod: javassist.CtClass getDeclaringClass()>();
v = virtualinvoke v.<javassist.CtClass: java.lang.String getName()>();
v = v.<javassist.convert.TransformCall: java.lang.String classname>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
label:
return v;
label:
v := @caughtexception;
label:
return 1;
label:
v := @caughtexception;
return 0;
label:
return 0;
catch javassist.NotFoundException from label to label with label;
catch javassist.NotFoundException from label to label with label;
catch javassist.NotFoundException from label to label with label;
}
protected int match(int, int, javassist.bytecode.CodeIterator, int, javassist.bytecode.ConstPool) throws javassist.bytecode.BadBytecode
{
javassist.bytecode.ConstPool v;
javassist.convert.TransformCall v;
int v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
javassist.bytecode.CodeIterator v;
boolean v;
v := @this: javassist.convert.TransformCall;
v := @parameter: int;
v := @parameter: int;
v := @parameter: javassist.bytecode.CodeIterator;
v := @parameter: int;
v := @parameter: javassist.bytecode.ConstPool;
v = v.<javassist.convert.TransformCall: int newIndex>;
if v != 0 goto label;
v = v.<javassist.convert.TransformCall: java.lang.String newMethodname>;
v = virtualinvoke v.<javassist.bytecode.ConstPool: int addUtf8Info(java.lang.String)>(v);
v = virtualinvoke v.<javassist.bytecode.ConstPool: int addNameAndTypeInfo(int,int)>(v, v);
v = v.<javassist.convert.TransformCall: java.lang.String newClassname>;
v = virtualinvoke v.<javassist.bytecode.ConstPool: int addClassInfo(java.lang.String)>(v);
if v != 185 goto label;
v = virtualinvoke v.<javassist.bytecode.ConstPool: int addInterfaceMethodrefInfo(int,int)>(v, v);
v.<javassist.convert.TransformCall: int newIndex> = v;
goto label;
label:
v = v.<javassist.convert.TransformCall: boolean newMethodIsPrivate>;
if v == 0 goto label;
if v != 182 goto label;
virtualinvoke v.<javassist.bytecode.CodeIterator: void writeByte(int,int)>(183, v);
label:
v = virtualinvoke v.<javassist.bytecode.ConstPool: int addMethodrefInfo(int,int)>(v, v);
v.<javassist.convert.TransformCall: int newIndex> = v;
label:
v.<javassist.convert.TransformCall: javassist.bytecode.ConstPool constPool> = v;
label:
v = v.<javassist.convert.TransformCall: int newIndex>;
v = v + 1;
virtualinvoke v.<javassist.bytecode.CodeIterator: void write16bit(int,int)>(v, v);
return v;
}
}