org.zkoss.lang.reflect
Class FusionInvoker

java.lang.Object
  extended by org.zkoss.lang.reflect.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

Constructor Summary
protected FusionInvoker(java.lang.Object[] targets)
          Use newInstance(Object[]) instead.
 
Method Summary
 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)
Use newInstance(Object[]) instead.

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


Copyright © 2005-2011 Potix Corporation. All Rights Reserved. SourceForge.net Logo