/*
* @(#)IdGenerator.java 2012-8-1 下午10:00:00
*
* Copyright (c) 2011-2012 Makersoft.org all rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
*
*/
package org.makersoft.shards.id;
import java.io.Serializable;
import org.apache.ibatis.session.SqlSession;
import org.makersoft.shards.ShardId;
/**
* 主键生成器
*/
public interface IdGenerator {
/**
* 生成主键
* @param session 当前的{@link SqlSession}
* @param object 需要生成主键的对象
* @return 生成的主键
*/
Serializable generate(SqlSession session, Object object);
/**
* 根据主键提取出逻辑分区
* @param identifier 主键
* @return 逻辑分区 {@link ShardId}
*/
ShardId extractShardId(Serializable identifier);
}