org.zkoss.lang.reflect
Class FusionInvoker

java.lang.Object
  extended by org.zkoss.lang.reflect.FusionInvoker
All Implemented Interfaces:
Serializable, InvocationHandler

public class FusionInvoker
extends Object
implements InvocationHandler, 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

Constructor Summary
protected FusionInvoker(Object[] targets)
          Use newInstance(Object[]) instead.
 
Method Summary
 Object invoke(Object proxy, Method method, Object[] args)
           
static Object newInstance(Object[] targets)
          Creates an object that contains the all interfaces by wrapping giving object, targets.
static Object newInstance(Object target1, 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(Object[] targets)
Use newInstance(Object[]) instead.

Method Detail

newInstance

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


newInstance

public static Object newInstance(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 Object invoke(Object proxy,
                     Method method,
                     Object[] args)
              throws Throwable
Specified by:
invoke in interface InvocationHandler
Throws:
Throwable


Copyright © 2013. All Rights Reserved.