001package com.nimbusds.infinispan.persistence.sql.config;
002
003
004import org.infinispan.configuration.cache.StoreConfigurationChildBuilder;
005import org.jooq.SQLDialect;
006
007
008/**
009 * SQL store configuration child builder.
010 */
011public interface SQLStoreConfigurationChildBuilder<S> extends StoreConfigurationChildBuilder<S> {
012        
013        
014        /**
015         * Sets the class for transforming between Infinispan entries (key /
016         * value pair and optional metadata) and a corresponding SQL record.
017         *
018         * @param recordTransformerClass The record transformer class. Must not
019         *                               be {@code null}.
020         *
021         * @return The builder.
022         */
023        SQLStoreConfigurationBuilder recordTransformerClass(final Class recordTransformerClass);
024        
025        
026        /**
027         * Sets the optional class for executing direct SQL queries against the
028         * database.
029         *
030         * @param queryExecutorClass The query executor class, {@code null} if
031         *                           not specified.
032         *
033         * @return The builder.
034         */
035        SQLStoreConfigurationBuilder queryExecutorClass(final Class queryExecutorClass);
036        
037        
038        /**
039         * Sets the preferred SQL dialect.
040         *
041         * @param sqlDialect The preferred SQL dialect. Must not be
042         *                   {@code null}.
043         *
044         * @return The builder.
045         */
046        SQLStoreConfigurationBuilder sqlDialect(final SQLDialect sqlDialect);
047}