package com.mongodb.hvdf.channels;
import com.mongodb.BasicDBObject;
import com.mongodb.hvdf.configuration.PluginConfiguration;
import com.mongodb.hvdf.oid.HiDefTimeIdFactory;
import com.mongodb.hvdf.oid.SampleIdFactory;
public abstract class StorageInterceptor extends ChannelInterceptor {
private static final String ID_FACTORY_KEY = "id_factory";
private static final PluginConfiguration DEFAULT_ID_FACTORY =
new PluginConfiguration(new BasicDBObject(PluginFactory.TYPE_KEY,
HiDefTimeIdFactory.class.getName()), StorageInterceptor.class);
protected final SampleIdFactory idFactory;
protected StorageInterceptor(PluginConfiguration config) {
// check if the id_type has been specifically configured
PluginConfiguration idFactoryConfig = config.get(
ID_FACTORY_KEY, PluginConfiguration.class, getDefaultIdFactoryConfig());
this.idFactory = PluginFactory.loadPlugin(SampleIdFactory.class, idFactoryConfig);
}
protected PluginConfiguration getDefaultIdFactoryConfig(){
return DEFAULT_ID_FACTORY;
}
public SampleIdFactory getIdFactory() {
return this.idFactory;
}
}