org.apache.tapestry5.ioc.services
Interface PlasticProxyFactory

All Superinterfaces:
PlasticClassListenerHub
All Known Implementing Classes:
PlasticProxyFactoryImpl

public interface PlasticProxyFactory
extends PlasticClassListenerHub

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
 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.
<T> PlasticClassTransformation<T>
createProxyTransformation(Class<T> 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 getMethodLocation(Method method)
          Converts a method to a Location, which includes information about the source file name and line number.
 
Methods inherited from interface org.apache.tapestry5.plastic.PlasticClassListenerHub
addPlasticClassListener, removePlasticClassListener
 

Method Detail

getClassLoader

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).


createProxy

<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.

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

<T> PlasticClassTransformation<T> createProxyTransformation(Class<T> interfaceType)
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).

Parameters:
interfaceType - class proxy will extend from
Returns:
transformation from which an instantiator may be created

createProxy

<T> T createProxy(Class<T> interfaceType,
                  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 through ObjectCreator.createObject() (the creator implementation may decide to cache the return value as appropriate).

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

Location getMethodLocation(Method method)
Converts a method to a Location, 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

Location getConstructorLocation(Constructor constructor)
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

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).

Since:
5.3.3


Copyright © 2003-2012 The Apache Software Foundation.