# Class: ParameterValidationRule

## vertx-web-api-contract-js/parameter_validation_rule~ ParameterValidationRule

#### new ParameterValidationRule()

This function is an inner wrapper for ParameterTypeValidator inside ValidationHandler parameter maps. Don't instantiate this class, if you want to add custom ParameterTypeValidator to a parameter use functions in

Source:
  - vertx-web-api-contract-js/parameter_validation_rule.js, line 31

### Methods

#### allowEmptyValue() → {boolean}

allowEmptyValue is used in query, header, cookie and form parameters. This is its behaviour:

1. During validation, the ValidationHandler check if there's a parameter with combination of location and name as defined in this rule
2. If it not exists, It will check allowEmptyValue and if there's a default value set inside ParameterTypeValidator:

- If this condition it's true, It marks as validated the parameter and returns the default value (inside RequestParameter)
- If this condition it's false, It throws ValidationException

3. If the parameter exists, It checks if parameter is null or empty string:

- If allowEmptyValue it's true, It marks as validated the parameter and returns the default value if it exists (inside RequestParameter)
- If allowEmptyValue it's false, It throws ValidationException

Source:
  - vertx-web-api-contract-js/parameter_validation_rule.js, line 132

##### Returns:

value of allowEmptyValue

Type
  boolean

#### getName() → {string}

This function return the name of the parameter expected into parameter lists

Source:
  - vertx-web-api-contract-js/parameter_validation_rule.js, line 43

##### Returns:

name of the parameter

Type
  string

#### isOptional() → {boolean}

Return true if parameter is optional

Source:
  - vertx-web-api-contract-js/parameter_validation_rule.js, line 87

##### Returns:

true if is optional, false otherwise

Type
  boolean

#### parameterTypeValidator() → {ParameterTypeValidator}

Return ParameterTypeValidator instance used inside this parameter validation rule

Source:
  - vertx-web-api-contract-js/parameter_validation_rule.js, line 101

##### Returns:

Type
  ParameterTypeValidator

#### validateArrayParam(value) → {RequestParameter}

This function will be called when there is a List that need to be validated. It must check if array is expected or not. It will throw a ValidationError in an error during validation occurs

##### Parameters:

Name | Type | Description
--- | --- | ---
`value` | Array.<string> | list of values that will be validated

Source:
  - vertx-web-api-contract-js/parameter_validation_rule.js, line 73

##### Returns:

Type
  RequestParameter

#### validateSingleParam(value) → {RequestParameter}

This function will be called when there is only a string as parameter. It will throw a ValidationError in an error during validation occurs

##### Parameters:

Name | Type | Description
--- | --- | ---
`value` | string | list of values that will be validated

Source:
  - vertx-web-api-contract-js/parameter_validation_rule.js, line 58

##### Returns:

Type
  RequestParameter