Class FusionInvoker

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.reflect.InvocationHandler

    public class FusionInvoker
    extends java.lang.Object
    implements java.lang.reflect.InvocationHandler, java.io.Serializable
    The fusion invocation handler. It is used to fuse two or more instance into one object. It is usefully if you want to have a single object to represent two more other instances.

    Example:

    
     public interface IA {
       public void f();
     }
     public interface IB {
       public void g();
     }
     public class A implements IA {
       public void f() {...}
     }
     public class B implements IB {
       public void g() {...}
     }
     
    Then, you could fuse them together as follows:
    
     Object obj = FusionInvoker.newInstance(new Object[] {new A(), new B()});
     
    Thus, the fused proxy object, obj, could be used as if it implements IA and IB:
    
      IA ia = (IA) obj;
      ia.f();
      IB ib = (IB) obj;
      ib.g();
     
    Since:
    3.5.2
    Author:
    RyanWu
    See Also:
    Serialized Form
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object invoke​(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)  
      static java.lang.Object newInstance​(java.lang.Object[] targets)
      Creates an object that contains the all interfaces by wrapping giving object, targets.
      static java.lang.Object newInstance​(java.lang.Object target1, java.lang.Object target2)
      Use for only two object, see newInstance(Object[]).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FusionInvoker

        protected FusionInvoker​(java.lang.Object[] targets)
    • Method Detail

      • newInstance

        public static java.lang.Object newInstance​(java.lang.Object target1,
                                                   java.lang.Object target2)
        Use for only two object, see newInstance(Object[]).
      • newInstance

        public static java.lang.Object newInstance​(java.lang.Object[] targets)
        Creates an object that contains the all interfaces by wrapping giving object, targets.

        Usage shortcut: FusionInvoker.newInstance(new Object[] { Object a, Object b });

        Parameters:
        targets - the objects need to wrapped
      • 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