org.apache.tapestry5.ioc.internal
Class AbstractReloadableObjectCreator

java.lang.Object
  extended by org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator
All Implemented Interfaces:
ClassLoaderDelegate, ObjectCreator, UpdateListener
Direct Known Subclasses:
ReloadableObjectCreator, ReloadableServiceImplementationObjectCreator

public abstract class AbstractReloadableObjectCreator
extends Object
implements ObjectCreator, UpdateListener, ClassLoaderDelegate


Constructor Summary
protected AbstractReloadableObjectCreator(PlasticProxyFactory proxyFactory, ClassLoader baseClassLoader, String implementationClassName, org.slf4j.Logger logger, OperationTracker tracker)
           
 
Method Summary
 void checkForUpdates()
          Invoked to force the receiver to check for updates to whatever underlying resources it makes use of.
protected abstract  Object createInstance(Class clazz)
          Invoked when an instance of the class is needed.
 Object createObject()
          Create and return the object.
 Class<?> doClassLoad(String className)
           
 Class<?> loadAndTransformClass(String className)
          Load the class, transforming it as necessary.
 boolean shouldInterceptClassLoading(String className)
          Identifies which classes are to be loaded.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractReloadableObjectCreator

protected AbstractReloadableObjectCreator(PlasticProxyFactory proxyFactory,
                                          ClassLoader baseClassLoader,
                                          String implementationClassName,
                                          org.slf4j.Logger logger,
                                          OperationTracker tracker)
Method Detail

checkForUpdates

public void checkForUpdates()
Description copied from interface: UpdateListener
Invoked to force the receiver to check for updates to whatever underlying resources it makes use of.

Specified by:
checkForUpdates in interface UpdateListener

createObject

public Object createObject()
Description copied from interface: ObjectCreator
Create and return the object. In some limited circumstances, the implementation may cache the result, returning the same object for repeated calls.

Specified by:
createObject in interface ObjectCreator

createInstance

protected abstract Object createInstance(Class clazz)
Invoked when an instance of the class is needed. It is the responsibility of this method (as implemented in a subclass) to instantiate the class and inject dependencies into the class.

See Also:
InternalUtils.findAutobuildConstructor(Class)

shouldInterceptClassLoading

public boolean shouldInterceptClassLoading(String className)
Description copied from interface: ClassLoaderDelegate
Identifies which classes are to be loaded.

Specified by:
shouldInterceptClassLoading in interface ClassLoaderDelegate
Parameters:
className - fully qualified class name
Returns:
true if the class should be intercepted, false to let parent class loader load class

loadAndTransformClass

public Class<?> loadAndTransformClass(String className)
                               throws ClassNotFoundException
Description copied from interface: ClassLoaderDelegate
Load the class, transforming it as necessary.

Specified by:
loadAndTransformClass in interface ClassLoaderDelegate
Parameters:
className - binary class name
Returns:
loaded and (if not an inner class) transformed class
Throws:
ClassNotFoundException

doClassLoad

public Class<?> doClassLoad(String className)
                     throws IOException
Throws:
IOException


Copyright © 2003-2012 The Apache Software Foundation.