Package org.apache.commons.validator
Class Field
java.lang.Object
org.apache.commons.validator.Field
- All Implemented Interfaces:
Serializable
,Cloneable
This contains the list of pluggable validators to run on a field and any
message information and variables to perform the validations and generate
error messages. Instances of this class are configured with a
<field> xml element.
The use of FastHashMap is deprecated and will be replaced in a future release.
- Version:
- $Revision: 1713331 $
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionHolds Maps of arguments.protected boolean
The flag that indicates whether scripting should be generated by the client for client-side validation.private static final String
This is the value that will be used as a key if theArg
name field has no value.Internal representation of this.depends String as a List.protected String
A comma separated list of validator's this field depends on.protected int
The order of the Field in the Form.protected org.apache.commons.collections.FastHashMap
Deprecated.Subclasses should use getMsgMap() instead.protected org.apache.commons.collections.FastHashMap
Deprecated.Subclasses should use getVarMap() instead.protected String
The Field's indexed list property name.protected String
The Field's indexed property name.protected String
The Field's unique key.protected int
The Page Numberprotected String
The Field's property name.private static final long
protected static final String
The end of a token.static final String
This indicates an indexed property is being referenced.protected static final String
The start of a token.protected static final String
A Vriable token. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add anArg
to the replacement argument list.void
Add aMsg
to theField
.void
Add aVar
, based on the values passed in, to theField
.void
Add aVar
to theField
.clone()
Creates and returns a copy of this object.private void
determineArgPosition
(Arg arg) Calculate the position of the Argprivate void
ensureArgsCapacity
(Arg arg) Ensures that the args array can hold the given arg.void
Generate correctkey
value.getArg
(int position) Gets the defaultArg
object at the given position.Gets theArg
object at the given position.Arg[]
Retrieves the Args for the given validator name.Gets an unmodifiableList
of the dependencies in the same order they were defined in parameter passed to the setDepends() method.Gets the validation rules for this field as a comma separated list.int
Gets the position of theField
in the validation list.Gets the indexed property name of the field.Gets the indexed property name of the field.(package private) Object[]
getIndexedProperty
(Object bean) Returns an indexed property from the object we're validating.private int
getIndexedPropertySize
(Object bean) Returns the size of an indexed property from the object we're validating.getKey()
Gets a unique key based on the property and indexedProperty fields.getMessage
(String key) Retrieve a message object.TheField
's messages are returned as an unmodifiableMap
.Retrieve a message value.Returns a Map of String Msg names to Msg objects.int
getPage()
Gets the page value that the Field is associated with for validation.Gets the property name of the field.Retrieve a variable.Returns a Map of String Var names to Var objects.getVars()
TheField
's variables are returned as an unmodifiableMap
.getVarValue
(String mainKey) Retrieve a variable's value.private void
handleMissingAction
(String name) Called when a validator name is used in a depends clause but there is no know ValidatorAction configured for that name.boolean
Determines whether client-side scripting should be generated for this field.boolean
isDependency
(String validatorName) Checks if the validator is listed as a dependency.boolean
If there is a value specified for the indexedProperty field thentrue
will be returned.(package private) void
Replace constants with values in fields and process the depends field to create the dependencyMap
.private void
processArg
(String key, String replaceValue) Replace the argCollection
key value with the key/value pairs passed in.private void
processMessageComponents
(String key, String replaceValue) Replace the args key value with the key/value pairs passed in.private void
processVars
(String key, String replaceValue) Replace the vars value with the key/value pairs passed in.private boolean
runDependentValidators
(ValidatorAction va, ValidatorResults results, Map<String, ValidatorAction> actions, Map<String, Object> params, int pos) Calls all of the validators that this validator depends on.void
setClientValidation
(boolean clientValidation) Sets the flag that determines whether client-side scripting should be generated for this field.void
setDepends
(String depends) Sets the validation rules for this field as a comma separated list.void
setFieldOrder
(int fieldOrder) Sets the position of theField
in the validation list.void
setIndexedListProperty
(String indexedListProperty) Sets the indexed property name of the field.void
setIndexedProperty
(String indexedProperty) Sets the indexed property name of the field.void
Sets a unique key for the field.void
setPage
(int page) Sets the page value that the Field is associated with for validation.void
setProperty
(String property) Sets the property name of the field.toString()
Returns a string representation of the object.Run the configured validations on this field.private boolean
validateForRule
(ValidatorAction va, ValidatorResults results, Map<String, ValidatorAction> actions, Map<String, Object> params, int pos) Executes the given ValidatorAction and all ValidatorActions that it depends on.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
DEFAULT_ARG
This is the value that will be used as a key if theArg
name field has no value.- See Also:
-
TOKEN_INDEXED
This indicates an indexed property is being referenced.- See Also:
-
TOKEN_START
The start of a token.- See Also:
-
TOKEN_END
The end of a token.- See Also:
-
TOKEN_VAR
A Vriable token.- See Also:
-
property
The Field's property name. -
indexedProperty
The Field's indexed property name. -
indexedListProperty
The Field's indexed list property name. -
key
The Field's unique key. -
depends
A comma separated list of validator's this field depends on. -
page
protected int pageThe Page Number -
clientValidation
protected boolean clientValidationThe flag that indicates whether scripting should be generated by the client for client-side validation.- Since:
- Validator 1.4
-
fieldOrder
protected int fieldOrderThe order of the Field in the Form. -
dependencyList
Internal representation of this.depends String as a List. This List gets updated whenever setDepends() gets called. This List is synchronized so a call to setDepends() (which clears the List) won't interfere with a call to isDependency(). -
hVars
protected org.apache.commons.collections.FastHashMap hVarsDeprecated.Subclasses should use getVarMap() instead. -
hMsgs
protected org.apache.commons.collections.FastHashMap hMsgsDeprecated.Subclasses should use getMsgMap() instead. -
args
Holds Maps of arguments. args[0] returns the Map for the first replacement argument. Start with a 0 length array so that it will only grow to the size of the highest argument position.- Since:
- Validator 1.1
-
-
Constructor Details
-
Field
public Field()
-
-
Method Details
-
getPage
public int getPage()Gets the page value that the Field is associated with for validation.- Returns:
- The page number.
-
setPage
public void setPage(int page) Sets the page value that the Field is associated with for validation.- Parameters:
page
- The page number.
-
getFieldOrder
public int getFieldOrder()Gets the position of theField
in the validation list.- Returns:
- The field position.
-
setFieldOrder
public void setFieldOrder(int fieldOrder) Sets the position of theField
in the validation list.- Parameters:
fieldOrder
- The field position.
-
getProperty
Gets the property name of the field.- Returns:
- The field's property name.
-
setProperty
Sets the property name of the field.- Parameters:
property
- The field's property name.
-
getIndexedProperty
Gets the indexed property name of the field. This is the method name that can take anint
as a parameter for indexed property value retrieval.- Returns:
- The field's indexed property name.
-
setIndexedProperty
Sets the indexed property name of the field.- Parameters:
indexedProperty
- The field's indexed property name.
-
getIndexedListProperty
Gets the indexed property name of the field. This is the method name that will return an array or aCollection
used to retrieve the list and then loop through the list performing the specified validations.- Returns:
- The field's indexed List property name.
-
setIndexedListProperty
Sets the indexed property name of the field.- Parameters:
indexedListProperty
- The field's indexed List property name.
-
getDepends
Gets the validation rules for this field as a comma separated list.- Returns:
- A comma separated list of validator names.
-
setDepends
Sets the validation rules for this field as a comma separated list.- Parameters:
depends
- A comma separated list of validator names.
-
addMsg
Add aMsg
to theField
.- Parameters:
msg
- A validation message.
-
getMsg
Retrieve a message value.- Parameters:
key
- Validation key.- Returns:
- A validation message for a specified validator.
-
getMessage
Retrieve a message object.- Parameters:
key
- Validation key.- Returns:
- A validation message for a specified validator.
- Since:
- Validator 1.1.4
-
getMessages
TheField
's messages are returned as an unmodifiableMap
.- Returns:
- Map of validation messages for the field.
- Since:
- Validator 1.1.4
-
isClientValidation
public boolean isClientValidation()Determines whether client-side scripting should be generated for this field. The default istrue
- Returns:
true
for scripting; otherwise false- Since:
- Validator 1.4
- See Also:
-
setClientValidation
public void setClientValidation(boolean clientValidation) Sets the flag that determines whether client-side scripting should be generated for this field.- Parameters:
clientValidation
- the scripting flag- Since:
- Validator 1.4
- See Also:
-
addArg
Add anArg
to the replacement argument list.- Parameters:
arg
- Validation message's argument.- Since:
- Validator 1.1
-
determineArgPosition
Calculate the position of the Arg -
ensureArgsCapacity
Ensures that the args array can hold the given arg. Resizes the array as necessary.- Parameters:
arg
- Determine if the args array is long enough to store this arg's position.
-
getArg
Gets the defaultArg
object at the given position.- Parameters:
position
- Validation message argument's position.- Returns:
- The default Arg or null if not found.
- Since:
- Validator 1.1
-
getArg
Gets theArg
object at the given position. If the key finds anull
value then the default value will be retrieved.- Parameters:
key
- The name the Arg is stored under. If not found, the default Arg for the given position (if any) will be retrieved.position
- The Arg number to find.- Returns:
- The Arg with the given name and position or null if not found.
- Since:
- Validator 1.1
-
getArgs
Retrieves the Args for the given validator name.- Parameters:
key
- The validator's args to retrieve.- Returns:
- An Arg[] sorted by the Args' positions (i.e. the Arg at index 0 has a position of 0).
- Since:
- Validator 1.1.1
-
addVar
Add aVar
to theField
.- Parameters:
v
- The Validator Argument.
-
addVar
Add aVar
, based on the values passed in, to theField
.- Parameters:
name
- Name of the validation.value
- The Argument's value.jsType
- The Javascript type.
-
getVar
Retrieve a variable.- Parameters:
mainKey
- The Variable's key- Returns:
- the Variable
-
getVarValue
Retrieve a variable's value.- Parameters:
mainKey
- The Variable's key- Returns:
- the Variable's value
-
getVars
TheField
's variables are returned as an unmodifiableMap
.- Returns:
- the Map of Variable's for a Field.
-
getKey
Gets a unique key based on the property and indexedProperty fields.- Returns:
- a unique key for the field.
-
setKey
Sets a unique key for the field. This can be used to change the key temporarily to have a unique key for an indexed field.- Parameters:
key
- a unique key for the field
-
isIndexed
public boolean isIndexed()If there is a value specified for the indexedProperty field thentrue
will be returned. Otherwise it will befalse
.- Returns:
- Whether the Field is indexed.
-
generateKey
public void generateKey()Generate correctkey
value. -
process
Replace constants with values in fields and process the depends field to create the dependencyMap
. -
processVars
Replace the vars value with the key/value pairs passed in. -
processMessageComponents
Replace the args key value with the key/value pairs passed in. -
processArg
Replace the argCollection
key value with the key/value pairs passed in. -
isDependency
Checks if the validator is listed as a dependency.- Parameters:
validatorName
- Name of the validator to check.- Returns:
- Whether the field is dependant on a validator.
-
getDependencyList
Gets an unmodifiableList
of the dependencies in the same order they were defined in parameter passed to the setDepends() method.- Returns:
- A list of the Field's dependancies.
-
clone
Creates and returns a copy of this object. -
toString
Returns a string representation of the object. -
getIndexedProperty
Returns an indexed property from the object we're validating.- Parameters:
bean
- The bean to extract the indexed values from.- Throws:
ValidatorException
- If there's an error looking up the property or, the property found is not indexed.
-
getIndexedPropertySize
Returns the size of an indexed property from the object we're validating.- Parameters:
bean
- The bean to extract the indexed values from.- Throws:
ValidatorException
- If there's an error looking up the property or, the property found is not indexed.
-
validateForRule
private boolean validateForRule(ValidatorAction va, ValidatorResults results, Map<String, ValidatorAction> actions, Map<String, throws ValidatorExceptionObject> params, int pos) Executes the given ValidatorAction and all ValidatorActions that it depends on.- Returns:
- true if the validation succeeded.
- Throws:
ValidatorException
-
runDependentValidators
private boolean runDependentValidators(ValidatorAction va, ValidatorResults results, Map<String, ValidatorAction> actions, Map<String, throws ValidatorExceptionObject> params, int pos) Calls all of the validators that this validator depends on. TODO ValidatorAction should know how to run its own dependencies.- Parameters:
va
- Run dependent validators for this action.results
-actions
-pos
-- Returns:
- true if all of the dependent validations passed.
- Throws:
ValidatorException
- If there's an error running a validator
-
validate
public ValidatorResults validate(Map<String, Object> params, Map<String, throws ValidatorExceptionValidatorAction> actions) Run the configured validations on this field. Run all validations in the depends clause over each item in turn, returning when the first one fails.- Parameters:
params
- A Map of parameter class names to parameter values to pass into validation methods.actions
- A Map of validator names to ValidatorAction objects.- Returns:
- A ValidatorResults object containing validation messages for this field.
- Throws:
ValidatorException
- If an error occurs during validation.
-
handleMissingAction
Called when a validator name is used in a depends clause but there is no know ValidatorAction configured for that name.- Parameters:
name
- The name of the validator in the depends list.- Throws:
ValidatorException
-
getMsgMap
Returns a Map of String Msg names to Msg objects.- Returns:
- A Map of the Field's messages.
- Since:
- Validator 1.2.0
-
getVarMap
Returns a Map of String Var names to Var objects.- Returns:
- A Map of the Field's variables.
- Since:
- Validator 1.2.0
-