package com.taobao.metamorphosis.client.producer;
import java.util.List;
import com.taobao.metamorphosis.Message;
import com.taobao.metamorphosis.cluster.Partition;
import com.taobao.metamorphosis.exception.MetaClientException;
/**
* Abstract partition selector.
*
* @author apple
*
*/
public abstract class AbstractPartitionSelector implements PartitionSelector {
@Override
public Partition getPartition(String topic, List<Partition> partitions, Message message) throws MetaClientException {
if (partitions == null) {
throw new MetaClientException("There is no aviable partition for topic " + topic
+ ",maybe you don't publish it at first?");
}
return this.getPartition0(topic, partitions, message);
}
public abstract Partition getPartition0(String topic, List<Partition> partitions, Message message)
throws MetaClientException;
}