public class com.sun.script.util.InterfaceImplementor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.script.util.InterfaceImplementor
super_class: java.lang.Object
{
private javax.script.Invocable engine;
descriptor: Ljavax/script/Invocable;
flags: (0x0002) ACC_PRIVATE
public void <init>(javax.script.Invocable);
descriptor: (Ljavax/script/Invocable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.sun.script.util.InterfaceImplementor.engine:Ljavax/script/Invocable;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/script/util/InterfaceImplementor;
0 3 1 engine Ljavax/script/Invocable;
MethodParameters:
Name Flags
engine
public <T> T getInterface(, java.lang.Class<T>);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 1
aload 2
invokevirtual java.lang.Class.isInterface:()Z
ifne 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "interface Class expected"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual com.sun.script.util.InterfaceImplementor.isImplemented:(Ljava/lang/Object;Ljava/lang/Class;)Z
ifne 4
3: aconst_null
areturn
4: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnull 7
5: aload 2
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifne 7
6: new java.lang.SecurityException
dup
ldc "attempt to implement non-public interface"
invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/String;)V
8: invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
astore 3
start local 3 9: aload 2
10: aload 2
invokestatic com.sun.script.util.InterfaceImplementor.getLoaderForProxy:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
11: iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 2
aastore
12: new com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocationHandler
dup
aload 0
aload 1
aload 3
invokespecial com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocationHandler.<init>:(Lcom/sun/script/util/InterfaceImplementor;Ljava/lang/Object;Ljava/security/AccessControlContext;)V
13: invokestatic java.lang.reflect.Proxy.newProxyInstance:(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/script/util/InterfaceImplementor;
0 14 1 thiz Ljava/lang/Object;
0 14 2 iface Ljava/lang/Class<TT;>;
9 14 3 accCtxt Ljava/security/AccessControlContext;
Exceptions:
throws javax.script.ScriptException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
thiz
iface
protected boolean isImplemented(, java.lang.Class<?>);
descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/script/util/InterfaceImplementor;
0 1 1 thiz Ljava/lang/Object;
0 1 2 iface Ljava/lang/Class<*>;
Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
thiz
iface
protected java.lang.Object convertResult(java.lang.reflect.Method, java.lang.Object);
descriptor: (Ljava/lang/reflect/Method;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/script/util/InterfaceImplementor;
0 1 1 method Ljava/lang/reflect/Method;
0 1 2 res Ljava/lang/Object;
Exceptions:
throws javax.script.ScriptException
MethodParameters:
Name Flags
method
res
protected java.lang.Object[] convertArguments(java.lang.reflect.Method, java.lang.Object[]);
descriptor: (Ljava/lang/reflect/Method;[Ljava/lang/Object;)[Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/script/util/InterfaceImplementor;
0 1 1 method Ljava/lang/reflect/Method;
0 1 2 args [Ljava/lang/Object;
Exceptions:
throws javax.script.ScriptException
MethodParameters:
Name Flags
method
args
private static java.lang.ClassLoader getLoaderForProxy(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/ClassLoader;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
astore 1
3: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 1
ifnonnull 5
4: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
astore 1
5: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 iface Ljava/lang/Class<*>;
1 6 1 loader Ljava/lang/ClassLoader;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
iface
}
SourceFile: "InterfaceImplementor.java"
NestMembers:
com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocationHandler com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocationHandler$1
InnerClasses:
private final InterfaceImplementorInvocationHandler = com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocationHandler of com.sun.script.util.InterfaceImplementor