public class io.vertx.ext.web.api.validation.impl.NumericTypeValidator extends io.vertx.ext.web.api.validation.impl.SingleValueParameterTypeValidator<java.lang.Number>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.web.api.validation.impl.NumericTypeValidator
  super_class: io.vertx.ext.web.api.validation.impl.SingleValueParameterTypeValidator
{
  private static final java.util.function.Function<java.lang.String, java.lang.Number> parseInteger;
    descriptor: Ljava/util/function/Function;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/Number;>;

  private static final java.util.function.Function<java.lang.String, java.lang.Number> parseFloat;
    descriptor: Ljava/util/function/Function;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/Number;>;

  private static final java.util.function.Function<java.lang.String, java.lang.Number> parseDouble;
    descriptor: Ljava/util/function/Function;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/Number;>;

  private static final java.util.function.Function<java.lang.String, java.lang.Number> parseLong;
    descriptor: Ljava/util/function/Function;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/Number;>;

  private java.util.function.Function<java.lang.String, java.lang.Number> parseNumber;
    descriptor: Ljava/util/function/Function;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/Number;>;

  private java.lang.Boolean exclusiveMaximum;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Double maximum;
    descriptor: Ljava/lang/Double;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Boolean exclusiveMinimum;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Double minimum;
    descriptor: Ljava/lang/Double;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Double multipleOf;
    descriptor: Ljava/lang/Double;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 13
            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;
                  java/lang/Integer.valueOf(Ljava/lang/String;)Ljava/lang/Integer; (6)
                  (Ljava/lang/String;)Ljava/lang/Number;
            putstatic io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseInteger:Ljava/util/function/Function;
         1: .line 14
            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;
                  java/lang/Float.parseFloat(Ljava/lang/String;)F (6)
                  (Ljava/lang/String;)Ljava/lang/Number;
            putstatic io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseFloat:Ljava/util/function/Function;
         2: .line 15
            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;
                  java/lang/Double.parseDouble(Ljava/lang/String;)D (6)
                  (Ljava/lang/String;)Ljava/lang/Number;
            putstatic io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseDouble:Ljava/util/function/Function;
         3: .line 16
            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;
                  java/lang/Long.parseLong(Ljava/lang/String;)J (6)
                  (Ljava/lang/String;)Ljava/lang/Number;
            putstatic io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseLong:Ljava/util/function/Function;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.Class, java.lang.Boolean, java.lang.Double, java.lang.Boolean, java.lang.Double, java.lang.Double, java.lang.Object);
    descriptor: (Ljava/lang/Class;Ljava/lang/Boolean;Ljava/lang/Double;Ljava/lang/Boolean;Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=8
        start local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
        start local 1 // java.lang.Class numberType
        start local 2 // java.lang.Boolean exclusiveMaximum
        start local 3 // java.lang.Double maximum
        start local 4 // java.lang.Boolean exclusiveMinimum
        start local 5 // java.lang.Double minimum
        start local 6 // java.lang.Double multipleOf
        start local 7 // java.lang.Object defaultValue
         0: .line 29
            aload 0 /* this */
            aconst_null
            invokespecial io.vertx.ext.web.api.validation.impl.SingleValueParameterTypeValidator.<init>:(Ljava/lang/Object;)V
         1: .line 30
            ldc Ljava/lang/Integer;
            aload 1 /* numberType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 31
            aload 0 /* this */
            getstatic io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseInteger:Ljava/util/function/Function;
            putfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseNumber:Ljava/util/function/Function;
            goto 10
         3: .line 32
      StackMap locals: io.vertx.ext.web.api.validation.impl.NumericTypeValidator java.lang.Class java.lang.Boolean java.lang.Double java.lang.Boolean java.lang.Double java.lang.Double java.lang.Object
      StackMap stack:
            ldc Ljava/lang/Float;
            aload 1 /* numberType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 33
            aload 0 /* this */
            getstatic io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseFloat:Ljava/util/function/Function;
            putfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseNumber:Ljava/util/function/Function;
            goto 10
         5: .line 34
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Double;
            aload 1 /* numberType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 35
            aload 0 /* this */
            getstatic io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseDouble:Ljava/util/function/Function;
            putfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseNumber:Ljava/util/function/Function;
            goto 10
         7: .line 36
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Long;
            aload 1 /* numberType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 37
            aload 0 /* this */
            getstatic io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseLong:Ljava/util/function/Function;
            putfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseNumber:Ljava/util/function/Function;
            goto 10
         9: .line 39
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "numberType can be Integer.class, Float.class, Double.class or Long.class"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 41
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* exclusiveMaximum */
            putfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.exclusiveMaximum:Ljava/lang/Boolean;
        11: .line 42
            aload 0 /* this */
            aload 3 /* maximum */
            putfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.maximum:Ljava/lang/Double;
        12: .line 43
            aload 0 /* this */
            aload 4 /* exclusiveMinimum */
            putfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.exclusiveMinimum:Ljava/lang/Boolean;
        13: .line 44
            aload 0 /* this */
            aload 5 /* minimum */
            putfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.minimum:Ljava/lang/Double;
        14: .line 45
            aload 0 /* this */
            aload 6 /* multipleOf */
            putfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.multipleOf:Ljava/lang/Double;
        15: .line 46
            aload 7 /* defaultValue */
            ifnull 22
        16: .line 47
            aload 7 /* defaultValue */
            instanceof java.lang.String
            ifeq 18
        17: .line 48
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseNumber:Ljava/util/function/Function;
            aload 7 /* defaultValue */
            checkcast java.lang.String
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Number
            putfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.defaultValue:Ljava/lang/Object;
            goto 22
        18: .line 49
      StackMap locals:
      StackMap stack:
            aload 1 /* numberType */
            aload 7 /* defaultValue */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 50
            aload 0 /* this */
            aload 1 /* numberType */
            aload 7 /* defaultValue */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Number
            putfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.defaultValue:Ljava/lang/Object;
        20: .line 51
            goto 22
        21: .line 52
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "defaultValue should be a String or a Number instance"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 55
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.lang.Object defaultValue
        end local 6 // java.lang.Double multipleOf
        end local 5 // java.lang.Double minimum
        end local 4 // java.lang.Boolean exclusiveMinimum
        end local 3 // java.lang.Double maximum
        end local 2 // java.lang.Boolean exclusiveMaximum
        end local 1 // java.lang.Class numberType
        end local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   23     0              this  Lio/vertx/ext/web/api/validation/impl/NumericTypeValidator;
            0   23     1        numberType  Ljava/lang/Class;
            0   23     2  exclusiveMaximum  Ljava/lang/Boolean;
            0   23     3           maximum  Ljava/lang/Double;
            0   23     4  exclusiveMinimum  Ljava/lang/Boolean;
            0   23     5           minimum  Ljava/lang/Double;
            0   23     6        multipleOf  Ljava/lang/Double;
            0   23     7      defaultValue  Ljava/lang/Object;
    MethodParameters:
                  Name  Flags
      numberType        
      exclusiveMaximum  
      maximum           
      exclusiveMinimum  
      minimum           
      multipleOf        
      defaultValue      

  public void <init>(java.lang.Class, java.lang.Double, java.lang.Double, java.lang.Double, java.lang.Object);
    descriptor: (Ljava/lang/Class;Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=6
        start local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
        start local 1 // java.lang.Class numberType
        start local 2 // java.lang.Double maximum
        start local 3 // java.lang.Double minimum
        start local 4 // java.lang.Double multipleOf
        start local 5 // java.lang.Object defaultValue
         0: .line 58
            aload 0 /* this */
            aload 1 /* numberType */
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 2 /* maximum */
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 3 /* minimum */
            aload 4 /* multipleOf */
            aload 5 /* defaultValue */
            invokespecial io.vertx.ext.web.api.validation.impl.NumericTypeValidator.<init>:(Ljava/lang/Class;Ljava/lang/Boolean;Ljava/lang/Double;Ljava/lang/Boolean;Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Object;)V
         1: .line 59
            return
        end local 5 // java.lang.Object defaultValue
        end local 4 // java.lang.Double multipleOf
        end local 3 // java.lang.Double minimum
        end local 2 // java.lang.Double maximum
        end local 1 // java.lang.Class numberType
        end local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lio/vertx/ext/web/api/validation/impl/NumericTypeValidator;
            0    2     1    numberType  Ljava/lang/Class;
            0    2     2       maximum  Ljava/lang/Double;
            0    2     3       minimum  Ljava/lang/Double;
            0    2     4    multipleOf  Ljava/lang/Double;
            0    2     5  defaultValue  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      numberType    
      maximum       
      minimum       
      multipleOf    
      defaultValue  

  public void <init>(java.lang.Class, java.lang.Object);
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
        start local 1 // java.lang.Class numberType
        start local 2 // java.lang.Object defaultValue
         0: .line 62
            aload 0 /* this */
            aload 1 /* numberType */
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aload 2 /* defaultValue */
            invokespecial io.vertx.ext.web.api.validation.impl.NumericTypeValidator.<init>:(Ljava/lang/Class;Ljava/lang/Boolean;Ljava/lang/Double;Ljava/lang/Boolean;Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Object;)V
         1: .line 63
            return
        end local 2 // java.lang.Object defaultValue
        end local 1 // java.lang.Class numberType
        end local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lio/vertx/ext/web/api/validation/impl/NumericTypeValidator;
            0    2     1    numberType  Ljava/lang/Class;
            0    2     2  defaultValue  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      numberType    
      defaultValue  

  public void <init>(java.lang.Class);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
        start local 1 // java.lang.Class numberType
         0: .line 66
            aload 0 /* this */
            aload 1 /* numberType */
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            invokespecial io.vertx.ext.web.api.validation.impl.NumericTypeValidator.<init>:(Ljava/lang/Class;Ljava/lang/Boolean;Ljava/lang/Double;Ljava/lang/Boolean;Ljava/lang/Double;Ljava/lang/Double;Ljava/lang/Object;)V
         1: .line 67
            return
        end local 1 // java.lang.Class numberType
        end local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lio/vertx/ext/web/api/validation/impl/NumericTypeValidator;
            0    2     1  numberType  Ljava/lang/Class;
    MethodParameters:
            Name  Flags
      numberType  

  private void checkMaximum(java.lang.Number);
    descriptor: (Ljava/lang/Number;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
        start local 1 // java.lang.Number number
         0: .line 70
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.maximum:Ljava/lang/Double;
            ifnull 5
         1: .line 71
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.exclusiveMaximum:Ljava/lang/Boolean;
            ifnull 3
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.exclusiveMaximum:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 3
            aload 1 /* number */
            invokevirtual java.lang.Number.doubleValue:()D
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.maximum:Ljava/lang/Double;
            invokevirtual java.lang.Double.doubleValue:()D
            dcmpg
            iflt 3
         2: .line 72
            new java.lang.StringBuilder
            dup
            ldc "Number should be < "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.maximum:Ljava/lang/Double;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic io.vertx.ext.web.api.validation.ValidationException$ValidationExceptionFactory.generateNotMatchValidationException:(Ljava/lang/String;)Lio/vertx/ext/web/api/validation/ValidationException;
            athrow
         3: .line 73
      StackMap locals:
      StackMap stack:
            aload 1 /* number */
            invokevirtual java.lang.Number.doubleValue:()D
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.maximum:Ljava/lang/Double;
            invokevirtual java.lang.Double.doubleValue:()D
            dcmpg
            ifle 5
         4: .line 74
            new java.lang.StringBuilder
            dup
            ldc "Number should be <= "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.maximum:Ljava/lang/Double;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic io.vertx.ext.web.api.validation.ValidationException$ValidationExceptionFactory.generateNotMatchValidationException:(Ljava/lang/String;)Lio/vertx/ext/web/api/validation/ValidationException;
            athrow
         5: .line 76
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Number number
        end local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lio/vertx/ext/web/api/validation/impl/NumericTypeValidator;
            0    6     1  number  Ljava/lang/Number;
    MethodParameters:
        Name  Flags
      number  

  private void checkMinimum(java.lang.Number);
    descriptor: (Ljava/lang/Number;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
        start local 1 // java.lang.Number number
         0: .line 79
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.minimum:Ljava/lang/Double;
            ifnull 5
         1: .line 80
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.exclusiveMinimum:Ljava/lang/Boolean;
            ifnull 3
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.exclusiveMinimum:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 3
            aload 1 /* number */
            invokevirtual java.lang.Number.doubleValue:()D
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.minimum:Ljava/lang/Double;
            invokevirtual java.lang.Double.doubleValue:()D
            dcmpl
            ifgt 3
         2: .line 81
            new java.lang.StringBuilder
            dup
            ldc "Number should be > "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.minimum:Ljava/lang/Double;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic io.vertx.ext.web.api.validation.ValidationException$ValidationExceptionFactory.generateNotMatchValidationException:(Ljava/lang/String;)Lio/vertx/ext/web/api/validation/ValidationException;
            athrow
         3: .line 82
      StackMap locals:
      StackMap stack:
            aload 1 /* number */
            invokevirtual java.lang.Number.doubleValue:()D
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.minimum:Ljava/lang/Double;
            invokevirtual java.lang.Double.doubleValue:()D
            dcmpl
            ifge 5
         4: .line 83
            new java.lang.StringBuilder
            dup
            ldc "Number should be >= "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.minimum:Ljava/lang/Double;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic io.vertx.ext.web.api.validation.ValidationException$ValidationExceptionFactory.generateNotMatchValidationException:(Ljava/lang/String;)Lio/vertx/ext/web/api/validation/ValidationException;
            athrow
         5: .line 85
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Number number
        end local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lio/vertx/ext/web/api/validation/impl/NumericTypeValidator;
            0    6     1  number  Ljava/lang/Number;
    MethodParameters:
        Name  Flags
      number  

  private void checkMultipleOf(java.lang.Number);
    descriptor: (Ljava/lang/Number;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
        start local 1 // java.lang.Number number
         0: .line 88
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.multipleOf:Ljava/lang/Double;
            ifnull 3
            aload 1 /* number */
            invokevirtual java.lang.Number.doubleValue:()D
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.multipleOf:Ljava/lang/Double;
            invokevirtual java.lang.Double.doubleValue:()D
            drem
            dconst_0
            dcmpl
            ifeq 3
         1: .line 90
            new java.lang.StringBuilder
            dup
            ldc "Number should be multipleOf "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.multipleOf:Ljava/lang/Double;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         2: .line 89
            invokestatic io.vertx.ext.web.api.validation.ValidationException$ValidationExceptionFactory.generateNotMatchValidationException:(Ljava/lang/String;)Lio/vertx/ext/web/api/validation/ValidationException;
            athrow
         3: .line 91
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Number number
        end local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lio/vertx/ext/web/api/validation/impl/NumericTypeValidator;
            0    4     1  number  Ljava/lang/Number;
    MethodParameters:
        Name  Flags
      number  

  public io.vertx.ext.web.api.RequestParameter isValidSingleParam(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/api/RequestParameter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
        start local 1 // java.lang.String value
         0: .line 96
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.NumericTypeValidator.parseNumber:Ljava/util/function/Function;
            aload 1 /* value */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Number
            astore 2 /* number */
        start local 2 // java.lang.Number number
         1: .line 97
            aload 0 /* this */
            aload 2 /* number */
            invokevirtual io.vertx.ext.web.api.validation.impl.NumericTypeValidator.checkMaximum:(Ljava/lang/Number;)V
         2: .line 98
            aload 0 /* this */
            aload 2 /* number */
            invokevirtual io.vertx.ext.web.api.validation.impl.NumericTypeValidator.checkMinimum:(Ljava/lang/Number;)V
         3: .line 99
            aload 0 /* this */
            aload 2 /* number */
            invokevirtual io.vertx.ext.web.api.validation.impl.NumericTypeValidator.checkMultipleOf:(Ljava/lang/Number;)V
         4: .line 100
            aload 2 /* number */
            invokestatic io.vertx.ext.web.api.RequestParameter.create:(Ljava/lang/Object;)Lio/vertx/ext/web/api/RequestParameter;
         5: areturn
        end local 2 // java.lang.Number number
         6: .line 101
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
            pop
         7: .line 102
            ldc "Value is not a valid number"
            invokestatic io.vertx.ext.web.api.validation.ValidationException$ValidationExceptionFactory.generateNotMatchValidationException:(Ljava/lang/String;)Lio/vertx/ext/web/api/validation/ValidationException;
            athrow
        end local 1 // java.lang.String value
        end local 0 // io.vertx.ext.web.api.validation.impl.NumericTypeValidator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lio/vertx/ext/web/api/validation/impl/NumericTypeValidator;
            0    8     1   value  Ljava/lang/String;
            1    6     2  number  Ljava/lang/Number;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.NumberFormatException
    MethodParameters:
       Name  Flags
      value  
}
Signature: Lio/vertx/ext/web/api/validation/impl/SingleValueParameterTypeValidator<Ljava/lang/Number;>;
SourceFile: "NumericTypeValidator.java"
InnerClasses:
  public ValidationExceptionFactory = io.vertx.ext.web.api.validation.ValidationException$ValidationExceptionFactory of io.vertx.ext.web.api.validation.ValidationException
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles