public interface io.vertx.servicediscovery.types.MessageSource extends io.vertx.servicediscovery.spi.ServiceType
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: io.vertx.servicediscovery.types.MessageSource
  super_class: java.lang.Object
{
  public static final java.lang.String TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "message-source"

  public static io.vertx.servicediscovery.Record createRecord(java.lang.String, java.lang.String, java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/servicediscovery/Record;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // java.lang.String name
        start local 1 // java.lang.String address
        start local 2 // java.lang.String type
        start local 3 // io.vertx.core.json.JsonObject metadata
         0: .line 54
            aload 0 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 55
            aload 1 /* address */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 56
            new io.vertx.servicediscovery.Record
            dup
            invokespecial io.vertx.servicediscovery.Record.<init>:()V
            aload 0 /* name */
            invokevirtual io.vertx.servicediscovery.Record.setName:(Ljava/lang/String;)Lio/vertx/servicediscovery/Record;
         3: .line 57
            ldc "message-source"
            invokevirtual io.vertx.servicediscovery.Record.setType:(Ljava/lang/String;)Lio/vertx/servicediscovery/Record;
         4: .line 58
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            ldc "endpoint"
            aload 1 /* address */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.servicediscovery.Record.setLocation:(Lio/vertx/core/json/JsonObject;)Lio/vertx/servicediscovery/Record;
         5: .line 56
            astore 4 /* record */
        start local 4 // io.vertx.servicediscovery.Record record
         6: .line 60
            aload 3 /* metadata */
            ifnull 8
         7: .line 61
            aload 4 /* record */
            aload 3 /* metadata */
            invokevirtual io.vertx.servicediscovery.Record.setMetadata:(Lio/vertx/core/json/JsonObject;)Lio/vertx/servicediscovery/Record;
            pop
         8: .line 64
      StackMap locals: io.vertx.servicediscovery.Record
      StackMap stack:
            aload 2 /* type */
            ifnull 10
         9: .line 65
            aload 4 /* record */
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            ldc "message.type"
            aload 2 /* type */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.servicediscovery.Record.setMetadata:(Lio/vertx/core/json/JsonObject;)Lio/vertx/servicediscovery/Record;
            pop
        10: .line 68
      StackMap locals:
      StackMap stack:
            aload 4 /* record */
            areturn
        end local 4 // io.vertx.servicediscovery.Record record
        end local 3 // io.vertx.core.json.JsonObject metadata
        end local 2 // java.lang.String type
        end local 1 // java.lang.String address
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      name  Ljava/lang/String;
            0   11     1   address  Ljava/lang/String;
            0   11     2      type  Ljava/lang/String;
            0   11     3  metadata  Lio/vertx/core/json/JsonObject;
            6   11     4    record  Lio/vertx/servicediscovery/Record;
    MethodParameters:
          Name  Flags
      name      
      address   
      type      
      metadata  

  public static io.vertx.servicediscovery.Record createRecord(java.lang.String, java.lang.String, java.lang.Class, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Lio/vertx/core/json/JsonObject;)Lio/vertx/servicediscovery/Record;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.String name
        start local 1 // java.lang.String address
        start local 2 // java.lang.Class type
        start local 3 // io.vertx.core.json.JsonObject metadata
         0: .line 82
            aload 0 /* name */
            aload 1 /* address */
            aload 2 /* type */
            ifnull 1
            aload 2 /* type */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            goto 2
      StackMap locals: java.lang.String java.lang.String java.lang.Class io.vertx.core.json.JsonObject
      StackMap stack: java.lang.String java.lang.String
         1: aconst_null
      StackMap locals: java.lang.String java.lang.String java.lang.Class io.vertx.core.json.JsonObject
      StackMap stack: java.lang.String java.lang.String java.lang.String
         2: aload 3 /* metadata */
            invokestatic io.vertx.servicediscovery.types.MessageSource.createRecord:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/servicediscovery/Record;
            areturn
        end local 3 // io.vertx.core.json.JsonObject metadata
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String address
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      name  Ljava/lang/String;
            0    3     1   address  Ljava/lang/String;
            0    3     2      type  Ljava/lang/Class;
            0    3     3  metadata  Lio/vertx/core/json/JsonObject;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.GenIgnore()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        io.vertx.codegen.annotations.GenIgnore()
    MethodParameters:
          Name  Flags
      name      
      address   
      type      
      metadata  

  public static io.vertx.servicediscovery.Record createRecord(java.lang.String, java.lang.String, java.lang.Class);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lio/vertx/servicediscovery/Record;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.String name
        start local 1 // java.lang.String address
        start local 2 // java.lang.Class type
         0: .line 95
            aload 0 /* name */
            aload 1 /* address */
            aload 2 /* type */
            aconst_null
            invokestatic io.vertx.servicediscovery.types.MessageSource.createRecord:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Lio/vertx/core/json/JsonObject;)Lio/vertx/servicediscovery/Record;
            areturn
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String address
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     name  Ljava/lang/String;
            0    1     1  address  Ljava/lang/String;
            0    1     2     type  Ljava/lang/Class;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.GenIgnore()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        io.vertx.codegen.annotations.GenIgnore()
    MethodParameters:
         Name  Flags
      name     
      address  
      type     

  public static io.vertx.servicediscovery.Record createRecord(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/servicediscovery/Record;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.String name
        start local 1 // java.lang.String address
        start local 2 // java.lang.String type
         0: .line 107
            aload 0 /* name */
            aload 1 /* address */
            aload 2 /* type */
            aconst_null
            invokestatic io.vertx.servicediscovery.types.MessageSource.createRecord:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/servicediscovery/Record;
            areturn
        end local 2 // java.lang.String type
        end local 1 // java.lang.String address
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     name  Ljava/lang/String;
            0    1     1  address  Ljava/lang/String;
            0    1     2     type  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      name     
      address  
      type     

  public static io.vertx.servicediscovery.Record createRecord(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lio/vertx/servicediscovery/Record;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.String address
         0: .line 119
            aload 0 /* name */
            aload 1 /* address */
            aconst_null
            invokestatic io.vertx.servicediscovery.types.MessageSource.createRecord:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/servicediscovery/Record;
            areturn
        end local 1 // java.lang.String address
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     name  Ljava/lang/String;
            0    1     1  address  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      name     
      address  

  public static <T> void getConsumer(io.vertx.servicediscovery.ServiceDiscovery, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.eventbus.MessageConsumer<T>>>);
    descriptor: (Lio/vertx/servicediscovery/ServiceDiscovery;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.servicediscovery.ServiceDiscovery discovery
        start local 1 // io.vertx.core.json.JsonObject filter
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 134
            aload 0 /* discovery */
            aload 1 /* filter */
            invokestatic io.vertx.servicediscovery.types.MessageSource.getConsumer:(Lio/vertx/servicediscovery/ServiceDiscovery;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            aload 2 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         1: .line 135
            return
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // io.vertx.core.json.JsonObject filter
        end local 0 // io.vertx.servicediscovery.ServiceDiscovery discovery
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0      discovery  Lio/vertx/servicediscovery/ServiceDiscovery;
            0    2     1         filter  Lio/vertx/core/json/JsonObject;
            0    2     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/eventbus/MessageConsumer<TT;>;>;>;
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/servicediscovery/ServiceDiscovery;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/eventbus/MessageConsumer<TT;>;>;>;)V
    MethodParameters:
               Name  Flags
      discovery      
      filter         
      resultHandler  

  public static <T> io.vertx.core.Future<io.vertx.core.eventbus.MessageConsumer<T>> getConsumer(io.vertx.servicediscovery.ServiceDiscovery, io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/servicediscovery/ServiceDiscovery;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.servicediscovery.ServiceDiscovery discovery
        start local 1 // io.vertx.core.json.JsonObject filter
         0: .line 141
            aload 0 /* discovery */
            aload 1 /* filter */
            invokeinterface io.vertx.servicediscovery.ServiceDiscovery.getRecord:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            aload 0 /* discovery */
            invokedynamic apply(Lio/vertx/servicediscovery/ServiceDiscovery;)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/servicediscovery/types/MessageSource.lambda$0(Lio/vertx/servicediscovery/ServiceDiscovery;Lio/vertx/servicediscovery/Record;)Lio/vertx/core/Future; (6 itf)
                  (Lio/vertx/servicediscovery/Record;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Future.flatMap:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.json.JsonObject filter
        end local 0 // io.vertx.servicediscovery.ServiceDiscovery discovery
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  discovery  Lio/vertx/servicediscovery/ServiceDiscovery;
            0    1     1     filter  Lio/vertx/core/json/JsonObject;
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/servicediscovery/ServiceDiscovery;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Lio/vertx/core/eventbus/MessageConsumer<TT;>;>;
    MethodParameters:
           Name  Flags
      discovery  
      filter     

  public static <T> void getConsumer(io.vertx.servicediscovery.ServiceDiscovery, java.util.function.Function<io.vertx.servicediscovery.Record, java.lang.Boolean>, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.eventbus.MessageConsumer<T>>>);
    descriptor: (Lio/vertx/servicediscovery/ServiceDiscovery;Ljava/util/function/Function;Lio/vertx/core/Handler;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.servicediscovery.ServiceDiscovery discovery
        start local 1 // java.util.function.Function filter
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 162
            aload 0 /* discovery */
            aload 1 /* filter */
            invokestatic io.vertx.servicediscovery.types.MessageSource.getConsumer:(Lio/vertx/servicediscovery/ServiceDiscovery;Ljava/util/function/Function;)Lio/vertx/core/Future;
            aload 2 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         1: .line 163
            return
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.util.function.Function filter
        end local 0 // io.vertx.servicediscovery.ServiceDiscovery discovery
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0      discovery  Lio/vertx/servicediscovery/ServiceDiscovery;
            0    2     1         filter  Ljava/util/function/Function<Lio/vertx/servicediscovery/Record;Ljava/lang/Boolean;>;
            0    2     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/eventbus/MessageConsumer<TT;>;>;>;
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/servicediscovery/ServiceDiscovery;Ljava/util/function/Function<Lio/vertx/servicediscovery/Record;Ljava/lang/Boolean;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/eventbus/MessageConsumer<TT;>;>;>;)V
    MethodParameters:
               Name  Flags
      discovery      
      filter         
      resultHandler  

  public static <T> io.vertx.core.Future<io.vertx.core.eventbus.MessageConsumer<T>> getConsumer(io.vertx.servicediscovery.ServiceDiscovery, java.util.function.Function<io.vertx.servicediscovery.Record, java.lang.Boolean>);
    descriptor: (Lio/vertx/servicediscovery/ServiceDiscovery;Ljava/util/function/Function;)Lio/vertx/core/Future;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.servicediscovery.ServiceDiscovery discovery
        start local 1 // java.util.function.Function filter
         0: .line 169
            aload 0 /* discovery */
            aload 1 /* filter */
            invokeinterface io.vertx.servicediscovery.ServiceDiscovery.getRecord:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            aload 0 /* discovery */
            invokedynamic apply(Lio/vertx/servicediscovery/ServiceDiscovery;)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/servicediscovery/types/MessageSource.lambda$1(Lio/vertx/servicediscovery/ServiceDiscovery;Lio/vertx/servicediscovery/Record;)Lio/vertx/core/Future; (6 itf)
                  (Lio/vertx/servicediscovery/Record;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Future.flatMap:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 1 // java.util.function.Function filter
        end local 0 // io.vertx.servicediscovery.ServiceDiscovery discovery
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  discovery  Lio/vertx/servicediscovery/ServiceDiscovery;
            0    1     1     filter  Ljava/util/function/Function<Lio/vertx/servicediscovery/Record;Ljava/lang/Boolean;>;
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/servicediscovery/ServiceDiscovery;Ljava/util/function/Function<Lio/vertx/servicediscovery/Record;Ljava/lang/Boolean;>;)Lio/vertx/core/Future<Lio/vertx/core/eventbus/MessageConsumer<TT;>;>;
    MethodParameters:
           Name  Flags
      discovery  
      filter     

  private static io.vertx.core.Future lambda$0(io.vertx.servicediscovery.ServiceDiscovery, io.vertx.servicediscovery.Record);
    descriptor: (Lio/vertx/servicediscovery/ServiceDiscovery;Lio/vertx/servicediscovery/Record;)Lio/vertx/core/Future;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.servicediscovery.Record res
         0: .line 142
            aload 1 /* res */
            ifnonnull 2
         1: .line 143
            ldc "No matching records"
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            areturn
         2: .line 145
      StackMap locals:
      StackMap stack:
            aload 0
            aload 1 /* res */
            invokeinterface io.vertx.servicediscovery.ServiceDiscovery.getReference:(Lio/vertx/servicediscovery/Record;)Lio/vertx/servicediscovery/ServiceReference;
            invokeinterface io.vertx.servicediscovery.ServiceReference.get:()Ljava/lang/Object;
            checkcast io.vertx.core.eventbus.MessageConsumer
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.servicediscovery.Record res
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1   res  Lio/vertx/servicediscovery/Record;

  private static io.vertx.core.Future lambda$1(io.vertx.servicediscovery.ServiceDiscovery, io.vertx.servicediscovery.Record);
    descriptor: (Lio/vertx/servicediscovery/ServiceDiscovery;Lio/vertx/servicediscovery/Record;)Lio/vertx/core/Future;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.servicediscovery.Record res
         0: .line 170
            aload 1 /* res */
            ifnonnull 2
         1: .line 171
            ldc "No matching records"
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            areturn
         2: .line 173
      StackMap locals:
      StackMap stack:
            aload 0
            aload 1 /* res */
            invokeinterface io.vertx.servicediscovery.ServiceDiscovery.getReference:(Lio/vertx/servicediscovery/Record;)Lio/vertx/servicediscovery/ServiceReference;
            invokeinterface io.vertx.servicediscovery.ServiceReference.get:()Ljava/lang/Object;
            checkcast io.vertx.core.eventbus.MessageConsumer
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.servicediscovery.Record res
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1   res  Lio/vertx/servicediscovery/Record;
}
SourceFile: "MessageSource.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.VertxGen()