public class javassist.util.proxy.FactoryHelper extends java.lang.Object
{
public static final java.lang.Class[] primitiveTypes;
public static final java.lang.String[] wrapperTypes;
public static final java.lang.String[] wrapperDesc;
public static final java.lang.String[] unwarpMethods;
public static final java.lang.String[] unwrapDesc;
public static final int[] dataSize;
public void <init>()
{
javassist.util.proxy.FactoryHelper v;
v := @this: javassist.util.proxy.FactoryHelper;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static final int typeIndex(java.lang.Class)
{
java.lang.Class[] v, v;
java.lang.RuntimeException v;
int v, v;
java.lang.Class v, v;
java.lang.String v, v;
v := @parameter: java.lang.Class;
v = 0;
label:
v = <javassist.util.proxy.FactoryHelper: java.lang.Class[] primitiveTypes>;
v = lengthof v;
if v >= v goto label;
v = <javassist.util.proxy.FactoryHelper: java.lang.Class[] primitiveTypes>;
v = v[v];
if v != v goto label;
return v;
label:
v = v + 1;
goto label;
label:
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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 type:\u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
throw v;
}
public static java.lang.Class toClass(javassist.bytecode.ClassFile, java.lang.ClassLoader) throws javassist.CannotCompileException
{
java.lang.Class v;
java.lang.ClassLoader v;
javassist.bytecode.ClassFile v;
v := @parameter: javassist.bytecode.ClassFile;
v := @parameter: java.lang.ClassLoader;
v = staticinvoke <javassist.util.proxy.FactoryHelper: java.lang.Class toClass(javassist.bytecode.ClassFile,java.lang.Class,java.lang.ClassLoader,java.security.ProtectionDomain)>(v, null, v, null);
return v;
}
public static java.lang.Class toClass(javassist.bytecode.ClassFile, java.lang.ClassLoader, java.security.ProtectionDomain) throws javassist.CannotCompileException
{
javassist.bytecode.ClassFile v;
java.security.ProtectionDomain v;
java.lang.Class v;
java.lang.ClassLoader v;
v := @parameter: javassist.bytecode.ClassFile;
v := @parameter: java.lang.ClassLoader;
v := @parameter: java.security.ProtectionDomain;
v = staticinvoke <javassist.util.proxy.FactoryHelper: java.lang.Class toClass(javassist.bytecode.ClassFile,java.lang.Class,java.lang.ClassLoader,java.security.ProtectionDomain)>(v, null, v, v);
return v;
}
public static java.lang.Class toClass(javassist.bytecode.ClassFile, java.lang.Class, java.lang.ClassLoader, java.security.ProtectionDomain) throws javassist.CannotCompileException
{
byte[] v;
javassist.CannotCompileException v;
javassist.bytecode.ClassFile v;
java.io.IOException v;
java.security.ProtectionDomain v;
java.lang.Class v, v, v;
java.lang.ClassLoader v;
java.lang.String v, v;
boolean v;
v := @parameter: javassist.bytecode.ClassFile;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.ClassLoader;
v := @parameter: java.security.ProtectionDomain;
label:
v = staticinvoke <javassist.util.proxy.FactoryHelper: byte[] toBytecode(javassist.bytecode.ClassFile)>(v);
v = <javassist.util.proxy.ProxyFactory: boolean onlyPublicMethods>;
if v == 0 goto label;
v = virtualinvoke v.<javassist.bytecode.ClassFile: java.lang.String getName()>();
v = staticinvoke <javassist.util.proxy.DefineClassHelper: java.lang.Class toPublicClass(java.lang.String,byte[])>(v, v);
label:
return v;
label:
v = virtualinvoke v.<javassist.bytecode.ClassFile: java.lang.String getName()>();
v = staticinvoke <javassist.util.proxy.DefineClassHelper: java.lang.Class toClass(java.lang.String,java.lang.Class,java.lang.ClassLoader,java.security.ProtectionDomain,byte[])>(v, v, v, v, v);
label:
return v;
label:
v := @caughtexception;
v = new javassist.CannotCompileException;
specialinvoke v.<javassist.CannotCompileException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
public static java.lang.Class toClass(javassist.bytecode.ClassFile, java.lang.invoke.MethodHandles$Lookup) throws javassist.CannotCompileException
{
byte[] v;
javassist.CannotCompileException v;
java.lang.invoke.MethodHandles$Lookup v;
javassist.bytecode.ClassFile v;
java.io.IOException v;
java.lang.Class v;
v := @parameter: javassist.bytecode.ClassFile;
v := @parameter: java.lang.invoke.MethodHandles$Lookup;
label:
v = staticinvoke <javassist.util.proxy.FactoryHelper: byte[] toBytecode(javassist.bytecode.ClassFile)>(v);
v = staticinvoke <javassist.util.proxy.DefineClassHelper: java.lang.Class toClass(java.lang.invoke.MethodHandles$Lookup,byte[])>(v, v);
label:
return v;
label:
v := @caughtexception;
v = new javassist.CannotCompileException;
specialinvoke v.<javassist.CannotCompileException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.io.IOException from label to label with label;
}
private static byte[] toBytecode(javassist.bytecode.ClassFile) throws java.io.IOException
{
java.lang.Throwable v;
byte[] v;
java.io.ByteArrayOutputStream v;
java.io.DataOutputStream v;
javassist.bytecode.ClassFile v;
v := @parameter: javassist.bytecode.ClassFile;
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = new java.io.DataOutputStream;
specialinvoke v.<java.io.DataOutputStream: void <init>(java.io.OutputStream)>(v);
label:
virtualinvoke v.<javassist.bytecode.ClassFile: void write(java.io.DataOutputStream)>(v);
label:
virtualinvoke v.<java.io.DataOutputStream: void close()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.io.DataOutputStream: void close()>();
throw v;
label:
v = virtualinvoke v.<java.io.ByteArrayOutputStream: byte[] toByteArray()>();
return v;
catch java.lang.Throwable from label to label with label;
}
public static void writeFile(javassist.bytecode.ClassFile, java.lang.String) throws javassist.CannotCompileException
{
javassist.CannotCompileException v;
javassist.bytecode.ClassFile v;
java.io.IOException v;
java.lang.String v;
v := @parameter: javassist.bytecode.ClassFile;
v := @parameter: java.lang.String;
label:
staticinvoke <javassist.util.proxy.FactoryHelper: void writeFile0(javassist.bytecode.ClassFile,java.lang.String)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new javassist.CannotCompileException;
specialinvoke v.<javassist.CannotCompileException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.io.IOException from label to label with label;
}
private static void writeFile0(javassist.bytecode.ClassFile, java.lang.String) throws javassist.CannotCompileException, java.io.IOException
{
java.lang.Throwable v;
java.io.BufferedOutputStream v;
java.io.DataOutputStream v;
int v;
java.lang.String v, v, v, v, v;
boolean v;
javassist.bytecode.ClassFile v;
java.io.FileOutputStream v;
char v, v, v;
java.io.IOException v;
java.io.File v;
v := @parameter: javassist.bytecode.ClassFile;
v := @parameter: java.lang.String;
v = virtualinvoke v.<javassist.bytecode.ClassFile: java.lang.String getName()>();
v = <java.io.File: char separatorChar>;
v = <java.io.File: char separatorChar>;
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,char,java.lang.String)>(v, 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[])>("\u0001\u0001\u.class");
v = <java.io.File: char separatorChar>;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(v);
if v <= 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(".");
if v != 0 goto label;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
virtualinvoke v.<java.io.File: boolean mkdirs()>();
label:
v = new java.io.DataOutputStream;
v = new java.io.BufferedOutputStream;
v = new java.io.FileOutputStream;
specialinvoke v.<java.io.FileOutputStream: void <init>(java.lang.String)>(v);
specialinvoke v.<java.io.BufferedOutputStream: void <init>(java.io.OutputStream)>(v);
specialinvoke v.<java.io.DataOutputStream: void <init>(java.io.OutputStream)>(v);
label:
virtualinvoke v.<javassist.bytecode.ClassFile: void write(java.io.DataOutputStream)>(v);
label:
virtualinvoke v.<java.io.DataOutputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
virtualinvoke v.<java.io.DataOutputStream: void close()>();
throw v;
label:
return;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
static void <clinit>()
{
java.lang.Class[] v;
java.lang.String[] v, v, v, v;
int[] v;
java.lang.Class v, v, v, v, v, v, v, v, v;
v = newarray (java.lang.Class)[9];
v = <java.lang.Boolean: java.lang.Class TYPE>;
v[0] = v;
v = <java.lang.Byte: java.lang.Class TYPE>;
v[1] = v;
v = <java.lang.Character: java.lang.Class TYPE>;
v[2] = v;
v = <java.lang.Short: java.lang.Class TYPE>;
v[3] = v;
v = <java.lang.Integer: java.lang.Class TYPE>;
v[4] = v;
v = <java.lang.Long: java.lang.Class TYPE>;
v[5] = v;
v = <java.lang.Float: java.lang.Class TYPE>;
v[6] = v;
v = <java.lang.Double: java.lang.Class TYPE>;
v[7] = v;
v = <java.lang.Void: java.lang.Class TYPE>;
v[8] = v;
<javassist.util.proxy.FactoryHelper: java.lang.Class[] primitiveTypes> = v;
v = newarray (java.lang.String)[9];
v[0] = "java.lang.Boolean";
v[1] = "java.lang.Byte";
v[2] = "java.lang.Character";
v[3] = "java.lang.Short";
v[4] = "java.lang.Integer";
v[5] = "java.lang.Long";
v[6] = "java.lang.Float";
v[7] = "java.lang.Double";
v[8] = "java.lang.Void";
<javassist.util.proxy.FactoryHelper: java.lang.String[] wrapperTypes> = v;
v = newarray (java.lang.String)[8];
v[0] = "(Z)V";
v[1] = "(B)V";
v[2] = "(C)V";
v[3] = "(S)V";
v[4] = "(I)V";
v[5] = "(J)V";
v[6] = "(F)V";
v[7] = "(D)V";
<javassist.util.proxy.FactoryHelper: java.lang.String[] wrapperDesc> = v;
v = newarray (java.lang.String)[8];
v[0] = "booleanValue";
v[1] = "byteValue";
v[2] = "charValue";
v[3] = "shortValue";
v[4] = "intValue";
v[5] = "longValue";
v[6] = "floatValue";
v[7] = "doubleValue";
<javassist.util.proxy.FactoryHelper: java.lang.String[] unwarpMethods> = v;
v = newarray (java.lang.String)[8];
v[0] = "()Z";
v[1] = "()B";
v[2] = "()C";
v[3] = "()S";
v[4] = "()I";
v[5] = "()J";
v[6] = "()F";
v[7] = "()D";
<javassist.util.proxy.FactoryHelper: java.lang.String[] unwrapDesc> = v;
v = newarray (int)[8];
v[0] = 1;
v[1] = 1;
v[2] = 1;
v[3] = 1;
v[4] = 1;
v[5] = 2;
v[6] = 1;
v[7] = 2;
<javassist.util.proxy.FactoryHelper: int[] dataSize> = v;
return;
}
}