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 . |
CUSTOM
Custom client-side validator.
|
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 . |
EQUALS
Tests whether the value for this field matches some value specified via
value . |
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.
|
INSET
Tests whether the value for this field matches any value from an arbitrary list of acceptable values.
|
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.
|
MAXFILESIZE
This validator type is not for direct usage, instead
DataSourceField.maxFileSize can be set and
maxFileSize validator will be added automatically. |
NOTEQUAL
Tests whether the value for this field does not match some value specified via
value . |
NOTINSET
Tests whether the value for this field does not match any value from an arbitrary list of unacceptable values.
|
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 four 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). |
SERVERCUSTOM
Custom server-side validator that either evaluates the Velocity expression provided in
serverCondition (see Velocity Expression
Example) or makes DMI call to serverObject to
evaluate condition (see DMI
Validation Example). |
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
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "isBoolean".
public static final ValidatorType ISSTRING
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "isString".
public static final ValidatorType ISINTEGER
validator.convertToInteger
is true, float
values will be converted into integers and validation will succeed.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "isInteger".
public static final ValidatorType ISFLOAT
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "isFloat".
public static final ValidatorType ISFUNCTION
stringMethod
object with the value and set the resultingValue to the
StringMethod.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "isFunction".
public static final ValidatorType REQUIREDIF
expression
property set to a stringMethod
, which takes four parameters:true
, the field will be treated
as a required field, so validation will fail if the field has no value, or, in the case of a FileItem
or UploadItem
and if
client-side validation is supported by the browser, if no file is selected for upload or the selected file is empty.
To allow server-side enforcement, a required
validator can be used instead. With the exception of
"binary" fields, conditional criteria can be specified with the applyWhen
property.
See Conditionally Required Example.
Moreover, the expression provided needs to be in JavaScript, so to use this API, you should be
familiar with JavaScript and Smart GWT APIs. A pure-Java alternative is to add a RequiredIfValidator
on the DynamicForm or ListGrid where
validation is required.
NOTE: A requiredIf validator cannot be used to guarantee that a non-empty file is uploaded. The user's browser might not support client-side file validation. Using a requiredIf validator on a "binary" field may be appropriate in scenarios where the application does not technically require a non-empty file to be uploaded by the user. For example, in a bug tracking application, a file upload may be required if the "Have a test case?" checkbox is checked, but the value of the "Have a test case?" checkbox is not actually saved by the application; instead, whether the user is providing a test case is inferred by whether a non-empty test case file was uploaded.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "requiredIf".
public static final ValidatorType MATCHESFIELD
otherField
property on the validator object (should be set to a field name). See Match Value Example.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "matchesField".
public static final ValidatorType EQUALS
value
.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "equals".
public static final ValidatorType NOTEQUAL
value
.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "notEqual".
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.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "isOneOf".
public static final ValidatorType INSET
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.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "inSet".
public static final ValidatorType NOTINSET
list
property on the validator, which should be set to an array
of values. Not providing validator.list is an error.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "notInSet".
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.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "integerRange".
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
.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "lengthRange".
public static final ValidatorType CONTAINS
validator.substring
.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "contains".
public static final ValidatorType DOESNTCONTAIN
validator.substring
.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "doesntContain".
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
.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "substringCount".
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. See Regular Expression Example.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "regexp".
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.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "mask".
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
.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "dateRange".
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.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "floatLimit".
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
.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "floatRange".
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.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "floatPrecision".
public static final ValidatorType REQUIRED
In the case of a "binary" field, a non-empty file must be uploaded.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "required".
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. By default the
uniqueness check is not case sensitive but this can be controlled through the caseSensitive
attribute. You can specify the operation
to use for the uniqueness check with the operationId
attribute. Validators of this type have
requiresServer set to true
and do not run on the client, unless all of the following are true:
Note when isUnique validator is executed as part of validation process
during update operation, it will perform uniqueness check only for single row updates. If update targets multiple records
, then isUnique validator will be
skipped. If uniqueness check is needed when updating multiple records, consider using custom DMI
approach to add this check manually.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "isUnique".
public static final ValidatorType HASRELATEDRECORD
DataSourceField.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
DataSource.validateRelatedRecords
.
By default
the uniqueness check is not case sensitive but this can be controlled through the caseSensitive
attribute.
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.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "hasRelatedRecord".
public static final ValidatorType MAXFILESIZE
DataSourceField.maxFileSize
can be set and
maxFileSize
validator will be added automatically. Use maxFileSizeExceededMessage
to customize validation error
message. In supported browsers (Internet Explorer 10+, Chrome, Firefox, Safari 6+, Opera 11.1+), returns
true
if the file(s) selected by the user are not larger than the field's DataSourceField.maxFileSize
. If not supported by the
browser, the validator will always return true
.
Note that server-side enforcement of the
maxFileSize
is always required because the user's browser might not support client-side file size checks.
Also, any client-side check can be bypassed by a malicious user.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "maxFileSize".
public static final ValidatorType CUSTOM
condition
method.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "custom".
public static final ValidatorType SERVERCUSTOM
serverCondition
(see Velocity Expression
Example) or makes DMI call to serverObject
to
evaluate condition (see DMI
Validation Example). Validators of this type have requiresServer set to true
and do not run on
the client.
If this enumerated value is used in a Component XML
file or server-side DataSource descriptor (.ds.xml file), use the value "serverCustom".
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