package com.qianwen.core.tool.utils;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
import java.util.function.Supplier;
|
import org.springframework.lang.Nullable;
|
|
/* loaded from: blade-core-tool-9.3.0.0-SNAPSHOT.jar:org/springblade/core/tool/utils/ThreadLocalUtil.class */
|
public class ThreadLocalUtil {
|
private static final ThreadLocal<Map<String, Object>> LOCAL = ThreadLocal.withInitial(HashMap::new);
|
|
public static Map<String, Object> getAll() {
|
return new HashMap(LOCAL.get());
|
}
|
|
public static <T> T put(String key, T value) {
|
LOCAL.get().put(key, value);
|
return value;
|
}
|
|
public static void put(Map<String, Object> map) {
|
LOCAL.get().putAll(map);
|
}
|
|
public static void remove(String key) {
|
LOCAL.get().remove(key);
|
}
|
|
public static void clear() {
|
LOCAL.remove();
|
}
|
|
@Nullable
|
public static <T> T get(String key) {
|
return (T) LOCAL.get().get(key);
|
}
|
|
@Nullable
|
public static <T> T getIfAbsent(String key, Supplier<T> supplierOnNull) {
|
return (T) LOCAL.get().computeIfAbsent(key, k -> {
|
return supplierOnNull.get();
|
});
|
}
|
|
public static <T> T getAndRemove(String key) {
|
try {
|
return (T) get(key);
|
} finally {
|
remove(key);
|
}
|
}
|
}
|