/**
 * This class is generated by jOOQ
 */
package com.clevergang.dbtests.repository.impl.jooq.generated;


import com.clevergang.dbtests.repository.impl.jooq.generated.tables.Company;
import com.clevergang.dbtests.repository.impl.jooq.generated.tables.Department;
import com.clevergang.dbtests.repository.impl.jooq.generated.tables.Employee;
import com.clevergang.dbtests.repository.impl.jooq.generated.tables.Project;
import com.clevergang.dbtests.repository.impl.jooq.generated.tables.Projectemployee;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.annotation.Generated;

import org.jooq.Catalog;
import org.jooq.Sequence;
import org.jooq.Table;
import org.jooq.impl.SchemaImpl;


/**
 * This class is generated by jOOQ.
 */
@Generated(
    value = {
        "http://www.jooq.org",
        "jOOQ version:3.8.4"
    },
    comments = "This class is generated by jOOQ"
)
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Public extends SchemaImpl {

    private static final long serialVersionUID = 1615711012;

    /**
     * The reference instance of <code>public</code>
     */
    public static final Public PUBLIC = new Public();

    /**
     * The table <code>public.company</code>.
     */
    public final Company COMPANY = com.clevergang.dbtests.repository.impl.jooq.generated.tables.Company.COMPANY;

    /**
     * The table <code>public.department</code>.
     */
    public final Department DEPARTMENT = com.clevergang.dbtests.repository.impl.jooq.generated.tables.Department.DEPARTMENT;

    /**
     * The table <code>public.employee</code>.
     */
    public final Employee EMPLOYEE = com.clevergang.dbtests.repository.impl.jooq.generated.tables.Employee.EMPLOYEE;

    /**
     * The table <code>public.project</code>.
     */
    public final Project PROJECT = com.clevergang.dbtests.repository.impl.jooq.generated.tables.Project.PROJECT;

    /**
     * The table <code>public.projectemployee</code>.
     */
    public final Projectemployee PROJECTEMPLOYEE = com.clevergang.dbtests.repository.impl.jooq.generated.tables.Projectemployee.PROJECTEMPLOYEE;

    /**
     * No further instances allowed
     */
    private Public() {
        super("public", null);
    }


    /**
     * {@inheritDoc}
     */
    @Override
    public Catalog getCatalog() {
        return DefaultCatalog.DEFAULT_CATALOG;
    }

    @Override
    public final List<Sequence<?>> getSequences() {
        List result = new ArrayList();
        result.addAll(getSequences0());
        return result;
    }

    private final List<Sequence<?>> getSequences0() {
        return Arrays.<Sequence<?>>asList(
            Sequences.COMPANY_PID_SEQ,
            Sequences.DEPARTMENT_PID_SEQ,
            Sequences.EMPLOYEE_PID_SEQ,
            Sequences.PROJECT_PID_SEQ);
    }

    @Override
    public final List<Table<?>> getTables() {
        List result = new ArrayList();
        result.addAll(getTables0());
        return result;
    }

    private final List<Table<?>> getTables0() {
        return Arrays.<Table<?>>asList(
            Company.COMPANY,
            Department.DEPARTMENT,
            Employee.EMPLOYEE,
            Project.PROJECT,
            Projectemployee.PROJECTEMPLOYEE);
    }
}
