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> LOCAL = ThreadLocal.withInitial(HashMap::new); public static Map getAll() { return new HashMap(LOCAL.get()); } public static T put(String key, T value) { LOCAL.get().put(key, value); return value; } public static void put(Map 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 get(String key) { return (T) LOCAL.get().get(key); } @Nullable public static T getIfAbsent(String key, Supplier supplierOnNull) { return (T) LOCAL.get().computeIfAbsent(key, k -> { return supplierOnNull.get(); }); } public static T getAndRemove(String key) { try { return (T) get(key); } finally { remove(key); } } }