/*
 * This file is generated by jOOQ.
 */
package org.jooq.meta.postgres.pg_catalog;


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

import org.jooq.Table;
import org.jooq.impl.SchemaImpl;
import org.jooq.meta.postgres.pg_catalog.tables.PgAttrdef;
import org.jooq.meta.postgres.pg_catalog.tables.PgAttribute;
import org.jooq.meta.postgres.pg_catalog.tables.PgClass;
import org.jooq.meta.postgres.pg_catalog.tables.PgCollation;
import org.jooq.meta.postgres.pg_catalog.tables.PgConstraint;
import org.jooq.meta.postgres.pg_catalog.tables.PgDepend;
import org.jooq.meta.postgres.pg_catalog.tables.PgDescription;
import org.jooq.meta.postgres.pg_catalog.tables.PgEnum;
import org.jooq.meta.postgres.pg_catalog.tables.PgIndex;
import org.jooq.meta.postgres.pg_catalog.tables.PgInherits;
import org.jooq.meta.postgres.pg_catalog.tables.PgNamespace;
import org.jooq.meta.postgres.pg_catalog.tables.PgProc;
import org.jooq.meta.postgres.pg_catalog.tables.PgSequence;
import org.jooq.meta.postgres.pg_catalog.tables.PgType;


/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class PgCatalog extends SchemaImpl {

    private static final long serialVersionUID = 1L;

    /**
     * The reference instance of <code>pg_catalog</code>
     */
    public static final PgCatalog PG_CATALOG = new PgCatalog();

    /**
     * The table <code>pg_catalog.pg_attrdef</code>.
     */
    public final PgAttrdef PG_ATTRDEF = PgAttrdef.PG_ATTRDEF;

    /**
     * The table <code>pg_catalog.pg_attribute</code>.
     */
    public final PgAttribute PG_ATTRIBUTE = PgAttribute.PG_ATTRIBUTE;

    /**
     * The table <code>pg_catalog.pg_class</code>.
     */
    public final PgClass PG_CLASS = PgClass.PG_CLASS;

    /**
     * The table <code>pg_catalog.pg_collation</code>.
     */
    public final PgCollation PG_COLLATION = PgCollation.PG_COLLATION;

    /**
     * The table <code>pg_catalog.pg_constraint</code>.
     */
    public final PgConstraint PG_CONSTRAINT = PgConstraint.PG_CONSTRAINT;

    /**
     * The table <code>pg_catalog.pg_depend</code>.
     */
    public final PgDepend PG_DEPEND = PgDepend.PG_DEPEND;

    /**
     * The table <code>pg_catalog.pg_description</code>.
     */
    public final PgDescription PG_DESCRIPTION = PgDescription.PG_DESCRIPTION;

    /**
     * The table <code>pg_catalog.pg_enum</code>.
     */
    public final PgEnum PG_ENUM = PgEnum.PG_ENUM;

    /**
     * The table <code>pg_catalog.pg_index</code>.
     */
    public final PgIndex PG_INDEX = PgIndex.PG_INDEX;

    /**
     * The table <code>pg_catalog.pg_inherits</code>.
     */
    public final PgInherits PG_INHERITS = PgInherits.PG_INHERITS;

    /**
     * The table <code>pg_catalog.pg_namespace</code>.
     */
    public final PgNamespace PG_NAMESPACE = PgNamespace.PG_NAMESPACE;

    /**
     * The table <code>pg_catalog.pg_proc</code>.
     */
    public final PgProc PG_PROC = PgProc.PG_PROC;

    /**
     * The table <code>pg_catalog.pg_sequence</code>.
     */
    public final PgSequence PG_SEQUENCE = PgSequence.PG_SEQUENCE;

    /**
     * The table <code>pg_catalog.pg_type</code>.
     */
    public final PgType PG_TYPE = PgType.PG_TYPE;

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

    @Override
    public final List<Table<?>> getTables() {
        return Arrays.asList(
            PgAttrdef.PG_ATTRDEF,
            PgAttribute.PG_ATTRIBUTE,
            PgClass.PG_CLASS,
            PgCollation.PG_COLLATION,
            PgConstraint.PG_CONSTRAINT,
            PgDepend.PG_DEPEND,
            PgDescription.PG_DESCRIPTION,
            PgEnum.PG_ENUM,
            PgIndex.PG_INDEX,
            PgInherits.PG_INHERITS,
            PgNamespace.PG_NAMESPACE,
            PgProc.PG_PROC,
            PgSequence.PG_SEQUENCE,
            PgType.PG_TYPE
        );
    }
}
