public abstract class FacadeProxyInvocationHandler extends DefaultInvocationHandler
InvocationHandler
abstract base class to "extend" concrete
implementation Class
es by adding "facade" interfaces. See
getProxyClassFor(Object)
.Constructor and Description |
---|
FacadeProxyInvocationHandler() |
Modifier and Type | Method and Description |
---|---|
Object |
enhance(Object in)
Method to return an extended
Proxy implementing "facade"
interfaces for in if getProxyClassFor(Object)
returns non-null . |
protected abstract Class<?> |
getProxyClassFor(Object object)
|
Object |
invoke(Object proxy,
Method method,
Object[] argv)
This method assumes
method.isDefault() and
will invoke Method directly. |
getImplementedInterfacesOf, getProxyClass, newProxyInstance
public FacadeProxyInvocationHandler()
public Object enhance(Object in)
Proxy
implementing "facade"
interfaces for in
if getProxyClassFor(Object)
returns non-null
.in
- The Object
to extend.Proxy
if getProxyClassFor(Object)
returns
non-null
; in
otherwise.protected abstract Class<?> getProxyClassFor(Object object)
public Object invoke(Object proxy, Method method, Object[] argv) throws Throwable
DefaultInvocationHandler
method.isDefault()
and
will invoke Method
directly.
If the method.isDefault()
, that
Method
will be invoked directly. If the Method
is
declared in Object
, it is applied to this
InvocationHandler
. Otherwise, the call will be dispatched to
a declared Method
on this
InvocationHandler
with the same name and compatible parameter types (forcing access if
necessary).invoke
in interface DefaultInterfaceMethodInvocationHandler
invoke
in interface InvocationHandler
invoke
in class DefaultInvocationHandler
Throwable
Copyright © 2015–2020 Allen D. Ball. All rights reserved.