All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.lexshcherbinin.kleekai.common.ValueStorage Maven / Gradle / Ivy

There is a newer version: 0.0.18
Show newest version
package com.github.lexshcherbinin.kleekai.common;

import java.util.HashMap;
import java.util.Map;

/**
 * Реализация сохранения значений.
 */
public final class ValueStorage {

  private static final ThreadLocal varThread = ThreadLocal.withInitial(ValueStorage::new);

  private final Map variables = new HashMap<>();

  private ValueStorage() {

  }

  private static ValueStorage getInstance() {
    return varThread.get();
  }

  public static void saveValue(String name, Object value) {
    getInstance().variables.put(name, value);
  }

  public static Object getValue(String name) {
    return getInstance().variables.get(name);
  }

  /**
   * Возвращает сохранённое значение.
   *
   * @param name - ключ значения
   * @return - возвращает сохранённое значение типа String
   */
  public static String getString(String name) {
    return getInstance().variables.get(name).toString();
  }

  /**
   * Возвращает сохранённое значение.
   *
   * @param name - ключ значения
   * @return - возвращает сохранённое значение типа Integer
   */
  public static Integer getInteger(String name) {
    Object value = getInstance().variables.get(name);

    if (value instanceof String) {
      return Integer.parseInt(value.toString());
    }

    return (Integer) getInstance().variables.get(name);
  }

  /**
   * Возвращает сохранённое значение.
   *
   * @param name - ключ значения
   * @return - возвращает сохранённое значение типа Double
   */
  public static Double getDouble(String name) {
    Object value = getInstance().variables.get(name);

    if (value instanceof String) {
      return Double.parseDouble(value.toString());
    }

    return (Double) getInstance().variables.get(name);
  }

  public static void clear() {
    getInstance().variables.clear();
  }

  public static Object remove(String key) {
    return getInstance().variables.remove(key);
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy