public class net.bytebuddy.agent.builder.LambdaFactory extends java.lang.Object
{
private static final java.lang.String FIELD_NAME;
public static final java.util.Map CLASS_FILE_TRANSFORMERS;
private final java.lang.Object target;
private final java.lang.reflect.Method dispatcher;
public void <init>(java.lang.Object, java.lang.reflect.Method)
{
java.lang.Object v;
java.lang.reflect.Method v;
net.bytebuddy.agent.builder.LambdaFactory v;
v := @this: net.bytebuddy.agent.builder.LambdaFactory;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.reflect.Method;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<net.bytebuddy.agent.builder.LambdaFactory: java.lang.Object target> = v;
v.<net.bytebuddy.agent.builder.LambdaFactory: java.lang.reflect.Method dispatcher> = v;
return;
}
public static boolean register(java.lang.instrument.ClassFileTransformer, java.lang.Object)
{
byte[] v;
java.lang.IllegalStateException v;
java.util.Map v, v;
java.lang.reflect.Method v, v;
boolean v;
java.lang.Exception v;
net.bytebuddy.description.type.TypeDescription v;
java.lang.Throwable v, v;
net.bytebuddy.dynamic.loading.ClassInjector v;
java.lang.Object[] v, v;
java.lang.reflect.Constructor v, v;
java.lang.instrument.ClassFileTransformer v;
java.lang.Class[] v, v, v, v;
java.lang.RuntimeException v;
java.lang.reflect.Field v;
java.lang.Class v, v, v, v;
java.lang.Object v, v, v, v, v;
v := @parameter: java.lang.instrument.ClassFileTransformer;
v := @parameter: java.lang.Object;
label:
v = staticinvoke <net.bytebuddy.description.type.TypeDescription$ForLoadedType: net.bytebuddy.description.type.TypeDescription of(java.lang.Class)>(class "Lnet/bytebuddy/agent/builder/LambdaFactory;");
v = staticinvoke <net.bytebuddy.dynamic.loading.ClassInjector$UsingReflection: net.bytebuddy.dynamic.loading.ClassInjector ofSystemClassLoader()>();
v = staticinvoke <net.bytebuddy.dynamic.ClassFileLocator$ForClassLoader: byte[] read(java.lang.Class)>(class "Lnet/bytebuddy/agent/builder/LambdaFactory;");
v = staticinvoke <java.util.Collections: java.util.Map singletonMap(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<net.bytebuddy.dynamic.loading.ClassInjector: java.util.Map inject(java.util.Map)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getField(java.lang.String)>("CLASS_FILE_TRANSFORMERS");
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Object get(java.lang.Object)>(null);
entermonitor v;
label:
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
goto label;
label:
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
goto label;
label:
throw v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>("Could not register class file transformer", v);
throw v;
label:
v = newarray (java.lang.Class)[2];
v[0] = class "Ljava/lang/Object;";
v[1] = class "Ljava/lang/reflect/Method;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[2];
v[0] = v;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = newarray (java.lang.Class)[10];
v[0] = class "Ljava/lang/Object;";
v[1] = class "Ljava/lang/String;";
v[2] = class "Ljava/lang/Object;";
v[3] = class "Ljava/lang/Object;";
v[4] = class "Ljava/lang/Object;";
v[5] = class "Ljava/lang/Object;";
v = <java.lang.Boolean: java.lang.Class TYPE>;
v[6] = v;
v[7] = class "Ljava/util/List;";
v[8] = class "Ljava/util/List;";
v[9] = class "Ljava/util/Collection;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("make", v);
v[1] = v;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = newarray (java.lang.Class)[2];
v[0] = class "Ljava/lang/Object;";
v[1] = class "Ljava/lang/reflect/Method;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[2];
v[0] = v;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = newarray (java.lang.Class)[10];
v[0] = class "Ljava/lang/Object;";
v[1] = class "Ljava/lang/String;";
v[2] = class "Ljava/lang/Object;";
v[3] = class "Ljava/lang/Object;";
v[4] = class "Ljava/lang/Object;";
v[5] = class "Ljava/lang/Object;";
v = <java.lang.Boolean: java.lang.Class TYPE>;
v[6] = v;
v[7] = class "Ljava/util/List;";
v[8] = class "Ljava/util/List;";
v[9] = class "Ljava/util/Collection;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("make", v);
v[1] = v;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
public static boolean release(java.lang.instrument.ClassFileTransformer)
{
java.lang.Throwable v;
java.lang.IllegalStateException v;
java.lang.RuntimeException v;
java.lang.reflect.Field v;
java.lang.Exception v;
java.lang.instrument.ClassFileTransformer v;
java.lang.Class v, v;
java.lang.Object v, v;
java.lang.ClassLoader v;
java.lang.String v;
boolean v, v;
v := @parameter: java.lang.instrument.ClassFileTransformer;
label:
v = staticinvoke <java.lang.ClassLoader: java.lang.ClassLoader getSystemClassLoader()>();
v = class "Lnet/bytebuddy/agent/builder/LambdaFactory;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getField(java.lang.String)>("CLASS_FILE_TRANSFORMERS");
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Object get(java.lang.Object)>(null);
entermonitor v;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>("Could not release class file transformer", v);
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
private byte[] invoke(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, boolean, java.util.List, java.util.List, java.util.Collection)
{
java.lang.IllegalStateException v;
java.lang.Object[] v;
java.lang.Boolean v;
java.lang.String v;
java.lang.reflect.Method v;
boolean v;
java.util.Collection v;
java.lang.RuntimeException v;
java.lang.Exception v;
java.util.List v, v;
net.bytebuddy.agent.builder.LambdaFactory v;
java.lang.Object v, v, v, v, v, v, v;
v := @this: net.bytebuddy.agent.builder.LambdaFactory;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: boolean;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v := @parameter: java.util.Collection;
label:
v = v.<net.bytebuddy.agent.builder.LambdaFactory: java.lang.reflect.Method dispatcher>;
v = v.<net.bytebuddy.agent.builder.LambdaFactory: java.lang.Object target>;
v = newarray (java.lang.Object)[10];
v[0] = v;
v[1] = v;
v[2] = v;
v[3] = v;
v[4] = v;
v[5] = v;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v[6] = v;
v[7] = v;
v[8] = v;
v[9] = v;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
label:
return v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>("Cannot create class for lambda expression", v);
throw v;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.Exception from label to label with label;
}
public static byte[] make(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, boolean, java.util.List, java.util.List)
{
byte[] v;
java.util.Map v, v;
java.lang.String v;
boolean v;
java.util.Iterator v;
java.util.Collection v;
java.util.Set v;
java.util.List v, v;
java.lang.Object v, v, v, v, v, v;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: boolean;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v = <net.bytebuddy.agent.builder.LambdaFactory: java.util.Map CLASS_FILE_TRANSFORMERS>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = <net.bytebuddy.agent.builder.LambdaFactory: java.util.Map CLASS_FILE_TRANSFORMERS>;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = specialinvoke v.<net.bytebuddy.agent.builder.LambdaFactory: byte[] invoke(java.lang.Object,java.lang.String,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,boolean,java.util.List,java.util.List,java.util.Collection)>(v, v, v, v, v, v, v, v, v, v);
return v;
}
static void <clinit>()
{
java.util.concurrent.ConcurrentHashMap v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
<net.bytebuddy.agent.builder.LambdaFactory: java.util.Map CLASS_FILE_TRANSFORMERS> = v;
return;
}
public boolean equals(java.lang.Object)
{
net.bytebuddy.agent.builder.LambdaFactory v;
java.lang.Class v, v;
java.lang.Object v, v, v;
java.lang.reflect.Method v, v;
boolean v, v;
v := @this: net.bytebuddy.agent.builder.LambdaFactory;
v := @parameter: java.lang.Object;
if v != v goto label;
return 1;
label:
if v != null goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v == v goto label;
return 0;
label:
v = v.<net.bytebuddy.agent.builder.LambdaFactory: java.lang.Object target>;
v = v.<net.bytebuddy.agent.builder.LambdaFactory: java.lang.Object target>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
return 0;
label:
v = v.<net.bytebuddy.agent.builder.LambdaFactory: java.lang.reflect.Method dispatcher>;
v = v.<net.bytebuddy.agent.builder.LambdaFactory: java.lang.reflect.Method dispatcher>;
v = virtualinvoke v.<java.lang.reflect.Method: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
return 0;
label:
return 1;
}
public int hashCode()
{
net.bytebuddy.agent.builder.LambdaFactory v;
int v, v, v, v, v, v, v;
java.lang.Class v;
java.lang.Object v;
java.lang.reflect.Method v;
v := @this: net.bytebuddy.agent.builder.LambdaFactory;
v = virtualinvoke v.<net.bytebuddy.agent.builder.LambdaFactory: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: int hashCode()>();
v = v * 31;
v = v.<net.bytebuddy.agent.builder.LambdaFactory: java.lang.Object target>;
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = v + v;
v = v * 31;
v = v.<net.bytebuddy.agent.builder.LambdaFactory: java.lang.reflect.Method dispatcher>;
v = virtualinvoke v.<java.lang.reflect.Method: int hashCode()>();
v = v + v;
return v;
}
}