public final class javassist.bytecode.ClassFile extends java.lang.Object
{
int major;
int minor;
javassist.bytecode.ConstPool constPool;
int thisClass;
int accessFlags;
int superClass;
int[] interfaces;
java.util.List fields;
java.util.List methods;
java.util.List attributes;
java.lang.String thisclassname;
java.lang.String[] cachedInterfaces;
java.lang.String cachedSuperclass;
public static final int JAVA_1;
public static final int JAVA_2;
public static final int JAVA_3;
public static final int JAVA_4;
public static final int JAVA_5;
public static final int JAVA_6;
public static final int JAVA_7;
public static final int JAVA_8;
public static final int JAVA_9;
public static final int JAVA_10;
public static final int JAVA_11;
public static final int MAJOR_VERSION;
public void <init>(java.io.DataInputStream) throws java.io.IOException
{
java.io.DataInputStream v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.io.DataInputStream;
specialinvoke v.<java.lang.Object: void <init>()>();
specialinvoke v.<javassist.bytecode.ClassFile: void read(java.io.DataInputStream)>(v);
return;
}
public void <init>(boolean, java.lang.String, java.lang.String)
{
javassist.bytecode.ConstPool v, v, v;
java.util.ArrayList v, v, v;
int v, v;
javassist.bytecode.SourceFileAttribute v;
java.lang.String v, v, v, v;
boolean v;
javassist.bytecode.ClassFile v;
java.util.List v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: boolean;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
specialinvoke v.<java.lang.Object: void <init>()>();
v = <javassist.bytecode.ClassFile: int MAJOR_VERSION>;
v.<javassist.bytecode.ClassFile: int major> = v;
v.<javassist.bytecode.ClassFile: int minor> = 0;
v = new javassist.bytecode.ConstPool;
specialinvoke v.<javassist.bytecode.ConstPool: void <init>(java.lang.String)>(v);
v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool> = v;
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = virtualinvoke v.<javassist.bytecode.ConstPool: int getThisClassInfo()>();
v.<javassist.bytecode.ClassFile: int thisClass> = v;
if v == 0 goto label;
v.<javassist.bytecode.ClassFile: int accessFlags> = 1536;
goto label;
label:
v.<javassist.bytecode.ClassFile: int accessFlags> = 32;
label:
specialinvoke v.<javassist.bytecode.ClassFile: void initSuperclass(java.lang.String)>(v);
v.<javassist.bytecode.ClassFile: int[] interfaces> = null;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<javassist.bytecode.ClassFile: java.util.List fields> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<javassist.bytecode.ClassFile: java.util.List methods> = v;
v.<javassist.bytecode.ClassFile: java.lang.String thisclassname> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<javassist.bytecode.ClassFile: java.util.List attributes> = v;
v = v.<javassist.bytecode.ClassFile: java.util.List attributes>;
v = new javassist.bytecode.SourceFileAttribute;
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = v.<javassist.bytecode.ClassFile: java.lang.String thisclassname>;
v = staticinvoke <javassist.bytecode.ClassFile: java.lang.String getSourcefileName(java.lang.String)>(v);
specialinvoke v.<javassist.bytecode.SourceFileAttribute: void <init>(javassist.bytecode.ConstPool,java.lang.String)>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
private void initSuperclass(java.lang.String)
{
javassist.bytecode.ConstPool v, v;
javassist.bytecode.ClassFile v;
int v, v;
java.lang.String v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.lang.String;
if v == null goto label;
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = virtualinvoke v.<javassist.bytecode.ConstPool: int addClassInfo(java.lang.String)>(v);
v.<javassist.bytecode.ClassFile: int superClass> = v;
v.<javassist.bytecode.ClassFile: java.lang.String cachedSuperclass> = v;
goto label;
label:
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = virtualinvoke v.<javassist.bytecode.ConstPool: int addClassInfo(java.lang.String)>("java.lang.Object");
v.<javassist.bytecode.ClassFile: int superClass> = v;
v.<javassist.bytecode.ClassFile: java.lang.String cachedSuperclass> = "java.lang.Object";
label:
return;
}
private static java.lang.String getSourcefileName(java.lang.String)
{
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: java.lang.String replaceAll(java.lang.String,java.lang.String)>("^.*\\.", "");
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[])>("\u.java");
return v;
}
public void compact()
{
javassist.bytecode.ConstPool v;
java.util.Iterator v, v;
javassist.bytecode.ClassFile v;
java.util.List v, v, v, v;
java.lang.Object v, v;
boolean v, v;
v := @this: javassist.bytecode.ClassFile;
v = specialinvoke v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool compact0()>();
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
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()>();
virtualinvoke v.<javassist.bytecode.MethodInfo: void compact(javassist.bytecode.ConstPool)>(v);
goto label;
label:
v = v.<javassist.bytecode.ClassFile: java.util.List fields>;
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()>();
virtualinvoke v.<javassist.bytecode.FieldInfo: void compact(javassist.bytecode.ConstPool)>(v);
goto label;
label:
v = v.<javassist.bytecode.ClassFile: java.util.List attributes>;
v = staticinvoke <javassist.bytecode.AttributeInfo: java.util.List copyAll(java.util.List,javassist.bytecode.ConstPool)>(v, v);
v.<javassist.bytecode.ClassFile: java.util.List attributes> = v;
v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool> = v;
return;
}
private javassist.bytecode.ConstPool compact0()
{
javassist.bytecode.ConstPool v, v;
int[] v, v, v, v;
int v, v, v, v, v, v;
java.lang.String v, v, v, v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v = new javassist.bytecode.ConstPool;
v = v.<javassist.bytecode.ClassFile: java.lang.String thisclassname>;
specialinvoke v.<javassist.bytecode.ConstPool: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<javassist.bytecode.ConstPool: int getThisClassInfo()>();
v.<javassist.bytecode.ClassFile: int thisClass> = v;
v = virtualinvoke v.<javassist.bytecode.ClassFile: java.lang.String getSuperclass()>();
if v == null goto label;
v = virtualinvoke v.<javassist.bytecode.ClassFile: java.lang.String getSuperclass()>();
v = virtualinvoke v.<javassist.bytecode.ConstPool: int addClassInfo(java.lang.String)>(v);
v.<javassist.bytecode.ClassFile: int superClass> = v;
label:
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
if v == null goto label;
v = 0;
label:
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
v = lengthof v;
if v >= v goto label;
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
v = v[v];
v = virtualinvoke v.<javassist.bytecode.ConstPool: java.lang.String getClassInfo(int)>(v);
v = virtualinvoke v.<javassist.bytecode.ConstPool: int addClassInfo(java.lang.String)>(v);
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
public void prune()
{
javassist.bytecode.ConstPool v;
java.util.ArrayList v;
boolean v, v;
java.util.Iterator v, v;
javassist.bytecode.ClassFile v;
java.util.List v, v;
java.lang.Object v, v;
javassist.bytecode.AttributeInfo v, v, v, v, v, v;
v := @this: javassist.bytecode.ClassFile;
v = specialinvoke v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool compact0()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = virtualinvoke v.<javassist.bytecode.ClassFile: javassist.bytecode.AttributeInfo getAttribute(java.lang.String)>("RuntimeInvisibleAnnotations");
if v == null goto label;
v = virtualinvoke v.<javassist.bytecode.AttributeInfo: javassist.bytecode.AttributeInfo copy(javassist.bytecode.ConstPool,java.util.Map)>(v, null);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = virtualinvoke v.<javassist.bytecode.ClassFile: javassist.bytecode.AttributeInfo getAttribute(java.lang.String)>("RuntimeVisibleAnnotations");
if v == null goto label;
v = virtualinvoke v.<javassist.bytecode.AttributeInfo: javassist.bytecode.AttributeInfo copy(javassist.bytecode.ConstPool,java.util.Map)>(v, null);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = virtualinvoke v.<javassist.bytecode.ClassFile: javassist.bytecode.AttributeInfo getAttribute(java.lang.String)>("Signature");
if v == null goto label;
v = virtualinvoke v.<javassist.bytecode.AttributeInfo: javassist.bytecode.AttributeInfo copy(javassist.bytecode.ConstPool,java.util.Map)>(v, null);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
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()>();
virtualinvoke v.<javassist.bytecode.MethodInfo: void prune(javassist.bytecode.ConstPool)>(v);
goto label;
label:
v = v.<javassist.bytecode.ClassFile: java.util.List fields>;
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()>();
virtualinvoke v.<javassist.bytecode.FieldInfo: void prune(javassist.bytecode.ConstPool)>(v);
goto label;
label:
v.<javassist.bytecode.ClassFile: java.util.List attributes> = v;
v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool> = v;
return;
}
public javassist.bytecode.ConstPool getConstPool()
{
javassist.bytecode.ConstPool v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
return v;
}
public boolean isInterface()
{
javassist.bytecode.ClassFile v;
int v, v;
boolean v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: int accessFlags>;
v = v & 512;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isFinal()
{
javassist.bytecode.ClassFile v;
int v, v;
boolean v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: int accessFlags>;
v = v & 16;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isAbstract()
{
javassist.bytecode.ClassFile v;
int v, v;
boolean v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: int accessFlags>;
v = v & 1024;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int getAccessFlags()
{
int v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: int accessFlags>;
return v;
}
public void setAccessFlags(int)
{
int v, v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: int;
v = v & 512;
if v != 0 goto label;
v = v | 32;
label:
v.<javassist.bytecode.ClassFile: int accessFlags> = v;
return;
}
public int getInnerAccessFlags()
{
javassist.bytecode.ClassFile v;
int v, v, v, v, v;
javassist.bytecode.AttributeInfo v;
java.lang.String v, v;
boolean v;
v := @this: javassist.bytecode.ClassFile;
v = virtualinvoke v.<javassist.bytecode.ClassFile: javassist.bytecode.AttributeInfo getAttribute(java.lang.String)>("InnerClasses");
if v != null goto label;
v = (int) -1;
return v;
label:
v = virtualinvoke v.<javassist.bytecode.ClassFile: java.lang.String getName()>();
v = virtualinvoke v.<javassist.bytecode.InnerClassesAttribute: int tableLength()>();
v = 0;
label:
if v >= v goto label;
v = virtualinvoke v.<javassist.bytecode.InnerClassesAttribute: java.lang.String innerClass(int)>(v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<javassist.bytecode.InnerClassesAttribute: int accessFlags(int)>(v);
return v;
label:
v = v + 1;
goto label;
label:
v = (int) -1;
return v;
}
public java.lang.String getName()
{
java.lang.String v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: java.lang.String thisclassname>;
return v;
}
public void setName(java.lang.String)
{
java.lang.String v, v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.lang.String;
v = v.<javassist.bytecode.ClassFile: java.lang.String thisclassname>;
virtualinvoke v.<javassist.bytecode.ClassFile: void renameClass(java.lang.String,java.lang.String)>(v, v);
return;
}
public java.lang.String getSuperclass()
{
javassist.bytecode.ConstPool v;
javassist.bytecode.ClassFile v;
int v;
java.lang.String v, v, v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: java.lang.String cachedSuperclass>;
if v != null goto label;
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = v.<javassist.bytecode.ClassFile: int superClass>;
v = virtualinvoke v.<javassist.bytecode.ConstPool: java.lang.String getClassInfo(int)>(v);
v.<javassist.bytecode.ClassFile: java.lang.String cachedSuperclass> = v;
label:
v = v.<javassist.bytecode.ClassFile: java.lang.String cachedSuperclass>;
return v;
}
public int getSuperclassId()
{
int v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: int superClass>;
return v;
}
public void setSuperclass(java.lang.String) throws javassist.CannotCompileException
{
javassist.bytecode.ConstPool v;
javassist.CannotCompileException v;
javassist.bytecode.BadBytecode v;
java.util.Iterator v;
javassist.bytecode.ClassFile v;
java.util.List v;
int v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.lang.String;
if v != null goto label;
v = "java.lang.Object";
label:
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = virtualinvoke v.<javassist.bytecode.ConstPool: int addClassInfo(java.lang.String)>(v);
v.<javassist.bytecode.ClassFile: int superClass> = v;
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
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()>();
virtualinvoke v.<javassist.bytecode.MethodInfo: void setSuperclass(java.lang.String)>(v);
goto label;
label:
v := @caughtexception;
v = new javassist.CannotCompileException;
specialinvoke v.<javassist.CannotCompileException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v.<javassist.bytecode.ClassFile: java.lang.String cachedSuperclass> = v;
return;
catch javassist.bytecode.BadBytecode from label to label with label;
}
public final void renameClass(java.lang.String, java.lang.String)
{
javassist.bytecode.ConstPool v;
java.lang.String v, v, v, v, v, v, v, v, v;
boolean v, v, v, v;
java.util.Iterator v, v;
javassist.bytecode.ClassFile v;
java.util.List v, v, v, v, v;
java.lang.Object v, v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return;
label:
v = v.<javassist.bytecode.ClassFile: java.lang.String thisclassname>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v.<javassist.bytecode.ClassFile: java.lang.String thisclassname> = v;
label:
v = staticinvoke <javassist.bytecode.Descriptor: java.lang.String toJvmName(java.lang.String)>(v);
v = staticinvoke <javassist.bytecode.Descriptor: java.lang.String toJvmName(java.lang.String)>(v);
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
virtualinvoke v.<javassist.bytecode.ConstPool: void renameClass(java.lang.String,java.lang.String)>(v, v);
v = v.<javassist.bytecode.ClassFile: java.util.List attributes>;
staticinvoke <javassist.bytecode.AttributeInfo: void renameClass(java.util.List,java.lang.String,java.lang.String)>(v, v, v);
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
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 = virtualinvoke v.<javassist.bytecode.MethodInfo: java.lang.String getDescriptor()>();
v = staticinvoke <javassist.bytecode.Descriptor: java.lang.String rename(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
virtualinvoke v.<javassist.bytecode.MethodInfo: void setDescriptor(java.lang.String)>(v);
v = virtualinvoke v.<javassist.bytecode.MethodInfo: java.util.List getAttributes()>();
staticinvoke <javassist.bytecode.AttributeInfo: void renameClass(java.util.List,java.lang.String,java.lang.String)>(v, v, v);
goto label;
label:
v = v.<javassist.bytecode.ClassFile: java.util.List fields>;
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 = virtualinvoke v.<javassist.bytecode.FieldInfo: java.lang.String getDescriptor()>();
v = staticinvoke <javassist.bytecode.Descriptor: java.lang.String rename(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
virtualinvoke v.<javassist.bytecode.FieldInfo: void setDescriptor(java.lang.String)>(v);
v = virtualinvoke v.<javassist.bytecode.FieldInfo: java.util.List getAttributes()>();
staticinvoke <javassist.bytecode.AttributeInfo: void renameClass(java.util.List,java.lang.String,java.lang.String)>(v, v, v);
goto label;
label:
return;
}
public final void renameClass(java.util.Map)
{
javassist.bytecode.ConstPool v;
java.util.Map v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v;
java.util.Iterator v, v;
javassist.bytecode.ClassFile v;
java.util.List v, v, v, v, v;
java.lang.Object v, v, v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.util.Map;
v = v.<javassist.bytecode.ClassFile: java.lang.String thisclassname>;
v = staticinvoke <javassist.bytecode.Descriptor: java.lang.String toJvmName(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = staticinvoke <javassist.bytecode.Descriptor: java.lang.String toJavaName(java.lang.String)>(v);
v.<javassist.bytecode.ClassFile: java.lang.String thisclassname> = v;
label:
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
virtualinvoke v.<javassist.bytecode.ConstPool: void renameClass(java.util.Map)>(v);
v = v.<javassist.bytecode.ClassFile: java.util.List attributes>;
staticinvoke <javassist.bytecode.AttributeInfo: void renameClass(java.util.List,java.util.Map)>(v, v);
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
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 = virtualinvoke v.<javassist.bytecode.MethodInfo: java.lang.String getDescriptor()>();
v = staticinvoke <javassist.bytecode.Descriptor: java.lang.String rename(java.lang.String,java.util.Map)>(v, v);
virtualinvoke v.<javassist.bytecode.MethodInfo: void setDescriptor(java.lang.String)>(v);
v = virtualinvoke v.<javassist.bytecode.MethodInfo: java.util.List getAttributes()>();
staticinvoke <javassist.bytecode.AttributeInfo: void renameClass(java.util.List,java.util.Map)>(v, v);
goto label;
label:
v = v.<javassist.bytecode.ClassFile: java.util.List fields>;
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 = virtualinvoke v.<javassist.bytecode.FieldInfo: java.lang.String getDescriptor()>();
v = staticinvoke <javassist.bytecode.Descriptor: java.lang.String rename(java.lang.String,java.util.Map)>(v, v);
virtualinvoke v.<javassist.bytecode.FieldInfo: void setDescriptor(java.lang.String)>(v);
v = virtualinvoke v.<javassist.bytecode.FieldInfo: java.util.List getAttributes()>();
staticinvoke <javassist.bytecode.AttributeInfo: void renameClass(java.util.List,java.util.Map)>(v, v);
goto label;
label:
return;
}
public final void getRefClasses(java.util.Map)
{
javassist.bytecode.ConstPool v;
java.util.Map v;
java.lang.String v, v;
boolean v, v;
java.util.Iterator v, v;
javassist.bytecode.ClassFile v;
java.util.List v, v, v, v, v;
java.lang.Object v, v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.util.Map;
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
virtualinvoke v.<javassist.bytecode.ConstPool: void renameClass(java.util.Map)>(v);
v = v.<javassist.bytecode.ClassFile: java.util.List attributes>;
staticinvoke <javassist.bytecode.AttributeInfo: void getRefClasses(java.util.List,java.util.Map)>(v, v);
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
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 = virtualinvoke v.<javassist.bytecode.MethodInfo: java.lang.String getDescriptor()>();
staticinvoke <javassist.bytecode.Descriptor: java.lang.String rename(java.lang.String,java.util.Map)>(v, v);
v = virtualinvoke v.<javassist.bytecode.MethodInfo: java.util.List getAttributes()>();
staticinvoke <javassist.bytecode.AttributeInfo: void getRefClasses(java.util.List,java.util.Map)>(v, v);
goto label;
label:
v = v.<javassist.bytecode.ClassFile: java.util.List fields>;
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 = virtualinvoke v.<javassist.bytecode.FieldInfo: java.lang.String getDescriptor()>();
staticinvoke <javassist.bytecode.Descriptor: java.lang.String rename(java.lang.String,java.util.Map)>(v, v);
v = virtualinvoke v.<javassist.bytecode.FieldInfo: java.util.List getAttributes()>();
staticinvoke <javassist.bytecode.AttributeInfo: void getRefClasses(java.util.List,java.util.Map)>(v, v);
goto label;
label:
return;
}
public java.lang.String[] getInterfaces()
{
javassist.bytecode.ConstPool v;
javassist.bytecode.ClassFile v;
java.lang.String[] v, v, v, v;
int[] v, v, v, v;
int v, v, v, v;
java.lang.String v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: java.lang.String[] cachedInterfaces>;
if v == null goto label;
v = v.<javassist.bytecode.ClassFile: java.lang.String[] cachedInterfaces>;
return v;
label:
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
if v != null goto label;
v = newarray (java.lang.String)[0];
goto label;
label:
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
v = lengthof v;
v = newarray (java.lang.String)[v];
v = 0;
label:
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
v = lengthof v;
if v >= v goto label;
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
v = v[v];
v = virtualinvoke v.<javassist.bytecode.ConstPool: java.lang.String getClassInfo(int)>(v);
v[v] = v;
v = v + 1;
goto label;
label:
v = v;
label:
v.<javassist.bytecode.ClassFile: java.lang.String[] cachedInterfaces> = v;
return v;
}
public void setInterfaces(java.lang.String[])
{
javassist.bytecode.ConstPool v;
javassist.bytecode.ClassFile v;
java.lang.String[] v;
int[] v, v;
int v, v, v, v;
java.lang.String v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.lang.String[];
v.<javassist.bytecode.ClassFile: java.lang.String[] cachedInterfaces> = null;
if v == null goto label;
v = lengthof v;
v = newarray (int)[v];
v.<javassist.bytecode.ClassFile: int[] interfaces> = v;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = v[v];
v = virtualinvoke v.<javassist.bytecode.ConstPool: int addClassInfo(java.lang.String)>(v);
v[v] = v;
v = v + 1;
goto label;
label:
return;
}
public void addInterface(java.lang.String)
{
javassist.bytecode.ConstPool v;
javassist.bytecode.ClassFile v;
int[] v, v, v, v, v, v;
int v, v, v;
java.lang.String v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.lang.String;
v.<javassist.bytecode.ClassFile: java.lang.String[] cachedInterfaces> = null;
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = virtualinvoke v.<javassist.bytecode.ConstPool: int addClassInfo(java.lang.String)>(v);
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
if v != null goto label;
v = newarray (int)[1];
v.<javassist.bytecode.ClassFile: int[] interfaces> = v;
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
v[0] = v;
goto label;
label:
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
v = lengthof v;
v = v + 1;
v = newarray (int)[v];
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v[v] = v;
v.<javassist.bytecode.ClassFile: int[] interfaces> = v;
label:
return;
}
public java.util.List getFields()
{
java.util.List v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: java.util.List fields>;
return v;
}
public void addField(javassist.bytecode.FieldInfo) throws javassist.bytecode.DuplicateMemberException
{
javassist.bytecode.FieldInfo v;
java.util.List v;
javassist.bytecode.ClassFile v;
java.lang.String v, v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: javassist.bytecode.FieldInfo;
v = virtualinvoke v.<javassist.bytecode.FieldInfo: java.lang.String getName()>();
v = virtualinvoke v.<javassist.bytecode.FieldInfo: java.lang.String getDescriptor()>();
specialinvoke v.<javassist.bytecode.ClassFile: void testExistingField(java.lang.String,java.lang.String)>(v, v);
v = v.<javassist.bytecode.ClassFile: java.util.List fields>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
public final void addField2(javassist.bytecode.FieldInfo)
{
javassist.bytecode.FieldInfo v;
java.util.List v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: javassist.bytecode.FieldInfo;
v = v.<javassist.bytecode.ClassFile: java.util.List fields>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
private void testExistingField(java.lang.String, java.lang.String) throws javassist.bytecode.DuplicateMemberException
{
java.util.Iterator v;
javassist.bytecode.ClassFile v;
javassist.bytecode.DuplicateMemberException v;
java.util.List v;
java.lang.Object v;
java.lang.String v, v, v, v;
boolean v, v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v.<javassist.bytecode.ClassFile: java.util.List fields>;
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 = virtualinvoke v.<javassist.bytecode.FieldInfo: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = new javassist.bytecode.DuplicateMemberException;
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[])>("duplicate field: \u0001");
specialinvoke v.<javassist.bytecode.DuplicateMemberException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
public java.util.List getMethods()
{
java.util.List v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
return v;
}
public javassist.bytecode.MethodInfo getMethod(java.lang.String)
{
java.util.Iterator v;
javassist.bytecode.ClassFile v;
java.util.List v;
java.lang.Object v;
java.lang.String v, v;
boolean v, v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.lang.String;
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
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 = virtualinvoke v.<javassist.bytecode.MethodInfo: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return v;
label:
return null;
}
public javassist.bytecode.MethodInfo getStaticInitializer()
{
javassist.bytecode.MethodInfo v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v = virtualinvoke v.<javassist.bytecode.ClassFile: javassist.bytecode.MethodInfo getMethod(java.lang.String)>("<clinit>");
return v;
}
public void addMethod(javassist.bytecode.MethodInfo) throws javassist.bytecode.DuplicateMemberException
{
javassist.bytecode.MethodInfo v;
java.util.List v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: javassist.bytecode.MethodInfo;
specialinvoke v.<javassist.bytecode.ClassFile: void testExistingMethod(javassist.bytecode.MethodInfo)>(v);
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
public final void addMethod2(javassist.bytecode.MethodInfo)
{
javassist.bytecode.MethodInfo v;
java.util.List v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: javassist.bytecode.MethodInfo;
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
private void testExistingMethod(javassist.bytecode.MethodInfo) throws javassist.bytecode.DuplicateMemberException
{
javassist.bytecode.ClassFile v;
java.util.ListIterator v;
javassist.bytecode.DuplicateMemberException v;
java.util.List v;
javassist.bytecode.MethodInfo v;
java.lang.Object v;
java.lang.String v, v, v, v;
boolean v, v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: javassist.bytecode.MethodInfo;
v = virtualinvoke v.<javassist.bytecode.MethodInfo: java.lang.String getName()>();
v = virtualinvoke v.<javassist.bytecode.MethodInfo: java.lang.String getDescriptor()>();
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
v = interfaceinvoke v.<java.util.List: java.util.ListIterator listIterator(int)>(0);
label:
v = interfaceinvoke v.<java.util.ListIterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.ListIterator: java.lang.Object next()>();
v = staticinvoke <javassist.bytecode.ClassFile: boolean isDuplicated(javassist.bytecode.MethodInfo,java.lang.String,java.lang.String,javassist.bytecode.MethodInfo,java.util.ListIterator)>(v, v, v, v, v);
if v == 0 goto label;
v = new javassist.bytecode.DuplicateMemberException;
v = virtualinvoke v.<javassist.bytecode.ClassFile: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, 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[])>("duplicate method: \u in \u0001");
specialinvoke v.<javassist.bytecode.DuplicateMemberException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
private static boolean isDuplicated(javassist.bytecode.MethodInfo, java.lang.String, java.lang.String, javassist.bytecode.MethodInfo, java.util.ListIterator)
{
java.util.ListIterator v;
javassist.bytecode.MethodInfo v, v;
java.lang.String v, v, v, v;
boolean v, v, v, v;
v := @parameter: javassist.bytecode.MethodInfo;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: javassist.bytecode.MethodInfo;
v := @parameter: java.util.ListIterator;
v = virtualinvoke v.<javassist.bytecode.MethodInfo: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
return 0;
label:
v = virtualinvoke v.<javassist.bytecode.MethodInfo: java.lang.String getDescriptor()>();
v = staticinvoke <javassist.bytecode.Descriptor: boolean eqParamTypes(java.lang.String,java.lang.String)>(v, v);
if v != 0 goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = staticinvoke <javassist.bytecode.ClassFile: boolean notBridgeMethod(javassist.bytecode.MethodInfo)>(v);
if v == 0 goto label;
return 1;
label:
interfaceinvoke v.<java.util.ListIterator: void remove()>();
return 0;
label:
return 0;
}
private static boolean notBridgeMethod(javassist.bytecode.MethodInfo)
{
int v, v;
javassist.bytecode.MethodInfo v;
boolean v;
v := @parameter: javassist.bytecode.MethodInfo;
v = virtualinvoke v.<javassist.bytecode.MethodInfo: int getAccessFlags()>();
v = v & 64;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.util.List getAttributes()
{
java.util.List v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: java.util.List attributes>;
return v;
}
public javassist.bytecode.AttributeInfo getAttribute(java.lang.String)
{
java.util.Iterator v;
javassist.bytecode.ClassFile v;
java.util.List v;
java.lang.Object v;
java.lang.String v, v;
boolean v, v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.lang.String;
v = v.<javassist.bytecode.ClassFile: java.util.List attributes>;
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 = virtualinvoke v.<javassist.bytecode.AttributeInfo: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return v;
label:
return null;
}
public javassist.bytecode.AttributeInfo removeAttribute(java.lang.String)
{
java.util.List v;
javassist.bytecode.ClassFile v;
javassist.bytecode.AttributeInfo v;
java.lang.String v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.lang.String;
v = v.<javassist.bytecode.ClassFile: java.util.List attributes>;
v = staticinvoke <javassist.bytecode.AttributeInfo: javassist.bytecode.AttributeInfo remove(java.util.List,java.lang.String)>(v, v);
return v;
}
public void addAttribute(javassist.bytecode.AttributeInfo)
{
java.util.List v, v;
javassist.bytecode.ClassFile v;
javassist.bytecode.AttributeInfo v;
java.lang.String v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: javassist.bytecode.AttributeInfo;
v = v.<javassist.bytecode.ClassFile: java.util.List attributes>;
v = virtualinvoke v.<javassist.bytecode.AttributeInfo: java.lang.String getName()>();
staticinvoke <javassist.bytecode.AttributeInfo: javassist.bytecode.AttributeInfo remove(java.util.List,java.lang.String)>(v, v);
v = v.<javassist.bytecode.ClassFile: java.util.List attributes>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
public java.lang.String getSourceFile()
{
javassist.bytecode.AttributeInfo v;
java.lang.String v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v = virtualinvoke v.<javassist.bytecode.ClassFile: javassist.bytecode.AttributeInfo getAttribute(java.lang.String)>("SourceFile");
if v != null goto label;
return null;
label:
v = virtualinvoke v.<javassist.bytecode.SourceFileAttribute: java.lang.String getFileName()>();
return v;
}
private void read(java.io.DataInputStream) throws java.io.IOException
{
javassist.bytecode.ConstPool v, v, v, v;
javassist.bytecode.FieldInfo v;
int[] v, v;
javassist.bytecode.MethodInfo v;
java.io.DataInputStream v;
java.util.ArrayList v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
javassist.bytecode.ClassFile v;
java.io.IOException v;
javassist.bytecode.AttributeInfo v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.io.DataInputStream;
v = virtualinvoke v.<java.io.DataInputStream: int readInt()>();
if v == -889275714 goto label;
v = new java.io.IOException;
v = staticinvoke <java.lang.Integer: java.lang.String toHexString(int)>(v);
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[])>("bad magic number: \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.io.DataInputStream: int readUnsignedShort()>();
v.<javassist.bytecode.ClassFile: int minor> = v;
v = virtualinvoke v.<java.io.DataInputStream: int readUnsignedShort()>();
v.<javassist.bytecode.ClassFile: int major> = v;
v = new javassist.bytecode.ConstPool;
specialinvoke v.<javassist.bytecode.ConstPool: void <init>(java.io.DataInputStream)>(v);
v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool> = v;
v = virtualinvoke v.<java.io.DataInputStream: int readUnsignedShort()>();
v.<javassist.bytecode.ClassFile: int accessFlags> = v;
v = virtualinvoke v.<java.io.DataInputStream: int readUnsignedShort()>();
v.<javassist.bytecode.ClassFile: int thisClass> = v;
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = v.<javassist.bytecode.ClassFile: int thisClass>;
virtualinvoke v.<javassist.bytecode.ConstPool: void setThisClassInfo(int)>(v);
v = virtualinvoke v.<java.io.DataInputStream: int readUnsignedShort()>();
v.<javassist.bytecode.ClassFile: int superClass> = v;
v = virtualinvoke v.<java.io.DataInputStream: int readUnsignedShort()>();
if v != 0 goto label;
v.<javassist.bytecode.ClassFile: int[] interfaces> = null;
goto label;
label:
v = newarray (int)[v];
v.<javassist.bytecode.ClassFile: int[] interfaces> = v;
v = 0;
label:
if v >= v goto label;
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
v = virtualinvoke v.<java.io.DataInputStream: int readUnsignedShort()>();
v[v] = v;
v = v + 1;
goto label;
label:
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = virtualinvoke v.<java.io.DataInputStream: int readUnsignedShort()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<javassist.bytecode.ClassFile: java.util.List fields> = v;
v = 0;
label:
if v >= v goto label;
v = new javassist.bytecode.FieldInfo;
specialinvoke v.<javassist.bytecode.FieldInfo: void <init>(javassist.bytecode.ConstPool,java.io.DataInputStream)>(v, v);
virtualinvoke v.<javassist.bytecode.ClassFile: void addField2(javassist.bytecode.FieldInfo)>(v);
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.io.DataInputStream: int readUnsignedShort()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<javassist.bytecode.ClassFile: java.util.List methods> = v;
v = 0;
label:
if v >= v goto label;
v = new javassist.bytecode.MethodInfo;
specialinvoke v.<javassist.bytecode.MethodInfo: void <init>(javassist.bytecode.ConstPool,java.io.DataInputStream)>(v, v);
virtualinvoke v.<javassist.bytecode.ClassFile: void addMethod2(javassist.bytecode.MethodInfo)>(v);
v = v + 1;
goto label;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<javassist.bytecode.ClassFile: java.util.List attributes> = v;
v = virtualinvoke v.<java.io.DataInputStream: int readUnsignedShort()>();
v = 0;
label:
if v >= v goto label;
v = staticinvoke <javassist.bytecode.AttributeInfo: javassist.bytecode.AttributeInfo read(javassist.bytecode.ConstPool,java.io.DataInputStream)>(v, v);
virtualinvoke v.<javassist.bytecode.ClassFile: void addAttribute(javassist.bytecode.AttributeInfo)>(v);
v = v + 1;
goto label;
label:
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
v = v.<javassist.bytecode.ClassFile: int thisClass>;
v = virtualinvoke v.<javassist.bytecode.ConstPool: java.lang.String getClassInfo(int)>(v);
v.<javassist.bytecode.ClassFile: java.lang.String thisclassname> = v;
return;
}
public void write(java.io.DataOutputStream) throws java.io.IOException
{
javassist.bytecode.ConstPool v;
java.io.DataOutputStream v;
int[] v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
boolean v;
java.util.Iterator v;
javassist.bytecode.ClassFile v;
java.util.List v, v, v, v, v, v;
java.lang.Object v, v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: java.io.DataOutputStream;
virtualinvoke v.<java.io.DataOutputStream: void writeInt(int)>(-889275714);
v = v.<javassist.bytecode.ClassFile: int minor>;
virtualinvoke v.<java.io.DataOutputStream: void writeShort(int)>(v);
v = v.<javassist.bytecode.ClassFile: int major>;
virtualinvoke v.<java.io.DataOutputStream: void writeShort(int)>(v);
v = v.<javassist.bytecode.ClassFile: javassist.bytecode.ConstPool constPool>;
virtualinvoke v.<javassist.bytecode.ConstPool: void write(java.io.DataOutputStream)>(v);
v = v.<javassist.bytecode.ClassFile: int accessFlags>;
virtualinvoke v.<java.io.DataOutputStream: void writeShort(int)>(v);
v = v.<javassist.bytecode.ClassFile: int thisClass>;
virtualinvoke v.<java.io.DataOutputStream: void writeShort(int)>(v);
v = v.<javassist.bytecode.ClassFile: int superClass>;
virtualinvoke v.<java.io.DataOutputStream: void writeShort(int)>(v);
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
if v != null goto label;
v = 0;
goto label;
label:
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
v = lengthof v;
label:
virtualinvoke v.<java.io.DataOutputStream: void writeShort(int)>(v);
v = 0;
label:
if v >= v goto label;
v = v.<javassist.bytecode.ClassFile: int[] interfaces>;
v = v[v];
virtualinvoke v.<java.io.DataOutputStream: void writeShort(int)>(v);
v = v + 1;
goto label;
label:
v = v.<javassist.bytecode.ClassFile: java.util.List fields>;
v = interfaceinvoke v.<java.util.List: int size()>();
virtualinvoke v.<java.io.DataOutputStream: void writeShort(int)>(v);
v = 0;
label:
if v >= v goto label;
v = v.<javassist.bytecode.ClassFile: java.util.List fields>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
virtualinvoke v.<javassist.bytecode.FieldInfo: void write(java.io.DataOutputStream)>(v);
v = v + 1;
goto label;
label:
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
v = interfaceinvoke v.<java.util.List: int size()>();
virtualinvoke v.<java.io.DataOutputStream: void writeShort(int)>(v);
v = v.<javassist.bytecode.ClassFile: java.util.List methods>;
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()>();
virtualinvoke v.<javassist.bytecode.MethodInfo: void write(java.io.DataOutputStream)>(v);
goto label;
label:
v = v.<javassist.bytecode.ClassFile: java.util.List attributes>;
v = interfaceinvoke v.<java.util.List: int size()>();
virtualinvoke v.<java.io.DataOutputStream: void writeShort(int)>(v);
v = v.<javassist.bytecode.ClassFile: java.util.List attributes>;
staticinvoke <javassist.bytecode.AttributeInfo: void writeAll(java.util.List,java.io.DataOutputStream)>(v, v);
return;
}
public int getMajorVersion()
{
int v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: int major>;
return v;
}
public void setMajorVersion(int)
{
int v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: int;
v.<javassist.bytecode.ClassFile: int major> = v;
return;
}
public int getMinorVersion()
{
int v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v = v.<javassist.bytecode.ClassFile: int minor>;
return v;
}
public void setMinorVersion(int)
{
int v;
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v := @parameter: int;
v.<javassist.bytecode.ClassFile: int minor> = v;
return;
}
public void setVersionToJava5()
{
javassist.bytecode.ClassFile v;
v := @this: javassist.bytecode.ClassFile;
v.<javassist.bytecode.ClassFile: int major> = 49;
v.<javassist.bytecode.ClassFile: int minor> = 0;
return;
}
static void <clinit>()
{
java.lang.Throwable v;
byte v;
java.lang.Class[] v, v;
java.lang.Class v, v;
java.lang.ClassLoader v;
v = 47;
label:
staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("java.lang.StringBuilder");
v = 49;
staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("java.util.zip.DeflaterInputStream");
v = 50;
v = staticinvoke <java.lang.ClassLoader: java.lang.ClassLoader getSystemClassLoader()>();
staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String,boolean,java.lang.ClassLoader)>("java.lang.invoke.CallSite", 0, v);
v = 51;
staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("java.util.function.Function");
v = 52;
staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("java.lang.Module");
v = 53;
v = class "Ljava/util/List;";
v = newarray (java.lang.Class)[1];
v[0] = class "Ljava/util/Collection;";
virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("copyOf", v);
v = 54;
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("java.util.Optional");
v = newarray (java.lang.Class)[0];
virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("isEmpty", v);
v = 55;
label:
goto label;
label:
v := @caughtexception;
label:
<javassist.bytecode.ClassFile: int MAJOR_VERSION> = v;
return;
catch java.lang.Throwable from label to label with label;
}
}