Class PlasticProxyFactoryImpl
java.lang.Object
org.apache.tapestry5.beanmodel.services.PlasticProxyFactoryImpl
- All Implemented Interfaces:
PlasticProxyFactory
,PlasticClassListenerHub
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionPlasticProxyFactoryImpl
(ClassLoader parentClassLoader, org.slf4j.Logger logger) PlasticProxyFactoryImpl
(PlasticManager manager, org.slf4j.Logger logger) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addPlasticClassListener
(PlasticClassListener listener) void
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, Class<? extends T> implementationType, ObjectCreator<T> creator, String description) Creates a proxy instance that delegates all methods through a corresponding ObjectCreator.<T> ClassInstantiator<T>
createProxy
(Class<T> interfaceType, Class<? extends T> implementationType, PlasticClassTransformer callback) Same ascreateProxy(interfacetype, implementationType, callback, true)
<T> ClassInstantiator<T>
createProxy
(Class<T> interfaceType, 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> 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.<T> PlasticClassTransformation<T>
createProxyTransformation
(Class<T> interfaceType) Creates the underlyingPlasticClassTransformation
for an interface proxy.<T> PlasticClassTransformation<T>
createProxyTransformation
(Class<T> interfaceType, Class<? extends T> implementationType) Creates the underlyingPlasticClassTransformation
for an interface proxy with a given implementation class.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).getConstructorLocation
(Constructor constructor) Return a string representation for the constructor (including class and parameters) and (if available) file name and line number.getMemberLocation
(Member member, String methodName, String memberTypeDesc, ObjectCreator<String> textDescriptionCreator) getMethodLocation
(Method method) Converts a method to aLocation
, which includes information about the source file name and line number.Returns the PlasticManager instance used by this PlasticProxyFactory.void
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 Details
-
INTERNAL_GET_DELEGATE
- See Also:
-
-
Constructor Details
-
PlasticProxyFactoryImpl
-
PlasticProxyFactoryImpl
-
-
Method Details
-
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 interfacePlasticProxyFactory
-
createProxy
public <T> ClassInstantiator<T> createProxy(Class<T> interfaceType, Class<? extends T> implementationType, PlasticClassTransformer callback) Description copied from interface:PlasticProxyFactory
Same ascreateProxy(interfacetype, implementationType, callback, true)
- Specified by:
createProxy
in 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(Class<T> interfaceType, Class<? extends T> implementationType, PlasticClassTransformer callback, boolean introduceInterface) Description copied from interface:PlasticProxyFactory
Creates a proxy object that implements the indicated interface and indicated service implementation type, then invokes the callback to further configure the proxy.- Specified by:
createProxy
in 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(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 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(Class<T> interfaceType, Class<? extends T> implementationType) Description copied from interface:PlasticProxyFactory
Creates the underlyingPlasticClassTransformation
for 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:
createProxyTransformation
in 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
Description copied from interface:PlasticProxyFactory
Creates the underlyingPlasticClassTransformation
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 interfacePlasticProxyFactory
- Parameters:
interfaceType
- class proxy will extend from- Returns:
- transformation from which an instantiator may be created
-
createProxy
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 throughObjectCreator.createObject()
(the creator implementation may decide to cache the return value as appropriate).- Specified by:
createProxy
in 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(Class<T> interfaceType, Class<? extends T> implementationType, 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 throughObjectCreator.createObject()
(the creator implementation may decide to cache the return value as appropriate).- Specified by:
createProxy
in 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
Description copied from interface:PlasticProxyFactory
Converts a method to aLocation
, which includes information about the source file name and line number.- Specified by:
getMethodLocation
in interfacePlasticProxyFactory
- Parameters:
method
- to look up- Returns:
- the location (identifying the method and possibly, the line number within the method)
-
getConstructorLocation
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 interfacePlasticProxyFactory
- Returns:
- the location (identifying the constructor and possibly, the line number within the method)
-
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 interfacePlasticProxyFactory
-
getMemberLocation
public Location getMemberLocation(Member member, String methodName, String memberTypeDesc, ObjectCreator<String> textDescriptionCreator) -
addPlasticClassListener
- Specified by:
addPlasticClassListener
in interfacePlasticClassListenerHub
-
removePlasticClassListener
- Specified by:
removePlasticClassListener
in interfacePlasticClassListenerHub
-
getPlasticManager
Description copied from interface:PlasticProxyFactory
Returns the PlasticManager instance used by this PlasticProxyFactory.- Specified by:
getPlasticManager
in interfacePlasticProxyFactory
-