|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.zkoss.lang.reflect.FusionInvoker
public class FusionInvoker
The fusion invocation handler. Like the dynamic proxy pattern, this fusion invocation handler is used to wrap two or more instance into one object.
This invocation handler assumes the object being wrapped has all methods of these instance (aka, targets), and it might invoke the correspond methods
It happens when you need to provide a proxy object form two or more instance.
Example:
<code>class A { public void f() {...} } class B { public void f2() {...} } interface IA { public void f(); } interface IB { public void f2(); } </code> then, you could create a proxy object: <code> Object obj = FusionInvoker.newInstance(new Object[] {A, B }); </code> then use the proxy object anywhere. <code> IA ia = (IA) obj; ia.f(); IB ib = (IB) obj; ib.f2(); </code>
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 |
---|
protected FusionInvoker(java.lang.Object[] targets)
newInstance(Object[])
instead.
Method Detail |
---|
public static java.lang.Object newInstance(java.lang.Object target1, java.lang.Object target2)
newInstance(Object[])
.
public static java.lang.Object newInstance(java.lang.Object[] targets)
Usage shortcut: FusionInvoker.newInstance(new Object[] { Object a, Object b });
targets
- the objects need to wrappedpublic java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args) throws java.lang.Throwable
invoke
in interface java.lang.reflect.InvocationHandler
java.lang.Throwable
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |