
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;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy