com.opensymphony.xwork2.validator
Class AnnotationActionValidatorManager

java.lang.Object
  extended by com.opensymphony.xwork2.validator.AnnotationActionValidatorManager
All Implemented Interfaces:
ActionValidatorManager

public class AnnotationActionValidatorManager
extends Object
implements ActionValidatorManager

AnnotationActionValidatorManager is the entry point into XWork's annotations-based validator framework. Validation rules are specified as annotations within the source files.

Author:
Rainer Hermanns, jepjep

Nested Class Summary
protected  class AnnotationActionValidatorManager.InternalValidatorContextWrapper
          An ValidatorContext wrapper that returns the full field name com.opensymphony.xwork2.validator.AbstractActionValidatorManager.InternalValidatorContextWrapper#getFullFieldName(String) by consulting it's parent if its an VisitorFieldValidator.AppendingValidatorContext.
 
Field Summary
private static Logger LOG
           
protected static String VALIDATION_CONFIG_SUFFIX
          The file suffix for any validation file.
private  Map<String,List<ValidatorConfig>> validatorCache
           
private  ValidatorFactory validatorFactory
           
private  Map<String,List<ValidatorConfig>> validatorFileCache
           
private  ValidatorFileParser validatorFileParser
           
 
Constructor Summary
AnnotationActionValidatorManager()
           
 
Method Summary
private  List<ValidatorConfig> buildAliasValidatorConfigs(Class aClass, String context, boolean checkFile)
           
protected  List<ValidatorConfig> buildClassValidatorConfigs(Class aClass, boolean checkFile)
           
private  List<ValidatorConfig> buildValidatorConfigs(Class clazz, String context, boolean checkFile, Set<String> checked)
          This method 'collects' all the validator configurations for a given action invocation.
protected static String buildValidatorKey(Class clazz)
          Builds a key for validators - used when caching validators.
 List<Validator> getValidators(Class clazz, String context)
          Returns a list of validators for the given class and context.
 List<Validator> getValidators(Class clazz, String context, String method)
          Returns a list of validators for the given class, context, and method.
private  List<ValidatorConfig> loadFile(String fileName, Class clazz, boolean checkFile)
           
 void setValidatorFactory(ValidatorFactory fac)
           
 void setValidatorFileParser(ValidatorFileParser parser)
           
 void validate(Object object, String context)
          Validates the given object using action and its context.
 void validate(Object object, String context, String method)
          Validates the given object using an action, its context, and the name of the method being invoked on the action.
 void validate(Object object, String context, ValidatorContext validatorContext)
          Validates an action give its context and a validation context.
 void validate(Object object, String context, ValidatorContext validatorContext, String method)
          Validates an action give its context and a validation context.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

VALIDATION_CONFIG_SUFFIX

protected static final String VALIDATION_CONFIG_SUFFIX
The file suffix for any validation file.

See Also:
Constant Field Values

validatorCache

private final Map<String,List<ValidatorConfig>> validatorCache

validatorFileCache

private final Map<String,List<ValidatorConfig>> validatorFileCache

LOG

private static final Logger LOG

validatorFactory

private ValidatorFactory validatorFactory

validatorFileParser

private ValidatorFileParser validatorFileParser
Constructor Detail

AnnotationActionValidatorManager

public AnnotationActionValidatorManager()
Method Detail

setValidatorFactory

public void setValidatorFactory(ValidatorFactory fac)

setValidatorFileParser

public void setValidatorFileParser(ValidatorFileParser parser)

getValidators

public List<Validator> getValidators(Class clazz,
                                     String context)
Description copied from interface: ActionValidatorManager
Returns a list of validators for the given class and context. This is the primary lookup method for validators.

Specified by:
getValidators in interface ActionValidatorManager
Parameters:
clazz - the class to lookup.
context - the context of the action class - can be null.
Returns:
a list of all validators for the given class and context.

getValidators

public List<Validator> getValidators(Class clazz,
                                     String context,
                                     String method)
Description copied from interface: ActionValidatorManager
Returns a list of validators for the given class, context, and method. This is the primary lookup method for validators.

Specified by:
getValidators in interface ActionValidatorManager
Parameters:
clazz - the class to lookup.
context - the context of the action class - can be null.
method - the name of the method being invoked on the action - can be null.
Returns:
a list of all validators for the given class and context.

validate

public void validate(Object object,
                     String context)
              throws ValidationException
Description copied from interface: ActionValidatorManager
Validates the given object using action and its context.

Specified by:
validate in interface ActionValidatorManager
Parameters:
object - the action to validate.
context - the action's context.
Throws:
ValidationException - if an error happens when validating the action.

validate

public void validate(Object object,
                     String context,
                     String method)
              throws ValidationException
Description copied from interface: ActionValidatorManager
Validates the given object using an action, its context, and the name of the method being invoked on the action.

Specified by:
validate in interface ActionValidatorManager
Parameters:
object - the action to validate.
context - the action's context.
method - the name of the method being invoked on the action - can be null.
Throws:
ValidationException - if an error happens when validating the action.

validate

public void validate(Object object,
                     String context,
                     ValidatorContext validatorContext)
              throws ValidationException
Description copied from interface: ActionValidatorManager
Validates an action give its context and a validation context.

Specified by:
validate in interface ActionValidatorManager
Parameters:
object - the action to validate.
context - the action's context.
validatorContext - the validation context to use
Throws:
ValidationException - if an error happens when validating the action.

validate

public void validate(Object object,
                     String context,
                     ValidatorContext validatorContext,
                     String method)
              throws ValidationException
Description copied from interface: ActionValidatorManager
Validates an action give its context and a validation context.

Specified by:
validate in interface ActionValidatorManager
Parameters:
object - the action to validate.
context - the action's context.
validatorContext - the validation context to use
method - the name of the method being invoked on the action - can be null.
Throws:
ValidationException - if an error happens when validating the action.

buildValidatorKey

protected static String buildValidatorKey(Class clazz)
Builds a key for validators - used when caching validators.

Parameters:
clazz - the action.
Returns:
a validator key which is the class name plus context.

buildAliasValidatorConfigs

private List<ValidatorConfig> buildAliasValidatorConfigs(Class aClass,
                                                         String context,
                                                         boolean checkFile)

buildClassValidatorConfigs

protected List<ValidatorConfig> buildClassValidatorConfigs(Class aClass,
                                                           boolean checkFile)

buildValidatorConfigs

private List<ValidatorConfig> buildValidatorConfigs(Class clazz,
                                                    String context,
                                                    boolean checkFile,
                                                    Set<String> checked)

This method 'collects' all the validator configurations for a given action invocation.

It will traverse up the class hierarchy looking for validators for every super class and directly implemented interface of the current action, as well as adding validators for any alias of this invocation. Nifty!

Given the following class structure:

   interface Thing;
   interface Animal extends Thing;
   interface Quadraped extends Animal;
   class AnimalImpl implements Animal;
   class QuadrapedImpl extends AnimalImpl implements Quadraped;
   class Dog extends QuadrapedImpl;
 

This method will look for the following config files for Dog:

   Animal
   Animal-context
   AnimalImpl
   AnimalImpl-context
   Quadraped
   Quadraped-context
   QuadrapedImpl
   QuadrapedImpl-context
   Dog
   Dog-context
 

Note that the validation rules for Thing is never looked for because no class in the hierarchy directly implements Thing.

Parameters:
clazz - the Class to look up validators for.
context - the context to use when looking up validators.
checkFile - true if the validation config file should be checked to see if it has been updated.
checked - the set of previously checked class-contexts, null if none have been checked
Returns:
a list of validator configs for the given class and context.

loadFile

private List<ValidatorConfig> loadFile(String fileName,
                                       Class clazz,
                                       boolean checkFile)


Copyright © 2000-2009 Apache Software Foundation. All Rights Reserved.