org.apache.struts.tiles.xmlDefinition

Class FactorySet

Implemented Interfaces:
ComponentDefinitionsFactory, Serializable
Known Direct Subclasses:
I18nFactorySet

public abstract class FactorySet
extends java.lang.Object
implements ComponentDefinitionsFactory

Component Definitions factory. This factory contains several factories identified by a key. The getDefinition() method first looks for the factory key, retrieves or creates this factory and then calls its getDefinition().

Field Summary

protected Map
factories
Loaded factories

Constructor Summary

FactorySet()
Constructor.

Method Summary

protected abstract DefinitionsFactory
createFactory(Object key, ServletRequest request, ServletContext servletContext)
Create a factory for specified key.
protected abstract DefinitionsFactory
getDefaultFactory()
Get default factory.
ComponentDefinition
getDefinition(String name, ServletRequest request, ServletContext servletContext)
Get a definition by its name.
protected abstract Object
getDefinitionsFactoryKey(String name, ServletRequest request, ServletContext servletContext)
Extract key that will be used to get the sub factory.
protected DefinitionsFactory
getFactory(Object key, ServletRequest request, ServletContext servletContext)
Get a factory by its key.
abstract void
initFactory(ServletContext servletContext, Map properties)
Init factory set.
String
toString()
Return String representation.

Field Details

factories

protected Map factories
Loaded factories

Constructor Details

FactorySet

public FactorySet()
Constructor.

Method Details

createFactory

protected abstract DefinitionsFactory createFactory(Object key,
                                                    ServletRequest request,
                                                    ServletContext servletContext)
            throws DefinitionsFactoryException
Create a factory for specified key. This method is called by getFactory() when the requested factory doesn't already exist. Must return a factory, or a default one. Real implementation needs to provide this method.
Parameters:
key - Key of requested definition.
request - Current servlet request.
servletContext - Current servlet context
Throws:
DefinitionsFactoryException - If an error occur while creating factory.

getDefaultFactory

protected abstract DefinitionsFactory getDefaultFactory()
Get default factory.
Returns:
Default factory.

getDefinition

public ComponentDefinition getDefinition(String name,
                                         ServletRequest request,
                                         ServletContext servletContext)
            throws NoSuchDefinitionException,
                   DefinitionsFactoryException
Get a definition by its name.
Specified by:
getDefinition in interface ComponentDefinitionsFactory
Parameters:
name - Name of requested definition.
request - Current servlet request.
servletContext - Current servlet context.
Throws:
NoSuchDefinitionException - No definition found for specified name
DefinitionsFactoryException - General exception

getDefinitionsFactoryKey

protected abstract Object getDefinitionsFactoryKey(String name,
                                                   ServletRequest request,
                                                   ServletContext servletContext)
Extract key that will be used to get the sub factory.
Parameters:
name - Name of requested definition.
request - Current servlet request.
servletContext - Current servlet context.
Returns:
Object.

getFactory

protected DefinitionsFactory getFactory(Object key,
                                        ServletRequest request,
                                        ServletContext servletContext)
            throws DefinitionsFactoryException
Get a factory by its key. If key is null, return defaultFactory. Search in loaded factories. If not found, create factory and store return value in loaded factories.
Parameters:
key - Key of requested definition.
request - Current servlet request.
servletContext - Current servlet context.
Throws:
DefinitionsFactoryException - If an error occur while creating factory.

initFactory

public abstract void initFactory(ServletContext servletContext,
                                 Map properties)
            throws DefinitionsFactoryException
Init factory set.
Specified by:
initFactory in interface ComponentDefinitionsFactory
Parameters:
servletContext - Current servlet context
properties - properties used to initialized factory set;

toString

public String toString()
Return String representation.
Returns:
String representation.

Copyright B) 2000-2007 - The Apache Software Foundation