Class PlasticProxyFactoryImpl
- java.lang.Object
-
- org.apache.tapestry5.beanmodel.services.PlasticProxyFactoryImpl
-
- All Implemented Interfaces:
PlasticProxyFactory,PlasticClassListenerHub
public class PlasticProxyFactoryImpl extends java.lang.Object implements PlasticProxyFactory
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringINTERNAL_GET_DELEGATE
-
Constructor Summary
Constructors Constructor Description PlasticProxyFactoryImpl(java.lang.ClassLoader parentClassLoader, org.slf4j.Logger logger)PlasticProxyFactoryImpl(PlasticManager manager, org.slf4j.Logger logger)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddPlasticClassListener(PlasticClassListener listener)voidclearCache()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> TcreateProxy(java.lang.Class<T> interfaceType, java.lang.Class<? extends T> implementationType, ObjectCreator<T> creator, java.lang.String description)Creates a proxy instance that delegates all methods through a corresponding ObjectCreator.<T> ClassInstantiator<T>createProxy(java.lang.Class<T> interfaceType, java.lang.Class<? extends T> implementationType, PlasticClassTransformer callback)Same ascreateProxy(interfacetype, implementationType, callback, true)<T> ClassInstantiator<T>createProxy(java.lang.Class<T> interfaceType, java.lang.Class<? extends T> implementationType, PlasticClassTransformer callback, boolean introduceInterface)Creates a proxy object that implements the indicated interface and indicated service implementation type, then invokes the callback to further configure the proxy.<T> TcreateProxy(java.lang.Class<T> interfaceType, ObjectCreator<T> creator, java.lang.String description)Creates a proxy instance that delegates all methods through a corresponding ObjectCreator.<T> ClassInstantiator<T>createProxy(java.lang.Class<T> interfaceType, PlasticClassTransformer callback)Creates a proxy object that implements the indicated interface, then invokes the callback to further configure the proxy.<T> PlasticClassTransformation<T>createProxyTransformation(java.lang.Class<T> interfaceType)Creates the underlyingPlasticClassTransformationfor an interface proxy.<T> PlasticClassTransformation<T>createProxyTransformation(java.lang.Class<T> interfaceType, java.lang.Class<? extends T> implementationType)Creates the underlyingPlasticClassTransformationfor an interface proxy with a given implementation class.java.lang.ClassLoadergetClassLoader()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).LocationgetConstructorLocation(java.lang.reflect.Constructor constructor)Return a string representation for the constructor (including class and parameters) and (if available) file name and line number.LocationgetMemberLocation(java.lang.reflect.Member member, java.lang.String methodName, java.lang.String memberTypeDesc, ObjectCreator<java.lang.String> textDescriptionCreator)LocationgetMethodLocation(java.lang.reflect.Method method)Converts a method to aLocation, which includes information about the source file name and line number.PlasticManagergetPlasticManager()Returns the PlasticManager instance used by this PlasticProxyFactory.voidremovePlasticClassListener(PlasticClassListener listener)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.tapestry5.commons.services.PlasticProxyFactory
getProxyFactory
-
-
-
-
Field Detail
-
INTERNAL_GET_DELEGATE
public static final java.lang.String INTERNAL_GET_DELEGATE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PlasticProxyFactoryImpl
public PlasticProxyFactoryImpl(java.lang.ClassLoader parentClassLoader, org.slf4j.Logger logger)
-
PlasticProxyFactoryImpl
public PlasticProxyFactoryImpl(PlasticManager manager, org.slf4j.Logger logger)
-
-
Method Detail
-
getClassLoader
public java.lang.ClassLoader getClassLoader()
Description copied from interface:PlasticProxyFactoryReturns 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:
getClassLoaderin interfacePlasticProxyFactory
-
createProxy
public <T> ClassInstantiator<T> createProxy(java.lang.Class<T> interfaceType, java.lang.Class<? extends T> implementationType, PlasticClassTransformer callback)
Description copied from interface:PlasticProxyFactorySame ascreateProxy(interfacetype, implementationType, callback, true)- Specified by:
createProxyin interfacePlasticProxyFactory- Parameters:
interfaceType- interface implemented by proxyimplementationType- a class that implements the interfaceType. It can be null.callback- configures the proxy- Returns:
- instantiator that can be used to create an instance of the proxy class
-
createProxy
public <T> ClassInstantiator<T> createProxy(java.lang.Class<T> interfaceType, java.lang.Class<? extends T> implementationType, PlasticClassTransformer callback, boolean introduceInterface)
Description copied from interface:PlasticProxyFactoryCreates a proxy object that implements the indicated interface and indicated service implementation type, then invokes the callback to further configure the proxy.- Specified by:
createProxyin interfacePlasticProxyFactory- Parameters:
interfaceType- interface implemented by proxyimplementationType- a class that implements the interfaceType. It can be null.callback- configures the proxy- Returns:
- instantiator that can be used to create an instance of the proxy class
-
createProxy
public <T> ClassInstantiator<T> createProxy(java.lang.Class<T> interfaceType, PlasticClassTransformer callback)
Description copied from interface:PlasticProxyFactoryCreates a proxy object that implements the indicated interface, then invokes the callback to further configure the proxy.- Specified by:
createProxyin interfacePlasticProxyFactory- Parameters:
interfaceType- interface implemented by proxycallback- configures the proxy- Returns:
- instantiator that can be used to create an instance of the proxy class
-
createProxyTransformation
public <T> PlasticClassTransformation<T> createProxyTransformation(java.lang.Class<T> interfaceType, java.lang.Class<? extends T> implementationType)
Description copied from interface:PlasticProxyFactoryCreates the underlyingPlasticClassTransformationfor an interface proxy with a given implementation class. 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:
createProxyTransformationin interfacePlasticProxyFactory- Parameters:
interfaceType- class proxy will extend fromimplementationType- a class that implements the interfaceType. It can be null.- Returns:
- transformation from which an instantiator may be created
-
createProxyTransformation
public <T> PlasticClassTransformation<T> createProxyTransformation(java.lang.Class<T> interfaceType)
Description copied from interface:PlasticProxyFactoryCreates the underlyingPlasticClassTransformationfor 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:
createProxyTransformationin interfacePlasticProxyFactory- Parameters:
interfaceType- class proxy will extend from- Returns:
- transformation from which an instantiator may be created
-
createProxy
public <T> T createProxy(java.lang.Class<T> interfaceType, ObjectCreator<T> creator, java.lang.String description)
Description copied from interface:PlasticProxyFactoryCreates a proxy instance that delegates all methods through a corresponding ObjectCreator. Each method invocation on the proxy will route throughObjectCreator.createObject()(the creator implementation may decide to cache the return value as appropriate).- Specified by:
createProxyin interfacePlasticProxyFactory- Type Parameters:
T- type of proxy- Parameters:
interfaceType- interface class for proxycreator- object responsible for creating the real objectdescription- thetoString()of the proxy- Returns:
- proxy instance
-
createProxy
public <T> T createProxy(java.lang.Class<T> interfaceType, java.lang.Class<? extends T> implementationType, ObjectCreator<T> creator, java.lang.String description)
Description copied from interface:PlasticProxyFactoryCreates a proxy instance that delegates all methods through a corresponding ObjectCreator. Each method invocation on the proxy will route throughObjectCreator.createObject()(the creator implementation may decide to cache the return value as appropriate).- Specified by:
createProxyin interfacePlasticProxyFactory- Type Parameters:
T- type of proxy- Parameters:
interfaceType- interface class for proxyimplementationType- class that implements the interface type. It may be nullcreator- object responsible for creating the real objectdescription- thetoString()of the proxy- Returns:
- proxy instance
-
getMethodLocation
public Location getMethodLocation(java.lang.reflect.Method method)
Description copied from interface:PlasticProxyFactoryConverts a method to aLocation, which includes information about the source file name and line number.- Specified by:
getMethodLocationin interfacePlasticProxyFactory- Parameters:
method- to look up- Returns:
- the location (identifying the method and possibly, the line number within the method)
-
getConstructorLocation
public Location getConstructorLocation(java.lang.reflect.Constructor constructor)
Description copied from interface:PlasticProxyFactoryReturn a string representation for the constructor (including class and parameters) and (if available) file name and line number.- Specified by:
getConstructorLocationin interfacePlasticProxyFactory- Returns:
- the location (identifying the constructor and possibly, the line number within the method)
-
clearCache
public void clearCache()
Description copied from interface:PlasticProxyFactoryClears 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:
clearCachein interfacePlasticProxyFactory
-
getMemberLocation
public Location getMemberLocation(java.lang.reflect.Member member, java.lang.String methodName, java.lang.String memberTypeDesc, ObjectCreator<java.lang.String> textDescriptionCreator)
-
addPlasticClassListener
public void addPlasticClassListener(PlasticClassListener listener)
- Specified by:
addPlasticClassListenerin interfacePlasticClassListenerHub
-
removePlasticClassListener
public void removePlasticClassListener(PlasticClassListener listener)
- Specified by:
removePlasticClassListenerin interfacePlasticClassListenerHub
-
getPlasticManager
public PlasticManager getPlasticManager()
Description copied from interface:PlasticProxyFactoryReturns the PlasticManager instance used by this PlasticProxyFactory.- Specified by:
getPlasticManagerin interfacePlasticProxyFactory
-
-