All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.jinahya.sql.database.metadata.bind.Schema Maven / Gradle / Ivy

/*
 * Copyright 2011 Jin Kwon .
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


package com.github.jinahya.sql.database.metadata.bind;


import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;


/**
 *
 * @author Jin Kwon <jinahya_at_gmail.com>
 */
@XmlRootElement
@XmlType(
    propOrder = {
        "tableSchem",
        // ---------------------------------------------------------------------
        "functions", "procedures", "tables", "userDefinedTypes"
    }
)
public class Schema {


    @Override
    public String toString() {

        return super.toString() + "{" + "tableCatalog=" + tableCatalog
               + ", tableSchem=" + tableSchem + '}';
    }


    // ------------------------------------------------------------ tableCatalog
    public String getTableCatalog() {

        return tableCatalog;
    }


    public void setTableCatalog(final String tableCatalog) {

        this.tableCatalog = tableCatalog;
    }


    Schema tableCatalog(final String tableCatalog) {

        setTableCatalog(tableCatalog);

        return this;
    }


    // -------------------------------------------------------------- tableSchem
    public String getTableSchem() {

        return tableSchem;
    }


    public void setTableSchem(final String tableSchem) {

        this.tableSchem = tableSchem;
    }


    Schema tableSchem(final String tableSchem) {

        setTableSchem(tableSchem);

        return this;
    }


    // ----------------------------------------------------------------- catalog
    public Catalog getCatalog() {

        return catalog;
    }


    //@XmlAttribute
    @Deprecated
    private String getCatalogString() {

        return catalog == null ? null : catalog.toString();
    }


    public void setCatalog(final Catalog catalog) {

        this.catalog = catalog;
    }


    Schema catalog(final Catalog catalog) {

        setCatalog(catalog);

        return this;
    }


    // --------------------------------------------------------------- functions
    public List getFunctions() {

        if (functions == null) {
            functions = new ArrayList();
        }

        return functions;
    }


    // -------------------------------------------------------------- procedures
    public List getProcedures() {

        if (procedures == null) {
            procedures = new ArrayList();
        }

        return procedures;
    }


    // ------------------------------------------------------------------ tables
    public List getTables() {

        if (tables == null) {
            tables = new ArrayList
(); } return tables; } public List getTableNames() { final List tableNames = new ArrayList(getTables().size()); for (final Table table : getTables()) { tableNames.add(table.getTableName()); } return tableNames; } public Table getTableByName(final String tableName) { if (tableName == null) { throw new NullPointerException("null tableName"); } for (final Table table : getTables()) { if (tableName.equals(table.getTableName())) { return table; } } return null; } // -------------------------------------------------------- userDefinedTypes public List getUserDefinedTypes() { if (userDefinedTypes == null) { userDefinedTypes = new ArrayList(); } return userDefinedTypes; } // ------------------------------------------------------------------------- @Label("TABLE_CATALOG") @NillableBySpecification @XmlAttribute private String tableCatalog; @Label("TABLE_SCHEM") @XmlElement(required = true) private String tableSchem; @XmlTransient private Catalog catalog; @Invocation( name = "getFunctions", types = {String.class, String.class, String.class}, argsarr = { @InvocationArgs({":tableCatalog", ":tableSchem", "null"}) } ) @XmlElementRef private List functions; @Invocation( name = "getProcedures", types = {String.class, String.class, String.class}, argsarr = { @InvocationArgs({":tableCatalog", ":tableSchem", "null"}) } ) @XmlElementRef private List procedures; @Invocation( name = "getTables", types = {String.class, String.class, String.class, String[].class}, argsarr = { @InvocationArgs({":tableCatalog", ":tableSchem", "null", "null"}) } ) @XmlElementRef private List
tables; @Invocation( name = "getUDTs", types = {String.class, String.class, String.class, int[].class}, argsarr = { @InvocationArgs({":tableCatalog", ":tableSchem", "null", "null"}) } ) @XmlElementRef private List userDefinedTypes; }