public class io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl implements io.vertx.ext.web.api.validation.ParameterValidationRule
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl
  super_class: java.lang.Object
{
  private java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  io.vertx.ext.web.api.validation.ParameterTypeValidator validator;
    descriptor: Lio/vertx/ext/web/api/validation/ParameterTypeValidator;
    flags: (0x0000) 

  private io.vertx.ext.web.api.validation.ParameterLocation location;
    descriptor: Lio/vertx/ext/web/api/validation/ParameterLocation;
    flags: (0x0002) ACC_PRIVATE

  private boolean isOptional;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean allowEmptyValue;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.lang.String, io.vertx.ext.web.api.validation.ParameterTypeValidator, boolean, boolean, io.vertx.ext.web.api.validation.ParameterLocation);
    descriptor: (Ljava/lang/String;Lio/vertx/ext/web/api/validation/ParameterTypeValidator;ZZLio/vertx/ext/web/api/validation/ParameterLocation;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
        start local 1 // java.lang.String name
        start local 2 // io.vertx.ext.web.api.validation.ParameterTypeValidator validator
        start local 3 // boolean isOptional
        start local 4 // boolean allowEmptyValue
        start local 5 // io.vertx.ext.web.api.validation.ParameterLocation location
         0: .line 20
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 22
            aload 1 /* name */
            ifnonnull 2
            new java.lang.IllegalArgumentException
            dup
            ldc "name cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 23
      StackMap locals: io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl java.lang.String io.vertx.ext.web.api.validation.ParameterTypeValidator int int io.vertx.ext.web.api.validation.ParameterLocation
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            putfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.name:Ljava/lang/String;
         3: .line 24
            aload 2 /* validator */
            ifnonnull 4
            new java.lang.IllegalArgumentException
            dup
            ldc "validator cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 25
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* validator */
            putfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.validator:Lio/vertx/ext/web/api/validation/ParameterTypeValidator;
         5: .line 26
            aload 0 /* this */
            iload 3 /* isOptional */
            putfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.isOptional:Z
         6: .line 27
            aload 0 /* this */
            iload 4 /* allowEmptyValue */
            putfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.allowEmptyValue:Z
         7: .line 28
            aload 0 /* this */
            aload 5 /* location */
            putfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.location:Lio/vertx/ext/web/api/validation/ParameterLocation;
         8: .line 29
            return
        end local 5 // io.vertx.ext.web.api.validation.ParameterLocation location
        end local 4 // boolean allowEmptyValue
        end local 3 // boolean isOptional
        end local 2 // io.vertx.ext.web.api.validation.ParameterTypeValidator validator
        end local 1 // java.lang.String name
        end local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lio/vertx/ext/web/api/validation/impl/ParameterValidationRuleImpl;
            0    9     1             name  Ljava/lang/String;
            0    9     2        validator  Lio/vertx/ext/web/api/validation/ParameterTypeValidator;
            0    9     3       isOptional  Z
            0    9     4  allowEmptyValue  Z
            0    9     5         location  Lio/vertx/ext/web/api/validation/ParameterLocation;
    MethodParameters:
                 Name  Flags
      name             
      validator        
      isOptional       
      allowEmptyValue  
      location         

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
         0: .line 33
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.name:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/web/api/validation/impl/ParameterValidationRuleImpl;

  protected io.vertx.ext.web.api.RequestParameter callValidator(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/api/RequestParameter;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
        start local 1 // java.lang.String value
         0: .line 38
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.validator:Lio/vertx/ext/web/api/validation/ParameterTypeValidator;
            aload 1 /* value */
            invokeinterface io.vertx.ext.web.api.validation.ParameterTypeValidator.isValid:(Ljava/lang/String;)Lio/vertx/ext/web/api/RequestParameter;
            astore 2 /* result */
        start local 2 // io.vertx.ext.web.api.RequestParameter result
         1: .line 39
            aload 2 /* result */
            invokeinterface io.vertx.ext.web.api.RequestParameter.getName:()Ljava/lang/String;
            ifnonnull 3
         2: .line 40
            aload 2 /* result */
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.getName:()Ljava/lang/String;
            invokeinterface io.vertx.ext.web.api.RequestParameter.setName:(Ljava/lang/String;)V
         3: .line 41
      StackMap locals: io.vertx.ext.web.api.RequestParameter
      StackMap stack:
            aload 2 /* result */
         4: areturn
        end local 2 // io.vertx.ext.web.api.RequestParameter result
         5: .line 42
      StackMap locals: io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl java.lang.String
      StackMap stack: io.vertx.ext.web.api.validation.ValidationException
            astore 2 /* e */
        start local 2 // io.vertx.ext.web.api.validation.ValidationException e
         6: .line 43
            aload 2 /* e */
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.name:Ljava/lang/String;
            invokevirtual io.vertx.ext.web.api.validation.ValidationException.setParameterName:(Ljava/lang/String;)V
         7: .line 44
            aload 2 /* e */
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.api.validation.ValidationException.setValidationRule:(Lio/vertx/ext/web/api/validation/ParameterValidationRule;)V
         8: .line 45
            aload 2 /* e */
            aload 1 /* value */
            invokevirtual io.vertx.ext.web.api.validation.ValidationException.setValue:(Ljava/lang/String;)V
         9: .line 46
            aload 2 /* e */
            athrow
        end local 2 // io.vertx.ext.web.api.validation.ValidationException e
        end local 1 // java.lang.String value
        end local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lio/vertx/ext/web/api/validation/impl/ParameterValidationRuleImpl;
            0   10     1   value  Ljava/lang/String;
            1    5     2  result  Lio/vertx/ext/web/api/RequestParameter;
            6   10     2       e  Lio/vertx/ext/web/api/validation/ValidationException;
      Exception table:
        from    to  target  type
           0     4       5  Class io.vertx.ext.web.api.validation.ValidationException
    Exceptions:
      throws io.vertx.ext.web.api.validation.ValidationException
    MethodParameters:
       Name  Flags
      value  

  protected io.vertx.ext.web.api.RequestParameter callValidator(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)Lio/vertx/ext/web/api/RequestParameter;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
        start local 1 // java.util.List value
         0: .line 52
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.validator:Lio/vertx/ext/web/api/validation/ParameterTypeValidator;
            aload 1 /* value */
            invokeinterface io.vertx.ext.web.api.validation.ParameterTypeValidator.isValidCollection:(Ljava/util/List;)Lio/vertx/ext/web/api/RequestParameter;
            astore 2 /* result */
        start local 2 // io.vertx.ext.web.api.RequestParameter result
         1: .line 53
            aload 2 /* result */
            invokeinterface io.vertx.ext.web.api.RequestParameter.getName:()Ljava/lang/String;
            ifnonnull 3
         2: .line 54
            aload 2 /* result */
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.getName:()Ljava/lang/String;
            invokeinterface io.vertx.ext.web.api.RequestParameter.setName:(Ljava/lang/String;)V
         3: .line 55
      StackMap locals: io.vertx.ext.web.api.RequestParameter
      StackMap stack:
            aload 2 /* result */
         4: areturn
        end local 2 // io.vertx.ext.web.api.RequestParameter result
         5: .line 56
      StackMap locals: io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl java.util.List
      StackMap stack: io.vertx.ext.web.api.validation.ValidationException
            astore 2 /* e */
        start local 2 // io.vertx.ext.web.api.validation.ValidationException e
         6: .line 57
            aload 2 /* e */
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.name:Ljava/lang/String;
            invokevirtual io.vertx.ext.web.api.validation.ValidationException.setParameterName:(Ljava/lang/String;)V
         7: .line 58
            aload 2 /* e */
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.api.validation.ValidationException.setValidationRule:(Lio/vertx/ext/web/api/validation/ParameterValidationRule;)V
         8: .line 59
            aload 2 /* e */
            aload 1 /* value */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual io.vertx.ext.web.api.validation.ValidationException.setValue:(Ljava/lang/String;)V
         9: .line 60
            aload 2 /* e */
            athrow
        end local 2 // io.vertx.ext.web.api.validation.ValidationException e
        end local 1 // java.util.List value
        end local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lio/vertx/ext/web/api/validation/impl/ParameterValidationRuleImpl;
            0   10     1   value  Ljava/util/List<Ljava/lang/String;>;
            1    5     2  result  Lio/vertx/ext/web/api/RequestParameter;
            6   10     2       e  Lio/vertx/ext/web/api/validation/ValidationException;
      Exception table:
        from    to  target  type
           0     4       5  Class io.vertx.ext.web.api.validation.ValidationException
    Exceptions:
      throws io.vertx.ext.web.api.validation.ValidationException
    Signature: (Ljava/util/List<Ljava/lang/String;>;)Lio/vertx/ext/web/api/RequestParameter;
    MethodParameters:
       Name  Flags
      value  

  public io.vertx.ext.web.api.RequestParameter validateSingleParam(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/api/RequestParameter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
        start local 1 // java.lang.String value
         0: .line 67
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.allowEmptyValue:()Z
            ifeq 2
            aload 1 /* value */
            ifnull 2
            aload 1 /* value */
            invokevirtual java.lang.String.length:()I
            ifne 2
         1: .line 68
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.getName:()Ljava/lang/String;
            ldc ""
            invokestatic io.vertx.ext.web.api.RequestParameter.create:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/ext/web/api/RequestParameter;
            areturn
         2: .line 70
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.callValidator:(Ljava/lang/String;)Lio/vertx/ext/web/api/RequestParameter;
            areturn
        end local 1 // java.lang.String value
        end local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/vertx/ext/web/api/validation/impl/ParameterValidationRuleImpl;
            0    3     1  value  Ljava/lang/String;
    Exceptions:
      throws io.vertx.ext.web.api.validation.ValidationException
    MethodParameters:
       Name  Flags
      value  

  public io.vertx.ext.web.api.RequestParameter validateArrayParam(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)Lio/vertx/ext/web/api/RequestParameter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
        start local 1 // java.util.List value
         0: .line 76
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.allowEmptyValue:()Z
            ifeq 2
            aload 1 /* value */
            ifnull 2
            aload 1 /* value */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 2
            aload 1 /* value */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.length:()I
            ifne 2
         1: .line 77
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.getName:()Ljava/lang/String;
            ldc ""
            invokestatic io.vertx.ext.web.api.RequestParameter.create:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/ext/web/api/RequestParameter;
            areturn
         2: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.callValidator:(Ljava/util/List;)Lio/vertx/ext/web/api/RequestParameter;
            areturn
        end local 1 // java.util.List value
        end local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/vertx/ext/web/api/validation/impl/ParameterValidationRuleImpl;
            0    3     1  value  Ljava/util/List<Ljava/lang/String;>;
    Exceptions:
      throws io.vertx.ext.web.api.validation.ValidationException
    Signature: (Ljava/util/List<Ljava/lang/String;>;)Lio/vertx/ext/web/api/RequestParameter;
    MethodParameters:
       Name  Flags
      value  

  public boolean isOptional();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
         0: .line 84
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.isOptional:Z
            ireturn
        end local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/web/api/validation/impl/ParameterValidationRuleImpl;

  public io.vertx.ext.web.api.validation.ParameterTypeValidator parameterTypeValidator();
    descriptor: ()Lio/vertx/ext/web/api/validation/ParameterTypeValidator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
         0: .line 89
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.validator:Lio/vertx/ext/web/api/validation/ParameterTypeValidator;
            areturn
        end local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/web/api/validation/impl/ParameterValidationRuleImpl;

  public boolean allowEmptyValue();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
         0: .line 94
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.allowEmptyValue:Z
            ireturn
        end local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/web/api/validation/impl/ParameterValidationRuleImpl;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
         0: .line 99
            new java.lang.StringBuilder
            dup
            ldc "ParameterValidationRuleImpl{name='"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 39
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc ", validator="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.validator:Lio/vertx/ext/web/api/validation/ParameterTypeValidator;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", location="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 100
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.location:Lio/vertx/ext/web/api/validation/ParameterLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", isOptional="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.isOptional:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ", allowEmptyValue="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl.allowEmptyValue:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         2: .line 99
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/ext/web/api/validation/impl/ParameterValidationRuleImpl;
}
SourceFile: "ParameterValidationRuleImpl.java"
NestMembers:
  io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl$ParameterValidationRuleFactory
InnerClasses:
  public ParameterValidationRuleFactory = io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl$ParameterValidationRuleFactory of io.vertx.ext.web.api.validation.impl.ParameterValidationRuleImpl