org.apache.tapestry5.ioc.internal.services
Class PlasticProxyFactoryImpl

java.lang.Object
  extended by org.apache.tapestry5.ioc.internal.services.PlasticProxyFactoryImpl
All Implemented Interfaces:
PlasticProxyFactory, PlasticClassListenerHub

public class PlasticProxyFactoryImpl
extends Object
implements PlasticProxyFactory


Constructor Summary
PlasticProxyFactoryImpl(ClassLoader parentClassLoader, org.slf4j.Logger logger)
           
PlasticProxyFactoryImpl(PlasticManager manager, org.slf4j.Logger logger)
           
 
Method Summary
 void addPlasticClassListener(PlasticClassListener listener)
           
 void clearCache()
          Clears any cached information stored by the proxy factory; this is useful in Tapestry development mode when a class loader may have been discarded (because the proxy factory may indirectly keep references to classes loaded by the old class loader).
<T> T
createProxy(Class<T> interfaceType, ObjectCreator<T> creator, String description)
          Creates a proxy instance that delegates all methods through a corresponding ObjectCreator.
<T> ClassInstantiator<T>
createProxy(Class<T> interfaceType, PlasticClassTransformer callback)
          Creates a proxy object that implements the indicated interface, then invokes the callback to further configure the proxy.
 PlasticClassTransformation createProxyTransformation(Class interfaceType)
          Creates the underlying PlasticClassTransformation for an interface proxy.
 ClassLoader getClassLoader()
          Returns the class loader used when creating new classes, this is a child class loader of another class loader (usually, the thread's context class loader).
 Location getConstructorLocation(Constructor constructor)
          Return a string representation for the constructor (including class and parameters) and (if available) file name and line number.
 Location getMemberLocation(Member member, String methodName, String memberTypeDesc, ObjectCreator<String> textDescriptionCreator)
           
 Location getMethodLocation(Method method)
          Converts a method to a Location, which includes information about the source file name and line number.
 void removePlasticClassListener(PlasticClassListener listener)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticProxyFactoryImpl

public PlasticProxyFactoryImpl(ClassLoader parentClassLoader,
                               org.slf4j.Logger logger)

PlasticProxyFactoryImpl

public PlasticProxyFactoryImpl(PlasticManager manager,
                               org.slf4j.Logger logger)
Method Detail

getClassLoader

public ClassLoader getClassLoader()
Description copied from interface: PlasticProxyFactory
Returns the class loader used when creating new classes, this is a child class loader of another class loader (usually, the thread's context class loader).

Specified by:
getClassLoader in interface PlasticProxyFactory

createProxy

public <T> ClassInstantiator<T> createProxy(Class<T> interfaceType,
                                            PlasticClassTransformer callback)
Description copied from interface: PlasticProxyFactory
Creates a proxy object that implements the indicated interface, then invokes the callback to further configure the proxy.

Specified by:
createProxy in interface PlasticProxyFactory
Parameters:
interfaceType - interface implemented by proxy
callback - configures the proxy
Returns:
instantiator that can be used to create an instance of the proxy class

createProxyTransformation

public PlasticClassTransformation createProxyTransformation(Class interfaceType)
Description copied from interface: PlasticProxyFactory
Creates the underlying PlasticClassTransformation for an interface proxy. This should only be used in the cases where encapsulating the PlasticClass construction into a callback is not feasible (which is the case for some of the older APIs inside Tapestry IoC).

Specified by:
createProxyTransformation in interface PlasticProxyFactory
Parameters:
interfaceType - class proxy will extend from
Returns:
transformation from which an instantiator may be created

createProxy

public <T> T createProxy(Class<T> interfaceType,
                         ObjectCreator<T> creator,
                         String description)
Description copied from interface: PlasticProxyFactory
Creates a proxy instance that delegates all methods through a corresponding ObjectCreator. Each method invocation on the proxy will route through ObjectCreator.createObject() (the creator implementation may decide to cache the return value as appropriate).

Specified by:
createProxy in interface PlasticProxyFactory
Type Parameters:
T - type of proxy
Parameters:
interfaceType - interface class for proxy
creator - object responsible for creating the real object
description - the toString() of the proxy
Returns:
proxy instance

getMethodLocation

public Location getMethodLocation(Method method)
Description copied from interface: PlasticProxyFactory
Converts a method to a Location, which includes information about the source file name and line number.

Specified by:
getMethodLocation in interface PlasticProxyFactory
Parameters:
method - to look up
Returns:
the location (identifying the method and possibly, the line number within the method)

getConstructorLocation

public Location getConstructorLocation(Constructor constructor)
Description copied from interface: PlasticProxyFactory
Return a string representation for the constructor (including class and parameters) and (if available) file name and line number.

Specified by:
getConstructorLocation in interface PlasticProxyFactory
Returns:
the location (identifying the constructor and possibly, the line number within the method)

clearCache

public void clearCache()
Description copied from interface: PlasticProxyFactory
Clears any cached information stored by the proxy factory; this is useful in Tapestry development mode when a class loader may have been discarded (because the proxy factory may indirectly keep references to classes loaded by the old class loader).

Specified by:
clearCache in interface PlasticProxyFactory

getMemberLocation

public Location getMemberLocation(Member member,
                                  String methodName,
                                  String memberTypeDesc,
                                  ObjectCreator<String> textDescriptionCreator)

addPlasticClassListener

public void addPlasticClassListener(PlasticClassListener listener)
Specified by:
addPlasticClassListener in interface PlasticClassListenerHub

removePlasticClassListener

public void removePlasticClassListener(PlasticClassListener listener)
Specified by:
removePlasticClassListener in interface PlasticClassListenerHub


Copyright © 2003-2012 The Apache Software Foundation.