package org.jboss.as.clustering.infinispan.cs.configuration;
import org.infinispan.commons.configuration.Builder;
import org.infinispan.configuration.cache.AbstractStoreConfigurationBuilder;
import org.infinispan.configuration.cache.PersistenceConfigurationBuilder;
/**
* StoreConfigurationBuilder used for stores/loaders that don't have a configuration builder
*
* @author Sebastian Laskawiec
* @since 7.2
*/
public class DeployedStoreConfigurationBuilder extends AbstractStoreConfigurationBuilder<DeployedStoreConfiguration, DeployedStoreConfigurationBuilder> {
private PersistenceConfigurationBuilder persistenceConfigurationBuilder;
private String customStoreClassName;
public DeployedStoreConfigurationBuilder(PersistenceConfigurationBuilder builder) {
super(builder);
this.persistenceConfigurationBuilder = builder;
}
@Override
public DeployedStoreConfiguration create() {
return new DeployedStoreConfiguration(purgeOnStartup, fetchPersistentState, ignoreModifications,
async.create(), singletonStore.create(), preload, shared, properties, persistenceConfigurationBuilder, customStoreClassName);
}
@Override
public Builder<?> read(DeployedStoreConfiguration template) {
super.read(template);
this.persistenceConfigurationBuilder = template.getPersistenceConfigurationBuilder();
this.customStoreClassName = template.getCustomStoreClassName();
return this;
}
@Override
public DeployedStoreConfigurationBuilder self() {
return this;
}
public DeployedStoreConfigurationBuilder customStoreClassName(String customStoreClassName) {
this.customStoreClassName = customStoreClassName;
return this;
}
@Override
public void validate() {
super.validate(true);
}
}