Interface PlasticProxyFactory
- All Superinterfaces:
PlasticClassListenerHub
- All Known Implementing Classes:
PlasticProxyFactoryImpl
A service used to create proxies of varying types. As a secondary concern, manages to identify the
location of methods and constructors, which is important for exception reporting.
- Since:
- 5.3
-
Method Summary
Modifier and TypeMethodDescriptionvoid
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.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.default PlasticProxyFactory
getProxyFactory
(String className) Returns the PlasticProxyFactory instance to be used for a given class.Methods inherited from interface org.apache.tapestry5.plastic.PlasticClassListenerHub
addPlasticClassListener, removePlasticClassListener
-
Method Details
-
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). -
createProxy
Creates a proxy object that implements the indicated interface, then invokes the callback to further configure the proxy.- Parameters:
interfaceType
- interface implemented by proxycallback
- configures the proxy- Returns:
- instantiator that can be used to create an instance of the proxy class
-
createProxy
@IncompatibleChange(release="5.4.5", details="TAP5-2528") <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.- 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
@IncompatibleChange(release="5.4", details="TAP5-2029") <T> ClassInstantiator<T> createProxy(Class<T> interfaceType, Class<? extends T> implementationType, PlasticClassTransformer callback) Same ascreateProxy(interfacetype, implementationType, callback, true)
- 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
-
createProxyTransformation
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).- Parameters:
interfaceType
- class proxy will extend from- Returns:
- transformation from which an instantiator may be created
-
createProxyTransformation
@IncompatibleChange(release="5.4", details="TAP5-2029") <T> PlasticClassTransformation<T> createProxyTransformation(Class<T> interfaceType, Class<? extends T> implementationType) 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).- 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
-
createProxy
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).- 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
@IncompatibleChange(release="5.4", details="Added for TAP5-2029") <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. Each method invocation on the proxy will route throughObjectCreator.createObject()
(the creator implementation may decide to cache the return value as appropriate).- 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
Converts a method to aLocation
, which includes information about the source file name and line number.- Parameters:
method
- to look up- Returns:
- the location (identifying the method and possibly, the line number within the method)
-
getConstructorLocation
Return a string representation for the constructor (including class and parameters) and (if available) file name and line number.- Returns:
- the location (identifying the constructor and possibly, the line number within the method)
-
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).- Since:
- 5.3.3
-
getPlasticManager
Returns the PlasticManager instance used by this PlasticProxyFactory.- Since:
- 5.8.3
-
getProxyFactory
Returns the PlasticProxyFactory instance to be used for a given class. Default implementation returnsthis
.- Since:
- 5.8.3
-