package com.mortals.xhx.base.system.idgenerator.service;

import com.mortals.xhx.base.system.idgenerator.service.impl.IdgeneratorServiceImpl.IdGeneratorKey;

import java.util.List;

/**
 * <p>Title: id生成器</p>
 * <p>Description: IdgeneratorService service接口 </p>
 * <p>Copyright: Copyright &reg;  </p>
 * <p>Company: </p>
 *
 * @author
 * @version 1.0.0
 */

public interface IdgeneratorService {

    /**
     * 获取Long类型ID
     *
     * @param idGeneratorKey
     * @param factorInfo     生成因子，根据各IdGeneratorKey要求选择传入
     * @return
     * @createTime 2016年3月16日 上午10:43:22
     */
    Long getLongId(IdGeneratorKey idGeneratorKey, Object... factorInfo);

    /**
     * 获取String类型ID
     *
     * @param idGeneratorKey
     * @param factorInfo     生成因子，根据各IdGeneratorKey要求选择传入
     * @return
     * @createTime 2016年3月16日 上午10:43:38
     */
    String getStringId(IdGeneratorKey idGeneratorKey, Object... factorInfo);

    /**
     * 批量获取Long类型ID
     *
     * @param idGeneratorKey
     * @param factorInfo
     * @return
     */
    List<Long> getLongIdList(IdGeneratorKey idGeneratorKey, Object... factorInfo);

}