package org.infinispan.persistence.mongodb.configuration;
import org.infinispan.configuration.cache.AbstractStoreConfigurationBuilder;
import org.infinispan.configuration.cache.PersistenceConfigurationBuilder;
/**
* A MongoDBStoreConfiguration Builder. <br/>
* This class creates a MongoDBStoreConfiguration.
*
* @author Gabriel Francisco <gabfssilva@gmail.com>
*/
public class MongoDBStoreConfigurationBuilder extends AbstractStoreConfigurationBuilder<MongoDBStoreConfiguration, MongoDBStoreConfigurationBuilder> {
private String connectionURI;
private String collection;
public MongoDBStoreConfigurationBuilder(PersistenceConfigurationBuilder builder) {
super(builder, MongoDBStoreConfiguration.attributeDefinitionSet());
}
@Override
public MongoDBStoreConfiguration create() {
return new MongoDBStoreConfiguration(attributes.protect(), async.create(), singletonStore.create(), connectionURI,
collection);
}
@Override
public MongoDBStoreConfigurationBuilder read(MongoDBStoreConfiguration template) {
this.async.read(template.async());
this.singletonStore.read(template.singletonStore());
this.connectionURI = template.getConnectionURI();
this.collection = template.collection();
return self();
}
public MongoDBStoreConfigurationBuilder connectionURI(String hostname) {
this.connectionURI = hostname;
return self();
}
public MongoDBStoreConfigurationBuilder collection(String collection) {
this.collection = collection;
return self();
}
@Override
public MongoDBStoreConfigurationBuilder self() {
return this;
}
}