public enum ValidatorType extends java.lang.Enum<ValidatorType> implements ValueEnum
Validator
- see list below. To make use of a standard validator type for a field in a DataSource, or DynamicForm instance,
specify the validators
property to an array containing a validator definition where the type
property is set to the appropriate type.
A custom error message can be specified for any validator type by
setting the errorMessage
property on the validator definition object, and some validator types make use of
additional properties on the validator definition object such as max
or min
.
For example,
to use the integerRange
validator type: field:{
validators:[
{type:"integerRange", min:1, max:100}
]
}
Custom validators can be reused on the client by adding them to
the global validator list, via the Validator.addValidatorDefinition
method.
Enum Constant and Description |
---|
CONTAINS
Determine whether a string value contains some substring specified via
validator.substring . |
DATERANGE
Tests whether the value for a date field is within the range specified.
|
DOESNTCONTAIN
Determine whether a string value does not contain some substring specified via
validator.substring . |
FLOATLIMIT
Validate a field as a valid floating point value within a value range.
|
FLOATPRECISION
Tests whether the value for this field is a floating point number with the appropriate number of decimal places -
specified in
validator.precision If the value is of higher precision and
validator.roundToPrecision is specified, the value will be rounded to the specified number of decimal
places and validation will pass, otherwise validation will fail. |
FLOATRANGE
Tests whether the value for this field is a floating point number within the range specified.
|
HASRELATEDRECORD
Returns true if the record implied by a relation exists.
|
INTEGERRANGE
Tests whether the value for this field is a whole number within the range specified.
|
ISBOOLEAN
Validation will fail if this field is non-empty and has a non-boolean value.
|
ISFLOAT
Tests whether the value for this field is a valid floating point number.
|
ISFUNCTION
Tests whether the value for this field is a valid expression or function; if it is valid, creates a
stringMethod object with the value and set the resultingValue to the
StringMethod. |
ISINTEGER
Tests whether the value for this field is a whole number.
|
ISONEOF
Tests whether the value for this field matches any value from an arbitrary list of acceptable values.
|
ISSTRING
Validation will fail if the value is not a string value.
|
ISUNIQUE
Returns true if the value for this field is unique.
|
LENGTHRANGE
This validator type applies to string values only.
|
MASK
Validate against a regular expression mask, specified as
validator.mask . |
MATCHESFIELD
Tests whether the value for this field matches the value of some other field.
|
READONLY
Change the state/appearance of this field.
|
REGEXP
regexp type validators will determine whether the value specified matches a given regular expression. |
REQUIRED
A non-empty value is required for this field to pass validation.
|
REQUIREDIF
RequiredIf type validators should be specified with an
expression property set to a stringMethod , which takes three parameters: item - the DynamicForm item
on which the error occurred (may be null) validator - a pointer to the validator object value - the value of the
field in question record - the "record" object - the set of values being edited by the widget When validation
is performed, the expression will be evaluated (or executed) - if it returns true , the field will be
treated as a required field, so validation will fail if the field has no value. |
SERVERCUSTOM
Custom server-side validator that either evaluates the Velocity expression provided in
serverCondition (see velocityValidation) or
makes DMI call to serverObject to evaluate condition
(see dmiValidation). |
SUBSTRINGCOUNT
Determine whether a string value contains some substring multiple times.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getValue() |
static ValidatorType |
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.
|
static ValidatorType[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final ValidatorType ISBOOLEAN
public static final ValidatorType ISSTRING
public static final ValidatorType ISINTEGER
validator.convertToInteger
is true, float
values will be converted into integers and validation will succeed.public static final ValidatorType ISFLOAT
public static final ValidatorType ISFUNCTION
stringMethod
object with the value and set the resultingValue to the
StringMethod.public static final ValidatorType REQUIREDIF
expression
property set to a stringMethod
, which takes three parameters:true
, the field will be
treated as a required field, so validation will fail if the field has no value. To allow server-side enforcement, a
required
validator can be used instead. Conditional criteria can be specified with the
applyWhen
property.
public static final ValidatorType MATCHESFIELD
otherField
property on the validator object (should be set to a field name). See Match Value Example.
public static final ValidatorType ISONEOF
list
property on the validator, which should be set to an array of
values. If validator.list is not supplied, the valueMap for the field will be used. If there is no valueMap, not
providing validator.list is an error.public static final ValidatorType INTEGERRANGE
max
and
min
properties on the validator are used to determine the acceptable range, inclusive. To specify the range
as exclusive of the min/mix values, set exclusive
to true
. See Built-ins Example.
public static final ValidatorType LENGTHRANGE
validator.max
and validator.min
. Note that non-string values will always pass validation by this validator type.
Note that the errorMessage
for
this validator will be evaluated as a dynamicString - text within \${...}
will be evaluated as JS code when
the message is displayed, with max
and min
available as variables mapped to
validator.max
and validator.min
.
public static final ValidatorType CONTAINS
validator.substring
.public static final ValidatorType DOESNTCONTAIN
validator.substring
.public static final ValidatorType SUBSTRINGCOUNT
validator.substring
. The validator.operator
property allows you to specify how to test the
number of substring occurrences. Valid values for this property are ==
, !=
, <
,
<=
, >
, >=
. The number of matches to check for is specified via
validator.count
.
public static final ValidatorType REGEXP
regexp
type validators will determine whether the value specified matches a given regular expression. The
expression should be specified on the validator
object as the expression
property. public static final ValidatorType MASK
validator.mask
. If validation is successful a
transformation can also be specified via the validator.transformTo
property. This should be set to a string
in the standard format for string replacement via the native JavaScript replace()
method. public static final ValidatorType DATERANGE
validator.min
and validator.max
, which should be specified in XML Schema date format or as a live JavaScript Date object (for
client-only validators only). To specify the range as exclusive of the min/mix values, set exclusive
to
true
. Note that the errorMessage
for this validator will be evaluated as a dynamicString -
text within \${...}
will be evaluated as JS code when the message is displayed, with max
and
min
available as variables mapped to validator.max
and validator.min
.
public static final ValidatorType FLOATLIMIT
validator.min
and validator.max
. Also checks precision, specified as number of decimal places in
validator.precision
. If validator.roundToPrecision
is set a value that doesn't match the
specified number of decimal places will be rounded to the nearest value that does. For backwards compatibility only. Use "floatRange" and/or "floatPrecision" instead.
public static final ValidatorType FLOATRANGE
max
and
min
properties on the validator are used to determine the acceptable range, inclusive. To specify the range
as exclusive of the min/mix values, set exclusive
to true
. Note that the
errorMessage
for this validator will be evaluated as a dynamicString - text within \${...}
will be evaluated as JS code when the message is displayed, with max
and min
available as
variables mapped to validator.max
and validator.min
.
public static final ValidatorType FLOATPRECISION
validator.precision
If the value is of higher precision and
validator.roundToPrecision
is specified, the value will be rounded to the specified number of decimal
places and validation will pass, otherwise validation will fail.public static final ValidatorType REQUIRED
public static final ValidatorType READONLY
fieldAppearance
property
on the validator object. See FieldAppearance type for choices. If fieldAppearance
is not specified, the
default is "readOnly".
public static final ValidatorType ISUNIQUE
validator.criteriaFields
as a comma-separated string of field names; in that case,
the uniqueness check is done in the context of those extra criteria, allowing you to check, for example, whether an
employee number is unique for the department and location found on the record being validated. Validators of this
type have requiresServer set to true
and do not run on the client.
public static final ValidatorType HASRELATEDRECORD
foreignKey
attribute of the field being validated, or you can
specify it manually via validator.relatedDataSource
and validator.relatedField
. You can
specify at DataSource level that this validator should be automatically applied to all fields that specify a foreignKey
- see validateRelatedRecords
.
Validators of this type have
requiresServer set to true
and do not run on the client.
Note that this validation is generally
unnecessary for data coming from a UI. The typical UI uses a SelectItem
or ComboBoxItem
with an optionDataSource
for user entry, such that the
user can't accidentally enter a related record if that doesn't exist, and a typical SQL schema will include
constraints that prevent a bad insert if the user attempts to circumvent the UI. The primary purpose of declaring this
validation explicitly is to provide clear, friendly error messages for use cases such as BatchUploader
, where values aren't individually chosen by the user. See also the example
Related Records.
public static final ValidatorType SERVERCUSTOM
serverCondition
(see velocityValidation) or
makes DMI call to serverObject
to evaluate condition
(see dmiValidation).
Validators of this type have requiresServer set to true
and do not run on the client.
public static ValidatorType[] values()
for (ValidatorType c : ValidatorType.values()) System.out.println(c);
public static ValidatorType valueOf(java.lang.String name)
name
- the name of the enum constant to be returned.java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is null