public final class com.google.common.base.Joiner$MapJoiner
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.common.base.Joiner$MapJoiner
  super_class: java.lang.Object
{
  private final com.google.common.base.Joiner joiner;
    descriptor: Lcom/google/common/base/Joiner;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private void <init>(com.google.common.base.Joiner, java.lang.String);
    descriptor: (Lcom/google/common/base/Joiner;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.google.common.base.Joiner$MapJoiner this
        start local 1 // com.google.common.base.Joiner joiner
        start local 2 // java.lang.String keyValueSeparator
         0: .line 317
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 318
            aload 0 /* this */
            aload 1 /* joiner */
            putfield com.google.common.base.Joiner$MapJoiner.joiner:Lcom/google/common/base/Joiner;
         2: .line 319
            aload 0 /* this */
            aload 2 /* keyValueSeparator */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.google.common.base.Joiner$MapJoiner.keyValueSeparator:Ljava/lang/String;
         3: .line 320
            return
        end local 2 // java.lang.String keyValueSeparator
        end local 1 // com.google.common.base.Joiner joiner
        end local 0 // com.google.common.base.Joiner$MapJoiner this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lcom/google/common/base/Joiner$MapJoiner;
            0    4     1             joiner  Lcom/google/common/base/Joiner;
            0    4     2  keyValueSeparator  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      joiner             
      keyValueSeparator  

  public <A extends java.lang.Appendable> A appendTo(A, java.util.Map<?, ?>);
    descriptor: (Ljava/lang/Appendable;Ljava/util/Map;)Ljava/lang/Appendable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.common.base.Joiner$MapJoiner this
        start local 1 // java.lang.Appendable appendable
        start local 2 // java.util.Map map
         0: .line 328
            aload 0 /* this */
            aload 1 /* appendable */
            aload 2 /* map */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokevirtual com.google.common.base.Joiner$MapJoiner.appendTo:(Ljava/lang/Appendable;Ljava/lang/Iterable;)Ljava/lang/Appendable;
            areturn
        end local 2 // java.util.Map map
        end local 1 // java.lang.Appendable appendable
        end local 0 // com.google.common.base.Joiner$MapJoiner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/google/common/base/Joiner$MapJoiner;
            0    1     1  appendable  TA;
            0    1     2         map  Ljava/util/Map<**>;
    Exceptions:
      throws java.io.IOException
    Signature: <A::Ljava/lang/Appendable;>(TA;Ljava/util/Map<**>;)TA;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
            Name  Flags
      appendable  
      map         

  public java.lang.StringBuilder appendTo(java.lang.StringBuilder, java.util.Map<?, ?>);
    descriptor: (Ljava/lang/StringBuilder;Ljava/util/Map;)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.common.base.Joiner$MapJoiner this
        start local 1 // java.lang.StringBuilder builder
        start local 2 // java.util.Map map
         0: .line 338
            aload 0 /* this */
            aload 1 /* builder */
            aload 2 /* map */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokevirtual com.google.common.base.Joiner$MapJoiner.appendTo:(Ljava/lang/StringBuilder;Ljava/lang/Iterable;)Ljava/lang/StringBuilder;
            areturn
        end local 2 // java.util.Map map
        end local 1 // java.lang.StringBuilder builder
        end local 0 // com.google.common.base.Joiner$MapJoiner this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/google/common/base/Joiner$MapJoiner;
            0    1     1  builder  Ljava/lang/StringBuilder;
            0    1     2      map  Ljava/util/Map<**>;
    Signature: (Ljava/lang/StringBuilder;Ljava/util/Map<**>;)Ljava/lang/StringBuilder;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
         Name  Flags
      builder  
      map      

  public <A extends java.lang.Appendable> A appendTo(A, java.lang.Iterable<? extends java.util.Map$Entry<?, ?>>);
    descriptor: (Ljava/lang/Appendable;Ljava/lang/Iterable;)Ljava/lang/Appendable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.common.base.Joiner$MapJoiner this
        start local 1 // java.lang.Appendable appendable
        start local 2 // java.lang.Iterable entries
         0: .line 351
            aload 0 /* this */
            aload 1 /* appendable */
            aload 2 /* entries */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            invokevirtual com.google.common.base.Joiner$MapJoiner.appendTo:(Ljava/lang/Appendable;Ljava/util/Iterator;)Ljava/lang/Appendable;
            areturn
        end local 2 // java.lang.Iterable entries
        end local 1 // java.lang.Appendable appendable
        end local 0 // com.google.common.base.Joiner$MapJoiner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/google/common/base/Joiner$MapJoiner;
            0    1     1  appendable  TA;
            0    1     2     entries  Ljava/lang/Iterable<+Ljava/util/Map$Entry<**>;>;
    Exceptions:
      throws java.io.IOException
    Signature: <A::Ljava/lang/Appendable;>(TA;Ljava/lang/Iterable<+Ljava/util/Map$Entry<**>;>;)TA;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
            Name  Flags
      appendable  
      entries     

  public <A extends java.lang.Appendable> A appendTo(A, java.util.Iterator<? extends java.util.Map$Entry<?, ?>>);
    descriptor: (Ljava/lang/Appendable;Ljava/util/Iterator;)Ljava/lang/Appendable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.google.common.base.Joiner$MapJoiner this
        start local 1 // java.lang.Appendable appendable
        start local 2 // java.util.Iterator parts
         0: .line 364
            aload 1 /* appendable */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 365
            aload 2 /* parts */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 13
         2: .line 366
            aload 2 /* parts */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         3: .line 367
            aload 1 /* appendable */
            aload 0 /* this */
            getfield com.google.common.base.Joiner$MapJoiner.joiner:Lcom/google/common/base/Joiner;
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual com.google.common.base.Joiner.toString:(Ljava/lang/Object;)Ljava/lang/CharSequence;
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            pop
         4: .line 368
            aload 1 /* appendable */
            aload 0 /* this */
            getfield com.google.common.base.Joiner$MapJoiner.keyValueSeparator:Ljava/lang/String;
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            pop
         5: .line 369
            aload 1 /* appendable */
            aload 0 /* this */
            getfield com.google.common.base.Joiner$MapJoiner.joiner:Lcom/google/common/base/Joiner;
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokevirtual com.google.common.base.Joiner.toString:(Ljava/lang/Object;)Ljava/lang/CharSequence;
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            pop
         6: .line 370
            goto 12
         7: .line 371
      StackMap locals: java.util.Map$Entry
      StackMap stack:
            aload 1 /* appendable */
            aload 0 /* this */
            getfield com.google.common.base.Joiner$MapJoiner.joiner:Lcom/google/common/base/Joiner;
            getfield com.google.common.base.Joiner.separator:Ljava/lang/String;
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            pop
         8: .line 372
            aload 2 /* parts */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* e */
        start local 4 // java.util.Map$Entry e
         9: .line 373
            aload 1 /* appendable */
            aload 0 /* this */
            getfield com.google.common.base.Joiner$MapJoiner.joiner:Lcom/google/common/base/Joiner;
            aload 4 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual com.google.common.base.Joiner.toString:(Ljava/lang/Object;)Ljava/lang/CharSequence;
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            pop
        10: .line 374
            aload 1 /* appendable */
            aload 0 /* this */
            getfield com.google.common.base.Joiner$MapJoiner.keyValueSeparator:Ljava/lang/String;
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            pop
        11: .line 375
            aload 1 /* appendable */
            aload 0 /* this */
            getfield com.google.common.base.Joiner$MapJoiner.joiner:Lcom/google/common/base/Joiner;
            aload 4 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokevirtual com.google.common.base.Joiner.toString:(Ljava/lang/Object;)Ljava/lang/CharSequence;
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            pop
        end local 4 // java.util.Map$Entry e
        12: .line 370
      StackMap locals:
      StackMap stack:
            aload 2 /* parts */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 3 // java.util.Map$Entry entry
        13: .line 378
      StackMap locals:
      StackMap stack:
            aload 1 /* appendable */
            areturn
        end local 2 // java.util.Iterator parts
        end local 1 // java.lang.Appendable appendable
        end local 0 // com.google.common.base.Joiner$MapJoiner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lcom/google/common/base/Joiner$MapJoiner;
            0   14     1  appendable  TA;
            0   14     2       parts  Ljava/util/Iterator<+Ljava/util/Map$Entry<**>;>;
            3   13     3       entry  Ljava/util/Map$Entry<**>;
            9   12     4           e  Ljava/util/Map$Entry<**>;
    Exceptions:
      throws java.io.IOException
    Signature: <A::Ljava/lang/Appendable;>(TA;Ljava/util/Iterator<+Ljava/util/Map$Entry<**>;>;)TA;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
            Name  Flags
      appendable  
      parts       

  public java.lang.StringBuilder appendTo(java.lang.StringBuilder, java.lang.Iterable<? extends java.util.Map$Entry<?, ?>>);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/Iterable;)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.common.base.Joiner$MapJoiner this
        start local 1 // java.lang.StringBuilder builder
        start local 2 // java.lang.Iterable entries
         0: .line 391
            aload 0 /* this */
            aload 1 /* builder */
            aload 2 /* entries */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            invokevirtual com.google.common.base.Joiner$MapJoiner.appendTo:(Ljava/lang/StringBuilder;Ljava/util/Iterator;)Ljava/lang/StringBuilder;
            areturn
        end local 2 // java.lang.Iterable entries
        end local 1 // java.lang.StringBuilder builder
        end local 0 // com.google.common.base.Joiner$MapJoiner this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/google/common/base/Joiner$MapJoiner;
            0    1     1  builder  Ljava/lang/StringBuilder;
            0    1     2  entries  Ljava/lang/Iterable<+Ljava/util/Map$Entry<**>;>;
    Signature: (Ljava/lang/StringBuilder;Ljava/lang/Iterable<+Ljava/util/Map$Entry<**>;>;)Ljava/lang/StringBuilder;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
         Name  Flags
      builder  
      entries  

  public java.lang.StringBuilder appendTo(java.lang.StringBuilder, java.util.Iterator<? extends java.util.Map$Entry<?, ?>>);
    descriptor: (Ljava/lang/StringBuilder;Ljava/util/Iterator;)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.google.common.base.Joiner$MapJoiner this
        start local 1 // java.lang.StringBuilder builder
        start local 2 // java.util.Iterator entries
         0: .line 405
            aload 0 /* this */
            aload 1 /* builder */
            aload 2 /* entries */
            invokevirtual com.google.common.base.Joiner$MapJoiner.appendTo:(Ljava/lang/Appendable;Ljava/util/Iterator;)Ljava/lang/Appendable;
            pop
         1: .line 406
            goto 4
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 3 /* impossible */
        start local 3 // java.io.IOException impossible
         3: .line 407
            new java.lang.AssertionError
            dup
            aload 3 /* impossible */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // java.io.IOException impossible
         4: .line 409
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            areturn
        end local 2 // java.util.Iterator entries
        end local 1 // java.lang.StringBuilder builder
        end local 0 // com.google.common.base.Joiner$MapJoiner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/google/common/base/Joiner$MapJoiner;
            0    5     1     builder  Ljava/lang/StringBuilder;
            0    5     2     entries  Ljava/util/Iterator<+Ljava/util/Map$Entry<**>;>;
            3    4     3  impossible  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Signature: (Ljava/lang/StringBuilder;Ljava/util/Iterator<+Ljava/util/Map$Entry<**>;>;)Ljava/lang/StringBuilder;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
         Name  Flags
      builder  
      entries  

  public java.lang.String join(java.util.Map<?, ?>);
    descriptor: (Ljava/util/Map;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.base.Joiner$MapJoiner this
        start local 1 // java.util.Map map
         0: .line 417
            aload 0 /* this */
            aload 1 /* map */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokevirtual com.google.common.base.Joiner$MapJoiner.join:(Ljava/lang/Iterable;)Ljava/lang/String;
            areturn
        end local 1 // java.util.Map map
        end local 0 // com.google.common.base.Joiner$MapJoiner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/base/Joiner$MapJoiner;
            0    1     1   map  Ljava/util/Map<**>;
    Signature: (Ljava/util/Map<**>;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      map   

  public java.lang.String join(java.lang.Iterable<? extends java.util.Map$Entry<?, ?>>);
    descriptor: (Ljava/lang/Iterable;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.base.Joiner$MapJoiner this
        start local 1 // java.lang.Iterable entries
         0: .line 428
            aload 0 /* this */
            aload 1 /* entries */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            invokevirtual com.google.common.base.Joiner$MapJoiner.join:(Ljava/util/Iterator;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Iterable entries
        end local 0 // com.google.common.base.Joiner$MapJoiner this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/google/common/base/Joiner$MapJoiner;
            0    1     1  entries  Ljava/lang/Iterable<+Ljava/util/Map$Entry<**>;>;
    Signature: (Ljava/lang/Iterable<+Ljava/util/Map$Entry<**>;>;)Ljava/lang/String;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
         Name  Flags
      entries  

  public java.lang.String join(java.util.Iterator<? extends java.util.Map$Entry<?, ?>>);
    descriptor: (Ljava/util/Iterator;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.common.base.Joiner$MapJoiner this
        start local 1 // java.util.Iterator entries
         0: .line 439
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* entries */
            invokevirtual com.google.common.base.Joiner$MapJoiner.appendTo:(Ljava/lang/StringBuilder;Ljava/util/Iterator;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.util.Iterator entries
        end local 0 // com.google.common.base.Joiner$MapJoiner this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/google/common/base/Joiner$MapJoiner;
            0    1     1  entries  Ljava/util/Iterator<+Ljava/util/Map$Entry<**>;>;
    Signature: (Ljava/util/Iterator<+Ljava/util/Map$Entry<**>;>;)Ljava/lang/String;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
         Name  Flags
      entries  

  public com.google.common.base.Joiner$MapJoiner useForNull(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/google/common/base/Joiner$MapJoiner;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.base.Joiner$MapJoiner this
        start local 1 // java.lang.String nullText
         0: .line 447
            new com.google.common.base.Joiner$MapJoiner
            dup
            aload 0 /* this */
            getfield com.google.common.base.Joiner$MapJoiner.joiner:Lcom/google/common/base/Joiner;
            aload 1 /* nullText */
            invokevirtual com.google.common.base.Joiner.useForNull:(Ljava/lang/String;)Lcom/google/common/base/Joiner;
            aload 0 /* this */
            getfield com.google.common.base.Joiner$MapJoiner.keyValueSeparator:Ljava/lang/String;
            invokespecial com.google.common.base.Joiner$MapJoiner.<init>:(Lcom/google/common/base/Joiner;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String nullText
        end local 0 // com.google.common.base.Joiner$MapJoiner this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/google/common/base/Joiner$MapJoiner;
            0    1     1  nullText  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      nullText  
}
SourceFile: "Joiner.java"
NestHost: com.google.common.base.Joiner
InnerClasses:
  public final MapJoiner = com.google.common.base.Joiner$MapJoiner of com.google.common.base.Joiner
  public abstract Entry = java.util.Map$Entry of java.util.Map