public abstract class org.springframework.scripting.bsh.BshScriptUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.scripting.bsh.BshScriptUtils
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.scripting.bsh.BshScriptUtils this
         0: .line 42
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.scripting.bsh.BshScriptUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scripting/bsh/BshScriptUtils;

  public static java.lang.Object createBshObject(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String scriptSource
         0: .line 53
            aload 0 /* scriptSource */
            aconst_null
            aconst_null
            invokestatic org.springframework.scripting.bsh.BshScriptUtils.createBshObject:(Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/lang/Object;
            areturn
        end local 0 // java.lang.String scriptSource
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  scriptSource  Ljava/lang/String;
    Exceptions:
      throws bsh.EvalError
    MethodParameters:
              Name  Flags
      scriptSource  

  public static  createBshObject(java.lang.String, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String scriptSource
        start local 1 // java.lang.Class[] scriptInterfaces
         0: .line 72
            aload 0 /* scriptSource */
            aload 1 /* scriptInterfaces */
            invokestatic org.springframework.util.ClassUtils.getDefaultClassLoader:()Ljava/lang/ClassLoader;
            invokestatic org.springframework.scripting.bsh.BshScriptUtils.createBshObject:(Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Class[] scriptInterfaces
        end local 0 // java.lang.String scriptSource
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0      scriptSource  Ljava/lang/String;
            0    1     1  scriptInterfaces  [Ljava/lang/Class;
    Exceptions:
      throws bsh.EvalError
    Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
                  Name  Flags
      scriptSource      
      scriptInterfaces  

  public static  createBshObject(java.lang.String, java.lang.Class<?>[], java.lang.ClassLoader);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.lang.String scriptSource
        start local 1 // java.lang.Class[] scriptInterfaces
        start local 2 // java.lang.ClassLoader classLoader
         0: .line 92
            aload 0 /* scriptSource */
            aload 1 /* scriptInterfaces */
            aload 2 /* classLoader */
            invokestatic org.springframework.scripting.bsh.BshScriptUtils.evaluateBshScript:(Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/lang/Object;
            astore 3 /* result */
        start local 3 // java.lang.Object result
         1: .line 93
            aload 3 /* result */
            instanceof java.lang.Class
            ifeq 7
         2: .line 94
            aload 3 /* result */
            checkcast java.lang.Class
            astore 4 /* clazz */
        start local 4 // java.lang.Class clazz
         3: .line 96
            aload 4 /* clazz */
            iconst_0
            anewarray java.lang.Class
            invokestatic org.springframework.util.ReflectionUtils.accessibleConstructor:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
         4: areturn
         5: .line 98
      StackMap locals: java.lang.String java.lang.Class[] java.lang.ClassLoader java.lang.Object java.lang.Class
      StackMap stack: java.lang.Throwable
            astore 5 /* ex */
        start local 5 // java.lang.Throwable ex
         6: .line 99
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not instantiate script class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Throwable ex
        end local 4 // java.lang.Class clazz
         7: .line 103
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.lang.Object result
        end local 2 // java.lang.ClassLoader classLoader
        end local 1 // java.lang.Class[] scriptInterfaces
        end local 0 // java.lang.String scriptSource
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0      scriptSource  Ljava/lang/String;
            0    8     1  scriptInterfaces  [Ljava/lang/Class;
            0    8     2       classLoader  Ljava/lang/ClassLoader;
            1    8     3            result  Ljava/lang/Object;
            3    7     4             clazz  Ljava/lang/Class<*>;
            6    7     5                ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Throwable
    Exceptions:
      throws bsh.EvalError
    Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;Ljava/lang/ClassLoader;)Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
                  Name  Flags
      scriptSource      
      scriptInterfaces  
      classLoader       

  static java.lang.Class<?> determineBshObjectType(java.lang.String, java.lang.ClassLoader);
    descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.String scriptSource
        start local 1 // java.lang.ClassLoader classLoader
         0: .line 120
            aload 0 /* scriptSource */
            ldc "Script source must not be empty"
            invokestatic org.springframework.util.Assert.hasText:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 121
            new bsh.Interpreter
            dup
            invokespecial bsh.Interpreter.<init>:()V
            astore 2 /* interpreter */
        start local 2 // bsh.Interpreter interpreter
         2: .line 122
            aload 1 /* classLoader */
            ifnull 4
         3: .line 123
            aload 2 /* interpreter */
            aload 1 /* classLoader */
            invokevirtual bsh.Interpreter.setClassLoader:(Ljava/lang/ClassLoader;)V
         4: .line 125
      StackMap locals: bsh.Interpreter
      StackMap stack:
            aload 2 /* interpreter */
            aload 0 /* scriptSource */
            invokevirtual bsh.Interpreter.eval:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* result */
        start local 3 // java.lang.Object result
         5: .line 126
            aload 3 /* result */
            instanceof java.lang.Class
            ifeq 7
         6: .line 127
            aload 3 /* result */
            checkcast java.lang.Class
            areturn
         7: .line 129
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* result */
            ifnull 9
         8: .line 130
            aload 3 /* result */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            areturn
         9: .line 133
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.lang.Object result
        end local 2 // bsh.Interpreter interpreter
        end local 1 // java.lang.ClassLoader classLoader
        end local 0 // java.lang.String scriptSource
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0  scriptSource  Ljava/lang/String;
            0   10     1   classLoader  Ljava/lang/ClassLoader;
            2   10     2   interpreter  Lbsh/Interpreter;
            5   10     3        result  Ljava/lang/Object;
    Exceptions:
      throws bsh.EvalError
    Signature: (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      scriptSource  
      classLoader   

  static  evaluateBshScript(java.lang.String, java.lang.Class<?>[], java.lang.ClassLoader);
    descriptor: (Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.lang.String scriptSource
        start local 1 // java.lang.Class[] scriptInterfaces
        start local 2 // java.lang.ClassLoader classLoader
         0: .line 156
            aload 0 /* scriptSource */
            ldc "Script source must not be empty"
            invokestatic org.springframework.util.Assert.hasText:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 157
            new bsh.Interpreter
            dup
            invokespecial bsh.Interpreter.<init>:()V
            astore 3 /* interpreter */
        start local 3 // bsh.Interpreter interpreter
         2: .line 158
            aload 3 /* interpreter */
            aload 2 /* classLoader */
            invokevirtual bsh.Interpreter.setClassLoader:(Ljava/lang/ClassLoader;)V
         3: .line 159
            aload 3 /* interpreter */
            aload 0 /* scriptSource */
            invokevirtual bsh.Interpreter.eval:(Ljava/lang/String;)Ljava/lang/Object;
            astore 4 /* result */
        start local 4 // java.lang.Object result
         4: .line 160
            aload 4 /* result */
            ifnull 6
         5: .line 161
            aload 4 /* result */
            areturn
         6: .line 165
      StackMap locals: bsh.Interpreter java.lang.Object
      StackMap stack:
            aload 1 /* scriptInterfaces */
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifeq 10
         7: .line 166
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Given script requires a script proxy: At least one script interface is required.\nScript: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 167
            aload 0 /* scriptSource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 166
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 169
      StackMap locals:
      StackMap stack:
            aload 3 /* interpreter */
            ldc "return this"
            invokevirtual bsh.Interpreter.eval:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast bsh.XThis
            astore 5 /* xt */
        start local 5 // bsh.XThis xt
        11: .line 170
            aload 2 /* classLoader */
            aload 1 /* scriptInterfaces */
            new org.springframework.scripting.bsh.BshScriptUtils$BshObjectInvocationHandler
            dup
            aload 5 /* xt */
            invokespecial org.springframework.scripting.bsh.BshScriptUtils$BshObjectInvocationHandler.<init>:(Lbsh/XThis;)V
            invokestatic java.lang.reflect.Proxy.newProxyInstance:(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
            areturn
        end local 5 // bsh.XThis xt
        end local 4 // java.lang.Object result
        end local 3 // bsh.Interpreter interpreter
        end local 2 // java.lang.ClassLoader classLoader
        end local 1 // java.lang.Class[] scriptInterfaces
        end local 0 // java.lang.String scriptSource
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0      scriptSource  Ljava/lang/String;
            0   12     1  scriptInterfaces  [Ljava/lang/Class;
            0   12     2       classLoader  Ljava/lang/ClassLoader;
            2   12     3       interpreter  Lbsh/Interpreter;
            4   12     4            result  Ljava/lang/Object;
           11   12     5                xt  Lbsh/XThis;
    Exceptions:
      throws bsh.EvalError
    Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;Ljava/lang/ClassLoader;)Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
                  Name  Flags
      scriptSource      
      scriptInterfaces  
      classLoader       
}
SourceFile: "BshScriptUtils.java"
NestMembers:
  org.springframework.scripting.bsh.BshScriptUtils$BshExecutionException  org.springframework.scripting.bsh.BshScriptUtils$BshObjectInvocationHandler
InnerClasses:
  public final BshExecutionException = org.springframework.scripting.bsh.BshScriptUtils$BshExecutionException of org.springframework.scripting.bsh.BshScriptUtils
  private BshObjectInvocationHandler = org.springframework.scripting.bsh.BshScriptUtils$BshObjectInvocationHandler of org.springframework.scripting.bsh.BshScriptUtils