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 booleanThe flag that indicates whether scripting should be generated by the client for client-side validation.private static final StringThis is the value that will be used as a key if theArgname field has no value.Internal representation of this.depends String as a List.protected StringA comma separated list of validator's this field depends on.protected intThe order of the Field in the Form.protected org.apache.commons.collections.FastHashMapDeprecated.Subclasses should use getMsgMap() instead.protected org.apache.commons.collections.FastHashMapDeprecated.Subclasses should use getVarMap() instead.protected StringThe Field's indexed list property name.protected StringThe Field's indexed property name.protected StringThe Field's unique key.protected intThe Page Numberprotected StringThe Field's property name.private static final longprotected static final StringThe end of a token.static final StringThis indicates an indexed property is being referenced.protected static final StringThe start of a token.protected static final StringA Vriable token. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd anArgto the replacement argument list.voidAdd aMsgto theField.voidAdd aVar, based on the values passed in, to theField.voidAdd aVarto theField.clone()Creates and returns a copy of this object.private voiddetermineArgPosition(Arg arg) Calculate the position of the Argprivate voidensureArgsCapacity(Arg arg) Ensures that the args array can hold the given arg.voidGenerate correctkeyvalue.getArg(int position) Gets the defaultArgobject at the given position.Gets theArgobject at the given position.Arg[]Retrieves the Args for the given validator name.Gets an unmodifiableListof 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.intGets the position of theFieldin 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 intgetIndexedPropertySize(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.intgetPage()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 voidhandleMissingAction(String name) Called when a validator name is used in a depends clause but there is no know ValidatorAction configured for that name.booleanDetermines whether client-side scripting should be generated for this field.booleanisDependency(String validatorName) Checks if the validator is listed as a dependency.booleanIf there is a value specified for the indexedProperty field thentruewill be returned.(package private) voidReplace constants with values in fields and process the depends field to create the dependencyMap.private voidprocessArg(String key, String replaceValue) Replace the argCollectionkey value with the key/value pairs passed in.private voidprocessMessageComponents(String key, String replaceValue) Replace the args key value with the key/value pairs passed in.private voidprocessVars(String key, String replaceValue) Replace the vars value with the key/value pairs passed in.private booleanrunDependentValidators(ValidatorAction va, ValidatorResults results, Map<String, ValidatorAction> actions, Map<String, Object> params, int pos) Calls all of the validators that this validator depends on.voidsetClientValidation(boolean clientValidation) Sets the flag that determines whether client-side scripting should be generated for this field.voidsetDepends(String depends) Sets the validation rules for this field as a comma separated list.voidsetFieldOrder(int fieldOrder) Sets the position of theFieldin the validation list.voidsetIndexedListProperty(String indexedListProperty) Sets the indexed property name of the field.voidsetIndexedProperty(String indexedProperty) Sets the indexed property name of the field.voidSets a unique key for the field.voidsetPage(int page) Sets the page value that the Field is associated with for validation.voidsetProperty(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 booleanvalidateForRule(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 theArgname field has no value.- See Also:
-
TOKEN_INDEXED
This indicates an indexed property is being referenced.- See Also:
-
TOKEN_START
-
TOKEN_END
-
TOKEN_VAR
-
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
-
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
-
-
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 theFieldin the validation list.- Returns:
- The field position.
-
setFieldOrder
public void setFieldOrder(int fieldOrder) Sets the position of theFieldin 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 anintas 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 aCollectionused 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
-
getMsg
-
getMessage
-
getMessages
-
isClientValidation
public boolean isClientValidation()Determines whether client-side scripting should be generated for this field. The default istrue- Returns:
truefor 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 anArgto 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 defaultArgobject 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 theArgobject at the given position. If the key finds anullvalue 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
-
addVar
-
addVar
-
getVar
-
getVarValue
-
getVars
-
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 thentruewill be returned. Otherwise it will befalse.- Returns:
- Whether the Field is indexed.
-
generateKey
public void generateKey()Generate correctkeyvalue. -
process
-
processVars
-
processMessageComponents
-
processArg
-
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
-
clone
-
toString
-
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, Object> params, int pos) throws ValidatorExceptionExecutes 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, Object> params, int pos) throws ValidatorExceptionCalls 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, ValidatorAction> actions) throws ValidatorExceptionRun 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
-
getVarMap
-