Package org.apache.struts2.validator

# 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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected FileManager`
  `fileManager`
  `protected boolean`
  `reloadingConfigs`
  `protected TextProviderFactory`
  `textProviderFactory`
  `protected static final String`
  `VALIDATION_CONFIG_SUFFIX`
  The file suffix for any validation file.
  `protected final Map<String,List<ValidatorConfig>>`
  `validatorCache`
  `protected ValidatorFactory`
  `validatorFactory`
  `protected final Map<String,List<ValidatorConfig>>`
  `validatorFileCache`
  `protected ValidatorFileParser`
  `validatorFileParser`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DefaultActionValidatorManager()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected List<ValidatorConfig>`
  `buildAliasValidatorConfigs(Class<?> aClass, String context, boolean checkFile)`
  `protected List<ValidatorConfig>`
  `buildClassValidatorConfigs(Class<?> aClass, boolean checkFile)`
  `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.
  `protected String`
  `buildValidatorKey(Class<?> clazz, String context)`
  Builds a key for validators - used when caching validators.
  `protected Validator`
  `getValidatorFromValidatorConfig(ValidatorConfig config, ValueStack stack)`
  `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.
  `protected List<ValidatorConfig>`
  `loadFile(String fileName, Class<?> clazz, boolean checkFile)`
  `void`
  `setFileManagerFactory(FileManagerFactory fileManagerFactory)`
  `void`
  `setReloadingConfigs(String reloadingConfigs)`
  `void`
  `setTextProviderFactory(TextProviderFactory textProviderFactory)`
  `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 Details

  - ### VALIDATION_CONFIG_SUFFIX

    protected static final String VALIDATION_CONFIG_SUFFIX
    The file suffix for any validation file.
    See Also:
      - Constant Field Values

  - ### validatorCache

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

  - ### validatorFileCache

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

  - ### validatorFactory

    protected ValidatorFactory validatorFactory

  - ### validatorFileParser

    protected ValidatorFileParser validatorFileParser

  - ### fileManager

    protected FileManager fileManager

  - ### reloadingConfigs

    protected boolean reloadingConfigs

  - ### textProviderFactory

    protected TextProviderFactory textProviderFactory

- ## 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)