package com.app.mvc.datasource;
import java.util.LinkedList;
/**
* 保存一个线程中的动态数据源的key
* Created by jimin on 16/03/22.
*/
public class DataSourceKeyHolder {
private static final ThreadLocal<LinkedList<String>> holder = new ThreadLocal<LinkedList<String>>() {
@Override
protected LinkedList<String> initialValue() {
return new LinkedList<>();
}
};
public static void set(String key) {
holder.get().push(key);
}
public static void clear() {
holder.get().pop();
}
public static String getCurrentKey() {
if (holder.get().size() == 0)
return null;
return holder.get().getFirst();
}
public static boolean isNestedCall() {
return holder.get().size() > 1;
}
}