Interface PlasticProxyFactory

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      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 <T> interfaceType, <? extends T> implementationType, ObjectCreator<T> creator,  description)
      Creates a proxy instance that delegates all methods through a corresponding ObjectCreator.
      <T> ClassInstantiator<T> <T> interfaceType, <? extends T> implementationType, PlasticClassTransformer callback)
      Same as createProxy(interfacetype, implementationType, callback, true)
      <T> ClassInstantiator<T> <T> interfaceType, <? 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 <T> interfaceType, ObjectCreator<T> creator,  description)
      Creates a proxy instance that delegates all methods through a corresponding ObjectCreator.
      <T> ClassInstantiator<T> <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> <T> interfaceType)
      Creates the underlying PlasticClassTransformation for an interface proxy.
      <T> PlasticClassTransformation<T> <T> interfaceType, <? extends T> implementationType)
      Creates the underlying PlasticClassTransformation for an interface proxy with a given implementation class.
      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  constructor)
      Return a string representation for the constructor (including class and parameters) and (if available) file name and line number.
      Location  method)
      Converts a method to a Location, which includes information about the source file name and line number.
    • Method Detail

      • getClassLoader

         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> <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
      • createProxy

        @IncompatibleChange(release="5.4.5",
                            details="TAP5-2528")
        <T> <T> interfaceType,
                                             <? 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 proxy
        implementationType - 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> <T> interfaceType,
                                             <? extends T> implementationType,
                                             PlasticClassTransformer callback)
        Same as createProxy(interfacetype, implementationType, callback, true)
        Parameters:
        interfaceType - interface implemented by proxy
        implementationType - 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

        <T> <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
      • createProxyTransformation

        @IncompatibleChange(release="5.4",
                            details="TAP5-2029")
        <T> <T> interfaceType,
                                                                    <? extends T> implementationType)
        Creates the underlying PlasticClassTransformation 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 from
        implementationType - a class that implements the interfaceType. It can be null.
        Returns:
        transformation from which an instantiator may be created
      • createProxy

        <T> T <T> interfaceType,
                          ObjectCreator<T> creator,
                           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
      • createProxy

        @IncompatibleChange(release="5.4",
                            details="Added for TAP5-2029")
        <T> T <T> interfaceType,
                          <? extends T> implementationType,
                          ObjectCreator<T> creator,
                           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
        implementationType - class that implements the interface type. It may be null
        creator - object responsible for creating the real object
        description - the toString() of the proxy
        Returns:
        proxy instance
      • getMethodLocation

         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

         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