com.smartgwt.client.types
Enum ValidatorType

java.lang.Object
  extended by java.lang.Enum<ValidatorType>
      extended by com.smartgwt.client.types.ValidatorType
All Implemented Interfaces:
ValueEnum, java.io.Serializable, java.lang.Comparable<ValidatorType>

public enum ValidatorType
extends java.lang.Enum<ValidatorType>
implements ValueEnum

Used to name a validator or reference a standard, built-in 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 Summary
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 across the whole DataSource.
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.
 
Method Summary
 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.
 
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Enum Constant Detail

ISBOOLEAN

public static final ValidatorType ISBOOLEAN
Validation will fail if this field is non-empty and has a non-boolean value.


ISSTRING

public static final ValidatorType ISSTRING
Validation will fail if the value is not a string value.


ISINTEGER

public static final ValidatorType ISINTEGER
Tests whether the value for this field is a whole number. If validator.convertToInteger is true, float values will be converted into integers and validation will succeed.


ISFLOAT

public static final ValidatorType ISFLOAT
Tests whether the value for this field is a valid floating point number.


ISFUNCTION

public static final ValidatorType 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.


REQUIREDIF

public static final ValidatorType REQUIREDIF
RequiredIf type validators should be specified with an expression property set to a stringMethod, which takes three parameters: 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.

To allow server-side enforcement, a required validator can be used instead. Conditional criteria can be specified with the applyWhen property.

See Conditionally Required Example.


MATCHESFIELD

public static final ValidatorType MATCHESFIELD
Tests whether the value for this field matches the value of some other field. The field to compare against is specified via the otherField property on the validator object (should be set to a field name).

See Match Value Example.


ISONEOF

public static final ValidatorType ISONEOF
Tests whether the value for this field matches any value from an arbitrary list of acceptable values. The set of acceptable values is specified via the 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.


INTEGERRANGE

public static final ValidatorType INTEGERRANGE
Tests whether the value for this field is a whole number within the range specified. The 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.


LENGTHRANGE

public static final ValidatorType LENGTHRANGE
This validator type applies to string values only. If the value is a string value validation will fail if the string's length falls outside the range specified by 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.


CONTAINS

public static final ValidatorType CONTAINS
Determine whether a string value contains some substring specified via validator.substring.


DOESNTCONTAIN

public static final ValidatorType DOESNTCONTAIN
Determine whether a string value does not contain some substring specified via validator.substring.


SUBSTRINGCOUNT

public static final ValidatorType SUBSTRINGCOUNT
Determine whether a string value contains some substring multiple times. The substring to check for is specified via 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.


REGEXP

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.


MASK

public static final ValidatorType MASK
Validate against a regular expression mask, specified as 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.

See Value Transform Example.


DATERANGE

public static final ValidatorType DATERANGE
Tests whether the value for a date field is within the range specified. Range is inclusive, and is specified via 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.


FLOATLIMIT

public static final ValidatorType FLOATLIMIT
Validate a field as a valid floating point value within a value range. Range is specified via 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.


FLOATRANGE

public static final ValidatorType FLOATRANGE
Tests whether the value for this field is a floating point number within the range specified. The 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.


FLOATPRECISION

public static final ValidatorType 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.


REQUIRED

public static final ValidatorType REQUIRED
A non-empty value is required for this field to pass validation.


READONLY

public static final ValidatorType READONLY
Change the state/appearance of this field. Desired appearance is specified via the fieldAppearance property on the validator object. See FieldAppearance type for choices.

If fieldAppearance is not specified, the default is "readOnly".


ISUNIQUE

public static final ValidatorType ISUNIQUE
Returns true if the value for this field is unique across the whole DataSource.

Validators of this type have requiresServer set to true and do not run on the client.

See uniqueCheckValidation.


HASRELATEDRECORD

public static final ValidatorType HASRELATEDRECORD
Returns true if the record implied by a relation exists. The relation can be derived automatically from the 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.


SERVERCUSTOM

public static final ValidatorType 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).

Validators of this type have requiresServer set to true and do not run on the client.

Method Detail

values

public static ValidatorType[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
for (ValidatorType c : ValidatorType.values())
    System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they are declared

valueOf

public static ValidatorType valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
java.lang.NullPointerException - if the argument is null

getValue

public java.lang.String getValue()
Specified by:
getValue in interface ValueEnum