org.apache.avalon.fortress.impl.handler
Class ComponentFactory

java.lang.Object
  extended by org.apache.avalon.framework.logger.AbstractLogEnabled
      extended by org.apache.excalibur.instrument.AbstractLogEnabledInstrumentable
          extended by org.apache.avalon.fortress.impl.handler.ComponentFactory
All Implemented Interfaces:
org.apache.avalon.framework.logger.LogEnabled, Instrumentable, org.d_haven.mpool.ObjectFactory

public final class ComponentFactory
extends AbstractLogEnabledInstrumentable
implements org.d_haven.mpool.ObjectFactory

Factory for Avalon components.

Version:
CVS $Revision: 1.31 $ $Date: 2004/04/13 13:17:54 $
Author:
Avalon Development Team

Nested Class Summary
protected  class ComponentFactory.ClassInfo
          This class collects all information about the components class: - the constructor to use - the parameters to pass into the constructor - Additional infos about implemented methods
 
Field Summary
 
Fields inherited from interface org.apache.excalibur.instrument.Instrumentable
EMPTY_INSTRUMENT_ARRAY, EMPTY_INSTRUMENTABLE_ARRAY
 
Constructor Summary
ComponentFactory(Class componentClass, org.apache.avalon.framework.configuration.Configuration configuration, org.apache.avalon.framework.service.ServiceManager serviceManager, org.apache.avalon.framework.context.Context context, LoggerManager loggerManager, LifecycleExtensionManager extManager)
          Construct a new component factory for the specified component.
 
Method Summary
protected  void configureComponent(Object component)
          Configure the component
protected  void contextualizeComponent(Object component)
          Contextualize the component
protected  Object createComponent()
          Create a new component
 void dispose(Object component)
          Disposal of the supplied component instance.
protected  void enabledComponentLogging(Object component)
          Enable logging for the component
 Class getCreatedClass()
          Returns the component class.
 Object newInstance()
          Returns a new instance of a component and optionally applies a logging channel, instrumentation, context, a component or service manager, configuration, parameters, lifecycle extensions, initialization, and execution phases based on the interfaces implemented by the component class.
protected  void serviceComponent(Object component)
          Service the component
 
Methods inherited from class org.apache.excalibur.instrument.AbstractLogEnabledInstrumentable
addChildInstrumentable, addInstrument, getChildInstrumentables, getInstrumentableName, getInstruments, setInstrumentableName
 
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
 

Constructor Detail

ComponentFactory

public ComponentFactory(Class componentClass,
                        org.apache.avalon.framework.configuration.Configuration configuration,
                        org.apache.avalon.framework.service.ServiceManager serviceManager,
                        org.apache.avalon.framework.context.Context context,
                        LoggerManager loggerManager,
                        LifecycleExtensionManager extManager)
Construct a new component factory for the specified component.

Parameters:
componentClass - the class to instantiate (must have a default constructor).
configuration - the Configuration object to pass to new instances.
serviceManager - the service manager to pass to Serviceables.
context - the Context to pass to Contexutalizables.
loggerManager - the loggerManager manager instance.
Method Detail

newInstance

public Object newInstance()
                   throws Exception
Returns a new instance of a component and optionally applies a logging channel, instrumentation, context, a component or service manager, configuration, parameters, lifecycle extensions, initialization, and execution phases based on the interfaces implemented by the component class.

Specified by:
newInstance in interface org.d_haven.mpool.ObjectFactory
Returns:
the new instance
Throws:
Exception

getCreatedClass

public final Class getCreatedClass()
Returns the component class.

Specified by:
getCreatedClass in interface org.d_haven.mpool.ObjectFactory
Returns:
the class

dispose

public final void dispose(Object component)
                   throws Exception
Disposal of the supplied component instance.

Specified by:
dispose in interface org.d_haven.mpool.ObjectFactory
Parameters:
component - the component to dispose of
Throws:
Exception - if a disposal error occurs

createComponent

protected Object createComponent()
                          throws Exception
Create a new component

Throws:
Exception

enabledComponentLogging

protected void enabledComponentLogging(Object component)
                                throws Exception
Enable logging for the component

Throws:
Exception

contextualizeComponent

protected void contextualizeComponent(Object component)
                               throws Exception
Contextualize the component

Throws:
Exception

serviceComponent

protected void serviceComponent(Object component)
                         throws Exception
Service the component

Throws:
Exception

configureComponent

protected void configureComponent(Object component)
                           throws Exception
Configure the component

Throws:
Exception


Copyright © 2003-2012 The Apache Software Foundation. All Rights Reserved.