package org.infinispan.persistence.dummy; import static org.infinispan.persistence.dummy.DummyInMemoryStoreConfiguration.SLOW; import static org.infinispan.persistence.dummy.DummyInMemoryStoreConfiguration.STORE_NAME; import org.infinispan.configuration.cache.AbstractStoreConfigurationBuilder; import org.infinispan.configuration.cache.PersistenceConfigurationBuilder; public class DummyInMemoryStoreConfigurationBuilder extends AbstractStoreConfigurationBuilder<DummyInMemoryStoreConfiguration, DummyInMemoryStoreConfigurationBuilder> { public DummyInMemoryStoreConfigurationBuilder(PersistenceConfigurationBuilder builder) { super(builder, DummyInMemoryStoreConfiguration.attributeDefinitionSet()); } @Override public DummyInMemoryStoreConfigurationBuilder self() { return this; } /** * If true, then writes to this store are artificially slowed by {@value DummyInMemoryStore#SLOW_STORE_WAIT} milliseconds. */ public DummyInMemoryStoreConfigurationBuilder slow(boolean slow) { attributes.attribute(SLOW).set(slow); return this; } /** * A storeName can be utilised to lookup existing DummyInMemoryStore instances associated with the provided String. If * an instance is already mapped to the provided string, then that instance is utilised. Otherwise a new instance is * created and associated with the given string. This can be useful for testing shared stores, across multiple CacheManager instances. */ public DummyInMemoryStoreConfigurationBuilder storeName(String storeName) { attributes.attribute(STORE_NAME).set(storeName); return this; } @Override public DummyInMemoryStoreConfiguration create() { return new DummyInMemoryStoreConfiguration(attributes.protect(), async.create(), singletonStore.create()); } @Override public DummyInMemoryStoreConfigurationBuilder read(DummyInMemoryStoreConfiguration template) { super.read(template); return this; } }