class io.vertx.ext.mongo.impl.config.ReadConcernLevelParser
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.vertx.ext.mongo.impl.config.ReadConcernLevelParser
  super_class: java.lang.Object
{
  private final com.mongodb.ConnectionString connectionString;
    descriptor: Lcom/mongodb/ConnectionString;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.core.json.JsonObject config;
    descriptor: Lio/vertx/core/json/JsonObject;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(com.mongodb.ConnectionString, io.vertx.core.json.JsonObject);
    descriptor: (Lcom/mongodb/ConnectionString;Lio/vertx/core/json/JsonObject;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.config.ReadConcernLevelParser this
        start local 1 // com.mongodb.ConnectionString connectionString
        start local 2 // io.vertx.core.json.JsonObject config
         0: .line 15
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 16
            aload 0 /* this */
            aload 1 /* connectionString */
            putfield io.vertx.ext.mongo.impl.config.ReadConcernLevelParser.connectionString:Lcom/mongodb/ConnectionString;
         2: .line 17
            aload 0 /* this */
            aload 2 /* config */
            putfield io.vertx.ext.mongo.impl.config.ReadConcernLevelParser.config:Lio/vertx/core/json/JsonObject;
         3: .line 18
            return
        end local 2 // io.vertx.core.json.JsonObject config
        end local 1 // com.mongodb.ConnectionString connectionString
        end local 0 // io.vertx.ext.mongo.impl.config.ReadConcernLevelParser this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lio/vertx/ext/mongo/impl/config/ReadConcernLevelParser;
            0    4     1  connectionString  Lcom/mongodb/ConnectionString;
            0    4     2            config  Lio/vertx/core/json/JsonObject;
    MethodParameters:
                  Name  Flags
      connectionString  
      config            

  java.util.Optional<com.mongodb.ReadConcern> readConcern();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.mongo.impl.config.ReadConcernLevelParser this
         0: .line 21
            aload 0 /* this */
            invokevirtual io.vertx.ext.mongo.impl.config.ReadConcernLevelParser.tryToParseFromConnectionString:()Ljava/util/Optional;
            aload 0 /* this */
            invokedynamic apply(Lio/vertx/ext/mongo/impl/config/ReadConcernLevelParser;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/ext/mongo/impl/config/ReadConcernLevelParser.lift(Lcom/mongodb/ReadConcern;)Ljava/util/Optional; (7)
                  (Lcom/mongodb/ReadConcern;)Ljava/util/Optional;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
            aload 0 /* this */
            invokedynamic get(Lio/vertx/ext/mongo/impl/config/ReadConcernLevelParser;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  io/vertx/ext/mongo/impl/config/ReadConcernLevelParser.tryToParseFromConfig()Ljava/util/Optional; (7)
                  ()Ljava/util/Optional;
            invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast java.util.Optional
            areturn
        end local 0 // io.vertx.ext.mongo.impl.config.ReadConcernLevelParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/mongo/impl/config/ReadConcernLevelParser;
    Signature: ()Ljava/util/Optional<Lcom/mongodb/ReadConcern;>;

  private java.util.Optional<com.mongodb.ReadConcern> lift(com.mongodb.ReadConcern);
    descriptor: (Lcom/mongodb/ReadConcern;)Ljava/util/Optional;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.config.ReadConcernLevelParser this
        start local 1 // com.mongodb.ReadConcern readConcern
         0: .line 25
            aload 1 /* readConcern */
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 1 // com.mongodb.ReadConcern readConcern
        end local 0 // io.vertx.ext.mongo.impl.config.ReadConcernLevelParser this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lio/vertx/ext/mongo/impl/config/ReadConcernLevelParser;
            0    1     1  readConcern  Lcom/mongodb/ReadConcern;
    Signature: (Lcom/mongodb/ReadConcern;)Ljava/util/Optional<Lcom/mongodb/ReadConcern;>;
    MethodParameters:
             Name  Flags
      readConcern  

  private java.util.Optional<com.mongodb.ReadConcern> tryToParseFromConnectionString();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.mongo.impl.config.ReadConcernLevelParser this
         0: .line 29
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.config.ReadConcernLevelParser.connectionString:Lcom/mongodb/ConnectionString;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
         1: .line 30
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/ext/mongo/impl/config/ReadConcernLevelParser.lambda$2(Lcom/mongodb/ConnectionString;)Ljava/util/Optional; (6)
                  (Lcom/mongodb/ConnectionString;)Ljava/util/Optional;
            invokevirtual java.util.Optional.flatMap:(Ljava/util/function/Function;)Ljava/util/Optional;
         2: .line 29
            areturn
        end local 0 // io.vertx.ext.mongo.impl.config.ReadConcernLevelParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/ext/mongo/impl/config/ReadConcernLevelParser;
    Signature: ()Ljava/util/Optional<Lcom/mongodb/ReadConcern;>;

  private java.util.Optional<com.mongodb.ReadConcern> tryToParseFromConfig();
    descriptor: ()Ljava/util/Optional;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.mongo.impl.config.ReadConcernLevelParser this
         0: .line 34
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.config.ReadConcernLevelParser.config:Lio/vertx/core/json/JsonObject;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
         1: .line 35
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/ext/mongo/impl/config/ReadConcernLevelParser.lambda$3(Lio/vertx/core/json/JsonObject;)Ljava/util/Optional; (6)
                  (Lio/vertx/core/json/JsonObject;)Ljava/util/Optional;
            invokevirtual java.util.Optional.flatMap:(Ljava/util/function/Function;)Ljava/util/Optional;
         2: .line 36
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/mongodb/ReadConcernLevel.fromString(Ljava/lang/String;)Lcom/mongodb/ReadConcernLevel; (6)
                  (Ljava/lang/String;)Lcom/mongodb/ReadConcernLevel;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
         3: .line 37
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/mongodb/ReadConcern.<init>(Lcom/mongodb/ReadConcernLevel;)V (8)
                  (Lcom/mongodb/ReadConcernLevel;)Lcom/mongodb/ReadConcern;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
         4: .line 34
            areturn
        end local 0 // io.vertx.ext.mongo.impl.config.ReadConcernLevelParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/ext/mongo/impl/config/ReadConcernLevelParser;
    Signature: ()Ljava/util/Optional<Lcom/mongodb/ReadConcern;>;

  private static java.util.Optional lambda$2(com.mongodb.ConnectionString);
    descriptor: (Lcom/mongodb/ConnectionString;)Ljava/util/Optional;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString cs
         0: .line 30
            aload 0 /* cs */
            invokevirtual com.mongodb.ConnectionString.getReadConcern:()Lcom/mongodb/ReadConcern;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 0 // com.mongodb.ConnectionString cs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    cs  Lcom/mongodb/ConnectionString;

  private static java.util.Optional lambda$3(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)Ljava/util/Optional;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.core.json.JsonObject cfg
         0: .line 35
            aload 0 /* cfg */
            ldc "readConcernLevel"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 0 // io.vertx.core.json.JsonObject cfg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   cfg  Lio/vertx/core/json/JsonObject;
}
SourceFile: "ReadConcernLevelParser.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles