final class org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor extends org.objectweb.asm.ClassVisitor
{
private final org.apache.axiom.weaver.classio.ClassFetcher classFetcher;
private int bytecodeVersion;
private java.lang.String className;
private java.util.function.Function remapperFactory;
private boolean hasMixinAnnotation;
private java.lang.Class targetInterface;
private final java.util.List fields;
private final java.util.List methods;
private final java.util.List innerClassNames;
private org.apache.axiom.weaver.mixin.InitializerMethod initializerMethod;
private org.apache.axiom.weaver.mixin.StaticInitializerMethod staticInitializerMethod;
void <init>(org.apache.axiom.weaver.classio.ClassFetcher)
{
org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor v;
org.apache.axiom.weaver.classio.ClassFetcher v;
java.util.ArrayList v, v, v;
v := @this: org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor;
v := @parameter: org.apache.axiom.weaver.classio.ClassFetcher;
specialinvoke v.<org.objectweb.asm.ClassVisitor: void <init>(int)>(589824);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.util.List fields> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.util.List methods> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.util.List innerClassNames> = v;
v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: org.apache.axiom.weaver.classio.ClassFetcher classFetcher> = v;
return;
}
public void visit(int, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String[])
{
java.lang.String[] v;
java.util.function.Function v;
org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor v;
int v, v, v;
java.lang.Class v;
java.lang.String v, v, v, v, v;
org.apache.axiom.weaver.classio.ClassFetcher v;
org.apache.axiom.weaver.mixin.clazz.MixinFactoryException v;
v := @this: org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String[];
v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: int bytecodeVersion> = v;
v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.lang.String className> = v;
v = staticinvoke <org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor$lambda_visit_0__11: java.util.function.Function bootstrap$(org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor,java.lang.String)>(v, v);
v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.util.function.Function remapperFactory> = v;
v = lengthof v;
if v == 1 goto label;
v = new org.apache.axiom.weaver.mixin.clazz.MixinFactoryException;
specialinvoke v.<org.apache.axiom.weaver.mixin.clazz.MixinFactoryException: void <init>(java.lang.String)>("Mixins are expected to implement one and only one interface");
throw v;
label:
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: org.apache.axiom.weaver.classio.ClassFetcher classFetcher>;
v = v[0];
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(47, 46);
v = interfaceinvoke v.<org.apache.axiom.weaver.classio.ClassFetcher: java.lang.Class loadClass(java.lang.String)>(v);
v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.lang.Class targetInterface> = v;
return;
}
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String, boolean)
{
org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("Lorg/apache/axiom/weaver/annotation/Mixin;");
if v == 0 goto label;
v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: boolean hasMixinAnnotation> = 1;
label:
return null;
}
public void visitInnerClass(java.lang.String, java.lang.String, java.lang.String, int)
{
org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor v;
java.util.List v;
int v;
java.lang.String v, v, v;
v := @this: org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: int;
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.util.List innerClassNames>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
public org.objectweb.asm.FieldVisitor visitField(int, java.lang.String, java.lang.String, java.lang.String, java.lang.Object)
{
org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor v;
java.util.List v;
int v;
java.lang.Object v;
org.objectweb.asm.tree.FieldNode v;
java.lang.String v, v, v;
v := @this: org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Object;
v = new org.objectweb.asm.tree.FieldNode;
specialinvoke v.<org.objectweb.asm.tree.FieldNode: void <init>(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object)>(589824, v, v, v, v, v);
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.util.List fields>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return v;
}
public org.objectweb.asm.MethodVisitor visitMethod(int, java.lang.String, java.lang.String, java.lang.String, java.lang.String[])
{
org.apache.axiom.weaver.mixin.clazz.ConstructorToMethodConverter v;
java.lang.String[] v;
java.util.function.Function v;
org.objectweb.asm.tree.MethodNode v;
int v, v;
org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor$2 v;
java.lang.String v, v, v, v, v;
org.apache.axiom.weaver.mixin.clazz.MixinFactoryException v, v;
boolean v, v, v;
org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor v;
java.util.List v;
org.apache.axiom.weaver.mixin.InitializerMethod v;
org.apache.axiom.weaver.mixin.StaticInitializerMethod v;
org.apache.axiom.weaver.mixin.MixinMethod v;
v := @this: org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String[];
v = new org.objectweb.asm.tree.MethodNode;
specialinvoke v.<org.objectweb.asm.tree.MethodNode: void <init>(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[])>(589824, v, v, v, v, v);
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.util.function.Function remapperFactory>;
v = v & 1024;
if v == 0 goto label;
v = new org.apache.axiom.weaver.mixin.clazz.MixinFactoryException;
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.lang.String className>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Found an abstract method in mixin \u0001");
specialinvoke v.<org.apache.axiom.weaver.mixin.clazz.MixinFactoryException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor$2;
specialinvoke v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor$2: void <init>(org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor,org.objectweb.asm.tree.MethodNode,java.util.function.Function)>(v, v, v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("<init>");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("()V");
if v != 0 goto label;
v = new org.apache.axiom.weaver.mixin.clazz.MixinFactoryException;
specialinvoke v.<org.apache.axiom.weaver.mixin.clazz.MixinFactoryException: void <init>(java.lang.String)>("Expected only a default constructor");
throw v;
label:
v = new org.apache.axiom.weaver.mixin.InitializerMethod;
specialinvoke v.<org.apache.axiom.weaver.mixin.InitializerMethod: void <init>(org.apache.axiom.weaver.mixin.MethodBody)>(v);
v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: org.apache.axiom.weaver.mixin.InitializerMethod initializerMethod> = v;
v = new org.apache.axiom.weaver.mixin.clazz.ConstructorToMethodConverter;
specialinvoke v.<org.apache.axiom.weaver.mixin.clazz.ConstructorToMethodConverter: void <init>(org.objectweb.asm.MethodVisitor)>(v);
return v;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("<clinit>");
if v == 0 goto label;
v = new org.apache.axiom.weaver.mixin.StaticInitializerMethod;
specialinvoke v.<org.apache.axiom.weaver.mixin.StaticInitializerMethod: void <init>(org.apache.axiom.weaver.mixin.MethodBody)>(v);
v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: org.apache.axiom.weaver.mixin.StaticInitializerMethod staticInitializerMethod> = v;
return v;
label:
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.util.List methods>;
v = new org.apache.axiom.weaver.mixin.MixinMethod;
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)>(v, v, v, v, v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return v;
}
org.apache.axiom.weaver.mixin.Mixin getMixin()
{
java.util.function.Function v;
java.util.ArrayList v;
int v, v, v;
java.lang.String v, v, v;
org.apache.axiom.weaver.classio.ClassFetcher v;
org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor$3 v;
org.apache.axiom.weaver.mixin.clazz.MixinFactoryException v;
boolean v, v;
java.util.Iterator v;
org.apache.axiom.weaver.mixin.Mixin v;
org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor v;
java.util.List v, v, v;
org.apache.axiom.weaver.mixin.InitializerMethod v;
org.apache.axiom.weaver.mixin.StaticInitializerMethod v;
java.lang.Class v;
java.lang.Object v;
org.objectweb.asm.tree.ClassNode v;
v := @this: org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor;
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: boolean hasMixinAnnotation>;
if v != 0 goto label;
v = new org.apache.axiom.weaver.mixin.clazz.MixinFactoryException;
specialinvoke v.<org.apache.axiom.weaver.mixin.clazz.MixinFactoryException: void <init>(java.lang.String)>("Class didn\'t have a @Mixin annotation");
throw v;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.util.function.Function remapperFactory>;
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.util.List innerClassNames>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new org.objectweb.asm.tree.ClassNode;
specialinvoke v.<org.objectweb.asm.tree.ClassNode: void <init>()>();
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: org.apache.axiom.weaver.classio.ClassFetcher classFetcher>;
interfaceinvoke v.<org.apache.axiom.weaver.classio.ClassFetcher: void fetch(java.lang.String,org.objectweb.asm.ClassVisitor)>(v, v);
v = new org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor$3;
specialinvoke v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor$3: void <init>(org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor,java.util.function.Function,org.objectweb.asm.tree.ClassNode)>(v, v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = new org.apache.axiom.weaver.mixin.Mixin;
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: int bytecodeVersion>;
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.lang.String className>;
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.lang.String className>;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(47);
v = v + 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.lang.Class targetInterface>;
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.util.List fields>;
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: org.apache.axiom.weaver.mixin.InitializerMethod initializerMethod>;
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: org.apache.axiom.weaver.mixin.StaticInitializerMethod staticInitializerMethod>;
v = v.<org.apache.axiom.weaver.mixin.clazz.MixinClassVisitor: java.util.List methods>;
specialinvoke v.<org.apache.axiom.weaver.mixin.Mixin: void <init>(int,java.lang.String,java.lang.Class,java.util.List,org.apache.axiom.weaver.mixin.InitializerMethod,org.apache.axiom.weaver.mixin.StaticInitializerMethod,java.util.List,java.util.List)>(v, v, v, v, v, v, v, v);
return v;
}
}