public class io.vertx.ext.web.api.validation.impl.ObjectTypeValidator extends io.vertx.ext.web.api.validation.impl.ContainerTypeValidator<java.util.Map<java.lang.String, java.lang.String>>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.web.api.validation.impl.ObjectTypeValidator
  super_class: io.vertx.ext.web.api.validation.impl.ContainerTypeValidator
{
  java.util.Map<java.lang.String, io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField> fieldsMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Lio/vertx/ext/web/api/validation/impl/ObjectTypeValidator$ObjectField;>;

  public void <init>(io.vertx.ext.web.api.validation.ContainerDeserializer, boolean);
    descriptor: (Lio/vertx/ext/web/api/validation/ContainerDeserializer;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.web.api.validation.impl.ObjectTypeValidator this
        start local 1 // io.vertx.ext.web.api.validation.ContainerDeserializer collectionFormat
        start local 2 // boolean exploded
         0: .line 31
            aload 0 /* this */
            aload 1 /* collectionFormat */
            iload 2 /* exploded */
            invokespecial io.vertx.ext.web.api.validation.impl.ContainerTypeValidator.<init>:(Lio/vertx/ext/web/api/validation/ContainerDeserializer;Z)V
         1: .line 32
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.ext.web.api.validation.impl.ObjectTypeValidator.fieldsMap:Ljava/util/Map;
         2: .line 33
            return
        end local 2 // boolean exploded
        end local 1 // io.vertx.ext.web.api.validation.ContainerDeserializer collectionFormat
        end local 0 // io.vertx.ext.web.api.validation.impl.ObjectTypeValidator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lio/vertx/ext/web/api/validation/impl/ObjectTypeValidator;
            0    3     1  collectionFormat  Lio/vertx/ext/web/api/validation/ContainerDeserializer;
            0    3     2          exploded  Z
    MethodParameters:
                  Name  Flags
      collectionFormat  
      exploded          

  public void addField(java.lang.String, io.vertx.ext.web.api.validation.ParameterTypeValidator, boolean);
    descriptor: (Ljava/lang/String;Lio/vertx/ext/web/api/validation/ParameterTypeValidator;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // io.vertx.ext.web.api.validation.impl.ObjectTypeValidator this
        start local 1 // java.lang.String name
        start local 2 // io.vertx.ext.web.api.validation.ParameterTypeValidator validator
        start local 3 // boolean required
         0: .line 36
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ObjectTypeValidator.fieldsMap:Ljava/util/Map;
            aload 1 /* name */
            new io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField
            dup
            aload 2 /* validator */
            iload 3 /* required */
            invokespecial io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField.<init>:(Lio/vertx/ext/web/api/validation/ParameterTypeValidator;Z)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 37
            return
        end local 3 // boolean required
        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.ObjectTypeValidator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lio/vertx/ext/web/api/validation/impl/ObjectTypeValidator;
            0    2     1       name  Ljava/lang/String;
            0    2     2  validator  Lio/vertx/ext/web/api/validation/ParameterTypeValidator;
            0    2     3   required  Z
    MethodParameters:
           Name  Flags
      name       
      validator  
      required   

  public io.vertx.ext.web.api.RequestParameter isValid(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/api/RequestParameter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.ObjectTypeValidator this
        start local 1 // java.lang.String value
         0: .line 41
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual io.vertx.ext.web.api.validation.impl.ObjectTypeValidator.deserialize:(Ljava/lang/String;)Ljava/util/Map;
            invokevirtual io.vertx.ext.web.api.validation.impl.ObjectTypeValidator.validate:(Ljava/util/Map;)Lio/vertx/ext/web/api/RequestParameter;
            areturn
        end local 1 // java.lang.String value
        end local 0 // io.vertx.ext.web.api.validation.impl.ObjectTypeValidator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/ext/web/api/validation/impl/ObjectTypeValidator;
            0    1     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 isValidCollection(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)Lio/vertx/ext/web/api/RequestParameter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.ObjectTypeValidator this
        start local 1 // java.util.List value
         0: .line 46
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* value */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual io.vertx.ext.web.api.validation.impl.ObjectTypeValidator.deserialize:(Ljava/lang/String;)Ljava/util/Map;
            invokevirtual io.vertx.ext.web.api.validation.impl.ObjectTypeValidator.validate:(Ljava/util/Map;)Lio/vertx/ext/web/api/RequestParameter;
            areturn
        end local 1 // java.util.List value
        end local 0 // io.vertx.ext.web.api.validation.impl.ObjectTypeValidator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/ext/web/api/validation/impl/ObjectTypeValidator;
            0    1     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  

  protected java.util.Map<java.lang.String, java.lang.String> deserialize(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.ObjectTypeValidator this
        start local 1 // java.lang.String serialized
         0: .line 51
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.api.validation.impl.ObjectTypeValidator.getContainerDeserializer:()Lio/vertx/ext/web/api/validation/ContainerDeserializer;
            aload 1 /* serialized */
            invokeinterface io.vertx.ext.web.api.validation.ContainerDeserializer.deserializeObject:(Ljava/lang/String;)Ljava/util/Map;
            areturn
        end local 1 // java.lang.String serialized
        end local 0 // io.vertx.ext.web.api.validation.impl.ObjectTypeValidator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/web/api/validation/impl/ObjectTypeValidator;
            0    1     1  serialized  Ljava/lang/String;
    Exceptions:
      throws io.vertx.ext.web.api.validation.ValidationException
    Signature: (Ljava/lang/String;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
            Name  Flags
      serialized  

  protected io.vertx.ext.web.api.RequestParameter validate(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)Lio/vertx/ext/web/api/RequestParameter;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // io.vertx.ext.web.api.validation.impl.ObjectTypeValidator this
        start local 1 // java.util.Map values
         0: .line 56
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* parsedParams */
        start local 2 // java.util.Map parsedParams
         1: .line 58
            aload 0 /* this */
            getfield io.vertx.ext.web.api.validation.impl.ObjectTypeValidator.fieldsMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals: io.vertx.ext.web.api.validation.impl.ObjectTypeValidator java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* field */
        start local 3 // java.util.Map$Entry field
         3: .line 59
            aload 1 /* values */
            aload 3 /* field */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 11
         4: .line 60
            aload 3 /* field */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField
            getfield io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField.required:Z
            ifeq 6
         5: .line 61
            aload 3 /* field */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic io.vertx.ext.web.api.validation.ValidationException$ValidationExceptionFactory.generateObjectFieldNotFound:(Ljava/lang/String;)Lio/vertx/ext/web/api/validation/ValidationException;
            athrow
         6: .line 62
      StackMap locals: io.vertx.ext.web.api.validation.impl.ObjectTypeValidator java.util.Map java.util.Map java.util.Map$Entry java.util.Iterator
      StackMap stack:
            aload 3 /* field */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField
            getfield io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField.validator:Lio/vertx/ext/web/api/validation/ParameterTypeValidator;
            invokeinterface io.vertx.ext.web.api.validation.ParameterTypeValidator.getDefault:()Ljava/lang/Object;
            ifnull 14
         7: .line 63
            aload 2 /* parsedParams */
            aload 3 /* field */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 3 /* field */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 3 /* field */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField
            getfield io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField.validator:Lio/vertx/ext/web/api/validation/ParameterTypeValidator;
         8: .line 64
            invokeinterface io.vertx.ext.web.api.validation.ParameterTypeValidator.getDefault:()Ljava/lang/Object;
         9: .line 63
            invokestatic io.vertx.ext.web.api.RequestParameter.create:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/ext/web/api/RequestParameter;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 66
            goto 14
        11: .line 67
      StackMap locals:
      StackMap stack:
            aload 3 /* field */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField
            getfield io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField.validator:Lio/vertx/ext/web/api/validation/ParameterTypeValidator;
            aload 1 /* values */
            aload 3 /* field */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface io.vertx.ext.web.api.validation.ParameterTypeValidator.isValid:(Ljava/lang/String;)Lio/vertx/ext/web/api/RequestParameter;
            astore 5 /* param */
        start local 5 // io.vertx.ext.web.api.RequestParameter param
        12: .line 68
            aload 5 /* param */
            aload 3 /* field */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface io.vertx.ext.web.api.RequestParameter.setName:(Ljava/lang/String;)V
        13: .line 69
            aload 2 /* parsedParams */
            aload 3 /* field */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 5 /* param */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // io.vertx.ext.web.api.RequestParameter param
        end local 3 // java.util.Map$Entry field
        14: .line 58
      StackMap locals: io.vertx.ext.web.api.validation.impl.ObjectTypeValidator java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        15: .line 73
            aload 2 /* parsedParams */
            invokestatic io.vertx.ext.web.api.RequestParameter.create:(Ljava/lang/Object;)Lio/vertx/ext/web/api/RequestParameter;
            areturn
        end local 2 // java.util.Map parsedParams
        end local 1 // java.util.Map values
        end local 0 // io.vertx.ext.web.api.validation.impl.ObjectTypeValidator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lio/vertx/ext/web/api/validation/impl/ObjectTypeValidator;
            0   16     1        values  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            1   16     2  parsedParams  Ljava/util/Map<Ljava/lang/String;Lio/vertx/ext/web/api/RequestParameter;>;
            3   14     3         field  Ljava/util/Map$Entry<Ljava/lang/String;Lio/vertx/ext/web/api/validation/impl/ObjectTypeValidator$ObjectField;>;
           12   14     5         param  Lio/vertx/ext/web/api/RequestParameter;
    Exceptions:
      throws io.vertx.ext.web.api.validation.ValidationException
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Lio/vertx/ext/web/api/RequestParameter;
    MethodParameters:
        Name  Flags
      values  

  protected io.vertx.ext.web.api.RequestParameter validate(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/vertx/ext/web/api/RequestParameter;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.util.Map
            invokevirtual io.vertx.ext.web.api.validation.impl.ObjectTypeValidator.validate:(Ljava/util/Map;)Lio/vertx/ext/web/api/RequestParameter;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws io.vertx.ext.web.api.validation.ValidationException

  protected java.lang.Object deserialize(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.vertx.ext.web.api.validation.impl.ObjectTypeValidator.deserialize:(Ljava/lang/String;)Ljava/util/Map;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws io.vertx.ext.web.api.validation.ValidationException
}
Signature: Lio/vertx/ext/web/api/validation/impl/ContainerTypeValidator<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
SourceFile: "ObjectTypeValidator.java"
NestMembers:
  io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField  io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectTypeValidatorFactory
InnerClasses:
  public ValidationExceptionFactory = io.vertx.ext.web.api.validation.ValidationException$ValidationExceptionFactory of io.vertx.ext.web.api.validation.ValidationException
  private ObjectField = io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectField of io.vertx.ext.web.api.validation.impl.ObjectTypeValidator
  public ObjectTypeValidatorFactory = io.vertx.ext.web.api.validation.impl.ObjectTypeValidator$ObjectTypeValidatorFactory of io.vertx.ext.web.api.validation.impl.ObjectTypeValidator
  public abstract Entry = java.util.Map$Entry of java.util.Map