2017-07-28 12:09:32 +02:00
|
|
|
package org.gcube.smartgears.utils;
|
|
|
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
|
|
public class InnerMethodName {
|
|
|
|
|
|
|
|
public static InnerMethodName instance = new InnerMethodName();
|
|
|
|
|
2022-05-30 18:55:35 +02:00
|
|
|
private static Logger logger = LoggerFactory.getLogger(InnerMethodName.class);
|
2017-07-28 12:09:32 +02:00
|
|
|
|
|
|
|
// Thread local variable containing each thread's ID
|
|
|
|
private static final InheritableThreadLocal<String> threadMethod =
|
|
|
|
new InheritableThreadLocal<String>() {
|
|
|
|
|
|
|
|
@Override protected String initialValue() {
|
|
|
|
return "UNKNOWN";
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
private InnerMethodName(){}
|
|
|
|
|
|
|
|
public String get(){
|
|
|
|
String calledMethod = threadMethod.get();
|
|
|
|
logger.trace("getting InnerMethodName as "+calledMethod+" in thread "+Thread.currentThread().getId() );
|
|
|
|
return calledMethod;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void set(String calledMethod){
|
|
|
|
if (calledMethod==null) return;
|
|
|
|
threadMethod.set(calledMethod);
|
|
|
|
logger.trace("setting InnerMethodName as "+calledMethod+" in thread "+Thread.currentThread().getId() );
|
|
|
|
}
|
|
|
|
|
|
|
|
public void reset(){
|
|
|
|
threadMethod.remove();
|
|
|
|
}
|
|
|
|
}
|