public class examples.ValidationExamples
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: examples.ValidationExamples
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // examples.ValidationExamples this
         0: .line 17
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // examples.ValidationExamples this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lexamples/ValidationExamples;

  public void example1(io.vertx.core.Vertx, io.vertx.ext.web.Router);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/ext/web/Router;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // examples.ValidationExamples this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.ext.web.Router router
         0: .line 21
            invokestatic io.vertx.ext.web.api.validation.HTTPRequestValidationHandler.create:()Lio/vertx/ext/web/api/validation/HTTPRequestValidationHandler;
            ldc "parameterName"
            getstatic io.vertx.ext.web.api.validation.ParameterType.INT:Lio/vertx/ext/web/api/validation/ParameterType;
            iconst_1
            invokeinterface io.vertx.ext.web.api.validation.HTTPRequestValidationHandler.addQueryParam:(Ljava/lang/String;Lio/vertx/ext/web/api/validation/ParameterType;Z)Lio/vertx/ext/web/api/validation/HTTPRequestValidationHandler;
            ldc "formParameterName"
            ldc "a{4}"
            iconst_1
            invokeinterface io.vertx.ext.web.api.validation.HTTPRequestValidationHandler.addFormParamWithPattern:(Ljava/lang/String;Ljava/lang/String;Z)Lio/vertx/ext/web/api/validation/HTTPRequestValidationHandler;
            ldc "pathParam"
            getstatic io.vertx.ext.web.api.validation.ParameterType.FLOAT:Lio/vertx/ext/web/api/validation/ParameterType;
            invokeinterface io.vertx.ext.web.api.validation.HTTPRequestValidationHandler.addPathParam:(Ljava/lang/String;Lio/vertx/ext/web/api/validation/ParameterType;)Lio/vertx/ext/web/api/validation/HTTPRequestValidationHandler;
            pop
         1: .line 22
            return
        end local 2 // io.vertx.ext.web.Router router
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // examples.ValidationExamples this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lexamples/ValidationExamples;
            0    2     1   vertx  Lio/vertx/core/Vertx;
            0    2     2  router  Lio/vertx/ext/web/Router;
    MethodParameters:
        Name  Flags
      vertx   
      router  

  public void example2(io.vertx.core.Vertx, io.vertx.ext.web.Router, io.vertx.ext.web.api.validation.HTTPRequestValidationHandler);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/ext/web/Router;Lio/vertx/ext/web/api/validation/HTTPRequestValidationHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // examples.ValidationExamples this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.ext.web.Router router
        start local 3 // io.vertx.ext.web.api.validation.HTTPRequestValidationHandler validationHandler
         0: .line 26
            aload 2 /* router */
            invokeinterface io.vertx.ext.web.Router.route:()Lio/vertx/ext/web/Route;
            invokestatic io.vertx.ext.web.handler.BodyHandler.create:()Lio/vertx/ext/web/handler/BodyHandler;
            invokeinterface io.vertx.ext.web.Route.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
            pop
         1: .line 28
            aload 2 /* router */
            ldc "/awesome/:pathParam"
            invokeinterface io.vertx.ext.web.Router.get:(Ljava/lang/String;)Lio/vertx/ext/web/Route;
         2: .line 30
            aload 3 /* validationHandler */
            invokeinterface io.vertx.ext.web.Route.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
         3: .line 32
            invokedynamic handle()Lio/vertx/core/Handler;
              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;)V
                  examples/ValidationExamples.lambda$0(Lio/vertx/ext/web/RoutingContext;)V (6)
                  (Lio/vertx/ext/web/RoutingContext;)V
            invokeinterface io.vertx.ext.web.Route.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
         4: .line 43
            invokedynamic handle()Lio/vertx/core/Handler;
              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;)V
                  examples/ValidationExamples.lambda$1(Lio/vertx/ext/web/RoutingContext;)V (6)
                  (Lio/vertx/ext/web/RoutingContext;)V
            invokeinterface io.vertx.ext.web.Route.failureHandler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
            pop
         5: .line 50
            return
        end local 3 // io.vertx.ext.web.api.validation.HTTPRequestValidationHandler validationHandler
        end local 2 // io.vertx.ext.web.Router router
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // examples.ValidationExamples this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lexamples/ValidationExamples;
            0    6     1              vertx  Lio/vertx/core/Vertx;
            0    6     2             router  Lio/vertx/ext/web/Router;
            0    6     3  validationHandler  Lio/vertx/ext/web/api/validation/HTTPRequestValidationHandler;
    MethodParameters:
                   Name  Flags
      vertx              
      router             
      validationHandler  

  public void example3(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // examples.ValidationExamples this
        start local 1 // io.vertx.ext.web.RoutingContext routingContext
         0: .line 53
            aload 1 /* routingContext */
            ldc "parsedParameters"
            invokeinterface io.vertx.ext.web.RoutingContext.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast io.vertx.ext.web.api.RequestParameters
            astore 2 /* params */
        start local 2 // io.vertx.ext.web.api.RequestParameters params
         1: .line 54
            aload 2 /* params */
            ldc "awesomeParameter"
            invokeinterface io.vertx.ext.web.api.RequestParameters.queryParameter:(Ljava/lang/String;)Lio/vertx/ext/web/api/RequestParameter;
            astore 3 /* awesomeParameter */
        start local 3 // io.vertx.ext.web.api.RequestParameter awesomeParameter
         2: .line 55
            aload 3 /* awesomeParameter */
            ifnull 5
         3: .line 56
            aload 3 /* awesomeParameter */
            invokeinterface io.vertx.ext.web.api.RequestParameter.isEmpty:()Z
            ifne 5
         4: .line 59
            aload 3 /* awesomeParameter */
            invokeinterface io.vertx.ext.web.api.RequestParameter.getInteger:()Ljava/lang/Integer;
            pop
         5: .line 66
      StackMap locals: io.vertx.ext.web.api.RequestParameters io.vertx.ext.web.api.RequestParameter
      StackMap stack:
            return
        end local 3 // io.vertx.ext.web.api.RequestParameter awesomeParameter
        end local 2 // io.vertx.ext.web.api.RequestParameters params
        end local 1 // io.vertx.ext.web.RoutingContext routingContext
        end local 0 // examples.ValidationExamples this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lexamples/ValidationExamples;
            0    6     1    routingContext  Lio/vertx/ext/web/RoutingContext;
            1    6     2            params  Lio/vertx/ext/web/api/RequestParameters;
            2    6     3  awesomeParameter  Lio/vertx/ext/web/api/RequestParameter;
    MethodParameters:
                Name  Flags
      routingContext  

  public void example4(io.vertx.ext.web.api.RequestParameters);
    descriptor: (Lio/vertx/ext/web/api/RequestParameters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // examples.ValidationExamples this
        start local 1 // io.vertx.ext.web.api.RequestParameters params
         0: .line 69
            aload 1 /* params */
            invokeinterface io.vertx.ext.web.api.RequestParameters.body:()Lio/vertx/ext/web/api/RequestParameter;
            astore 2 /* body */
        start local 2 // io.vertx.ext.web.api.RequestParameter body
         1: .line 70
            aload 2 /* body */
            ifnull 3
         2: .line 71
            aload 2 /* body */
            invokeinterface io.vertx.ext.web.api.RequestParameter.getJsonObject:()Lio/vertx/core/json/JsonObject;
            pop
         3: .line 73
      StackMap locals: io.vertx.ext.web.api.RequestParameter
      StackMap stack:
            return
        end local 2 // io.vertx.ext.web.api.RequestParameter body
        end local 1 // io.vertx.ext.web.api.RequestParameters params
        end local 0 // examples.ValidationExamples this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lexamples/ValidationExamples;
            0    4     1  params  Lio/vertx/ext/web/api/RequestParameters;
            1    4     2    body  Lio/vertx/ext/web/api/RequestParameter;
    MethodParameters:
        Name  Flags
      params  

  public void example5(io.vertx.core.Vertx, io.vertx.ext.web.Router, io.vertx.ext.web.api.validation.HTTPRequestValidationHandler);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/ext/web/Router;Lio/vertx/ext/web/api/validation/HTTPRequestValidationHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // examples.ValidationExamples this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.ext.web.Router router
        start local 3 // io.vertx.ext.web.api.validation.HTTPRequestValidationHandler validationHandler
         0: .line 76
            aload 2 /* router */
            ldc "/awesome/:pathParam"
            invokeinterface io.vertx.ext.web.Router.get:(Ljava/lang/String;)Lio/vertx/ext/web/Route;
         1: .line 78
            aload 3 /* validationHandler */
            invokeinterface io.vertx.ext.web.Route.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
         2: .line 80
            invokedynamic handle()Lio/vertx/core/Handler;
              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;)V
                  examples/ValidationExamples.lambda$2(Lio/vertx/ext/web/RoutingContext;)V (6)
                  (Lio/vertx/ext/web/RoutingContext;)V
            invokeinterface io.vertx.ext.web.Route.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
         3: .line 84
            invokedynamic handle()Lio/vertx/core/Handler;
              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;)V
                  examples/ValidationExamples.lambda$3(Lio/vertx/ext/web/RoutingContext;)V (6)
                  (Lio/vertx/ext/web/RoutingContext;)V
            invokeinterface io.vertx.ext.web.Route.failureHandler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
            pop
         4: .line 93
            aload 2 /* router */
            sipush 400
            invokedynamic handle()Lio/vertx/core/Handler;
              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;)V
                  examples/ValidationExamples.lambda$4(Lio/vertx/ext/web/RoutingContext;)V (6)
                  (Lio/vertx/ext/web/RoutingContext;)V
            invokeinterface io.vertx.ext.web.Router.errorHandler:(ILio/vertx/core/Handler;)Lio/vertx/ext/web/Router;
            pop
         5: .line 102
            return
        end local 3 // io.vertx.ext.web.api.validation.HTTPRequestValidationHandler validationHandler
        end local 2 // io.vertx.ext.web.Router router
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // examples.ValidationExamples this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lexamples/ValidationExamples;
            0    6     1              vertx  Lio/vertx/core/Vertx;
            0    6     2             router  Lio/vertx/ext/web/Router;
            0    6     3  validationHandler  Lio/vertx/ext/web/api/validation/HTTPRequestValidationHandler;
    MethodParameters:
                   Name  Flags
      vertx              
      router             
      validationHandler  

  private static void lambda$0(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.ext.web.RoutingContext routingContext
         0: .line 34
            aload 0 /* routingContext */
            ldc "parsedParameters"
            invokeinterface io.vertx.ext.web.RoutingContext.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast io.vertx.ext.web.api.RequestParameters
            astore 1 /* params */
        start local 1 // io.vertx.ext.web.api.RequestParameters params
         1: .line 37
            aload 1 /* params */
            ldc "parameterName"
            invokeinterface io.vertx.ext.web.api.RequestParameters.queryParameter:(Ljava/lang/String;)Lio/vertx/ext/web/api/RequestParameter;
            invokeinterface io.vertx.ext.web.api.RequestParameter.getInteger:()Ljava/lang/Integer;
            pop
         2: .line 38
            aload 1 /* params */
            ldc "formParameterName"
            invokeinterface io.vertx.ext.web.api.RequestParameters.formParameter:(Ljava/lang/String;)Lio/vertx/ext/web/api/RequestParameter;
            invokeinterface io.vertx.ext.web.api.RequestParameter.getString:()Ljava/lang/String;
            pop
         3: .line 39
            aload 1 /* params */
            ldc "pathParam"
            invokeinterface io.vertx.ext.web.api.RequestParameters.pathParameter:(Ljava/lang/String;)Lio/vertx/ext/web/api/RequestParameter;
            invokeinterface io.vertx.ext.web.api.RequestParameter.getFloat:()Ljava/lang/Float;
            pop
        end local 1 // io.vertx.ext.web.api.RequestParameters params
         4: .line 40
            return
        end local 0 // io.vertx.ext.web.RoutingContext routingContext
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  routingContext  Lio/vertx/ext/web/RoutingContext;
            1    4     1          params  Lio/vertx/ext/web/api/RequestParameters;

  private static void lambda$1(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // io.vertx.ext.web.RoutingContext routingContext
         0: .line 44
            aload 0 /* routingContext */
            invokeinterface io.vertx.ext.web.RoutingContext.failure:()Ljava/lang/Throwable;
            astore 1 /* failure */
        start local 1 // java.lang.Throwable failure
         1: .line 45
            aload 1 /* failure */
            instanceof io.vertx.ext.web.api.validation.ValidationException
            ifeq 3
         2: .line 47
            aload 1 /* failure */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            pop
        end local 1 // java.lang.Throwable failure
         3: .line 49
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.vertx.ext.web.RoutingContext routingContext
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0  routingContext  Lio/vertx/ext/web/RoutingContext;
            1    3     1         failure  Ljava/lang/Throwable;

  private static void lambda$2(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.RoutingContext routingContext
         0: .line 82
            return
        end local 0 // io.vertx.ext.web.RoutingContext routingContext
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  routingContext  Lio/vertx/ext/web/RoutingContext;

  private static void lambda$3(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // io.vertx.ext.web.RoutingContext routingContext
         0: .line 85
            aload 0 /* routingContext */
            invokeinterface io.vertx.ext.web.RoutingContext.failure:()Ljava/lang/Throwable;
            astore 1 /* failure */
        start local 1 // java.lang.Throwable failure
         1: .line 86
            aload 1 /* failure */
            instanceof io.vertx.ext.web.api.validation.ValidationException
            ifeq 3
         2: .line 88
            aload 1 /* failure */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            pop
        end local 1 // java.lang.Throwable failure
         3: .line 90
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.vertx.ext.web.RoutingContext routingContext
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0  routingContext  Lio/vertx/ext/web/RoutingContext;
            1    3     1         failure  Ljava/lang/Throwable;

  private static void lambda$4(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.RoutingContext routingContext
         0: .line 94
            aload 0 /* routingContext */
            invokeinterface io.vertx.ext.web.RoutingContext.failure:()Ljava/lang/Throwable;
            instanceof io.vertx.ext.web.api.validation.ValidationException
            ifeq 3
         1: .line 96
            aload 0 /* routingContext */
            invokeinterface io.vertx.ext.web.RoutingContext.failure:()Ljava/lang/Throwable;
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            pop
         2: .line 97
            goto 4
         3: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* routingContext */
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            sipush 400
            invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.end:()V
         4: .line 101
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.vertx.ext.web.RoutingContext routingContext
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  routingContext  Lio/vertx/ext/web/RoutingContext;
}
SourceFile: "ValidationExamples.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles