class io.vertx.ext.mail.mailencoder.AttachmentPart extends io.vertx.ext.mail.mailencoder.EncodedPart
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.vertx.ext.mail.mailencoder.AttachmentPart
  super_class: io.vertx.ext.mail.mailencoder.EncodedPart
{
  private static final io.vertx.core.impl.logging.Logger log;
    descriptor: Lio/vertx/core/impl/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean CACHE_IN_FILE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.lang.String cachedFilePath;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private final io.vertx.ext.mail.MailAttachment attachment;
    descriptor: Lio/vertx/ext/mail/MailAttachment;
    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 35
            ldc Lio/vertx/ext/mail/mailencoder/AttachmentPart;
            invokestatic io.vertx.core.impl.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/impl/logging/Logger;
            putstatic io.vertx.ext.mail.mailencoder.AttachmentPart.log:Lio/vertx/core/impl/logging/Logger;
         1: .line 38
            ldc "vertx.mail.attachment.cache.file"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            putstatic io.vertx.ext.mail.mailencoder.AttachmentPart.CACHE_IN_FILE:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(io.vertx.ext.mail.MailAttachment);
    descriptor: (Lio/vertx/ext/mail/MailAttachment;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // io.vertx.ext.mail.mailencoder.AttachmentPart this
        start local 1 // io.vertx.ext.mail.MailAttachment attachment
         0: .line 44
            aload 0 /* this */
            invokespecial io.vertx.ext.mail.mailencoder.EncodedPart.<init>:()V
         1: .line 45
            aload 0 /* this */
            aload 1 /* attachment */
            putfield io.vertx.ext.mail.mailencoder.AttachmentPart.attachment:Lio/vertx/ext/mail/MailAttachment;
         2: .line 46
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.attachment:Lio/vertx/ext/mail/MailAttachment;
            invokeinterface io.vertx.ext.mail.MailAttachment.getData:()Lio/vertx/core/buffer/Buffer;
            ifnonnull 4
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.attachment:Lio/vertx/ext/mail/MailAttachment;
            invokeinterface io.vertx.ext.mail.MailAttachment.getStream:()Lio/vertx/core/streams/ReadStream;
            ifnonnull 4
         3: .line 47
            new java.lang.IllegalArgumentException
            dup
            ldc "Either data or stream of the attachment cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 49
      StackMap locals: io.vertx.ext.mail.mailencoder.AttachmentPart io.vertx.ext.mail.MailAttachment
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.attachment:Lio/vertx/ext/mail/MailAttachment;
            invokeinterface io.vertx.ext.mail.MailAttachment.getStream:()Lio/vertx/core/streams/ReadStream;
            ifnull 6
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.attachment:Lio/vertx/ext/mail/MailAttachment;
            invokeinterface io.vertx.ext.mail.MailAttachment.getSize:()I
            ifge 6
         5: .line 50
            getstatic io.vertx.ext.mail.mailencoder.AttachmentPart.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Size of the attachment should be specified when using stream"
            invokeinterface io.vertx.core.impl.logging.Logger.warn:(Ljava/lang/Object;)V
         6: .line 52
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic io.vertx.core.MultiMap.caseInsensitiveMultiMap:()Lio/vertx/core/MultiMap;
            putfield io.vertx.ext.mail.mailencoder.AttachmentPart.headers:Lio/vertx/core/MultiMap;
         7: .line 53
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         8: .line 55
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getContentType:()Ljava/lang/String;
            ifnull 11
         9: .line 56
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getContentType:()Ljava/lang/String;
            astore 3 /* contentType */
        start local 3 // java.lang.String contentType
        10: .line 57
            goto 12
        end local 3 // java.lang.String contentType
        11: .line 58
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "application/octet-stream"
            astore 3 /* contentType */
        start local 3 // java.lang.String contentType
        12: .line 60
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* name */
            ifnull 15
        13: .line 61
            aload 3 /* contentType */
            invokevirtual java.lang.String.length:()I
            bipush 22
            iadd
            istore 4 /* index */
        start local 4 // int index
        14: .line 62
            new java.lang.StringBuilder
            dup
            aload 3 /* contentType */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "; name=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* name */
            iload 4 /* index */
            invokestatic io.vertx.ext.mail.mailencoder.Utils.encodeHeader:(Ljava/lang/String;I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* contentType */
        end local 4 // int index
        15: .line 64
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.headers:Lio/vertx/core/MultiMap;
            ldc "Content-Type"
            aload 3 /* contentType */
            invokeinterface io.vertx.core.MultiMap.set:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/MultiMap;
            pop
        16: .line 65
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.headers:Lio/vertx/core/MultiMap;
            ldc "Content-Transfer-Encoding"
            ldc "base64"
            invokeinterface io.vertx.core.MultiMap.set:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/MultiMap;
            pop
        17: .line 67
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getDescription:()Ljava/lang/String;
            ifnull 19
        18: .line 68
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.headers:Lio/vertx/core/MultiMap;
            ldc "Content-Description"
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getDescription:()Ljava/lang/String;
            invokeinterface io.vertx.core.MultiMap.set:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/MultiMap;
            pop
        19: .line 71
      StackMap locals:
      StackMap stack:
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getDisposition:()Ljava/lang/String;
            ifnull 22
        20: .line 72
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getDisposition:()Ljava/lang/String;
            astore 4 /* disposition */
        start local 4 // java.lang.String disposition
        21: .line 73
            goto 23
        end local 4 // java.lang.String disposition
        22: .line 74
      StackMap locals:
      StackMap stack:
            ldc "attachment"
            astore 4 /* disposition */
        start local 4 // java.lang.String disposition
        23: .line 76
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* name */
            ifnull 26
        24: .line 77
            aload 4 /* disposition */
            invokevirtual java.lang.String.length:()I
            bipush 33
            iadd
            istore 5 /* index */
        start local 5 // int index
        25: .line 78
            new java.lang.StringBuilder
            dup
            aload 4 /* disposition */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "; filename=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* name */
            iload 5 /* index */
            invokestatic io.vertx.ext.mail.mailencoder.Utils.encodeHeader:(Ljava/lang/String;I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* disposition */
        end local 5 // int index
        26: .line 80
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.headers:Lio/vertx/core/MultiMap;
            ldc "Content-Disposition"
            aload 4 /* disposition */
            invokeinterface io.vertx.core.MultiMap.set:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/MultiMap;
            pop
        27: .line 81
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getContentId:()Ljava/lang/String;
            ifnull 29
        28: .line 82
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.headers:Lio/vertx/core/MultiMap;
            ldc "Content-ID"
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getContentId:()Ljava/lang/String;
            invokeinterface io.vertx.core.MultiMap.set:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/MultiMap;
            pop
        29: .line 84
      StackMap locals:
      StackMap stack:
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getHeaders:()Lio/vertx/core/MultiMap;
            ifnull 31
        30: .line 85
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.headers:Lio/vertx/core/MultiMap;
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getHeaders:()Lio/vertx/core/MultiMap;
            invokeinterface io.vertx.core.MultiMap.addAll:(Lio/vertx/core/MultiMap;)Lio/vertx/core/MultiMap;
            pop
        31: .line 88
      StackMap locals:
      StackMap stack:
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getData:()Lio/vertx/core/buffer/Buffer;
            ifnull 33
        32: .line 89
            aload 0 /* this */
            aload 1 /* attachment */
            invokeinterface io.vertx.ext.mail.MailAttachment.getData:()Lio/vertx/core/buffer/Buffer;
            invokeinterface io.vertx.core.buffer.Buffer.getBytes:()[B
            invokestatic io.vertx.ext.mail.mailencoder.Utils.base64:([B)Ljava/lang/String;
            putfield io.vertx.ext.mail.mailencoder.AttachmentPart.part:Ljava/lang/String;
        33: .line 91
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String disposition
        end local 3 // java.lang.String contentType
        end local 2 // java.lang.String name
        end local 1 // io.vertx.ext.mail.MailAttachment attachment
        end local 0 // io.vertx.ext.mail.mailencoder.AttachmentPart this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   34     0         this  Lio/vertx/ext/mail/mailencoder/AttachmentPart;
            0   34     1   attachment  Lio/vertx/ext/mail/MailAttachment;
            8   34     2         name  Ljava/lang/String;
           10   11     3  contentType  Ljava/lang/String;
           12   34     3  contentType  Ljava/lang/String;
           14   15     4        index  I
           21   22     4  disposition  Ljava/lang/String;
           23   34     4  disposition  Ljava/lang/String;
           25   26     5        index  I
    MethodParameters:
            Name  Flags
      attachment  

  public synchronized io.vertx.core.streams.ReadStream<io.vertx.core.buffer.Buffer> bodyStream(io.vertx.core.Context);
    descriptor: (Lio/vertx/core/Context;)Lio/vertx/core/streams/ReadStream;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // io.vertx.ext.mail.mailencoder.AttachmentPart this
        start local 1 // io.vertx.core.Context context
         0: .line 95
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.attachment:Lio/vertx/ext/mail/MailAttachment;
            invokeinterface io.vertx.ext.mail.MailAttachment.getStream:()Lio/vertx/core/streams/ReadStream;
            astore 2 /* attachStream */
        start local 2 // io.vertx.core.streams.ReadStream attachStream
         1: .line 96
            aload 2 /* attachStream */
            ifnonnull 3
         2: .line 97
            aconst_null
            areturn
         3: .line 99
      StackMap locals: io.vertx.core.streams.ReadStream
      StackMap stack:
            new io.vertx.ext.mail.mailencoder.AttachmentPart$BodyReadStream
            dup
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* attachStream */
            iconst_0
            invokespecial io.vertx.ext.mail.mailencoder.AttachmentPart$BodyReadStream.<init>:(Lio/vertx/ext/mail/mailencoder/AttachmentPart;Lio/vertx/core/Context;Lio/vertx/core/streams/ReadStream;Z)V
            areturn
        end local 2 // io.vertx.core.streams.ReadStream attachStream
        end local 1 // io.vertx.core.Context context
        end local 0 // io.vertx.ext.mail.mailencoder.AttachmentPart this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lio/vertx/ext/mail/mailencoder/AttachmentPart;
            0    4     1       context  Lio/vertx/core/Context;
            1    4     2  attachStream  Lio/vertx/core/streams/ReadStream<Lio/vertx/core/buffer/Buffer;>;
    Signature: (Lio/vertx/core/Context;)Lio/vertx/core/streams/ReadStream<Lio/vertx/core/buffer/Buffer;>;
    MethodParameters:
         Name  Flags
      context  

  public synchronized io.vertx.core.streams.ReadStream<io.vertx.core.buffer.Buffer> dkimBodyStream(io.vertx.core.Context);
    descriptor: (Lio/vertx/core/Context;)Lio/vertx/core/streams/ReadStream;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // io.vertx.ext.mail.mailencoder.AttachmentPart this
        start local 1 // io.vertx.core.Context context
         0: .line 104
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.attachment:Lio/vertx/ext/mail/MailAttachment;
            invokeinterface io.vertx.ext.mail.MailAttachment.getStream:()Lio/vertx/core/streams/ReadStream;
            astore 2 /* attachStream */
        start local 2 // io.vertx.core.streams.ReadStream attachStream
         1: .line 105
            aload 2 /* attachStream */
            ifnonnull 3
         2: .line 106
            aconst_null
            areturn
         3: .line 108
      StackMap locals: io.vertx.core.streams.ReadStream
      StackMap stack:
            new io.vertx.ext.mail.mailencoder.AttachmentPart$BodyReadStream
            dup
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* attachStream */
            iconst_1
            invokespecial io.vertx.ext.mail.mailencoder.AttachmentPart$BodyReadStream.<init>:(Lio/vertx/ext/mail/mailencoder/AttachmentPart;Lio/vertx/core/Context;Lio/vertx/core/streams/ReadStream;Z)V
            areturn
        end local 2 // io.vertx.core.streams.ReadStream attachStream
        end local 1 // io.vertx.core.Context context
        end local 0 // io.vertx.ext.mail.mailencoder.AttachmentPart this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lio/vertx/ext/mail/mailencoder/AttachmentPart;
            0    4     1       context  Lio/vertx/core/Context;
            1    4     2  attachStream  Lio/vertx/core/streams/ReadStream<Lio/vertx/core/buffer/Buffer;>;
    Signature: (Lio/vertx/core/Context;)Lio/vertx/core/streams/ReadStream<Lio/vertx/core/buffer/Buffer;>;
    MethodParameters:
         Name  Flags
      context  

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.mail.mailencoder.AttachmentPart this
         0: .line 113
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.attachment:Lio/vertx/ext/mail/MailAttachment;
            invokeinterface io.vertx.ext.mail.MailAttachment.getData:()Lio/vertx/core/buffer/Buffer;
            ifnonnull 4
         1: .line 114
            aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.attachment:Lio/vertx/ext/mail/MailAttachment;
            invokeinterface io.vertx.ext.mail.MailAttachment.getSize:()I
            ifge 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield io.vertx.ext.mail.mailencoder.AttachmentPart.attachment:Lio/vertx/ext/mail/MailAttachment;
            invokeinterface io.vertx.ext.mail.MailAttachment.getSize:()I
            iconst_3
            idiv
            iconst_4
            imul
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial io.vertx.ext.mail.mailencoder.EncodedPart.size:()I
            ireturn
        end local 0 // io.vertx.ext.mail.mailencoder.AttachmentPart this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/ext/mail/mailencoder/AttachmentPart;
}
SourceFile: "AttachmentPart.java"
NestMembers:
  io.vertx.ext.mail.mailencoder.AttachmentPart$BodyReadStream
InnerClasses:
  private BodyReadStream = io.vertx.ext.mail.mailencoder.AttachmentPart$BodyReadStream of io.vertx.ext.mail.mailencoder.AttachmentPart