Package org.apache.tapestry5.ioc.internal

# Class AbstractReloadableObjectCreator

java.lang.Object
org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator

All Implemented Interfaces:
  `ObjectCreator`, `ClassLoaderDelegate`, `UpdateListener`

Direct Known Subclasses:
  `ReloadableObjectCreator`, `ReloadableServiceImplementationObjectCreator`

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

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `AbstractReloadableObjectCreator(PlasticProxyFactory proxyFactory, ClassLoader baseClassLoader, String implementationClassName, org.slf4j.Logger logger, OperationTracker tracker)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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 Details

  - ### AbstractReloadableObjectCreator

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

- ## Method Details

  - ### 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`