Class AJProxyTrait

  • All Implemented Interfaces:
    java.lang.reflect.InvocationHandler

    public class AJProxyTrait
    extends java.lang.Object
    implements java.lang.reflect.InvocationHandler
    Java Proxy InvocationHandler to be used in conjuction with asprctJ extended traits.
    Method calls will be delegated to a given Extensible object method having the same signature within an AJExtender.ExtensionBypass context.
    Author:
    Bogdan Horje
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static <M extends Trait>
      M
      create​(java.lang.Object extensibleInterface, java.lang.Class<M> traitAPI)
      Trait Proxy factory method.
      java.lang.Object invoke​(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Method Detail

      • create

        public static <M extends Trait> M create​(java.lang.Object extensibleInterface,
                                                 java.lang.Class<M> traitAPI)
        Trait Proxy factory method.
        Parameters:
        extensible - the Extensible object that defines the given Trait
        traitAPI - the trait interface part that the given Extensible object defines
        Returns:
        a Proxy object for the given trait API interface with an AJProxyTrait attached. All method calls performed on the returned proxy will be delegated to a given Extensible object method having the same signature within an AJExtender.ExtensionBypass context.
      • invoke

        public java.lang.Object invoke​(java.lang.Object proxy,
                                       java.lang.reflect.Method method,
                                       java.lang.Object[] args)
                                throws java.lang.Throwable
        Specified by:
        invoke in interface java.lang.reflect.InvocationHandler
        Throws:
        java.lang.Throwable
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object