Class DefaultActionValidatorManager

java.lang.Object
org.apache.struts2.validator.DefaultActionValidatorManager
All Implemented Interfaces:
ActionValidatorManager
Direct Known Subclasses:
AnnotationActionValidatorManager

public class DefaultActionValidatorManager extends Object implements ActionValidatorManager

This is the entry point into XWork's rule-based validation framework.

Validation rules are specified in XML configuration files named className-contextName-validation.xml where className is the name of the class the configuration is for and -contextName is optional (contextName is an arbitrary key that is used to look up additional validation rules for a specific context).

Author:
Jason Carreira, Mark Woon, James House, Rainer Hermanns
  • Field Details

  • Constructor Details

    • DefaultActionValidatorManager

      public DefaultActionValidatorManager()
  • Method Details

    • setValidatorFactory

      public void setValidatorFactory(ValidatorFactory fac)
    • setValidatorFileParser

      public void setValidatorFileParser(ValidatorFileParser parser)
    • setFileManagerFactory

      public void setFileManagerFactory(FileManagerFactory fileManagerFactory)
    • setReloadingConfigs

      public void setReloadingConfigs(String reloadingConfigs)
    • setTextProviderFactory

      public void setTextProviderFactory(TextProviderFactory textProviderFactory)
    • 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.
    • buildValidatorKey

      protected String buildValidatorKey(Class<?> clazz, String context)
      Builds a key for validators - used when caching validators.
      Parameters:
      clazz - the action.
      context - context
      Returns:
      a validator key which is the class name plus context.
    • getValidatorFromValidatorConfig

      protected Validator getValidatorFromValidatorConfig(ValidatorConfig config, ValueStack stack)
    • 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.
    • 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.
    • 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.
    • buildValidatorConfigs

      protected 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.
    • buildAliasValidatorConfigs

      protected List<ValidatorConfig> buildAliasValidatorConfigs(Class<?> aClass, String context, boolean checkFile)
    • buildClassValidatorConfigs

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

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