001package com.nimbusds.infinispan.persistence.sql; 002 003 004import java.util.Properties; 005 006import org.infinispan.configuration.cache.AbstractStoreConfiguration; 007import org.infinispan.configuration.cache.AbstractStoreConfigurationBuilder; 008import org.infinispan.configuration.cache.PersistenceConfigurationBuilder; 009 010 011/** 012 * SQL store configuration builder. 013 * 014 * <p>Used by the Infinispan ConfigurationBuilder to implement fluent 015 * configuration for the SQL CacheLoader / CacheWriter. Methods should use 016 * the fluent style, rather than the setter/getter style and should return an 017 * instance of this object. 018 */ 019public class SQLStoreConfigurationBuilder extends AbstractStoreConfigurationBuilder<SQLStoreConfiguration, SQLStoreConfigurationBuilder> { 020 021 022 public SQLStoreConfigurationBuilder(final PersistenceConfigurationBuilder builder) { 023 super(builder, AbstractStoreConfiguration.attributeDefinitionSet()); 024 } 025 026 027 @Override 028 public SQLStoreConfiguration create() { 029 // This method should construct a new instance of a 030 // SQLStoreConfiguration object. There will be one instance 031 // per cache. 032 return new SQLStoreConfiguration( 033 purgeOnStartup, 034 fetchPersistentState, 035 ignoreModifications, 036 async.create(), 037 singletonStore.create(), 038 preload, 039 shared, 040 properties); 041 } 042 043 044 @Override 045 public SQLStoreConfigurationBuilder withProperties(final Properties properties) { 046 return properties(properties); 047 } 048 049 050 @Override 051 public SQLStoreConfigurationBuilder self() { 052 return this; 053 } 054}