// Path: src/main/java/ca/krasnay/sqlbuilder/Dialect.java
// public interface Dialect {
// 
//     /**
//      * Returns a SQL statement that returns the number of rows that would be
//      * returned by another select.
//      *
//      * @param sql
//      *            Inner select statement, i.e. the one that returns the rows
//      *            themselves.
//      */
//     public String createCountSelect(String sql);
// 
//     /**
//      * Returns a SQL statement that returns a limited number of rows from an
//      * inner query. Note that the inner select should include an ORDER BY clause
//      * that strictly orders the result set; otherwise, some database servers may
//      * return pages inconsistently.
//      *
//      * @param sql
//      *            Inner query that would return the full result set.
//      * @param limit
//      *            Maximum number of rows to return.
//      * @param offset
//      *            Index into the result set of the first row returned.
//      */
//     public String createPageSelect(String sql, int limit, int offset);
// 
//     /**
//      * Returns an integer supplier representing a database sequence.
//      *
//      * @param dataSource
//      *            DataSource where the sequence exists.
//      * @param sequenceName
//      *            Name of the sequence.
//      */
//     public Supplier<Integer> getSequence(DataSource dataSource, String sequenceName);
// 
// }
// 
// Path: src/main/java/ca/krasnay/sqlbuilder/Supplier.java
// public interface Supplier<T> {
// 
//     public T get();
// 
// }


import javax.sql.DataSource;
import ca.krasnay.sqlbuilder.Dialect;
import ca.krasnay.sqlbuilder.Supplier;
package ca.krasnay.sqlbuilder.orm;



/**
 * Configuration of the ORM system. Each mapping must be constructed with one of
 * these objects.
 *
 * @author <a href="mailto:john@krasnay.ca">John Krasnay</a>
 */
public class OrmConfig {

    private DataSource dataSource;

    private Dialect dialect;

    private ConverterFactory converterFactory = new DefaultConverterFactory();

    public OrmConfig(DataSource dataSource, Dialect dialect) {
        super();
        this.dataSource = dataSource;
        this.dialect = dialect;
    }

    public ConverterFactory getConverterFactory() {
        return converterFactory;
    }

    public DataSource getDataSource() {
        return dataSource;
    }

// Path: src/main/java/ca/krasnay/sqlbuilder/Dialect.java
// public interface Dialect {
// 
//     /**
//      * Returns a SQL statement that returns the number of rows that would be
//      * returned by another select.
//      *
//      * @param sql
//      *            Inner select statement, i.e. the one that returns the rows
//      *            themselves.
//      */
//     public String createCountSelect(String sql);
// 
//     /**
//      * Returns a SQL statement that returns a limited number of rows from an
//      * inner query. Note that the inner select should include an ORDER BY clause
//      * that strictly orders the result set; otherwise, some database servers may
//      * return pages inconsistently.
//      *
//      * @param sql
//      *            Inner query that would return the full result set.
//      * @param limit
//      *            Maximum number of rows to return.
//      * @param offset
//      *            Index into the result set of the first row returned.
//      */
//     public String createPageSelect(String sql, int limit, int offset);
// 
//     /**
//      * Returns an integer supplier representing a database sequence.
//      *
//      * @param dataSource
//      *            DataSource where the sequence exists.
//      * @param sequenceName
//      *            Name of the sequence.
//      */
//     public Supplier<Integer> getSequence(DataSource dataSource, String sequenceName);
// 
// }
// 
// Path: src/main/java/ca/krasnay/sqlbuilder/Supplier.java
// public interface Supplier<T> {
// 
//     public T get();
// 
// }


// Path: src/main/java/ca/krasnay/sqlbuilder/orm/OrmConfig.java
import javax.sql.DataSource;
import ca.krasnay.sqlbuilder.Dialect;
import ca.krasnay.sqlbuilder.Supplier;

package ca.krasnay.sqlbuilder.orm;



/**
 * Configuration of the ORM system. Each mapping must be constructed with one of
 * these objects.
 *
 * @author <a href="mailto:john@krasnay.ca">John Krasnay</a>
 */
public class OrmConfig {

    private DataSource dataSource;

    private Dialect dialect;

    private ConverterFactory converterFactory = new DefaultConverterFactory();

    public OrmConfig(DataSource dataSource, Dialect dialect) {
        super();
        this.dataSource = dataSource;
        this.dialect = dialect;
    }

    public ConverterFactory getConverterFactory() {
        return converterFactory;
    }

    public DataSource getDataSource() {
        return dataSource;
    }

    public Dialect getDialect() {