package org.infinispan.persistence.jdbc.configuration;
import org.infinispan.configuration.cache.LoaderConfigurationChildBuilder;
import org.infinispan.persistence.jdbc.connectionfactory.ConnectionFactory;
/**
* JdbcStoreConfigurationChildBuilder.
*
* @author Tristan Tarrant
* @since 5.2
*/
public interface JdbcStoreConfigurationChildBuilder<S extends AbstractJdbcStoreConfigurationBuilder<?, S>> extends LoaderConfigurationChildBuilder<S> {
/**
* Configures a connection pool to be used by this JDBC Cache Store to handle connections to the database
*/
PooledConnectionFactoryConfigurationBuilder<S> connectionPool();
/**
* Configures a DataSource to be used by this JDBC Cache Store to handle connections to the database
*/
ManagedConnectionFactoryConfigurationBuilder<S> dataSource();
/**
* Configures this JDBC Cache Store to use a single connection to the database
*/
SimpleConnectionFactoryConfigurationBuilder<S> simpleConnection();
/**
* Use the specified {@link ConnectionFactory} to handle connection to the database
*/
<C extends ConnectionFactoryConfigurationBuilder<?>> C connectionFactory(Class<C> klass);
/**
* Use the specified {@link ConnectionFactoryConfigurationBuilder} to configure connections to
* the database
*/
<C extends ConnectionFactoryConfigurationBuilder<?>> C connectionFactory(C builder);
}