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 // com.sun.script.util.InterfaceImplementor this
        start local 1 // javax.script.Invocable engine
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 1 /* engine */
            putfield com.sun.script.util.InterfaceImplementor.engine:Ljavax/script/Invocable;
         2: .line 47
            return
        end local 1 // javax.script.Invocable engine
        end local 0 // com.sun.script.util.InterfaceImplementor this
      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 // com.sun.script.util.InterfaceImplementor this
        start local 1 // java.lang.Object thiz
        start local 2 // java.lang.Class iface
         0: .line 83
            aload 2 /* iface */
            ifnull 1
            aload 2 /* iface */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 2
         1: .line 84
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "interface Class expected"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 86
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* thiz */
            aload 2 /* iface */
            invokevirtual com.sun.script.util.InterfaceImplementor.isImplemented:(Ljava/lang/Object;Ljava/lang/Class;)Z
            ifne 4
         3: .line 87
            aconst_null
            areturn
         4: .line 90
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnull 7
         5: .line 91
            aload 2 /* iface */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifne 7
         6: .line 92
            new java.lang.SecurityException
            dup
            ldc "attempt to implement non-public interface"
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 96
      StackMap locals:
      StackMap stack:
            aload 2 /* iface */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/String;)V
         8: .line 98
            invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
            astore 3 /* accCtxt */
        start local 3 // java.security.AccessControlContext accCtxt
         9: .line 99
            aload 2 /* iface */
        10: .line 100
            aload 2 /* iface */
            invokestatic com.sun.script.util.InterfaceImplementor.getLoaderForProxy:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
        11: .line 101
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 2 /* iface */
            aastore
        12: .line 102
            new com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocationHandler
            dup
            aload 0 /* this */
            aload 1 /* thiz */
            aload 3 /* accCtxt */
            invokespecial com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocationHandler.<init>:(Lcom/sun/script/util/InterfaceImplementor;Ljava/lang/Object;Ljava/security/AccessControlContext;)V
        13: .line 99
            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 // java.security.AccessControlContext accCtxt
        end local 2 // java.lang.Class iface
        end local 1 // java.lang.Object thiz
        end local 0 // com.sun.script.util.InterfaceImplementor this
      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 // com.sun.script.util.InterfaceImplementor this
        start local 1 // java.lang.Object thiz
        start local 2 // java.lang.Class iface
         0: .line 106
            iconst_1
            ireturn
        end local 2 // java.lang.Class iface
        end local 1 // java.lang.Object thiz
        end local 0 // com.sun.script.util.InterfaceImplementor this
      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 // com.sun.script.util.InterfaceImplementor this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.Object res
         0: .line 113
            aload 2 /* res */
            areturn
        end local 2 // java.lang.Object res
        end local 1 // java.lang.reflect.Method method
        end local 0 // com.sun.script.util.InterfaceImplementor this
      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 // com.sun.script.util.InterfaceImplementor this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.Object[] args
         0: .line 120
            aload 2 /* args */
            areturn
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.reflect.Method method
        end local 0 // com.sun.script.util.InterfaceImplementor this
      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 // java.lang.Class iface
         0: .line 125
            aload 0 /* iface */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* loader */
        start local 1 // java.lang.ClassLoader loader
         1: .line 128
            aload 1 /* loader */
            ifnonnull 3
         2: .line 129
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* loader */
         3: .line 133
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 1 /* loader */
            ifnonnull 5
         4: .line 134
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* loader */
         5: .line 136
      StackMap locals:
      StackMap stack:
            aload 1 /* loader */
            areturn
        end local 1 // java.lang.ClassLoader loader
        end local 0 // java.lang.Class iface
      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