final class org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl extends org.objectweb.asm.MethodVisitor
{
private final java.lang.String methodName;
private final java.lang.String methodDescriptor;
private final org.apache.axiom.weaver.classio.ClassFetcher classFetcher;
private final java.util.List mixinMethods;
void <init>(java.lang.String, java.lang.String, org.apache.axiom.weaver.classio.ClassFetcher, java.util.List)
{
java.util.List v;
org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl v;
java.lang.String v, v;
org.apache.axiom.weaver.classio.ClassFetcher v;
v := @this: org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: org.apache.axiom.weaver.classio.ClassFetcher;
v := @parameter: java.util.List;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void <init>(int)>(589824);
v.<org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl: java.lang.String methodName> = v;
v.<org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl: java.lang.String methodDescriptor> = v;
v.<org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl: org.apache.axiom.weaver.classio.ClassFetcher classFetcher> = v;
v.<org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl: java.util.List mixinMethods> = v;
return;
}
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String, boolean)
{
org.objectweb.asm.Type v, v;
org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl v;
java.lang.String v, v, v, v, v, v, v;
org.apache.axiom.weaver.classio.ClassFetcher v, v;
boolean v, v, v;
org.apache.axiom.weaver.mixin.MethodBody v;
org.apache.axiom.weaver.mixin.factory.FactoryMethodBody v;
java.util.List v;
java.lang.Class v, v;
org.apache.axiom.weaver.mixin.factory.InjectMethodBody v;
org.apache.axiom.weaver.mixin.MixinMethod v;
v := @this: org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("Lorg/apache/axiom/weaver/annotation/FactoryMethod;");
if v == 0 goto label;
v = new org.apache.axiom.weaver.mixin.factory.FactoryMethodBody;
v = v.<org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl: org.apache.axiom.weaver.classio.ClassFetcher classFetcher>;
v = v.<org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl: java.lang.String methodDescriptor>;
v = staticinvoke <org.objectweb.asm.Type: org.objectweb.asm.Type getReturnType(java.lang.String)>(v);
v = virtualinvoke v.<org.objectweb.asm.Type: java.lang.String getClassName()>();
v = interfaceinvoke v.<org.apache.axiom.weaver.classio.ClassFetcher: java.lang.Class loadClass(java.lang.String)>(v);
specialinvoke v.<org.apache.axiom.weaver.mixin.factory.FactoryMethodBody: void <init>(java.lang.Class)>(v);
v = v;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("Lorg/apache/axiom/weaver/annotation/Inject;");
if v == 0 goto label;
v = new org.apache.axiom.weaver.mixin.factory.InjectMethodBody;
v = v.<org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl: org.apache.axiom.weaver.classio.ClassFetcher classFetcher>;
v = v.<org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl: java.lang.String methodDescriptor>;
v = staticinvoke <org.objectweb.asm.Type: org.objectweb.asm.Type getReturnType(java.lang.String)>(v);
v = virtualinvoke v.<org.objectweb.asm.Type: java.lang.String getClassName()>();
v = interfaceinvoke v.<org.apache.axiom.weaver.classio.ClassFetcher: java.lang.Class loadClass(java.lang.String)>(v);
specialinvoke v.<org.apache.axiom.weaver.mixin.factory.InjectMethodBody: void <init>(java.lang.Class)>(v);
v = v;
goto label;
label:
return null;
label:
v = v.<org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl: java.util.List mixinMethods>;
v = new org.apache.axiom.weaver.mixin.MixinMethod;
v = v.<org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl: java.lang.String methodName>;
v = v.<org.apache.axiom.weaver.mixin.factory.MethodVisitorImpl: java.lang.String methodDescriptor>;
specialinvoke v.<org.apache.axiom.weaver.mixin.MixinMethod: void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],org.apache.axiom.weaver.mixin.MethodBody)>(17, v, v, null, null, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return null;
}
}