Update ReflectionHelper.java
This commit is contained in:
parent
55e313a562
commit
25d154f83f
|
@ -29,14 +29,14 @@ public final class ReflectionHelper {
|
||||||
* @param packageFilter returns false if we consider the given package is internal calls, not the caller
|
* @param packageFilter returns false if we consider the given package is internal calls, not the caller
|
||||||
* @return the caller, method name, source file, line number
|
* @return the caller, method name, source file, line number
|
||||||
*/
|
*/
|
||||||
public static StackTraceElement getCaller(String packageFilter) {
|
public static StackTraceElement getCaller(Predicate<String> packageFilter) {
|
||||||
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
|
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
|
||||||
// element[0] is Thread.currentThread().getStackTrace()
|
// element[0] is Thread.currentThread().getStackTrace()
|
||||||
// element[1] is ReflectionHelper.getCaller(packageFilter)
|
// element[1] is ReflectionHelper.getCaller(packageFilter)
|
||||||
// so element[2] is caller of this method.
|
// so element[2] is caller of this method.
|
||||||
StackTraceElement caller = elements[2];
|
StackTraceElement caller = elements[2];
|
||||||
for (int i = 3; i < elements.length; ++i) {
|
for (int i = 3; i < elements.length; ++i) {
|
||||||
if (!StringUtils.substringBeforeLast(elements[i].getClassName(), '.').equals(packageFilter) &&
|
if (packageFilter.test(StringUtils.substringBeforeLast(elements[i].getClassName(), '.')) &&
|
||||||
!caller.getClassName().equals(elements[i].getClassName()))
|
!caller.getClassName().equals(elements[i].getClassName()))
|
||||||
return elements[i];
|
return elements[i];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue