|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.validator.ValidatorAction
public class ValidatorAction
Contains the information to dynamically create and run a validation method. This is the class representation of a pluggable validator that can be defined in an xml file with the <validator> element. Note: The validation method is assumed to be thread safe.
Field Summary | |
---|---|
private java.lang.String |
classname
The full class name of the class containing the validation method associated with this action. |
private java.util.List |
dependencyList
An internal List representation of the other ValidatorAction s
this one depends on (if any). |
private java.lang.String |
depends
The other ValidatorAction s that this one depends on. |
private java.lang.Object |
instance
If the java method matching the correct signature isn't static, the instance is stored in the action. |
private java.lang.String |
javascript
An optional field to containing a JavaScript representation of the java method assocated with this action. |
private java.lang.String |
jsFunction
An optional field to contain the class path to be used to retrieve the JavaScript function. |
private java.lang.String |
jsFunctionName
An optional field to contain the name to be used if JavaScript is generated. |
private static org.apache.commons.logging.Log |
log
Logger. |
private java.lang.String |
method
The full method name of the validation to be performed. |
private java.util.List |
methodParameterList
An internal List representation of all the validation method's parameters defined in the methodParams String. |
private java.lang.String |
methodParams
The method signature of the validation method. |
private java.lang.String |
msg
The default error message associated with this action. |
private java.lang.String |
name
The name of the validation. |
private java.lang.Class[] |
parameterClasses
The Class objects for each entry in methodParameterList. |
private java.lang.Class |
validationClass
The Class object loaded from the classname. |
private java.lang.reflect.Method |
validationMethod
The Method object loaded from the method name. |
Constructor Summary | |
---|---|
ValidatorAction()
|
Method Summary | |
---|---|
(package private) boolean |
executeValidationMethod(Field field,
java.util.Map params,
ValidatorResults results,
int pos)
Dynamically runs the validation method for this validator and returns true if the data is valid. |
private java.lang.String |
formatJavascriptFileName()
|
private java.lang.String |
generateJsFunction()
Used to generate the javascript name when it is not specified. |
private java.lang.ClassLoader |
getClassLoader(java.util.Map params)
Returns the ClassLoader set in the Validator contained in the parameter Map. |
java.lang.String |
getClassname()
Gets the class of the validator action. |
java.lang.Object |
getClassnameInstance()
Deprecated. This will be removed after Validator 1.1.2 |
java.util.Collection |
getDependencies()
Deprecated. Use getDependencyList() instead. |
java.util.List |
getDependencyList()
Returns the dependent validator names as an unmodifiable List . |
java.lang.String |
getDepends()
Gets the dependencies of the validator action as a comma separated list of validator names. |
java.lang.String |
getJavascript()
Gets the Javascript equivalent of the java class and method associated with this action. |
java.lang.String |
getJsFunctionName()
Gets the Javascript function name. |
java.lang.String |
getMethod()
Gets the name of method being called for the validator action. |
java.lang.String |
getMethodParams()
Gets the method parameters for the method. |
java.util.List |
getMethodParamsList()
Deprecated. This will be removed after Validator 1.1.2 |
java.lang.String |
getMsg()
Gets the message associated with the validator action. |
java.lang.String |
getName()
Gets the name of the validator action. |
private java.lang.Object[] |
getParameterValues(java.util.Map params)
Converts a List of parameter class names into their values contained in the parameters Map. |
private java.lang.Object |
getValidationClassInstance()
Return an instance of the validation class or null if the validation method is static so does not require an instance to be executed. |
private void |
handleIndexedField(Field field,
int pos,
java.lang.Object[] paramValues)
Modifies the paramValue array with indexed fields. |
protected void |
init()
Initialize based on set. |
boolean |
isDependency(java.lang.String validatorName)
Checks whether or not the value passed in is in the depends field. |
private boolean |
isValid(java.lang.Object result)
If the result object is a Boolean , it will return its
value. |
private boolean |
javascriptAlreadyLoaded()
|
protected void |
loadJavascriptFunction()
Load the javascript function specified by the given path. |
private void |
loadParameterClasses(java.lang.ClassLoader loader)
Converts a List of parameter class names into their Class objects. |
private void |
loadValidationClass(java.lang.ClassLoader loader)
Load the Class object for the configured validation class name. |
private void |
loadValidationMethod()
Load the Method object for the configured validation method name. |
private boolean |
onlyReturnErrors(java.util.Map params)
Returns the onlyReturnErrors setting in the Validator contained in the parameter Map. |
void |
process(java.util.Map globalConstants)
Deprecated. This functionality has been moved to other methods. It's no longer required to call this method to initialize this object. |
private java.lang.String |
readJavascriptFile(java.lang.String javascriptFileName)
Read a javascript function from a file. |
void |
setClassname(java.lang.String classname)
Sets the class of the validator action. |
void |
setClassnameInstance(java.lang.Object instance)
Deprecated. This will be removed after Validator 1.1.2 |
void |
setDepends(java.lang.String depends)
Sets the dependencies of the validator action. |
void |
setJavascript(java.lang.String javascript)
Sets the Javascript equivalent of the java class and method associated with this action. |
void |
setJsFunction(java.lang.String jsFunction)
Sets the fully qualified class path of the Javascript function. |
void |
setJsFunctionName(java.lang.String jsFunctionName)
Sets the Javascript function name. |
void |
setMethod(java.lang.String method)
Sets the name of method being called for the validator action. |
void |
setMethodParams(java.lang.String methodParams)
Sets the method parameters for the method. |
void |
setMsg(java.lang.String msg)
Sets the message associated with the validator action. |
void |
setName(java.lang.String name)
Sets the name of the validator action. |
java.lang.String |
toString()
Returns a string representation of the object. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private static final org.apache.commons.logging.Log log
private java.lang.String name
private java.lang.String classname
private java.lang.Class validationClass
private java.lang.String method
private java.lang.reflect.Method validationMethod
private java.lang.String methodParams
The method signature of the validation method. This should be a comma delimited list of the full class names of each parameter in the correct order that the method takes.
Note: java.lang.Object
is reserved for the
JavaBean that is being validated. The ValidatorAction
and Field
that are associated with a field's
validation will automatically be populated if they are
specified in the method signature.
private java.lang.Class[] parameterClasses
private java.lang.String depends
ValidatorAction
s that this one depends on. If
any errors occur in an action that this one depends on, this action will
not be processsed.
private java.lang.String msg
private java.lang.String jsFunctionName
private java.lang.String jsFunction
private java.lang.String javascript
private java.lang.Object instance
private java.util.List dependencyList
ValidatorAction
s
this one depends on (if any). This List gets updated
whenever setDepends() gets called. This is synchronized so a call to
setDepends() (which clears the List) won't interfere with a call to
isDependency().
private java.util.List methodParameterList
Constructor Detail |
---|
public ValidatorAction()
Method Detail |
---|
public java.lang.String getName()
public void setName(java.lang.String name)
public java.lang.String getClassname()
public void setClassname(java.lang.String classname)
public java.lang.String getMethod()
public void setMethod(java.lang.String method)
public java.lang.String getMethodParams()
public void setMethodParams(java.lang.String methodParams)
methodParams
- A comma separated list of parameters.public java.util.List getMethodParamsList()
public java.lang.String getDepends()
public void setDepends(java.lang.String depends)
depends
- A comma separated list of validator names.public java.lang.String getMsg()
public void setMsg(java.lang.String msg)
public java.lang.String getJsFunctionName()
public void setJsFunctionName(java.lang.String jsFunctionName)
public void setJsFunction(java.lang.String jsFunction)
This is optional and can be used instead of the setJavascript().
Attempting to call both setJsFunction
and setJavascript
will result in an IllegalStateException
being thrown.
If neither setJsFunction or setJavascript is set then validator will attempt to load the default javascript definition.
Examples If in the validator.xml : #1: <validator name="tire" jsFunction="com.yourcompany.project.tireFuncion"> Validator will attempt to load com.yourcompany.project.validateTireFunction.js from its class path. #2: <validator name="tire"> Validator will use the name attribute to try and load org.apache.commons.validator.javascript.validateTire.js which is the default javascript definition.
public java.lang.String getJavascript()
public void setJavascript(java.lang.String javascript)
public java.lang.Object getClassnameInstance()
public void setClassnameInstance(java.lang.Object instance)
protected void init()
protected void loadJavascriptFunction()
jsFunction
property should contain a
fully qualified package and script name, separated by periods, to be
loaded from the class loader that created this instance.
TODO if the path begins with a '/' the path will be intepreted as
absolute, and remain unchanged. If this fails then it will attempt to
treat the path as a file path. It is assumed the script ends with a
'.js'.
private java.lang.String readJavascriptFile(java.lang.String javascriptFileName)
javascriptFileName
- The file containing the javascript.
private java.lang.String formatJavascriptFileName()
private boolean javascriptAlreadyLoaded()
private java.lang.String generateJsFunction()
public void process(java.util.Map globalConstants)
FastHashMap
for the isDependency method
based on depends.
public boolean isDependency(java.lang.String validatorName)
public java.util.Collection getDependencies()
Collection
.
public java.util.List getDependencyList()
List
.
public java.lang.String toString()
toString
in class java.lang.Object
boolean executeValidationMethod(Field field, java.util.Map params, ValidatorResults results, int pos) throws ValidatorException
field
- params
- A Map of class names to parameter values.results
- pos
- The index of the list property to validate if it's indexed.
ValidatorException
private void loadValidationMethod() throws ValidatorException
ValidatorException
private void loadValidationClass(java.lang.ClassLoader loader) throws ValidatorException
loader
- The ClassLoader used to load the Class object.
ValidatorException
private void loadParameterClasses(java.lang.ClassLoader loader) throws ValidatorException
ValidatorException
- if a class cannot be loaded.private java.lang.Object[] getParameterValues(java.util.Map params)
params
- A Map of class names to parameter values.
private java.lang.Object getValidationClassInstance() throws ValidatorException
ValidatorException
private void handleIndexedField(Field field, int pos, java.lang.Object[] paramValues) throws ValidatorException
field
- pos
- paramValues
-
ValidatorException
private boolean isValid(java.lang.Object result)
Boolean
, it will return its
value. If not it will return false
if the object is
null
and true
if it isn't.
private java.lang.ClassLoader getClassLoader(java.util.Map params)
private boolean onlyReturnErrors(java.util.Map params)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |