package org.infinispan.persistence.sifs.configuration; import static org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfiguration.COMPACTION_THRESHOLD; import static org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfiguration.DATA_LOCATION; import static org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfiguration.INDEX_LOCATION; import static org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfiguration.INDEX_QUEUE_LENGTH; import static org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfiguration.INDEX_SEGMENTS; import static org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfiguration.MAX_FILE_SIZE; import static org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfiguration.MAX_NODE_SIZE; import static org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfiguration.MIN_NODE_SIZE; import static org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfiguration.OPEN_FILES_LIMIT; import static org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfiguration.SYNC_WRITES; import org.infinispan.commons.configuration.Builder; import org.infinispan.configuration.cache.AbstractStoreConfigurationBuilder; import org.infinispan.configuration.cache.PersistenceConfigurationBuilder; /** * @author Radim Vansa <rvansa@redhat.com> */ public class SoftIndexFileStoreConfigurationBuilder extends AbstractStoreConfigurationBuilder<SoftIndexFileStoreConfiguration, SoftIndexFileStoreConfigurationBuilder> { public SoftIndexFileStoreConfigurationBuilder(PersistenceConfigurationBuilder builder) { super(builder, SoftIndexFileStoreConfiguration.attributeDefinitionSet()); } public SoftIndexFileStoreConfigurationBuilder dataLocation(String dataLocation) { attributes.attribute(DATA_LOCATION).set(dataLocation); return this; } public SoftIndexFileStoreConfigurationBuilder indexLocation(String indexLocation) { attributes.attribute(INDEX_LOCATION).set(indexLocation); return this; } public SoftIndexFileStoreConfigurationBuilder indexSegments(int indexSegments) { attributes.attribute(INDEX_SEGMENTS).set(indexSegments); return this; } public SoftIndexFileStoreConfigurationBuilder maxFileSize(int maxFileSize) { attributes.attribute(MAX_FILE_SIZE).set(maxFileSize); return this; } public SoftIndexFileStoreConfigurationBuilder minNodeSize(int minNodeSize) { attributes.attribute(MIN_NODE_SIZE).set(minNodeSize); return this; } public SoftIndexFileStoreConfigurationBuilder maxNodeSize(int maxNodeSize) { attributes.attribute(MAX_NODE_SIZE).set(maxNodeSize); return this; } public SoftIndexFileStoreConfigurationBuilder indexQueueLength(int indexQueueLength) { attributes.attribute(INDEX_QUEUE_LENGTH).set(indexQueueLength); return this; } public SoftIndexFileStoreConfigurationBuilder syncWrites(boolean syncWrites) { attributes.attribute(SYNC_WRITES).set(syncWrites); return this; } public SoftIndexFileStoreConfigurationBuilder openFilesLimit(int openFilesLimit) { attributes.attribute(OPEN_FILES_LIMIT).set(openFilesLimit); return this; } public SoftIndexFileStoreConfigurationBuilder compactionThreshold(double compactionThreshold) { attributes.attribute(COMPACTION_THRESHOLD).set(compactionThreshold); return this; } @Override public SoftIndexFileStoreConfiguration create() { return new SoftIndexFileStoreConfiguration(attributes.protect(), async.create(), singletonStore.create()); } @Override public Builder<?> read(SoftIndexFileStoreConfiguration template) { super.read(template); return this; } @Override public SoftIndexFileStoreConfigurationBuilder self() { return this; } @Override public String toString() { return "SoftIndexFileStoreConfigurationBuilder [attributes=" + attributes + ", async=" + async + ", singletonStore=" + singletonStore + "]"; } }