class org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator
  super_class: java.lang.Object
{
  private final java.io.StringWriter writer;
    descriptor: Ljava/io/StringWriter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.ByteArrayOutputStream baos;
    descriptor: Ljava/io/ByteArrayOutputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.core.io.Resource resource;
    descriptor: Lorg/springframework/core/io/Resource;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.springframework.core.io.Resource, java.lang.String);
    descriptor: (Lorg/springframework/core/io/Resource;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator this
        start local 1 // org.springframework.core.io.Resource resource
        start local 2 // java.lang.String content
         0: .line 235
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 229
            aload 0 /* this */
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            putfield org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator.writer:Ljava/io/StringWriter;
         2: .line 236
            aload 0 /* this */
            aload 1 /* resource */
            putfield org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator.resource:Lorg/springframework/core/io/Resource;
         3: .line 237
            aload 0 /* this */
            new java.io.ByteArrayOutputStream
            dup
            aload 2 /* content */
            invokevirtual java.lang.String.length:()I
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            putfield org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator.baos:Ljava/io/ByteArrayOutputStream;
         4: .line 238
            return
        end local 2 // java.lang.String content
        end local 1 // org.springframework.core.io.Resource resource
        end local 0 // org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/springframework/web/servlet/resource/AppCacheManifestTransformer$LineAggregator;
            0    5     1  resource  Lorg/springframework/core/io/Resource;
            0    5     2   content  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      resource  
      content   

  public void add(org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineOutput);
    descriptor: (Lorg/springframework/web/servlet/resource/AppCacheManifestTransformer$LineOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator this
        start local 1 // org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineOutput lineOutput
         0: .line 241
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator.writer:Ljava/io/StringWriter;
            new java.lang.StringBuilder
            dup
            aload 1 /* lineOutput */
            invokevirtual org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineOutput.getLine:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.StringWriter.write:(Ljava/lang/String;)V
         1: .line 242
            aload 1 /* lineOutput */
            invokevirtual org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineOutput.getResource:()Lorg/springframework/core/io/Resource;
            ifnull 3
         2: .line 243
            aload 1 /* lineOutput */
            invokevirtual org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineOutput.getResource:()Lorg/springframework/core/io/Resource;
            invokestatic org.springframework.web.servlet.resource.AppCacheManifestTransformer.getResourceBytes:(Lorg/springframework/core/io/Resource;)[B
            invokestatic org.springframework.util.DigestUtils.md5Digest:([B)[B
            goto 4
         3: .line 244
      StackMap locals:
      StackMap stack:
            aload 1 /* lineOutput */
            invokevirtual org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineOutput.getLine:()Ljava/lang/String;
            getstatic org.springframework.web.servlet.resource.AppCacheManifestTransformer.DEFAULT_CHARSET:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
         4: .line 242
      StackMap locals:
      StackMap stack: byte[]
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         5: .line 245
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator.baos:Ljava/io/ByteArrayOutputStream;
            aload 2 /* bytes */
            invokevirtual java.io.ByteArrayOutputStream.write:([B)V
         6: .line 246
            return
        end local 2 // byte[] bytes
        end local 1 // org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineOutput lineOutput
        end local 0 // org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/springframework/web/servlet/resource/AppCacheManifestTransformer$LineAggregator;
            0    7     1  lineOutput  Lorg/springframework/web/servlet/resource/AppCacheManifestTransformer$LineOutput;
            5    7     2       bytes  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      lineOutput  

  public org.springframework.web.servlet.resource.TransformedResource createResource();
    descriptor: ()Lorg/springframework/web/servlet/resource/TransformedResource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator this
         0: .line 249
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator.baos:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokestatic org.springframework.util.DigestUtils.md5DigestAsHex:([B)Ljava/lang/String;
            astore 1 /* hash */
        start local 1 // java.lang.String hash
         1: .line 250
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator.writer:Ljava/io/StringWriter;
            new java.lang.StringBuilder
            dup
            ldc "\n# Hash: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* hash */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.StringWriter.write:(Ljava/lang/String;)V
         2: .line 251
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator.writer:Ljava/io/StringWriter;
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            getstatic org.springframework.web.servlet.resource.AppCacheManifestTransformer.DEFAULT_CHARSET:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         3: .line 252
            new org.springframework.web.servlet.resource.TransformedResource
            dup
            aload 0 /* this */
            getfield org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator.resource:Lorg/springframework/core/io/Resource;
            aload 2 /* bytes */
            invokespecial org.springframework.web.servlet.resource.TransformedResource.<init>:(Lorg/springframework/core/io/Resource;[B)V
            areturn
        end local 2 // byte[] bytes
        end local 1 // java.lang.String hash
        end local 0 // org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/springframework/web/servlet/resource/AppCacheManifestTransformer$LineAggregator;
            1    4     1   hash  Ljava/lang/String;
            3    4     2  bytes  [B
}
SourceFile: "AppCacheManifestTransformer.java"
NestHost: org.springframework.web.servlet.resource.AppCacheManifestTransformer
InnerClasses:
  private LineAggregator = org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineAggregator of org.springframework.web.servlet.resource.AppCacheManifestTransformer
  private LineOutput = org.springframework.web.servlet.resource.AppCacheManifestTransformer$LineOutput of org.springframework.web.servlet.resource.AppCacheManifestTransformer