org.infinispan.persistence.rocksdb.configuration.RocksDBStoreConfigurationBuilder Maven / Gradle / Ivy
package org.infinispan.persistence.rocksdb.configuration;
import org.infinispan.commons.configuration.Builder;
import org.infinispan.configuration.cache.AbstractStoreConfigurationBuilder;
import org.infinispan.configuration.cache.PersistenceConfigurationBuilder;
import static org.infinispan.persistence.rocksdb.configuration.RocksDBStoreConfiguration.BLOCK_SIZE;
import static org.infinispan.persistence.rocksdb.configuration.RocksDBStoreConfiguration.CACHE_SIZE;
import static org.infinispan.persistence.rocksdb.configuration.RocksDBStoreConfiguration.LOCATION;
import static org.infinispan.persistence.rocksdb.configuration.RocksDBStoreConfiguration.CLEAR_THRESHOLD;
import static org.infinispan.persistence.rocksdb.configuration.RocksDBStoreConfiguration.EXPIRED_LOCATION;
import static org.infinispan.persistence.rocksdb.configuration.RocksDBStoreConfiguration.EXPIRY_QUEUE_SIZE;
import static org.infinispan.persistence.rocksdb.configuration.RocksDBStoreConfiguration.COMPRESSION_TYPE;
/**
*
* @author Ray Tsang
*
*/
public class RocksDBStoreConfigurationBuilder extends AbstractStoreConfigurationBuilder {
public RocksDBStoreConfigurationBuilder(PersistenceConfigurationBuilder builder) {
super(builder, RocksDBStoreConfiguration.attributeDefinitionSet());
}
public RocksDBStoreConfigurationBuilder location(String location) {
attributes.attribute(LOCATION).set(location);
return self();
}
public RocksDBStoreConfigurationBuilder expiredLocation(String expiredLocation) {
attributes.attribute(EXPIRED_LOCATION).set(expiredLocation);
return self();
}
public RocksDBStoreConfigurationBuilder blockSize(int blockSize) {
attributes.attribute(BLOCK_SIZE).set(blockSize);
return self();
}
public RocksDBStoreConfigurationBuilder cacheSize(long cacheSize) {
attributes.attribute(CACHE_SIZE).set(cacheSize);
return self();
}
public RocksDBStoreConfigurationBuilder expiryQueueSize(int expiryQueueSize) {
attributes.attribute(EXPIRY_QUEUE_SIZE).set(expiryQueueSize);
return self();
}
public RocksDBStoreConfigurationBuilder clearThreshold(int clearThreshold) {
attributes.attribute(CLEAR_THRESHOLD).set(clearThreshold);
return self();
}
public RocksDBStoreConfigurationBuilder compressionType(CompressionType compressionType) {
attributes.attribute(COMPRESSION_TYPE).set(compressionType);
return self();
}
@Override
public void validate() {
// how do you validate required attributes?
super.validate();
}
@Override
public RocksDBStoreConfiguration create() {
return new RocksDBStoreConfiguration(attributes.protect(), async.create(), singletonStore.create());
}
@Override
public Builder> read(RocksDBStoreConfiguration template) {
super.read(template);
return self();
}
@Override
public RocksDBStoreConfigurationBuilder self() {
return this;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy