Package xyz.cofe.sql.cpool.proxy
Class MethodCallAdapter
java.lang.Object
xyz.cofe.sql.cpool.proxy.MethodCallAdapter
- All Implemented Interfaces:
MethodArgsRewrite,MethodCallListener,MethodCallRewrite
- Direct Known Subclasses:
ConnectionTracker,StatementTracker
public class MethodCallAdapter extends java.lang.Object implements MethodCallListener, MethodArgsRewrite, MethodCallRewrite
Имлементация MethodCallListener
- Author:
- Kamnev Georgiy (nt.gocha@gmail.com)
-
Field Summary
Fields Modifier and Type Field Description protected booleanrewriteArguments -
Constructor Summary
Constructors Constructor Description MethodCallAdapter() -
Method Summary
Modifier and Type Method Description voidbeginCall(java.lang.Object proxy, java.lang.Object source, java.lang.reflect.Method meth, java.lang.Object[] args)Вызывается перед началом методаHookResultendCall(java.lang.Object proxy, java.lang.Object source, java.lang.reflect.Method meth, java.lang.Object[] args, java.lang.Object callResult, java.lang.Throwable err)Вызывается по завершению методаbooleanisRewriteArguments()Переписывать аргументы вызоваbooleanisRewriteCall(java.lang.Object proxy, java.lang.Object source, java.lang.reflect.Method method, java.lang.Object[] args)Определяет надо переопределять вызов метода или нетHookArgumentsrewriteArguments(java.lang.Object proxy, java.lang.Object source, java.lang.reflect.Method meth, java.lang.Object[] args, java.util.List<java.lang.Object[]> previous)Вызывается перед началом методаjava.lang.ObjectrewriteCall(java.lang.Object proxy, java.lang.Object source, java.lang.reflect.Method method, java.lang.Object[] args)Вызывается вместо вызова исходного метода, если вызов метода isRewriteCall вернуло truevoidsetRewriteArguments(boolean redefArgs)
-
Field Details
-
rewriteArguments
protected volatile boolean rewriteArguments
-
-
Constructor Details
-
MethodCallAdapter
public MethodCallAdapter()
-
-
Method Details
-
beginCall
public void beginCall(java.lang.Object proxy, java.lang.Object source, java.lang.reflect.Method meth, java.lang.Object[] args)Description copied from interface:MethodCallListenerВызывается перед началом метода- Specified by:
beginCallin interfaceMethodCallListener- Parameters:
proxy- Прокси объектsource- Исходный объектmeth- Методargs- Аргументы
-
endCall
public HookResult endCall(java.lang.Object proxy, java.lang.Object source, java.lang.reflect.Method meth, java.lang.Object[] args, java.lang.Object callResult, java.lang.Throwable err)Description copied from interface:MethodCallListenerВызывается по завершению метода- Specified by:
endCallin interfaceMethodCallListener- Parameters:
proxy- Прокси объектsource- Исходный объектmeth- Методargs- АргументыcallResult- Результат вызоваerr- Ошибка вызова- Returns:
- Переписание результата вызова
-
isRewriteArguments
public boolean isRewriteArguments()Description copied from interface:MethodArgsRewriteПереписывать аргументы вызова- Specified by:
isRewriteArgumentsin interfaceMethodArgsRewrite- Returns:
- true - переписывать - т.е. вызов rewriteArguments
-
setRewriteArguments
public void setRewriteArguments(boolean redefArgs) -
rewriteArguments
public HookArguments rewriteArguments(java.lang.Object proxy, java.lang.Object source, java.lang.reflect.Method meth, java.lang.Object[] args, java.util.List<java.lang.Object[]> previous)Description copied from interface:MethodArgsRewriteВызывается перед началом метода- Specified by:
rewriteArgumentsin interfaceMethodArgsRewrite- Parameters:
proxy- Прокси объектsource- Исходный объектmeth- Методargs- Аргументыprevious- Предыдущие варианты аргументов- Returns:
- Переписанные аргументы
-
isRewriteCall
public boolean isRewriteCall(java.lang.Object proxy, java.lang.Object source, java.lang.reflect.Method method, java.lang.Object[] args)Description copied from interface:MethodCallRewriteОпределяет надо переопределять вызов метода или нет- Specified by:
isRewriteCallin interfaceMethodCallRewrite- Parameters:
proxy- прокси объектаsource- исходный объектmethod- методargs- аргументы метода- Returns:
- true - необходимо переопределить вызов - вызвать rewriteCall
- See Also:
MethodCallRewrite.rewriteCall(Object, Object, Method, Object[])
-
rewriteCall
public java.lang.Object rewriteCall(java.lang.Object proxy, java.lang.Object source, java.lang.reflect.Method method, java.lang.Object[] args)Description copied from interface:MethodCallRewriteВызывается вместо вызова исходного метода, если вызов метода isRewriteCall вернуло true- Specified by:
rewriteCallin interfaceMethodCallRewrite- Parameters:
proxy- прокси объектаsource- исходный объектmethod- методargs- аргументы метода- Returns:
- результат вызова
-