examples/src/main/java/ru/lanit/at/utils/ContextHolder.java
2026-08-14 16:47:31 +03:00

48 lines
1.1 KiB
Java

package ru.lanit.at.utils;
import java.util.HashMap;
import java.util.Map;
/**
* Класс для хранения переменных теста
* Синтаксис %{var_name}%
*/
public class ContextHolder {
private static final ThreadLocal<Map<String, Object>> THREAD = new ThreadLocal<>();
private static Map<String, Object> getThread() {
Map<String, Object> vault = THREAD.get();
if (vault == null) {
vault = new HashMap<>();
THREAD.set(vault);
}
return vault;
}
public static Map<String, Object> asMap() {
return getThread();
}
public static void put(String key, Object value) {
getThread().put(key, value);
}
public static String replaceVarsIfPresent(String text) {
if (text == null) {
return "";
} else {
return VariableUtil.replaceVars(text, asMap());
}
}
public static <T> T getValue(String key) {
return (T) getThread().get(key);
}
public static <T> T remove(String key) {
return (T) getThread().remove(key);
}
}