package org.seasar.doma.internal.apt.dao;

/** */
@javax.annotation.Generated(value = { "Doma", "@VERSION@" }, date = "1970-01-01T09:00:00.000+0900")
public class SqlFileSelectDomainDaoImpl extends org.seasar.doma.internal.jdbc.dao.AbstractDao implements org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDao {

    static {
        org.seasar.doma.internal.Artifact.validateVersion("@VERSION@");
    }

    /** */
    public SqlFileSelectDomainDaoImpl() {
        super(new org.seasar.doma.internal.apt.dao.MyConfig());
    }

    /**
     * @param connection the connection
     */
    public SqlFileSelectDomainDaoImpl(java.sql.Connection connection) {
        super(new org.seasar.doma.internal.apt.dao.MyConfig(), connection);
    }

    /**
     * @param dataSource the dataSource
     */
    public SqlFileSelectDomainDaoImpl(javax.sql.DataSource dataSource) {
        super(new org.seasar.doma.internal.apt.dao.MyConfig(), dataSource);
    }

    /**
     * @param config the configuration
     */
    protected SqlFileSelectDomainDaoImpl(org.seasar.doma.jdbc.Config config) {
        super(config);
    }

    /**
     * @param config the configuration
     * @param connection the connection
     */
    protected SqlFileSelectDomainDaoImpl(org.seasar.doma.jdbc.Config config, java.sql.Connection connection) {
        super(config, connection);
    }

    /**
     * @param config the configuration
     * @param dataSource the dataSource
     */
    protected SqlFileSelectDomainDaoImpl(org.seasar.doma.jdbc.Config config, javax.sql.DataSource dataSource) {
        super(config, dataSource);
    }

    @Override
    public example.domain.PhoneNumber selectPhoneNumberById(java.lang.Integer id) {
        entering("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl", "selectPhoneNumberById", id);
        try {
            org.seasar.doma.internal.jdbc.query.SqlFileSelectQuery __query = new org.seasar.doma.internal.jdbc.query.SqlFileSelectQuery();
            __query.setConfig(config);
            __query.setSqlFilePath("META-INF/org/seasar/doma/internal/apt/dao/SqlFileSelectDomainDao/selectPhoneNumberById.sql");
            __query.addParameter("id", java.lang.Integer.class, id);
            __query.setCallerClassName("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl");
            __query.setCallerMethodName("selectPhoneNumberById");
            __query.setResultEnsured(false);
            __query.setResultMappingEnsured(false);
            __query.setQueryTimeout(-1);
            __query.setMaxRows(-1);
            __query.setFetchSize(-1);
            __query.prepare();
            org.seasar.doma.internal.jdbc.command.SelectCommand<example.domain.PhoneNumber> __command = new org.seasar.doma.internal.jdbc.command.SelectCommand<example.domain.PhoneNumber>(__query, new org.seasar.doma.internal.jdbc.command.DomainSingleResultHandler<example.domain.PhoneNumber>(example.domain._PhoneNumber.getSingletonInternal()));
            example.domain.PhoneNumber __result = __command.execute();
            __query.complete();
            exiting("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl", "selectPhoneNumberById", __result);
            return __result;
        } catch (java.lang.RuntimeException __e) {
            throwing("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl", "selectPhoneNumberById", __e);
            throw __e;
        }
    }

    @Override
    public java.util.List<example.domain.PhoneNumber> selectPhoneNumberByNameAndSalary(java.lang.String name, java.math.BigDecimal salary, org.seasar.doma.jdbc.SelectOptions options) {
        entering("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl", "selectPhoneNumberByNameAndSalary", name, salary, options);
        try {
            if (options == null) {
                throw new org.seasar.doma.DomaNullPointerException("options");
            }
            org.seasar.doma.internal.jdbc.query.SqlFileSelectQuery __query = new org.seasar.doma.internal.jdbc.query.SqlFileSelectQuery();
            __query.setConfig(config);
            __query.setSqlFilePath("META-INF/org/seasar/doma/internal/apt/dao/SqlFileSelectDomainDao/selectPhoneNumberByNameAndSalary.sql");
            __query.setOptions(options);
            __query.addParameter("name", java.lang.String.class, name);
            __query.addParameter("salary", java.math.BigDecimal.class, salary);
            __query.setCallerClassName("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl");
            __query.setCallerMethodName("selectPhoneNumberByNameAndSalary");
            __query.setResultEnsured(false);
            __query.setResultMappingEnsured(false);
            __query.setQueryTimeout(-1);
            __query.setMaxRows(-1);
            __query.setFetchSize(-1);
            __query.prepare();
            org.seasar.doma.internal.jdbc.command.SelectCommand<java.util.List<example.domain.PhoneNumber>> __command = new org.seasar.doma.internal.jdbc.command.SelectCommand<java.util.List<example.domain.PhoneNumber>>(__query, new org.seasar.doma.internal.jdbc.command.DomainResultListHandler<example.domain.PhoneNumber>(example.domain._PhoneNumber.getSingletonInternal()));
            java.util.List<example.domain.PhoneNumber> __result = __command.execute();
            __query.complete();
            exiting("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl", "selectPhoneNumberByNameAndSalary", __result);
            return __result;
        } catch (java.lang.RuntimeException __e) {
            throwing("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl", "selectPhoneNumberByNameAndSalary", __e);
            throw __e;
        }
    }

    @Override
    public example.domain.JobType selectJobTypeById(java.lang.Integer id) {
        entering("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl", "selectJobTypeById", id);
        try {
            org.seasar.doma.internal.jdbc.query.SqlFileSelectQuery __query = new org.seasar.doma.internal.jdbc.query.SqlFileSelectQuery();
            __query.setConfig(config);
            __query.setSqlFilePath("META-INF/org/seasar/doma/internal/apt/dao/SqlFileSelectDomainDao/selectJobTypeById.sql");
            __query.addParameter("id", java.lang.Integer.class, id);
            __query.setCallerClassName("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl");
            __query.setCallerMethodName("selectJobTypeById");
            __query.setResultEnsured(false);
            __query.setResultMappingEnsured(false);
            __query.setQueryTimeout(-1);
            __query.setMaxRows(-1);
            __query.setFetchSize(-1);
            __query.prepare();
            org.seasar.doma.internal.jdbc.command.SelectCommand<example.domain.JobType> __command = new org.seasar.doma.internal.jdbc.command.SelectCommand<example.domain.JobType>(__query, new org.seasar.doma.internal.jdbc.command.DomainSingleResultHandler<example.domain.JobType>(example.domain._JobType.getSingletonInternal()));
            example.domain.JobType __result = __command.execute();
            __query.complete();
            exiting("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl", "selectJobTypeById", __result);
            return __result;
        } catch (java.lang.RuntimeException __e) {
            throwing("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl", "selectJobTypeById", __e);
            throw __e;
        }
    }

    @Override
    public java.util.List<example.domain.JobType> selectJobTypeByNameAndSalary(java.lang.String name, java.math.BigDecimal salary, org.seasar.doma.jdbc.SelectOptions options) {
        entering("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl", "selectJobTypeByNameAndSalary", name, salary, options);
        try {
            if (options == null) {
                throw new org.seasar.doma.DomaNullPointerException("options");
            }
            org.seasar.doma.internal.jdbc.query.SqlFileSelectQuery __query = new org.seasar.doma.internal.jdbc.query.SqlFileSelectQuery();
            __query.setConfig(config);
            __query.setSqlFilePath("META-INF/org/seasar/doma/internal/apt/dao/SqlFileSelectDomainDao/selectJobTypeByNameAndSalary.sql");
            __query.setOptions(options);
            __query.addParameter("name", java.lang.String.class, name);
            __query.addParameter("salary", java.math.BigDecimal.class, salary);
            __query.setCallerClassName("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl");
            __query.setCallerMethodName("selectJobTypeByNameAndSalary");
            __query.setResultEnsured(false);
            __query.setResultMappingEnsured(false);
            __query.setQueryTimeout(-1);
            __query.setMaxRows(-1);
            __query.setFetchSize(-1);
            __query.prepare();
            org.seasar.doma.internal.jdbc.command.SelectCommand<java.util.List<example.domain.JobType>> __command = new org.seasar.doma.internal.jdbc.command.SelectCommand<java.util.List<example.domain.JobType>>(__query, new org.seasar.doma.internal.jdbc.command.DomainResultListHandler<example.domain.JobType>(example.domain._JobType.getSingletonInternal()));
            java.util.List<example.domain.JobType> __result = __command.execute();
            __query.complete();
            exiting("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl", "selectJobTypeByNameAndSalary", __result);
            return __result;
        } catch (java.lang.RuntimeException __e) {
            throwing("org.seasar.doma.internal.apt.dao.SqlFileSelectDomainDaoImpl", "selectJobTypeByNameAndSalary", __e);
            throw __e;
        }
    }

}
