class io.vertx.ext.mongo.impl.config.CredentialListParser
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.vertx.ext.mongo.impl.config.CredentialListParser
  super_class: java.lang.Object
{
  private final java.util.List<com.mongodb.MongoCredential> credentials;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lcom/mongodb/MongoCredential;>;

  public void <init>(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.config.CredentialListParser this
        start local 1 // io.vertx.core.json.JsonObject config
         0: .line 21
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 22
            aload 1 /* config */
            ldc "username"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* username */
        start local 2 // java.lang.String username
         2: .line 24
            aconst_null
            astore 3 /* mechanism */
        start local 3 // com.mongodb.AuthenticationMechanism mechanism
         3: .line 25
            aload 1 /* config */
            ldc "authMechanism"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* authMechanism */
        start local 4 // java.lang.String authMechanism
         4: .line 26
            aload 4 /* authMechanism */
            ifnull 6
         5: .line 27
            aload 0 /* this */
            aload 4 /* authMechanism */
            invokevirtual io.vertx.ext.mongo.impl.config.CredentialListParser.getAuthenticationMechanism:(Ljava/lang/String;)Lcom/mongodb/AuthenticationMechanism;
            astore 3 /* mechanism */
         6: .line 29
      StackMap locals: io.vertx.ext.mongo.impl.config.CredentialListParser io.vertx.core.json.JsonObject java.lang.String com.mongodb.AuthenticationMechanism java.lang.String
      StackMap stack:
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield io.vertx.ext.mongo.impl.config.CredentialListParser.credentials:Ljava/util/List;
         7: .line 30
            aload 2 /* username */
            ifnonnull 11
         8: .line 31
            aload 3 /* mechanism */
            getstatic com.mongodb.AuthenticationMechanism.MONGODB_X509:Lcom/mongodb/AuthenticationMechanism;
            if_acmpne 40
         9: .line 32
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.config.CredentialListParser.credentials:Ljava/util/List;
            invokestatic com.mongodb.MongoCredential.createMongoX509Credential:()Lcom/mongodb/MongoCredential;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 34
            goto 40
        11: .line 35
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
            ldc "password"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* passwd */
        start local 5 // java.lang.String passwd
        12: .line 36
            aload 5 /* passwd */
            ifnonnull 13
            aconst_null
            goto 14
      StackMap locals: java.lang.String
      StackMap stack:
        13: aload 5 /* passwd */
            invokevirtual java.lang.String.toCharArray:()[C
      StackMap locals:
      StackMap stack: char[]
        14: astore 6 /* password */
        start local 6 // char[] password
        15: .line 39
            aload 1 /* config */
            ldc "authSource"
        16: .line 40
            aload 1 /* config */
            ldc "db_name"
            ldc "DEFAULT_DB"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
        17: .line 39
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* authSource */
        start local 7 // java.lang.String authSource
        18: .line 43
            aload 1 /* config */
            ldc "gssapiServiceName"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* gssapiServiceName */
        start local 8 // java.lang.String gssapiServiceName
        19: .line 45
            aload 3 /* mechanism */
            getstatic com.mongodb.AuthenticationMechanism.GSSAPI:Lcom/mongodb/AuthenticationMechanism;
            if_acmpne 23
        20: .line 46
            aload 2 /* username */
            invokestatic com.mongodb.MongoCredential.createGSSAPICredential:(Ljava/lang/String;)Lcom/mongodb/MongoCredential;
            astore 9 /* credential */
        start local 9 // com.mongodb.MongoCredential credential
        21: .line 47
            aload 0 /* this */
            aload 8 /* gssapiServiceName */
            aload 9 /* credential */
            invokevirtual io.vertx.ext.mongo.impl.config.CredentialListParser.getMongoCredential:(Ljava/lang/String;Lcom/mongodb/MongoCredential;)Lcom/mongodb/MongoCredential;
            astore 9 /* credential */
        22: .line 48
            goto 39
        end local 9 // com.mongodb.MongoCredential credential
      StackMap locals: char[] java.lang.String java.lang.String
      StackMap stack:
        23: aload 3 /* mechanism */
            getstatic com.mongodb.AuthenticationMechanism.PLAIN:Lcom/mongodb/AuthenticationMechanism;
            if_acmpne 26
        24: .line 49
            aload 2 /* username */
            aload 7 /* authSource */
            aload 6 /* password */
            invokestatic com.mongodb.MongoCredential.createPlainCredential:(Ljava/lang/String;Ljava/lang/String;[C)Lcom/mongodb/MongoCredential;
            astore 9 /* credential */
        start local 9 // com.mongodb.MongoCredential credential
        25: .line 50
            goto 39
        end local 9 // com.mongodb.MongoCredential credential
      StackMap locals:
      StackMap stack:
        26: aload 3 /* mechanism */
            getstatic com.mongodb.AuthenticationMechanism.MONGODB_X509:Lcom/mongodb/AuthenticationMechanism;
            if_acmpne 29
        27: .line 51
            aload 2 /* username */
            invokestatic com.mongodb.MongoCredential.createMongoX509Credential:(Ljava/lang/String;)Lcom/mongodb/MongoCredential;
            astore 9 /* credential */
        start local 9 // com.mongodb.MongoCredential credential
        28: .line 52
            goto 39
        end local 9 // com.mongodb.MongoCredential credential
      StackMap locals:
      StackMap stack:
        29: aload 3 /* mechanism */
            getstatic com.mongodb.AuthenticationMechanism.SCRAM_SHA_1:Lcom/mongodb/AuthenticationMechanism;
            if_acmpne 32
        30: .line 53
            aload 2 /* username */
            aload 7 /* authSource */
            aload 6 /* password */
            invokestatic com.mongodb.MongoCredential.createScramSha1Credential:(Ljava/lang/String;Ljava/lang/String;[C)Lcom/mongodb/MongoCredential;
            astore 9 /* credential */
        start local 9 // com.mongodb.MongoCredential credential
        31: .line 54
            goto 39
        end local 9 // com.mongodb.MongoCredential credential
      StackMap locals:
      StackMap stack:
        32: aload 3 /* mechanism */
            getstatic com.mongodb.AuthenticationMechanism.SCRAM_SHA_256:Lcom/mongodb/AuthenticationMechanism;
            if_acmpne 35
        33: .line 55
            aload 2 /* username */
            aload 7 /* authSource */
            aload 6 /* password */
            invokestatic com.mongodb.MongoCredential.createScramSha256Credential:(Ljava/lang/String;Ljava/lang/String;[C)Lcom/mongodb/MongoCredential;
            astore 9 /* credential */
        start local 9 // com.mongodb.MongoCredential credential
        34: .line 56
            goto 39
        end local 9 // com.mongodb.MongoCredential credential
      StackMap locals:
      StackMap stack:
        35: aload 3 /* mechanism */
            ifnonnull 38
        36: .line 57
            aload 2 /* username */
            aload 7 /* authSource */
            aload 6 /* password */
            invokestatic com.mongodb.MongoCredential.createCredential:(Ljava/lang/String;Ljava/lang/String;[C)Lcom/mongodb/MongoCredential;
            astore 9 /* credential */
        start local 9 // com.mongodb.MongoCredential credential
        37: .line 58
            goto 39
        end local 9 // com.mongodb.MongoCredential credential
        38: .line 59
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported authentication mechanism "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* mechanism */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 9 // com.mongodb.MongoCredential credential
        39: .line 62
      StackMap locals: com.mongodb.MongoCredential
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.config.CredentialListParser.credentials:Ljava/util/List;
            aload 9 /* credential */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // com.mongodb.MongoCredential credential
        end local 8 // java.lang.String gssapiServiceName
        end local 7 // java.lang.String authSource
        end local 6 // char[] password
        end local 5 // java.lang.String passwd
        40: .line 64
      StackMap locals: io.vertx.ext.mongo.impl.config.CredentialListParser io.vertx.core.json.JsonObject java.lang.String com.mongodb.AuthenticationMechanism java.lang.String
      StackMap stack:
            return
        end local 4 // java.lang.String authMechanism
        end local 3 // com.mongodb.AuthenticationMechanism mechanism
        end local 2 // java.lang.String username
        end local 1 // io.vertx.core.json.JsonObject config
        end local 0 // io.vertx.ext.mongo.impl.config.CredentialListParser this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   41     0               this  Lio/vertx/ext/mongo/impl/config/CredentialListParser;
            0   41     1             config  Lio/vertx/core/json/JsonObject;
            2   41     2           username  Ljava/lang/String;
            3   41     3          mechanism  Lcom/mongodb/AuthenticationMechanism;
            4   41     4      authMechanism  Ljava/lang/String;
           12   40     5             passwd  Ljava/lang/String;
           15   40     6           password  [C
           18   40     7         authSource  Ljava/lang/String;
           19   40     8  gssapiServiceName  Ljava/lang/String;
           21   23     9         credential  Lcom/mongodb/MongoCredential;
           25   26     9         credential  Lcom/mongodb/MongoCredential;
           28   29     9         credential  Lcom/mongodb/MongoCredential;
           31   32     9         credential  Lcom/mongodb/MongoCredential;
           34   35     9         credential  Lcom/mongodb/MongoCredential;
           37   38     9         credential  Lcom/mongodb/MongoCredential;
           39   40     9         credential  Lcom/mongodb/MongoCredential;
    MethodParameters:
        Name  Flags
      config  

  private com.mongodb.MongoCredential getMongoCredential(java.lang.String, com.mongodb.MongoCredential);
    descriptor: (Ljava/lang/String;Lcom/mongodb/MongoCredential;)Lcom/mongodb/MongoCredential;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.config.CredentialListParser this
        start local 1 // java.lang.String gssapiServiceName
        start local 2 // com.mongodb.MongoCredential credential
         0: .line 67
            aload 1 /* gssapiServiceName */
            ifnull 2
         1: .line 68
            aload 2 /* credential */
            ldc "SERVICE_NAME"
            aload 1 /* gssapiServiceName */
            invokevirtual com.mongodb.MongoCredential.withMechanismProperty:(Ljava/lang/String;Ljava/lang/Object;)Lcom/mongodb/MongoCredential;
            astore 2 /* credential */
         2: .line 70
      StackMap locals:
      StackMap stack:
            aload 2 /* credential */
            areturn
        end local 2 // com.mongodb.MongoCredential credential
        end local 1 // java.lang.String gssapiServiceName
        end local 0 // io.vertx.ext.mongo.impl.config.CredentialListParser this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lio/vertx/ext/mongo/impl/config/CredentialListParser;
            0    3     1  gssapiServiceName  Ljava/lang/String;
            0    3     2         credential  Lcom/mongodb/MongoCredential;
    MethodParameters:
                   Name  Flags
      gssapiServiceName  
      credential         

  private com.mongodb.AuthenticationMechanism getAuthenticationMechanism(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/AuthenticationMechanism;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.config.CredentialListParser this
        start local 1 // java.lang.String authMechanism
         0: .line 76
            aload 1 /* authMechanism */
            invokestatic com.mongodb.AuthenticationMechanism.fromMechanismName:(Ljava/lang/String;)Lcom/mongodb/AuthenticationMechanism;
            astore 2 /* mechanism */
        start local 2 // com.mongodb.AuthenticationMechanism mechanism
         1: .line 77
            goto 4
        end local 2 // com.mongodb.AuthenticationMechanism mechanism
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         2: pop
         3: .line 78
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid authMechanism '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* authMechanism */
            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;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 2 // com.mongodb.AuthenticationMechanism mechanism
         4: .line 80
      StackMap locals: com.mongodb.AuthenticationMechanism
      StackMap stack:
            aload 2 /* mechanism */
            areturn
        end local 2 // com.mongodb.AuthenticationMechanism mechanism
        end local 1 // java.lang.String authMechanism
        end local 0 // io.vertx.ext.mongo.impl.config.CredentialListParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lio/vertx/ext/mongo/impl/config/CredentialListParser;
            0    5     1  authMechanism  Ljava/lang/String;
            1    2     2      mechanism  Lcom/mongodb/AuthenticationMechanism;
            4    5     2      mechanism  Lcom/mongodb/AuthenticationMechanism;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
               Name  Flags
      authMechanism  

  public java.util.List<com.mongodb.MongoCredential> credentials();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.mongo.impl.config.CredentialListParser this
         0: .line 84
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.config.CredentialListParser.credentials:Ljava/util/List;
            areturn
        end local 0 // io.vertx.ext.mongo.impl.config.CredentialListParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/mongo/impl/config/CredentialListParser;
    Signature: ()Ljava/util/List<Lcom/mongodb/MongoCredential;>;
}
SourceFile: "CredentialListParser.java"