Class ValidatorResources

java.lang.Object
org.apache.commons.validator.ValidatorResources
All Implemented Interfaces:
Serializable

public class ValidatorResources extends Object implements Serializable

General purpose class for storing FormSet objects based on their associated Locale. Instances of this class are usually configured through a validation.xml file that is parsed in a constructor.

Note - Classes that extend this class must be Serializable so that instances may be used in distributable application server environments.

The use of FastHashMap is deprecated and will be replaced in a future release.

Version:
$Revision: 1713452 $
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • VALIDATOR_RULES

      private static final String VALIDATOR_RULES
      Name of the digester validator rules file
      See Also:
    • REGISTRATIONS

      private static final String[] REGISTRATIONS
      The set of public identifiers, and corresponding resource names, for the versions of the configuration file DTDs that we know about. There MUST be an even number of Strings in this list!
    • log

      private transient org.apache.commons.logging.Log log
    • hFormSets

      protected org.apache.commons.collections.FastHashMap hFormSets
      Deprecated.
      Subclasses should use getFormSets() instead.
      Map of FormSets stored under a Locale key (expressed as a String).
    • hConstants

      protected org.apache.commons.collections.FastHashMap hConstants
      Deprecated.
      Subclasses should use getConstants() instead.
      Map of global constant values with the name of the constant as the key.
    • hActions

      protected org.apache.commons.collections.FastHashMap hActions
      Deprecated.
      Subclasses should use getActions() instead.
      Map of ValidatorActions with the name of the ValidatorAction as the key.
    • defaultLocale

      protected static Locale defaultLocale
      The default locale on our server.
    • defaultFormSet

      protected FormSet defaultFormSet
      This is the default FormSet (without locale). (We probably don't need the defaultLocale anymore.)
    • ARGS_PATTERN

      private static final String ARGS_PATTERN
      See Also:
  • Constructor Details

    • ValidatorResources

      public ValidatorResources()
      Create an empty ValidatorResources object.
    • ValidatorResources

      public ValidatorResources(InputStream in) throws IOException, SAXException
      Create a ValidatorResources object from an InputStream.
      Parameters:
      in - InputStream to a validation.xml configuration file. It's the client's responsibility to close this stream.
      Throws:
      SAXException - if the validation XML files are not valid or well formed.
      IOException - if an I/O error occurs processing the XML files
      Since:
      Validator 1.1
    • ValidatorResources

      public ValidatorResources(InputStream[] streams) throws IOException, SAXException
      Create a ValidatorResources object from an InputStream.
      Parameters:
      streams - An array of InputStreams to several validation.xml configuration files that will be read in order and merged into this object. It's the client's responsibility to close these streams.
      Throws:
      SAXException - if the validation XML files are not valid or well formed.
      IOException - if an I/O error occurs processing the XML files
      Since:
      Validator 1.1
    • ValidatorResources

      public ValidatorResources(String uri) throws IOException, SAXException
      Create a ValidatorResources object from an uri
      Parameters:
      uri - The location of a validation.xml configuration file.
      Throws:
      SAXException - if the validation XML files are not valid or well formed.
      IOException - if an I/O error occurs processing the XML files
      Since:
      Validator 1.2
    • ValidatorResources

      public ValidatorResources(String[] uris) throws IOException, SAXException
      Create a ValidatorResources object from several uris
      Parameters:
      uris - An array of uris to several validation.xml configuration files that will be read in order and merged into this object.
      Throws:
      SAXException - if the validation XML files are not valid or well formed.
      IOException - if an I/O error occurs processing the XML files
      Since:
      Validator 1.2
    • ValidatorResources

      public ValidatorResources(URL url) throws IOException, SAXException
      Create a ValidatorResources object from a URL.
      Parameters:
      url - The URL for the validation.xml configuration file that will be read into this object.
      Throws:
      SAXException - if the validation XML file are not valid or well formed.
      IOException - if an I/O error occurs processing the XML files
      Since:
      Validator 1.3.1
    • ValidatorResources

      public ValidatorResources(URL[] urls) throws IOException, SAXException
      Create a ValidatorResources object from several URL.
      Parameters:
      urls - An array of URL to several validation.xml configuration files that will be read in order and merged into this object.
      Throws:
      SAXException - if the validation XML files are not valid or well formed.
      IOException - if an I/O error occurs processing the XML files
      Since:
      Validator 1.3.1
  • Method Details

    • initDigester

      private org.apache.commons.digester.Digester initDigester()
      Initialize the digester.
    • addOldArgRules

      private void addOldArgRules(org.apache.commons.digester.Digester digester)
      Create a Rule to handle arg0-arg3 elements. This will allow validation.xml files that use the versions of the DTD prior to Validator 1.2.0 to continue working.
    • addFormSet

      public void addFormSet(FormSet fs)
      Add a FormSet to this ValidatorResources object. It will be associated with the Locale of the FormSet.
      Parameters:
      fs - The form set to add.
      Since:
      Validator 1.1
    • addConstant

      public void addConstant(String name, String value)
      Add a global constant to the resource.
      Parameters:
      name - The constant name.
      value - The constant value.
    • addValidatorAction

      public void addValidatorAction(ValidatorAction va)
      Add a ValidatorAction to the resource. It also creates an instance of the class based on the ValidatorActions classname and retrieves the Method instance and sets them in the ValidatorAction.
      Parameters:
      va - The validator action.
    • getValidatorAction

      public ValidatorAction getValidatorAction(String key)
      Get a ValidatorAction based on it's name.
      Parameters:
      key - The validator action key.
      Returns:
      The validator action.
    • getValidatorActions

      public Map<String,ValidatorAction> getValidatorActions()
      Get an unmodifiable Map of the ValidatorActions.
      Returns:
      Map of validator actions.
    • buildKey

      protected String buildKey(FormSet fs)
      Builds a key to store the FormSet under based on it's language, country, and variant values.
      Parameters:
      fs - The Form Set.
      Returns:
      generated key for a formset.
    • buildLocale

      private String buildLocale(String lang, String country, String variant)
      Assembles a Locale code from the given parts.
    • getForm

      public Form getForm(Locale locale, String formKey)

      Gets a Form based on the name of the form and the Locale that most closely matches the Locale passed in. The order of Locale matching is:

      1. language + country + variant
      2. language + country
      3. language
      4. default locale
      Parameters:
      locale - The Locale.
      formKey - The key for the Form.
      Returns:
      The validator Form.
      Since:
      Validator 1.1
    • getForm

      public Form getForm(String language, String country, String variant, String formKey)

      Gets a Form based on the name of the form and the Locale that most closely matches the Locale passed in. The order of Locale matching is:

      1. language + country + variant
      2. language + country
      3. language
      4. default locale
      Parameters:
      language - The locale's language.
      country - The locale's country.
      variant - The locale's language variant.
      formKey - The key for the Form.
      Returns:
      The validator Form.
      Since:
      Validator 1.1
    • process

      public void process()
      Process the ValidatorResources object. Currently sets the FastHashMap s to the 'fast' mode and call the processes all other resources. Note : The framework calls this automatically when ValidatorResources is created from an XML file. If you create an instance of this class by hand you must call this method when finished.
    • processForms

      private void processForms()

      Process the Form objects. This clones the Fields that don't exist in a FormSet compared to its parent FormSet.

    • getParent

      private FormSet getParent(FormSet fs)
      Finds the given formSet's parent. ex: A formSet with locale en_UK_TEST1 has a direct parent in the formSet with locale en_UK. If it doesn't exist, find the formSet with locale en, if no found get the defaultFormSet.
      Parameters:
      fs - the formSet we want to get the parent from
      Returns:
      fs's parent
    • getFormSet

      FormSet getFormSet(String language, String country, String variant)

      Gets a FormSet based on the language, country and variant.

      Parameters:
      language - The locale's language.
      country - The locale's country.
      variant - The locale's language variant.
      Returns:
      The FormSet for a locale.
      Since:
      Validator 1.2
    • getFormSets

      protected Map<String,FormSet> getFormSets()
      Returns a Map of String locale keys to Lists of their FormSets.
      Returns:
      Map of Form sets
      Since:
      Validator 1.2.0
    • getConstants

      protected Map<String,String> getConstants()
      Returns a Map of String constant names to their String values.
      Returns:
      Map of Constants
      Since:
      Validator 1.2.0
    • getActions

      protected Map<String,ValidatorAction> getActions()
      Returns a Map of String ValidatorAction names to their ValidatorAction.
      Returns:
      Map of Validator Actions
      Since:
      Validator 1.2.0
    • getLog

      private org.apache.commons.logging.Log getLog()
      Accessor method for Log instance. The Log instance variable is transient and accessing it through this method ensures it is re-initialized when this instance is de-serialized.
      Returns:
      The Log instance.