package engine;
import com.github.ddth.id.SerialIdGenerator;
import com.github.ddth.id.ZookeeperIdGenerator;
/**
* Zookeeper-implementation of {@link IIdEngine}.
*
* <p>
* IDs generated by this engine are:
* <ul>
* <li>Persistent: (*) backed by Zookeeper.</li>
* </ul>
* <p/>
*
* @author ThanhNB
* @since 0.1.0
*/
public class ZookeeperIdEngine extends BaseSerialIdEngine {
/**
* {@inheritDoc}
*/
@Override
protected ZookeeperIdGenerator getIdGenerator() {
return (ZookeeperIdGenerator) super.getIdGenerator();
}
/**
* {@inheritDoc}
*/
@Override
public ZookeeperIdEngine setIdGenerator(SerialIdGenerator idGenerator) {
if (!(idGenerator instanceof ZookeeperIdGenerator)) {
final String errorMsg = "Argument must be of type ["
+ ZookeeperIdGenerator.class.getName() + "]!";
throw new IllegalArgumentException(errorMsg);
}
super.setIdGenerator(idGenerator);
return this;
}
}