package com.jay.monitor.data.server.factory;

import com.jay.monitor.data.server.enums.DataSplitType;

/**
 * @Module 标识生成器
 * @Description 生成特定的标识
 * @Author liukaixiong
 * @Date 2020/11/5 15:27
 */
public interface IdGenerateService {

    /**
     * 分割类型
     *
     * @return
     */
    public DataSplitType splitType();

    /**
     * 获取当前标识
     *
     * @return
     */
    public String getCurrentId(ChangeConsumer<String> changeConsumer);

    default String getCurrent() {
        return getCurrentId((id) -> {
        });
    }

    /**
     * 获取指定id的下一个标识
     *
     * @param id
     * @return
     */
    public String getNextId(String id);

}
