Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.struts.tiles.xmlDefinition
Class I18nFactorySet

    java.lang.Object
      |
      +--org.apache.struts.tiles.xmlDefinition.FactorySet
            |
            +--org.apache.struts.tiles.xmlDefinition.I18nFactorySet

All Implemented Interfaces:
  ComponentDefinitionsFactory, java.io.Serializable

public class I18nFactorySet
extends FactorySet

Definitions factory. This implementation allows to have a set of definition factories. There is a main factory and one factory for each file associated to a Locale. To retrieve a definition, we first search for the appropriate factory using the Locale found in session context. If no factory is found, use the default one. Then we ask the factory for the definition. A definition factory file is loaded using main filename extended with locale code (ex : `templateDefinitions_fr.xml`). If no file is found under this name, use default file.

See Also:
  Serialized Form

Field Summary
`static java.lang.String[]` | `DEFAULT_DEFINITION_FILENAMES` Possible definition filenames.
`protected DefinitionsFactory` | `defaultFactory` Default factory.
`static java.lang.String` | `DEFINITIONS_CONFIG_PARAMETER_NAME` Config file parameter name.
`static java.lang.String` | `FILENAME_EXTENSION` Default filenames extension.
`private java.util.List` | `filenames` Names of files containing instances descriptions.
`static java.lang.String` | `INSTANCES_CONFIG_PARAMETER_NAME` Deprecated. use DEFINITIONS_CONFIG_PARAMETER_NAME
`protected boolean` | `isValidatingParser` Do we want validating parser.
`private java.util.Map` | `loaded` Collection of already loaded definitions set, referenced by their suffix.
`protected static org.apache.commons.logging.Log` | `log` Commons Logging instance.
`private static int` | `MAX_BUNDLES_SEARCHED` Maximum length of one branch of the resource search path tree.
`static java.lang.String` | `PARSER_DETAILS_PARAMETER_NAME` Config file parameter name.
`static java.lang.String` | `PARSER_VALIDATE_PARAMETER_NAME` Config file parameter name.
`protected int` | `parserDetailLevel` Parser detail level.
`protected XmlParser` | `xmlParser` Xml parser used.

Fields inherited from class org.apache.struts.tiles.xmlDefinition.FactorySet
`factories`

Constructor Summary
`I18nFactorySet()` Parameterless Constructor.
`I18nFactorySet(javax.servlet.ServletContext servletContext, java.util.Map properties)` Constructor.

Method Summary
`private static java.util.List` | `calculatePostixes(java.lang.String baseName, java.util.Locale locale)` Calculate the postixes along the search path from the base bundle to the bundle specified by baseName and locale.
`private java.lang.String` | `concatPostfix(java.lang.String name, java.lang.String postfix)` Concat postfix to the name.
`protected DefinitionsFactory` | `createDefaultFactory(javax.servlet.ServletContext servletContext)` Create default factory .
`protected DefinitionsFactory` | `createFactory(java.lang.Object key, javax.servlet.ServletRequest request, javax.servlet.ServletContext servletContext)` Create a factory for specified key.
`protected DefinitionsFactory` | `getDefaultFactory()` Get default factory.
`protected java.lang.Object` | `getDefinitionsFactoryKey(java.lang.String name, javax.servlet.ServletRequest request, javax.servlet.ServletContext servletContext)` Extract key that will be used to get the sub factory.
`void` | `initFactory(javax.servlet.ServletContext servletContext, java.util.Map properties)` Initialization method.
`protected void` | `initFactory(javax.servlet.ServletContext servletContext, java.lang.String proposedFilename)` Initialization method.
`private XmlDefinitionsSet` | `parseXmlFile(javax.servlet.ServletContext servletContext, java.lang.String filename, XmlDefinitionsSet xmlDefinitions)` Parse specified xml file and add definition to specified definitions set.
`private XmlDefinitionsSet` | `parseXmlFiles(javax.servlet.ServletContext servletContext, java.lang.String postfix, XmlDefinitionsSet xmlDefinitions)` Parse files associated to postix if they exist.
`java.lang.String` | `toString()` Return String representation.

Methods inherited from class org.apache.struts.tiles.xmlDefinition.FactorySet
`getDefinition, getFactory`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### log

    protected static org.apache.commons.logging.Log log

  Commons Logging instance.

### INSTANCES_CONFIG_PARAMETER_NAME

    public static final java.lang.String INSTANCES_CONFIG_PARAMETER_NAME

  Deprecated. use DEFINITIONS_CONFIG_PARAMETER_NAME

  Config file parameter name.

  See Also:
    Constant Field Values

### DEFINITIONS_CONFIG_PARAMETER_NAME

    public static final java.lang.String DEFINITIONS_CONFIG_PARAMETER_NAME

  Config file parameter name.

  See Also:
    Constant Field Values

### PARSER_DETAILS_PARAMETER_NAME

    public static final java.lang.String PARSER_DETAILS_PARAMETER_NAME

  Config file parameter name.

  See Also:
    Constant Field Values

### PARSER_VALIDATE_PARAMETER_NAME

    public static final java.lang.String PARSER_VALIDATE_PARAMETER_NAME

  Config file parameter name.

  See Also:
    Constant Field Values

### DEFAULT_DEFINITION_FILENAMES

    public static final java.lang.String[] DEFAULT_DEFINITION_FILENAMES

  Possible definition filenames.

### defaultFactory

    protected DefinitionsFactory defaultFactory

  Default factory.

### xmlParser

    protected transient XmlParser xmlParser

  Xml parser used. Attribute is transient to allow serialization. In this implementaiton, xmlParser is created each time we need it ;-(.

### isValidatingParser

    protected boolean isValidatingParser

  Do we want validating parser. Default is `false`. Can be set from servlet config file.

### parserDetailLevel

    protected int parserDetailLevel

  Parser detail level. Default is 0. Can be set from servlet config file.

### MAX_BUNDLES_SEARCHED

    private static final int MAX_BUNDLES_SEARCHED

  Maximum length of one branch of the resource search path tree. Used in getBundle().

  See Also:
    Constant Field Values

### FILENAME_EXTENSION

    public static final java.lang.String FILENAME_EXTENSION

  Default filenames extension.

  See Also:
    Constant Field Values

### filenames

    private java.util.List filenames

  Names of files containing instances descriptions.

### loaded

    private java.util.Map loaded

  Collection of already loaded definitions set, referenced by their suffix.

Constructor Detail

### I18nFactorySet

    public I18nFactorySet()

  Parameterless Constructor. Method `initFactory(javax.servlet.ServletContext, java.util.Map)` must be called prior to any use of created factory.

### I18nFactorySet

    public I18nFactorySet(javax.servlet.ServletContext servletContext,
                          java.util.Map properties)
                   throws DefinitionsFactoryException

  Constructor. Init the factory by reading appropriate configuration file.

Parameters:
  `servletContext` - Servlet context.
  `properties` - Map containing all properties.
Throws:
  `FactoryNotFoundException` - Can't find factory configuration file.
  `DefinitionsFactoryException`

Method Detail

### initFactory

    public void initFactory(javax.servlet.ServletContext servletContext,
                            java.util.Map properties)
                     throws DefinitionsFactoryException

  Initialization method. Init the factory by reading appropriate configuration file. This method is called exactly once immediately after factory creation in case of internal creation (by DefinitionUtil).

  Specified by:
    `initFactory` in interface `ComponentDefinitionsFactory`
  Specified by:
    `initFactory` in class `FactorySet`
  Parameters:
    `servletContext` - Servlet Context passed to newly created factory.
    `properties` - Map of name/property passed to newly created factory. Map can contains more properties than requested.
  Throws:
    `DefinitionsFactoryException` - An error occur during initialization.

### initFactory

    protected void initFactory(javax.servlet.ServletContext servletContext,
                               java.lang.String proposedFilename)
                        throws DefinitionsFactoryException,
                               java.io.FileNotFoundException

  Initialization method. Init the factory by reading appropriate configuration file. This method is called exactly once immediately after factory creation in case of internal creation (by DefinitionUtil).

  Parameters:
    `servletContext` - Servlet Context passed to newly created factory.
    `proposedFilename` - File names, comma separated, to use as base file names.
  Throws:
    `DefinitionsFactoryException` - An error occur during initialization.
    `java.io.FileNotFoundException`

### getDefaultFactory

    protected DefinitionsFactory getDefaultFactory()

  Get default factory.

  Specified by:
    `getDefaultFactory` in class `FactorySet`
  Returns:
    Default factory

### createDefaultFactory

    protected DefinitionsFactory createDefaultFactory(javax.servlet.ServletContext servletContext)
                                               throws DefinitionsFactoryException,
                                                      java.io.FileNotFoundException

  Create default factory . Create InstancesMapper for specified Locale. If creation failes, use default mapper and log error message.

  Parameters:
    `servletContext` - Current servlet context. Used to open file.
  Returns:
    Created default definition factory.
  Throws:
    `DefinitionsFactoryException` - If an error occur while creating factory.
    `java.io.FileNotFoundException` - if factory can't be loaded from filenames.

### getDefinitionsFactoryKey

    protected java.lang.Object getDefinitionsFactoryKey(java.lang.String name,
                                                        javax.servlet.ServletRequest request,
                                                        javax.servlet.ServletContext servletContext)

  Extract key that will be used to get the sub factory.

  Specified by:
    `getDefinitionsFactoryKey` in class `FactorySet`
  Parameters:
    `name` - Name of requested definition
    `request` - Current servlet request.
    `servletContext` - Current servlet context.
  Returns:
    the key or `null` if not found.

### createFactory

    protected DefinitionsFactory createFactory(java.lang.Object key,
                                               javax.servlet.ServletRequest request,
                                               javax.servlet.ServletContext servletContext)
                                        throws DefinitionsFactoryException

  Create a factory for specified key. If creation failes, return default factory and log an error message.

  Specified by:
    `createFactory` in class `FactorySet`
  Parameters:
    `key` - The key.
    `request` - Servlet request.
    `servletContext` - Servlet context.
  Returns:
    Definition factory for specified key.
  Throws:
    `DefinitionsFactoryException` - If an error occur while creating factory.

### calculatePostixes

    private static java.util.List calculatePostixes(java.lang.String baseName,
                                                    java.util.Locale locale)

  Calculate the postixes along the search path from the base bundle to the bundle specified by baseName and locale. Method copied from java.util.ResourceBundle

  Parameters:
    `baseName` - the base bundle name
    `locale` - the locale

### parseXmlFiles

    private XmlDefinitionsSet parseXmlFiles(javax.servlet.ServletContext servletContext,
                                            java.lang.String postfix,
                                            XmlDefinitionsSet xmlDefinitions)
                                     throws DefinitionsFactoryException

  Parse files associated to postix if they exist. For each name in filenames, append postfix before file extension, then try to load the corresponding file. If file doesn't exist, try next one. Each file description is added to the XmlDefinitionsSet description. The XmlDefinitionsSet description is created only if there is a definition file. Inheritance is not resolved in the returned XmlDefinitionsSet. If no description file can be opened and no definiion set is provided, return `null`.

  Parameters:
    `postfix` - Postfix to add to each description file.
    `xmlDefinitions` - Definitions set to which definitions will be added. If `null`, a definitions set is created on request.
  Returns:
    XmlDefinitionsSet The definitions set created or passed as parameter.
  Throws:
    `DefinitionsFactoryException` - On errors parsing file.

### parseXmlFile

    private XmlDefinitionsSet parseXmlFile(javax.servlet.ServletContext servletContext,
                                           java.lang.String filename,
                                           XmlDefinitionsSet xmlDefinitions)
                                    throws DefinitionsFactoryException

  Parse specified xml file and add definition to specified definitions set. This method is used to load several description files in one instances list. If filename exists and definition set is `null`, create a new set. Otherwise, return passed definition set (can be `null`).

  Parameters:
    `servletContext` - Current servlet context. Used to open file.
    `filename` - Name of file to parse.
    `xmlDefinitions` - Definitions set to which definitions will be added. If null, a definitions set is created on request.
  Returns:
    XmlDefinitionsSet The definitions set created or passed as parameter.
  Throws:
    `DefinitionsFactoryException` - On errors parsing file.

### concatPostfix

    private java.lang.String concatPostfix(java.lang.String name,
                                           java.lang.String postfix)

  Concat postfix to the name. Take care of existing filename extension. Transform the given name "name.ext" to have "name" + "postfix" + "ext". If there is no ext, return "name" + "postfix".

  Parameters:
    `name` - Filename.
    `postfix` - Postfix to add.
  Returns:
    Concatenated filename.

### toString

    public java.lang.String toString()

  Return String representation.

  Overrides:
    `toString` in class `FactorySet`
  Returns:
    String representation.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2003 - Apache Software Foundation