|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.avalon.framework.logger.AbstractLogEnabled
org.apache.cocoon.components.treeprocessor.DefaultTreeBuilder
Nested Class Summary |
Nested classes inherited from class org.apache.cocoon.components.treeprocessor.TreeBuilder |
TreeBuilder.EventComponent |
Field Summary | |
protected ComponentLocator |
applicationContainer
Optional application container |
protected Map |
attributes
|
protected List |
enterSitemapEventListeners
Optional event listeners for the enter sitemap event |
protected ClassLoader |
itsClassLoader
The classloader for the processor that we are building. |
protected ProcessorComponentInfo |
itsComponentInfo
The sitemap component information grabbed while building itsMaanger |
protected String |
itsNamespace
The namespace of configuration for the processor that we are building. |
protected List |
leaveSitemapEventListeners
Optional event listeners for the leave sitemap event |
protected ServiceManager |
parentProcessorManager
Component processor of the parent manager (can be null for the root sitemap) |
protected ConcreteTreeProcessor |
processor
The tree processor that we are building. |
Fields inherited from interface org.apache.cocoon.components.treeprocessor.TreeBuilder |
ROLE |
Constructor Summary | |
DefaultTreeBuilder()
|
Method Summary | |
ProcessingNode |
build(Configuration tree)
Build a processing tree from a Configuration . |
void |
contextualize(Context context)
|
protected ClassLoader |
createClassLoader(Configuration tree)
|
protected Context |
createContext(Configuration tree)
Create a context that will be used for all Contextualizable
ProcessingNodeBuilder s and ProcessingNode s.
|
ProcessingNodeBuilder |
createNodeBuilder(Configuration config)
|
protected ServiceManager |
createServiceManager(ClassLoader classloader,
Context context,
Configuration tree)
Create a service manager that will be used for all Serviceable
ProcessingNodeBuilder s and ProcessingNode s.
|
protected ProcessingNode |
createTree(Configuration tree)
Create the tree once component manager and node builders have been set up. |
void |
dispose()
|
Object |
getAttribute(String name)
Get the value of an attribute. |
protected String |
getBuilderConfigURL()
Get the location of the treebuilder config file. |
ClassLoader |
getBuiltProcessorClassLoader()
|
ServiceManager |
getBuiltProcessorManager()
|
ComponentLocator |
getComponentLocator()
Return the sitemap component locator - if available. |
List |
getDisposableNodes()
Return the list of ProcessingNodes part of this tree that are
Disposable . |
List |
getEnterSitemapEventListeners()
Return all event listers that are registered for the EnterSitemapEvent . |
List |
getLeaveSitemapEventListeners()
Return all event listers that are registered for the LeaveSitemapEvent . |
protected LocationImpl |
getLocation(Configuration config)
|
String |
getNamespace()
Get the namespace URI that builders should use to find their nodes. |
protected Map |
getParameters(Configuration config,
Location location)
Get <xxx:parameter> elements as a Map of ListOfMapResolvers,
that can be turned into parameters using ListOfMapResolver.buildParameters() . |
ConcreteTreeProcessor |
getProcessor()
|
ProcessingNode |
getRegisteredNode(String name)
|
String |
getTypeForStatement(Configuration statement,
String role)
Get the type for a statement : it returns the 'type' attribute if present, and otherwhise the default type defined for this role in the components declarations. |
protected void |
linkNodes()
Resolve links : call linkNode() on all
LinkedProcessingNodeBuilder s.
|
void |
recycle()
|
boolean |
registerNode(String name,
ProcessingNode node)
Register a ProcessingNode under a given name.
|
protected VariableResolver |
resolve(String expression)
Resolve expression using its manager |
void |
service(ServiceManager manager)
|
void |
setAttribute(String name,
Object value)
Add an attribute. |
void |
setParentProcessorManager(ServiceManager manager)
|
void |
setProcessor(ConcreteTreeProcessor processor)
|
ProcessingNode |
setupNode(ProcessingNode node,
Configuration config)
Setup a ProcessingNode by setting its location, calling all
the lifecycle interfaces it implements and giving it the parameter map if
it's a ParameterizableNode .
|
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled |
enableLogging, getLogger, setupLogger, setupLogger, setupLogger |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected Map attributes
protected ConcreteTreeProcessor processor
protected String itsNamespace
protected ClassLoader itsClassLoader
createServiceManager(ClassLoader, Context, Configuration)
.
protected ProcessorComponentInfo itsComponentInfo
protected ComponentLocator applicationContainer
protected List enterSitemapEventListeners
protected List leaveSitemapEventListeners
protected ServiceManager parentProcessorManager
Constructor Detail |
public DefaultTreeBuilder()
Method Detail |
public void contextualize(Context context) throws ContextException
contextualize
in interface Contextualizable
ContextException
public void service(ServiceManager manager) throws ServiceException
service
in interface Serviceable
ServiceException
protected String getBuilderConfigURL()
public void setParentProcessorManager(ServiceManager manager)
setParentProcessorManager
in interface TreeBuilder
public void setAttribute(String name, Object value)
TreeBuilder
setAttribute
in interface TreeBuilder
public Object getAttribute(String name)
TreeBuilder
getAttribute
in interface TreeBuilder
protected Context createContext(Configuration tree) throws Exception
Contextualizable
ProcessingNodeBuilder
s and ProcessingNode
s.
The default here is to simply return the context set in
contextualize()
, i.e. the context set by the calling
TreeProcessor
.
Subclasses can redefine this method to create a context local to a tree, such as for sitemap's <map:components>.
Exception
protected ClassLoader createClassLoader(Configuration tree) throws Exception
Exception
protected ServiceManager createServiceManager(ClassLoader classloader, Context context, Configuration tree) throws Exception
Serviceable
ProcessingNodeBuilder
s and ProcessingNode
s.
The default here is to simply return the manager set in
compose()
, i.e. the component manager set by the calling
TreeProcessor
.
Subclasses can redefine this method to create a service manager local to a tree, such as for sitemap's <map:components>.
Exception
public void setProcessor(ConcreteTreeProcessor processor)
setProcessor
in interface TreeBuilder
public ConcreteTreeProcessor getProcessor()
getProcessor
in interface TreeBuilder
public ServiceManager getBuiltProcessorManager()
getBuiltProcessorManager
in interface TreeBuilder
public ClassLoader getBuiltProcessorClassLoader()
getBuiltProcessorClassLoader
in interface TreeBuilder
public ComponentLocator getComponentLocator()
TreeBuilder
getComponentLocator
in interface TreeBuilder
TreeBuilder.getComponentLocator()
public List getEnterSitemapEventListeners()
TreeBuilder
EnterSitemapEvent
.
getEnterSitemapEventListeners
in interface TreeBuilder
TreeBuilder.EventComponent
s.TreeBuilder.getEnterSitemapEventListeners()
public List getLeaveSitemapEventListeners()
TreeBuilder
LeaveSitemapEvent
.
getLeaveSitemapEventListeners
in interface TreeBuilder
TreeBuilder.EventComponent
s.TreeBuilder.getLeaveSitemapEventListeners()
public boolean registerNode(String name, ProcessingNode node)
TreeBuilder
ProcessingNode
under a given name.
For example, ResourceNodeBuilder
stores here the ProcessingNode
s
it produces for use by sitemap pipelines. This allows to turn the tree into a graph.
If a node with the name is already registed, the process fails!
registerNode
in interface TreeBuilder
true
is returned; otherwise false.TreeBuilder.registerNode(java.lang.String, org.apache.cocoon.components.treeprocessor.ProcessingNode)
public ProcessingNode getRegisteredNode(String name)
getRegisteredNode
in interface TreeBuilder
public ProcessingNodeBuilder createNodeBuilder(Configuration config) throws Exception
createNodeBuilder
in interface TreeBuilder
Exception
protected ProcessingNode createTree(Configuration tree) throws Exception
Exception
protected void linkNodes() throws Exception
linkNode()
on all
LinkedProcessingNodeBuilder
s.
Can be overriden by subclasses to perform pre/post resolution operations.
Exception
public String getNamespace()
getNamespace
in interface TreeBuilder
public ProcessingNode build(Configuration tree) throws Exception
Configuration
.
build
in interface TreeBuilder
Exception
public List getDisposableNodes()
ProcessingNodes
part of this tree that are
Disposable
. Care should be taken to properly dispose them before
trashing the processing tree.
getDisposableNodes
in interface TreeBuilder
public ProcessingNode setupNode(ProcessingNode node, Configuration config) throws Exception
ProcessingNode
by setting its location, calling all
the lifecycle interfaces it implements and giving it the parameter map if
it's a ParameterizableNode
.
As a convenience, the node is returned by this method to allow constructs
like return treeBuilder.setupNode(new MyNode(), config)
.
setupNode
in interface TreeBuilder
Exception
protected LocationImpl getLocation(Configuration config)
protected Map getParameters(Configuration config, Location location) throws ConfigurationException
Map
of ListOfMapResolvers,
that can be turned into parameters using ListOfMapResolver.buildParameters()
.
null
if there are no parameters.
ConfigurationException
public String getTypeForStatement(Configuration statement, String role) throws ConfigurationException
getTypeForStatement
in interface TreeBuilder
statement
- the statementrole
- the component's role (warn: not the selector's role)
ConfigurationException
- if the type could not be found.protected VariableResolver resolve(String expression) throws PatternException
PatternException
public void recycle()
recycle
in interface Recyclable
public void dispose()
dispose
in interface Disposable
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |