Package org.fest.reflect.field.decorator
Class DecoratorInvocationHandler<T>
- java.lang.Object
-
- org.fest.reflect.field.decorator.DecoratorInvocationHandler<T>
-
- All Implemented Interfaces:
java.lang.reflect.InvocationHandler
- Direct Known Subclasses:
PostDecorator
,PreDecorator
public abstract class DecoratorInvocationHandler<T> extends java.lang.Object implements java.lang.reflect.InvocationHandler
- Author:
- Ivan Hristov
-
-
Constructor Summary
Constructors Constructor Description DecoratorInvocationHandler(T target, T decorator)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description T
getDecorator()
protected abstract java.lang.Object
getResult(java.lang.Object firstResult, java.lang.Object secondResult)
T
getTarget()
java.lang.Object
invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)
protected abstract java.lang.Object
invokeFirst(java.lang.reflect.Method method, java.lang.Object[] args)
protected abstract java.lang.Object
invokeSecond(java.lang.reflect.Method method, java.lang.Object[] args)
void
setDecorator(T decorator)
void
setReturnDecoratorResult(boolean returnDecoratorResult)
protected boolean
shouldReturnDecoratorResult()
-
-
-
Method Detail
-
setDecorator
public void setDecorator(T decorator)
-
getTarget
public T getTarget()
-
getDecorator
public T getDecorator()
-
invoke
public final 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 interfacejava.lang.reflect.InvocationHandler
- Throws:
java.lang.Throwable
-
invokeFirst
protected abstract java.lang.Object invokeFirst(java.lang.reflect.Method method, java.lang.Object[] args) throws java.lang.IllegalArgumentException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
- Throws:
java.lang.IllegalArgumentException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
-
invokeSecond
protected abstract java.lang.Object invokeSecond(java.lang.reflect.Method method, java.lang.Object[] args) throws java.lang.IllegalArgumentException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
- Throws:
java.lang.IllegalArgumentException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
-
getResult
protected abstract java.lang.Object getResult(java.lang.Object firstResult, java.lang.Object secondResult)
-
setReturnDecoratorResult
public void setReturnDecoratorResult(boolean returnDecoratorResult)
-
shouldReturnDecoratorResult
protected boolean shouldReturnDecoratorResult()
-
-