org.apache.commons.validator

Class ValidatorResources

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: 478473 $ $Date: 2006-11-23 05:42:30 +0000 (Thu, 23 Nov 2006) $

Field Summary
static StringARGS_PATTERN
protected FormSetdefaultFormSet
This is the default FormSet (without locale).
protected static LocaledefaultLocale
The default locale on our server.
protected FastHashMaphActions
Map of ValidatorActions with the name of the ValidatorAction as the key.
protected FastHashMaphConstants
Map of global constant values with the name of the constant as the key.
protected FastHashMaphFormSets
Map of FormSets stored under a Locale key.
Loglog
static String[]REGISTRATIONS
The set of public identifiers, and corresponding resource names, for the versions of the configuration file DTDs that we know about.
static StringVALIDATOR_RULES
Name of the digester validator rules file
Constructor Summary
ValidatorResources()
Create an empty ValidatorResources object.
ValidatorResources(InputStream in)
Create a ValidatorResources object from an InputStream.
ValidatorResources(InputStream[] streams)
Create a ValidatorResources object from an InputStream.
ValidatorResources(String uri)
Create a ValidatorResources object from an uri
ValidatorResources(String[] uris)
Create a ValidatorResources object from several uris
ValidatorResources(URL url)
Create a ValidatorResources object from a URL.
ValidatorResources(URL[] urls)
Create a ValidatorResources object from several URL.
Method Summary
voidaddConstant(String name, String value)
Add a global constant to the resource.
voidaddFormSet(FormSet fs)
Add a FormSet to this ValidatorResources object.
voidaddOldArgRules(Digester digester)
Create a Rule to handle arg0-arg3 elements.
voidaddValidatorAction(ValidatorAction va)
Add a ValidatorAction to the resource.
protected StringbuildKey(FormSet fs)
Builds a key to store the FormSet under based on it's language, country, and variant values.
StringbuildLocale(String lang, String country, String variant)
Assembles a Locale code from the given parts.
protected MapgetActions()
Returns a Map of String ValidatorAction names to their ValidatorAction.
protected MapgetConstants()
Returns a Map of String constant names to their String values.
FormgetForm(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.

FormgetForm(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.

FormSetgetFormSet(String language, String country, String variant)

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

protected MapgetFormSets()
Returns a Map of String locale keys to Lists of their FormSets.
LoggetLog()
Accessor method for Log instance.
FormSetgetParent(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.
ValidatorActiongetValidatorAction(String key)
Get a ValidatorAction based on it's name.
MapgetValidatorActions()
Get an unmodifiable Map of the ValidatorActions.
DigesterinitDigester()
Initialize the digester.
voidprocess()
Process the ValidatorResources object.
voidprocessForms()

Process the Form objects.

Field Detail

ARGS_PATTERN

private static final String ARGS_PATTERN

defaultFormSet

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

defaultLocale

protected static Locale defaultLocale
The default locale on our server.

hActions

protected FastHashMap hActions

Deprecated: Subclasses should use getActions() instead.

Map of ValidatorActions with the name of the ValidatorAction as the key.

hConstants

protected FastHashMap hConstants

Deprecated: Subclasses should use getConstants() instead.

Map of global constant values with the name of the constant as the key.

hFormSets

protected FastHashMap hFormSets

Deprecated: Subclasses should use getFormSets() instead.

Map of FormSets stored under a Locale key.

log

private transient Log log

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!

VALIDATOR_RULES

private static final String VALIDATOR_RULES
Name of the digester validator rules file

Constructor Detail

ValidatorResources

public ValidatorResources()
Create an empty ValidatorResources object.

ValidatorResources

public ValidatorResources(InputStream in)
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: IOException 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)
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: IOException 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)
Create a ValidatorResources object from an uri

Parameters: uri The location of a validation.xml configuration file.

Throws: IOException 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)
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: IOException 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)
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: IOException 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)
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: IOException 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 Detail

addConstant

public void addConstant(String name, String value)
Add a global constant to the resource.

Parameters: name The constant name. value The constant value.

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

addOldArgRules

private void addOldArgRules(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.

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.

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.

getActions

protected Map getActions()
Returns a Map of String ValidatorAction names to their ValidatorAction.

Returns: Map of Validator Actions

Since: Validator 1.2.0

getConstants

protected Map getConstants()
Returns a Map of String constant names to their String values.

Returns: Map of Constants

Since: Validator 1.2.0

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

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 getFormSets()
Returns a Map of String locale keys to Lists of their FormSets.

Returns: Map of Form sets

Since: Validator 1.2.0

getLog

private 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.

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

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 getValidatorActions()
Get an unmodifiable Map of the ValidatorActions.

Returns: Map of validator actions.

initDigester

private Digester initDigester()
Initialize the digester.

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.

Copyright (c) 2001-2004 Apache Software Foundation