public class org.springframework.scripting.support.ResourceScriptSource implements org.springframework.scripting.ScriptSource
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.scripting.support.ResourceScriptSource
  super_class: java.lang.Object
{
  protected final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private org.springframework.core.io.support.EncodedResource resource;
    descriptor: Lorg/springframework/core/io/support/EncodedResource;
    flags: (0x0002) ACC_PRIVATE

  private long lastModified;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Object lastModifiedMonitor;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.springframework.core.io.support.EncodedResource);
    descriptor: (Lorg/springframework/core/io/support/EncodedResource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.scripting.support.ResourceScriptSource this
        start local 1 // org.springframework.core.io.support.EncodedResource resource
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putfield org.springframework.scripting.support.ResourceScriptSource.logger:Lorg/apache/commons/logging/Log;
         2: .line 55
            aload 0 /* this */
            ldc -1
            putfield org.springframework.scripting.support.ResourceScriptSource.lastModified:J
         3: .line 57
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.springframework.scripting.support.ResourceScriptSource.lastModifiedMonitor:Ljava/lang/Object;
         4: .line 65
            aload 1 /* resource */
            ldc "Resource must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         5: .line 66
            aload 0 /* this */
            aload 1 /* resource */
            putfield org.springframework.scripting.support.ResourceScriptSource.resource:Lorg/springframework/core/io/support/EncodedResource;
         6: .line 67
            return
        end local 1 // org.springframework.core.io.support.EncodedResource resource
        end local 0 // org.springframework.scripting.support.ResourceScriptSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/springframework/scripting/support/ResourceScriptSource;
            0    7     1  resource  Lorg/springframework/core/io/support/EncodedResource;
    MethodParameters:
          Name  Flags
      resource  

  public void <init>(org.springframework.core.io.Resource);
    descriptor: (Lorg/springframework/core/io/Resource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.springframework.scripting.support.ResourceScriptSource this
        start local 1 // org.springframework.core.io.Resource resource
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putfield org.springframework.scripting.support.ResourceScriptSource.logger:Lorg/apache/commons/logging/Log;
         2: .line 55
            aload 0 /* this */
            ldc -1
            putfield org.springframework.scripting.support.ResourceScriptSource.lastModified:J
         3: .line 57
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.springframework.scripting.support.ResourceScriptSource.lastModifiedMonitor:Ljava/lang/Object;
         4: .line 74
            aload 1 /* resource */
            ldc "Resource must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         5: .line 75
            aload 0 /* this */
            new org.springframework.core.io.support.EncodedResource
            dup
            aload 1 /* resource */
            ldc "UTF-8"
            invokespecial org.springframework.core.io.support.EncodedResource.<init>:(Lorg/springframework/core/io/Resource;Ljava/lang/String;)V
            putfield org.springframework.scripting.support.ResourceScriptSource.resource:Lorg/springframework/core/io/support/EncodedResource;
         6: .line 76
            return
        end local 1 // org.springframework.core.io.Resource resource
        end local 0 // org.springframework.scripting.support.ResourceScriptSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/springframework/scripting/support/ResourceScriptSource;
            0    7     1  resource  Lorg/springframework/core/io/Resource;
    MethodParameters:
          Name  Flags
      resource  

  public final org.springframework.core.io.Resource getResource();
    descriptor: ()Lorg/springframework/core/io/Resource;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.scripting.support.ResourceScriptSource this
         0: .line 84
            aload 0 /* this */
            getfield org.springframework.scripting.support.ResourceScriptSource.resource:Lorg/springframework/core/io/support/EncodedResource;
            invokevirtual org.springframework.core.io.support.EncodedResource.getResource:()Lorg/springframework/core/io/Resource;
            areturn
        end local 0 // org.springframework.scripting.support.ResourceScriptSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scripting/support/ResourceScriptSource;

  public void setEncoding(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.springframework.scripting.support.ResourceScriptSource this
        start local 1 // java.lang.String encoding
         0: .line 93
            aload 0 /* this */
            new org.springframework.core.io.support.EncodedResource
            dup
            aload 0 /* this */
            getfield org.springframework.scripting.support.ResourceScriptSource.resource:Lorg/springframework/core/io/support/EncodedResource;
            invokevirtual org.springframework.core.io.support.EncodedResource.getResource:()Lorg/springframework/core/io/Resource;
            aload 1 /* encoding */
            invokespecial org.springframework.core.io.support.EncodedResource.<init>:(Lorg/springframework/core/io/Resource;Ljava/lang/String;)V
            putfield org.springframework.scripting.support.ResourceScriptSource.resource:Lorg/springframework/core/io/support/EncodedResource;
         1: .line 94
            return
        end local 1 // java.lang.String encoding
        end local 0 // org.springframework.scripting.support.ResourceScriptSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/springframework/scripting/support/ResourceScriptSource;
            0    2     1  encoding  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      encoding  

  public java.lang.String getScriptAsString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.scripting.support.ResourceScriptSource this
         0: .line 99
            aload 0 /* this */
            getfield org.springframework.scripting.support.ResourceScriptSource.lastModifiedMonitor:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 100
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.springframework.scripting.support.ResourceScriptSource.retrieveLastModifiedTime:()J
            putfield org.springframework.scripting.support.ResourceScriptSource.lastModified:J
         2: .line 99
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: org.springframework.scripting.support.ResourceScriptSource java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.scripting.support.ResourceScriptSource.resource:Lorg/springframework/core/io/support/EncodedResource;
            invokevirtual org.springframework.core.io.support.EncodedResource.getReader:()Ljava/io/Reader;
            astore 1 /* reader */
        start local 1 // java.io.Reader reader
         7: .line 103
            aload 1 /* reader */
            invokestatic org.springframework.util.FileCopyUtils.copyToString:(Ljava/io/Reader;)Ljava/lang/String;
            areturn
        end local 1 // java.io.Reader reader
        end local 0 // org.springframework.scripting.support.ResourceScriptSource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/springframework/scripting/support/ResourceScriptSource;
            7    8     1  reader  Ljava/io/Reader;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    Exceptions:
      throws java.io.IOException

  public boolean isModified();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.springframework.scripting.support.ResourceScriptSource this
         0: .line 108
            aload 0 /* this */
            getfield org.springframework.scripting.support.ResourceScriptSource.lastModifiedMonitor:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 109
            aload 0 /* this */
            getfield org.springframework.scripting.support.ResourceScriptSource.lastModified:J
            lconst_0
            lcmp
            iflt 2
            aload 0 /* this */
            invokevirtual org.springframework.scripting.support.ResourceScriptSource.retrieveLastModifiedTime:()J
            aload 0 /* this */
            getfield org.springframework.scripting.support.ResourceScriptSource.lastModified:J
            lcmp
            ifgt 2
            iconst_0
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: aload 1
            monitorexit
         4: ireturn
         5: .line 108
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         6: athrow
        end local 0 // org.springframework.scripting.support.ResourceScriptSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/springframework/scripting/support/ResourceScriptSource;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  protected long retrieveLastModifiedTime();
    descriptor: ()J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.scripting.support.ResourceScriptSource this
         0: .line 119
            aload 0 /* this */
            invokevirtual org.springframework.scripting.support.ResourceScriptSource.getResource:()Lorg/springframework/core/io/Resource;
            invokeinterface org.springframework.core.io.Resource.lastModified:()J
         1: lreturn
         2: .line 121
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* ex */
        start local 1 // java.io.IOException ex
         3: .line 122
            aload 0 /* this */
            getfield org.springframework.scripting.support.ResourceScriptSource.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 7
         4: .line 123
            aload 0 /* this */
            getfield org.springframework.scripting.support.ResourceScriptSource.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual org.springframework.scripting.support.ResourceScriptSource.getResource:()Lorg/springframework/core/io/Resource;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " could not be resolved in the file system - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 124
            ldc "current timestamp not available for script modification check"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* ex */
         6: .line 123
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         7: .line 126
      StackMap locals: java.io.IOException
      StackMap stack:
            lconst_0
            lreturn
        end local 1 // java.io.IOException ex
        end local 0 // org.springframework.scripting.support.ResourceScriptSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/springframework/scripting/support/ResourceScriptSource;
            3    8     1    ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  public java.lang.String suggestedClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.springframework.scripting.support.ResourceScriptSource this
         0: .line 133
            aload 0 /* this */
            invokevirtual org.springframework.scripting.support.ResourceScriptSource.getResource:()Lorg/springframework/core/io/Resource;
            invokeinterface org.springframework.core.io.Resource.getFilename:()Ljava/lang/String;
            astore 1 /* filename */
        start local 1 // java.lang.String filename
         1: .line 134
            aload 1 /* filename */
            ifnull 2
            aload 1 /* filename */
            invokestatic org.springframework.util.StringUtils.stripFilenameExtension:(Ljava/lang/String;)Ljava/lang/String;
            goto 3
      StackMap locals: java.lang.String
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 1 // java.lang.String filename
        end local 0 // org.springframework.scripting.support.ResourceScriptSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/springframework/scripting/support/ResourceScriptSource;
            1    4     1  filename  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.scripting.support.ResourceScriptSource this
         0: .line 139
            aload 0 /* this */
            getfield org.springframework.scripting.support.ResourceScriptSource.resource:Lorg/springframework/core/io/support/EncodedResource;
            invokevirtual org.springframework.core.io.support.EncodedResource.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.springframework.scripting.support.ResourceScriptSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/scripting/support/ResourceScriptSource;
}
SourceFile: "ResourceScriptSource.java"