package net.ion.craken.loaders;
import org.infinispan.commons.configuration.Builder;
import org.infinispan.configuration.cache.AbstractStoreConfigurationBuilder;
import org.infinispan.configuration.cache.PersistenceConfigurationBuilder;
@Deprecated
public class CrakenStoreConfigurationBuilder extends AbstractStoreConfigurationBuilder<CrakenStoreConfiguration, CrakenStoreConfigurationBuilder> {
private String location = "";
private int maxEntries = -1;
public CrakenStoreConfigurationBuilder(PersistenceConfigurationBuilder builder) {
super(builder);
}
@Override
public CrakenStoreConfigurationBuilder self() {
return this;
}
/**
* Sets a location on disk where the store can write.
*/
public CrakenStoreConfigurationBuilder location(String location) {
this.location = location;
return this;
}
public CrakenStoreConfigurationBuilder maxEntries(int maxEntries) {
this.maxEntries = maxEntries;
return this;
}
@Override
public CrakenStoreConfiguration create() {
return new CrakenStoreConfiguration(purgeOnStartup, fetchPersistentState, ignoreModifications, async.create(), singletonStore.create(), preload, shared, properties, location, maxEntries);
}
@Override
public Builder<?> read(CrakenStoreConfiguration template) {
// CrakenStore-specific configuration
location = template.location();
maxEntries = template.maxEntries();
// AbstractStore-specific configuration
fetchPersistentState = template.fetchPersistentState();
ignoreModifications = template.ignoreModifications();
properties = template.properties();
purgeOnStartup = template.purgeOnStartup();
async.read(template.async());
singletonStore.read(template.singletonStore());
preload = template.preload();
shared = template.shared();
return this;
}
}