org.mule.object
Class AbstractObjectFactory

java.lang.Object
  extended by org.mule.object.AbstractObjectFactory
All Implemented Interfaces:
FlowConstructAware, Disposable, Initialisable, ObjectFactory
Direct Known Subclasses:
PrototypeObjectFactory, SingletonObjectFactory, SpringBeanLookup

public abstract class AbstractObjectFactory
extends Object
implements ObjectFactory, FlowConstructAware

Creates object instances based on the class and sets any properties. This factory is also responsible for applying any object processors on the object before the lifecycle callbacks are called.


Field Summary
static String ATTRIBUTE_OBJECT_CLASS
           
static String ATTRIBUTE_OBJECT_CLASS_NAME
           
protected  boolean disposed
           
protected  FlowConstruct flowConstruct
           
protected  List<InitialisationCallback> initialisationCallbacks
           
protected  Log logger
           
protected  Class<?> objectClass
           
protected  String objectClassName
           
protected  Map properties
           
 
Fields inherited from interface org.mule.api.lifecycle.Initialisable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Disposable
PHASE_NAME
 
Constructor Summary
AbstractObjectFactory()
          For Spring only
AbstractObjectFactory(Class<?> objectClass)
           
AbstractObjectFactory(Class<?> objectClass, Map properties)
           
AbstractObjectFactory(String objectClassName)
           
AbstractObjectFactory(String objectClassName, Map properties)
           
 
Method Summary
 void addObjectInitialisationCallback(InitialisationCallback callback)
          Register a custom initialiser
 void dispose()
          A lifecycle method where implementor should free up any resources.
protected  void fireInitialisationCallbacks(Object component)
           
 Object getInstance(MuleContext muleContext)
          Creates an initialized object instance based on the class and sets any properties.
 Class<?> getObjectClass()
          Returns the class of the object to be instantiated without actually creating an instance.
protected  String getObjectClassName()
           
protected  Map getProperties()
           
 void initialise()
          Method used to perform any initialisation work.
 boolean isAutoWireObject()
          Return true if the created object should get its dependencies wired from the registry automatically.
 boolean isExternallyManagedLifecycle()
          Returns true if Mule should not manage the life-cycle the object instance returned from the ObjectFactory.
 boolean isSingleton()
          Returns true if the ObjectFactory implementation always returns the same object instance.
 void setFlowConstruct(FlowConstruct flowConstruct)
           
 void setObjectClass(Class<?> objectClass)
           
 void setObjectClassName(String objectClassName)
           
 void setProperties(Map properties)
           
protected  Class<?> setupObjectClassFromObjectClassName()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ATTRIBUTE_OBJECT_CLASS_NAME

public static final String ATTRIBUTE_OBJECT_CLASS_NAME
See Also:
Constant Field Values

ATTRIBUTE_OBJECT_CLASS

public static final String ATTRIBUTE_OBJECT_CLASS
See Also:
Constant Field Values

objectClassName

protected String objectClassName

objectClass

protected Class<?> objectClass

properties

protected Map properties

initialisationCallbacks

protected List<InitialisationCallback> initialisationCallbacks

flowConstruct

protected FlowConstruct flowConstruct

disposed

protected boolean disposed

logger

protected transient Log logger
Constructor Detail

AbstractObjectFactory

public AbstractObjectFactory()
For Spring only


AbstractObjectFactory

public AbstractObjectFactory(String objectClassName)

AbstractObjectFactory

public AbstractObjectFactory(String objectClassName,
                             Map properties)

AbstractObjectFactory

public AbstractObjectFactory(Class<?> objectClass)

AbstractObjectFactory

public AbstractObjectFactory(Class<?> objectClass,
                             Map properties)
Method Detail

setupObjectClassFromObjectClassName

protected Class<?> setupObjectClassFromObjectClassName()

setFlowConstruct

public void setFlowConstruct(FlowConstruct flowConstruct)
Specified by:
setFlowConstruct in interface FlowConstructAware

initialise

public void initialise()
                throws InitialisationException
Description copied from interface: Initialisable
Method used to perform any initialisation work. If a fatal error occurs during initialisation an InitialisationException should be thrown, causing the Mule instance to shutdown. If the error is recoverable, say by retrying to connect, a RecoverableException should be thrown. There is no guarantee that by throwing a Recoverable exception that the Mule instance will not shut down.

Specified by:
initialise in interface Initialisable
Throws:
InitialisationException - if a fatal error occurs causing the Mule instance to shutdown
RecoverableException - if an error occurs that can be recovered from

dispose

public void dispose()
Description copied from interface: Disposable
A lifecycle method where implementor should free up any resources. If an exception is thrown it should just be logged and processing should continue. This method should not throw Runtime exceptions.

Specified by:
dispose in interface Disposable

getInstance

public Object getInstance(MuleContext muleContext)
                   throws Exception
Creates an initialized object instance based on the class and sets any properties. This method handles all injection of properties for the resulting object

Specified by:
getInstance in interface ObjectFactory
Parameters:
muleContext - the current MuleContext instance. This can be used for performing registry lookups applying processors to newly created objects or even firing custom notifications
Returns:
A new instance of an object. The factory may decide to return the same instance each type or create a new instance each time
Throws:
Exception - Can throw any type of exception while creating a new object

fireInitialisationCallbacks

protected void fireInitialisationCallbacks(Object component)
                                    throws InitialisationException
Throws:
InitialisationException

getObjectClass

public Class<?> getObjectClass()
Description copied from interface: ObjectFactory
Returns the class of the object to be instantiated without actually creating an instance. This may not be logical or even possible depending on the implementation.

Specified by:
getObjectClass in interface ObjectFactory

setObjectClass

public void setObjectClass(Class<?> objectClass)

getObjectClassName

protected String getObjectClassName()

setObjectClassName

public void setObjectClassName(String objectClassName)

getProperties

protected Map getProperties()

setProperties

public void setProperties(Map properties)

addObjectInitialisationCallback

public void addObjectInitialisationCallback(InitialisationCallback callback)
Description copied from interface: ObjectFactory
Register a custom initialiser

Specified by:
addObjectInitialisationCallback in interface ObjectFactory

isSingleton

public boolean isSingleton()
Description copied from interface: ObjectFactory
Returns true if the ObjectFactory implementation always returns the same object instance.

Specified by:
isSingleton in interface ObjectFactory

isExternallyManagedLifecycle

public boolean isExternallyManagedLifecycle()
Description copied from interface: ObjectFactory
Returns true if Mule should not manage the life-cycle the object instance returned from the ObjectFactory. This is normally false except when an ObjectFactory implementation obtains instance from containers (e.g. Spring) that already manages the objects lifecycle. instance.

Specified by:
isExternallyManagedLifecycle in interface ObjectFactory

isAutoWireObject

public boolean isAutoWireObject()
Description copied from interface: ObjectFactory
Return true if the created object should get its dependencies wired from the registry automatically. Typically Mule object factories would return true for this value, objects managed by DI container such as Spring should set this to false.

Specified by:
isAutoWireObject in interface ObjectFactory


Copyright © 2003-2014 MuleSoft, Inc.. All Rights Reserved.