public final class com.mongodb.MongoDriverInformation$Builder
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.mongodb.MongoDriverInformation$Builder
  super_class: java.lang.Object
{
  private final com.mongodb.MongoDriverInformation driverInformation;
    descriptor: Lcom/mongodb/MongoDriverInformation;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  public com.mongodb.MongoDriverInformation$Builder driverName(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/MongoDriverInformation$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.MongoDriverInformation$Builder this
        start local 1 // java.lang.String driverName
         0: .line 116
            aload 0 /* this */
            ldc "driverName"
            aload 1 /* driverName */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.mongodb.MongoDriverInformation$Builder.driverName:Ljava/lang/String;
         1: .line 117
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String driverName
        end local 0 // com.mongodb.MongoDriverInformation$Builder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/mongodb/MongoDriverInformation$Builder;
            0    2     1  driverName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      driverName  final

  public com.mongodb.MongoDriverInformation$Builder driverVersion(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/MongoDriverInformation$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.MongoDriverInformation$Builder this
        start local 1 // java.lang.String driverVersion
         0: .line 131
            aload 0 /* this */
            ldc "driverVersion"
            aload 1 /* driverVersion */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.mongodb.MongoDriverInformation$Builder.driverVersion:Ljava/lang/String;
         1: .line 132
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String driverVersion
        end local 0 // com.mongodb.MongoDriverInformation$Builder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/MongoDriverInformation$Builder;
            0    2     1  driverVersion  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      driverVersion  final

  public com.mongodb.MongoDriverInformation$Builder driverPlatform(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/MongoDriverInformation$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.MongoDriverInformation$Builder this
        start local 1 // java.lang.String driverPlatform
         0: .line 142
            aload 0 /* this */
            ldc "driverPlatform"
            aload 1 /* driverPlatform */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.mongodb.MongoDriverInformation$Builder.driverPlatform:Ljava/lang/String;
         1: .line 143
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String driverPlatform
        end local 0 // com.mongodb.MongoDriverInformation$Builder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/MongoDriverInformation$Builder;
            0    2     1  driverPlatform  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      driverPlatform  final

  public com.mongodb.MongoDriverInformation build();
    descriptor: ()Lcom/mongodb/MongoDriverInformation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.mongodb.MongoDriverInformation$Builder this
         0: .line 150
            ldc "You must also set the driver name when setting the driver version"
            aload 0 /* this */
            getfield com.mongodb.MongoDriverInformation$Builder.driverName:Ljava/lang/String;
            ifnonnull 1
            aload 0 /* this */
            getfield com.mongodb.MongoDriverInformation$Builder.driverVersion:Ljava/lang/String;
            ifnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack: java.lang.String
         1: iconst_1
      StackMap locals: com.mongodb.MongoDriverInformation$Builder
      StackMap stack: java.lang.String int
         2: invokestatic com.mongodb.assertions.Assertions.isTrue:(Ljava/lang/String;Z)V
         3: .line 152
            aload 0 /* this */
            aload 0 /* this */
            getfield com.mongodb.MongoDriverInformation$Builder.driverInformation:Lcom/mongodb/MongoDriverInformation;
            invokevirtual com.mongodb.MongoDriverInformation.getDriverNames:()Ljava/util/List;
            aload 0 /* this */
            getfield com.mongodb.MongoDriverInformation$Builder.driverName:Ljava/lang/String;
            invokevirtual com.mongodb.MongoDriverInformation$Builder.prependToList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
            astore 1 /* names */
        start local 1 // java.util.List names
         4: .line 153
            aload 0 /* this */
            aload 0 /* this */
            getfield com.mongodb.MongoDriverInformation$Builder.driverInformation:Lcom/mongodb/MongoDriverInformation;
            invokevirtual com.mongodb.MongoDriverInformation.getDriverVersions:()Ljava/util/List;
            aload 0 /* this */
            getfield com.mongodb.MongoDriverInformation$Builder.driverVersion:Ljava/lang/String;
            invokevirtual com.mongodb.MongoDriverInformation$Builder.prependToList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
            astore 2 /* versions */
        start local 2 // java.util.List versions
         5: .line 154
            aload 0 /* this */
            aload 0 /* this */
            getfield com.mongodb.MongoDriverInformation$Builder.driverInformation:Lcom/mongodb/MongoDriverInformation;
            invokevirtual com.mongodb.MongoDriverInformation.getDriverPlatforms:()Ljava/util/List;
            aload 0 /* this */
            getfield com.mongodb.MongoDriverInformation$Builder.driverPlatform:Ljava/lang/String;
            invokevirtual com.mongodb.MongoDriverInformation$Builder.prependToList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
            astore 3 /* platforms */
        start local 3 // java.util.List platforms
         6: .line 155
            new com.mongodb.MongoDriverInformation
            dup
            aload 1 /* names */
            aload 2 /* versions */
            aload 3 /* platforms */
            invokespecial com.mongodb.MongoDriverInformation.<init>:(Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
            areturn
        end local 3 // java.util.List platforms
        end local 2 // java.util.List versions
        end local 1 // java.util.List names
        end local 0 // com.mongodb.MongoDriverInformation$Builder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/mongodb/MongoDriverInformation$Builder;
            4    7     1      names  Ljava/util/List<Ljava/lang/String;>;
            5    7     2   versions  Ljava/util/List<Ljava/lang/String;>;
            6    7     3  platforms  Ljava/util/List<Ljava/lang/String;>;

  private java.util.List<java.lang.String> prependToList(java.util.List<java.lang.String>, java.lang.String);
    descriptor: (Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.mongodb.MongoDriverInformation$Builder this
        start local 1 // java.util.List stringList
        start local 2 // java.lang.String value
         0: .line 159
            aload 2 /* value */
            ifnonnull 2
         1: .line 160
            aload 1 /* stringList */
            areturn
         2: .line 162
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* newList */
        start local 3 // java.util.ArrayList newList
         3: .line 163
            aload 3 /* newList */
            aload 2 /* value */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 164
            aload 3 /* newList */
            aload 1 /* stringList */
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
         5: .line 165
            aload 3 /* newList */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 3 // java.util.ArrayList newList
        end local 2 // java.lang.String value
        end local 1 // java.util.List stringList
        end local 0 // com.mongodb.MongoDriverInformation$Builder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/mongodb/MongoDriverInformation$Builder;
            0    6     1  stringList  Ljava/util/List<Ljava/lang/String;>;
            0    6     2       value  Ljava/lang/String;
            3    6     3     newList  Ljava/util/ArrayList<Ljava/lang/String;>;
    Signature: (Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
            Name  Flags
      stringList  final
      value       final

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // com.mongodb.MongoDriverInformation$Builder this
         0: .line 169
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 170
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            astore 1 /* immutableEmptyList */
        start local 1 // java.util.List immutableEmptyList
         2: .line 171
            aload 0 /* this */
            new com.mongodb.MongoDriverInformation
            dup
            aload 1 /* immutableEmptyList */
            aload 1 /* immutableEmptyList */
            aload 1 /* immutableEmptyList */
            invokespecial com.mongodb.MongoDriverInformation.<init>:(Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
            putfield com.mongodb.MongoDriverInformation$Builder.driverInformation:Lcom/mongodb/MongoDriverInformation;
         3: .line 172
            return
        end local 1 // java.util.List immutableEmptyList
        end local 0 // com.mongodb.MongoDriverInformation$Builder this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lcom/mongodb/MongoDriverInformation$Builder;
            2    4     1  immutableEmptyList  Ljava/util/List<Ljava/lang/String;>;

  private void <init>(com.mongodb.MongoDriverInformation);
    descriptor: (Lcom/mongodb/MongoDriverInformation;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.MongoDriverInformation$Builder this
        start local 1 // com.mongodb.MongoDriverInformation driverInformation
         0: .line 174
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 175
            aload 0 /* this */
            ldc "driverInformation"
            aload 1 /* driverInformation */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.MongoDriverInformation
            putfield com.mongodb.MongoDriverInformation$Builder.driverInformation:Lcom/mongodb/MongoDriverInformation;
         2: .line 176
            return
        end local 1 // com.mongodb.MongoDriverInformation driverInformation
        end local 0 // com.mongodb.MongoDriverInformation$Builder this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lcom/mongodb/MongoDriverInformation$Builder;
            0    3     1  driverInformation  Lcom/mongodb/MongoDriverInformation;
    MethodParameters:
                   Name  Flags
      driverInformation  final
}
SourceFile: "MongoDriverInformation.java"
NestHost: com.mongodb.MongoDriverInformation
InnerClasses:
  public final Builder = com.mongodb.MongoDriverInformation$Builder of com.mongodb.MongoDriverInformation
    RuntimeVisibleAnnotations: 
      com.mongodb.annotations.NotThreadSafe()