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

com.houkunlin.system.dict.starter.store.DictStore Maven / Gradle / Ivy

package com.houkunlin.system.dict.starter.store;

import com.houkunlin.system.dict.starter.bean.DictTypeVo;
import com.houkunlin.system.dict.starter.bean.DictValueVo;
import com.houkunlin.system.dict.starter.provider.DictProvider;

import java.util.Iterator;
import java.util.Set;

/**
 * 系统字典存储对象。程序扫描到的系统字典信息都将会调用该对象来存储字典信息,同时该对象也将负责读取获取系统字典信息
 *
 * @author HouKunLin
 */
public interface DictStore {
    /**
     * 存储一个完整的数据字典信息
     *
     * @param dictType 数据字典对象
     */
    void store(DictTypeVo dictType);

    /**
     * 存储一个完整的数据字典信息(单独为存储系统字典定义一个方法)
     *
     * @param dictType 数据字典对象
     * @since 1.5.0
     */
    default void storeSystemDict(DictTypeVo dictType) {
        store(dictType);
    }

    /**
     * 存储一个字典值列表数据
     *
     * @param iterable 字典值列表
     * @since 1.5.0
     */
    default void store(Iterable iterable) {
        store(iterable.iterator());
    }

    /**
     * 存储一个字典值列表数据。
     * 为 Redis 保留的方法,数据量大时使用批量处理
     *
     * @param iterable 字典值列表
     * @since 1.5.3
     */
    default void storeBatch(Iterable iterable) {
        storeBatch(iterable.iterator());
    }

    /**
     * 存储一个字典值列表数据
     *
     * @param iterator 字典值列表
     */
    void store(Iterator iterator);

    /**
     * 存储一个字典值列表数据。
     * 为 Redis 保留的方法,数据量大时使用批量处理
     *
     * @param iterator 字典值列表
     * @since 1.5.3
     */
    default void storeBatch(Iterator iterator) {
        store(iterator);
    }

    /**
     * 删除一个字典类型(同时删除对应的字典值列表)
     *
     * @param dictType 字典类型代码
     */
    void removeDictType(final String dictType);

    /**
     * 字典类型代码列表(涵盖系统字典类型代码)。
     * 

仅能够得到 {@link DictProvider#isStoreDictType()} 返回 true 的字典类型代码信息。

*

当 {@link DictProvider#isStoreDictType()} 返回 false 时对应的 {@link DictProvider} 提供的字典类型信息对象将不会被存储,也就是当前方法无法获得该字典类型代码

* * @return 字典类型代码列表(涵盖系统字典类型代码) * @since 1.4.0 */ Set dictTypeKeys(); /** * 系统字典类型代码列表。 * * @return 字典类型代码列表(仅返回系统字典类型代码) * @since 1.5.0 */ default Set systemDictTypeKeys() { return dictTypeKeys(); } /** * 通过字典类型获取完整的字典信息 *

仅能够得到 {@link DictProvider#isStoreDictType()} 返回 true 的字典类型代码信息。

*

当 {@link DictProvider#isStoreDictType()} 返回 false 时对应的 {@link DictProvider} 提供的字典类型信息对象将不会被存储,也就是当前方法无法获得该字典类型代码

* * @param type 字典类型 * @return 字典对象信息 */ DictTypeVo getDictType(String type); /** * 通过字典值获取字典文本信息 * * @param type 字典所属类型 * @param value 字典值 * @return 字典文本 */ String getDictText(String type, String value); /** * 获取字典父级值 * * @param type 字典所属类型 * @param value 字典值 * @return 字典文本 * @since 1.4.6 */ String getDictParentValue(String type, String value); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy