package org.nl.acs.udw;

import java.util.List;

/**
 * @author 20220102CG\noblelift
 */
public interface UnifiedDataAccessor {
    /**
     * 获取所有key
     *
     * @return List<String>
     */
    List<String> getAllKey();

    /**
     * 获取值
     *
     * @param key key
     * @return Object
     */
    Object getValue(String key);

    /**
     * 设置值
     *
     * @param key   key
     * @param value value
     */
    void setValue(String key, Object value);

    /**
     * 删除值
     * @param key
     */
    void removeValue(String key);

    /**
     * 获取统一数据
     *
     * @param key key
     * @return UnifiedData
     */
    UnifiedData getUnifiedData(String key);

    /**
     * 获取历史数据
     *
     * @param key key
     * @return List<UnifiedData>
     */
    List<UnifiedData> getHistoryUnifiedData(String key);

    /**
     * 设置值
     *
     * @param key   key
     * @param value value
     */
    void setValueWithPersistence(String key, Object value);
}
