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

java.lang.Object
  extended byorg.apache.avalon.framework.logger.AbstractLogEnabled
      extended byorg.apache.excalibur.instrument.AbstractLogEnabledInstrumentable
          extended byorg.apache.avalon.fortress.impl.handler.ComponentFactory
All Implemented Interfaces:
Instrumentable, LogEnabled, 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(java.lang.Class componentClass, Configuration configuration, ServiceManager serviceManager, Context context, LoggerManager loggerManager, LifecycleExtensionManager extManager)
          Construct a new component factory for the specified component.
 
Method Summary
protected  void configureComponent(java.lang.Object component)
          Configure the component
protected  void contextualizeComponent(java.lang.Object component)
          Contextualize the component
protected  java.lang.Object createComponent()
          Create a new component
 void dispose(java.lang.Object component)
          Disposal of the supplied component instance.
protected  void enabledComponentLogging(java.lang.Object component)
          Enable logging for the component
 java.lang.Class getCreatedClass()
          Returns the component class.
 java.lang.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(java.lang.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(java.lang.Class componentClass,
                        Configuration configuration,
                        ServiceManager serviceManager,
                        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 java.lang.Object newInstance()
                             throws java.lang.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:
java.lang.Exception

getCreatedClass

public final java.lang.Class getCreatedClass()
Returns the component class.

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

dispose

public final void dispose(java.lang.Object component)
                   throws java.lang.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:
java.lang.Exception - if a disposal error occurs

createComponent

protected java.lang.Object createComponent()
                                    throws java.lang.Exception
Create a new component

Throws:
java.lang.Exception

enabledComponentLogging

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

Throws:
java.lang.Exception

contextualizeComponent

protected void contextualizeComponent(java.lang.Object component)
                               throws java.lang.Exception
Contextualize the component

Throws:
java.lang.Exception

serviceComponent

protected void serviceComponent(java.lang.Object component)
                         throws java.lang.Exception
Service the component

Throws:
java.lang.Exception

configureComponent

protected void configureComponent(java.lang.Object component)
                           throws java.lang.Exception
Configure the component

Throws:
java.lang.Exception


Copyright © 1997-2005 The Apache Software Foundation. All Rights Reserved.