final class org.jvnet.mimepull.MemoryData implements org.jvnet.mimepull.Data
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.jvnet.mimepull.MemoryData
  super_class: java.lang.Object
{
  private static final java.util.logging.Logger LOGGER;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final byte[] data;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int len;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.jvnet.mimepull.MIMEConfig config;
    descriptor: Lorg/jvnet/mimepull/MIMEConfig;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 26
            ldc Lorg/jvnet/mimepull/MemoryData;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic org.jvnet.mimepull.MemoryData.LOGGER:Ljava/util/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.nio.ByteBuffer, org.jvnet.mimepull.MIMEConfig);
    descriptor: (Ljava/nio/ByteBuffer;Lorg/jvnet/mimepull/MIMEConfig;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jvnet.mimepull.MemoryData this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // org.jvnet.mimepull.MIMEConfig config
         0: .line 32
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 33
            aload 0 /* this */
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            putfield org.jvnet.mimepull.MemoryData.data:[B
         2: .line 34
            aload 0 /* this */
            aload 1 /* buf */
            invokevirtual java.nio.ByteBuffer.limit:()I
            putfield org.jvnet.mimepull.MemoryData.len:I
         3: .line 35
            aload 0 /* this */
            aload 2 /* config */
            putfield org.jvnet.mimepull.MemoryData.config:Lorg/jvnet/mimepull/MIMEConfig;
         4: .line 36
            return
        end local 2 // org.jvnet.mimepull.MIMEConfig config
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // org.jvnet.mimepull.MemoryData this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/jvnet/mimepull/MemoryData;
            0    5     1     buf  Ljava/nio/ByteBuffer;
            0    5     2  config  Lorg/jvnet/mimepull/MIMEConfig;
    MethodParameters:
        Name  Flags
      buf     
      config  

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jvnet.mimepull.MemoryData this
         0: .line 41
            aload 0 /* this */
            getfield org.jvnet.mimepull.MemoryData.len:I
            ireturn
        end local 0 // org.jvnet.mimepull.MemoryData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jvnet/mimepull/MemoryData;

  public byte[] read();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jvnet.mimepull.MemoryData this
         0: .line 46
            aload 0 /* this */
            getfield org.jvnet.mimepull.MemoryData.data:[B
            areturn
        end local 0 // org.jvnet.mimepull.MemoryData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jvnet/mimepull/MemoryData;

  public long writeTo(org.jvnet.mimepull.DataFile);
    descriptor: (Lorg/jvnet/mimepull/DataFile;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jvnet.mimepull.MemoryData this
        start local 1 // org.jvnet.mimepull.DataFile file
         0: .line 51
            aload 1 /* file */
            aload 0 /* this */
            getfield org.jvnet.mimepull.MemoryData.data:[B
            iconst_0
            aload 0 /* this */
            getfield org.jvnet.mimepull.MemoryData.len:I
            invokevirtual org.jvnet.mimepull.DataFile.writeTo:([BII)J
            lreturn
        end local 1 // org.jvnet.mimepull.DataFile file
        end local 0 // org.jvnet.mimepull.MemoryData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jvnet/mimepull/MemoryData;
            0    1     1  file  Lorg/jvnet/mimepull/DataFile;
    MethodParameters:
      Name  Flags
      file  

  public org.jvnet.mimepull.Data createNext(org.jvnet.mimepull.DataHead, java.nio.ByteBuffer);
    descriptor: (Lorg/jvnet/mimepull/DataHead;Ljava/nio/ByteBuffer;)Lorg/jvnet/mimepull/Data;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // org.jvnet.mimepull.MemoryData this
        start local 1 // org.jvnet.mimepull.DataHead dataHead
        start local 2 // java.nio.ByteBuffer buf
         0: .line 62
            aload 0 /* this */
            getfield org.jvnet.mimepull.MemoryData.config:Lorg/jvnet/mimepull/MIMEConfig;
            invokevirtual org.jvnet.mimepull.MIMEConfig.isOnlyMemory:()Z
            ifne 19
            aload 1 /* dataHead */
            getfield org.jvnet.mimepull.DataHead.inMemory:J
            aload 0 /* this */
            getfield org.jvnet.mimepull.MemoryData.config:Lorg/jvnet/mimepull/MIMEConfig;
            getfield org.jvnet.mimepull.MIMEConfig.memoryThreshold:J
            lcmp
            iflt 19
         1: .line 64
            aload 0 /* this */
            getfield org.jvnet.mimepull.MemoryData.config:Lorg/jvnet/mimepull/MIMEConfig;
            invokevirtual org.jvnet.mimepull.MIMEConfig.getTempFilePrefix:()Ljava/lang/String;
            astore 3 /* prefix */
        start local 3 // java.lang.String prefix
         2: .line 65
            aload 0 /* this */
            getfield org.jvnet.mimepull.MemoryData.config:Lorg/jvnet/mimepull/MIMEConfig;
            invokevirtual org.jvnet.mimepull.MIMEConfig.getTempFileSuffix:()Ljava/lang/String;
            astore 4 /* suffix */
        start local 4 // java.lang.String suffix
         3: .line 66
            aload 3 /* prefix */
            aload 4 /* suffix */
            aload 0 /* this */
            getfield org.jvnet.mimepull.MemoryData.config:Lorg/jvnet/mimepull/MIMEConfig;
            invokevirtual org.jvnet.mimepull.MIMEConfig.getTempDir:()Ljava/io/File;
            invokestatic org.jvnet.mimepull.TempFiles.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
            astore 5 /* tempFile */
        start local 5 // java.io.File tempFile
         4: .line 68
            aload 5 /* tempFile */
            invokevirtual java.io.File.deleteOnExit:()V
         5: .line 69
            getstatic org.jvnet.mimepull.MemoryData.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 7
         6: .line 70
            getstatic org.jvnet.mimepull.MemoryData.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Created temp file = {0}"
            aload 5 /* tempFile */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 72
      StackMap locals: java.lang.String java.lang.String java.io.File
      StackMap stack:
            aload 1 /* dataHead */
            new org.jvnet.mimepull.DataFile
            dup
            aload 5 /* tempFile */
            invokespecial org.jvnet.mimepull.DataFile.<init>:(Ljava/io/File;)V
            putfield org.jvnet.mimepull.DataHead.dataFile:Lorg/jvnet/mimepull/DataFile;
        end local 5 // java.io.File tempFile
        end local 4 // java.lang.String suffix
        end local 3 // java.lang.String prefix
         8: .line 73
            goto 11
      StackMap locals: org.jvnet.mimepull.MemoryData org.jvnet.mimepull.DataHead java.nio.ByteBuffer
      StackMap stack: java.io.IOException
         9: astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
        10: .line 74
            new org.jvnet.mimepull.MIMEParsingException
            dup
            aload 3 /* ioe */
            invokespecial org.jvnet.mimepull.MIMEParsingException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException ioe
        11: .line 77
      StackMap locals:
      StackMap stack:
            aload 1 /* dataHead */
            getfield org.jvnet.mimepull.DataHead.head:Lorg/jvnet/mimepull/Chunk;
            ifnull 18
        12: .line 78
            aload 1 /* dataHead */
            getfield org.jvnet.mimepull.DataHead.head:Lorg/jvnet/mimepull/Chunk;
            astore 3 /* c */
        start local 3 // org.jvnet.mimepull.Chunk c
        13: goto 17
        14: .line 79
      StackMap locals: org.jvnet.mimepull.Chunk
      StackMap stack:
            aload 3 /* c */
            getfield org.jvnet.mimepull.Chunk.data:Lorg/jvnet/mimepull/Data;
            aload 1 /* dataHead */
            getfield org.jvnet.mimepull.DataHead.dataFile:Lorg/jvnet/mimepull/DataFile;
            invokeinterface org.jvnet.mimepull.Data.writeTo:(Lorg/jvnet/mimepull/DataFile;)J
            lstore 4 /* pointer */
        start local 4 // long pointer
        15: .line 80
            aload 3 /* c */
            new org.jvnet.mimepull.FileData
            dup
            aload 1 /* dataHead */
            getfield org.jvnet.mimepull.DataHead.dataFile:Lorg/jvnet/mimepull/DataFile;
            lload 4 /* pointer */
            aload 0 /* this */
            getfield org.jvnet.mimepull.MemoryData.len:I
            invokespecial org.jvnet.mimepull.FileData.<init>:(Lorg/jvnet/mimepull/DataFile;JI)V
            putfield org.jvnet.mimepull.Chunk.data:Lorg/jvnet/mimepull/Data;
        end local 4 // long pointer
        16: .line 78
            aload 3 /* c */
            getfield org.jvnet.mimepull.Chunk.next:Lorg/jvnet/mimepull/Chunk;
            astore 3 /* c */
      StackMap locals:
      StackMap stack:
        17: aload 3 /* c */
            ifnonnull 14
        end local 3 // org.jvnet.mimepull.Chunk c
        18: .line 83
      StackMap locals:
      StackMap stack:
            new org.jvnet.mimepull.FileData
            dup
            aload 1 /* dataHead */
            getfield org.jvnet.mimepull.DataHead.dataFile:Lorg/jvnet/mimepull/DataFile;
            aload 2 /* buf */
            invokespecial org.jvnet.mimepull.FileData.<init>:(Lorg/jvnet/mimepull/DataFile;Ljava/nio/ByteBuffer;)V
            areturn
        19: .line 85
      StackMap locals:
      StackMap stack:
            new org.jvnet.mimepull.MemoryData
            dup
            aload 2 /* buf */
            aload 0 /* this */
            getfield org.jvnet.mimepull.MemoryData.config:Lorg/jvnet/mimepull/MIMEConfig;
            invokespecial org.jvnet.mimepull.MemoryData.<init>:(Ljava/nio/ByteBuffer;Lorg/jvnet/mimepull/MIMEConfig;)V
            areturn
        end local 2 // java.nio.ByteBuffer buf
        end local 1 // org.jvnet.mimepull.DataHead dataHead
        end local 0 // org.jvnet.mimepull.MemoryData this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Lorg/jvnet/mimepull/MemoryData;
            0   20     1  dataHead  Lorg/jvnet/mimepull/DataHead;
            0   20     2       buf  Ljava/nio/ByteBuffer;
            2    8     3    prefix  Ljava/lang/String;
            3    8     4    suffix  Ljava/lang/String;
            4    8     5  tempFile  Ljava/io/File;
           10   11     3       ioe  Ljava/io/IOException;
           13   18     3         c  Lorg/jvnet/mimepull/Chunk;
           15   16     4   pointer  J
      Exception table:
        from    to  target  type
           1     8       9  Class java.io.IOException
    MethodParameters:
          Name  Flags
      dataHead  
      buf       
}
SourceFile: "MemoryData.java"