/* * * SchemaCrawler * http://sourceforge.net/projects/schemacrawler * Copyright (c) 2000-2012, Sualeh Fatehi. * * This library is free software; you can redistribute it and/or modify it under the terms * of the GNU Lesser General Public License as published by the Free Software Foundation; * either version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along with this * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. * */ package schemacrawler.schemacrawler; /** * Descriptor for level of schema detail. * * @author Sualeh Fatehi */ public final class SchemaInfoLevel implements Options { private static final long serialVersionUID = -6721986729175552425L; /** * Creates a new SchemaInfoLevel for verbose schema information. * * @return New SchemaInfoLevel */ public static SchemaInfoLevel detailed() { final SchemaInfoLevel detailed = standard(); detailed.setRetrieveUserDefinedColumnDataTypes(true); detailed.setRetrieveRoutineInformation(true); detailed.setRetrieveCheckConstraintInformation(true); detailed.setRetrieveTriggerInformation(true); detailed.setRetrieveViewInformation(true); detailed.setTag("detailed"); return detailed; } /** * Creates a new SchemaInfoLevel for maximum schema information. * * @return New SchemaInfoLevel */ public static SchemaInfoLevel maximum() { final SchemaInfoLevel maximum = detailed(); maximum.setRetrieveSynonymInformation(true); maximum.setRetrieveAdditionalDatabaseInfo(true); maximum.setRetrieveAdditionalJdbcDriverInfo(true); maximum.setRetrieveTablePrivileges(true); maximum.setRetrieveTableColumnPrivileges(true); maximum.setRetrieveAdditionalTableAttributes(true); maximum.setRetrieveAdditionalColumnAttributes(true); maximum.setTag("maximum"); return maximum; } /** * Creates a new SchemaInfoLevel for minimum schema information. * * @return New SchemaInfoLevel */ public static SchemaInfoLevel minimum() { final SchemaInfoLevel minimum = new SchemaInfoLevel(); minimum.setRetrieveSchemaCrawlerInfo(true); minimum.setRetrieveDatabaseInfo(true); minimum.setRetrieveJdbcDriverInfo(true); minimum.setRetrieveTables(true); minimum.setRetrieveRoutines(true); minimum.setTag("minimum"); return minimum; } /** * Creates a new SchemaInfoLevel for standard schema information. * * @return New SchemaInfoLevel */ public static SchemaInfoLevel standard() { final SchemaInfoLevel standard = minimum(); standard.setRetrieveColumnDataTypes(true); standard.setRetrieveTableColumns(true); standard.setRetrieveForeignKeys(true); standard.setRetrieveIndices(true); standard.setRetrieveRoutineColumns(true); standard.setTag("standard"); return standard; } private String tag; private boolean retrieveSchemaCrawlerInfo = true; private boolean retrieveJdbcDriverInfo = true; private boolean retrieveDatabaseInfo = true; private boolean retrieveTables; private boolean retrieveRoutines; private boolean retrieveColumnDataTypes; private boolean retrieveAdditionalSchemaCrawlerInfo; private boolean retrieveAdditionalDatabaseInfo; private boolean retrieveAdditionalJdbcDriverInfo; private boolean retrieveUserDefinedColumnDataTypes; private boolean retrieveRoutineColumns; private boolean retrieveRoutineInformation; private boolean retrieveCheckConstraintInformation; private boolean retrieveViewInformation; private boolean retrieveForeignKeys; private boolean retrieveIndices; private boolean retrieveTablePrivileges; private boolean retrieveTableColumnPrivileges; private boolean retrieveTriggerInformation; private boolean retrieveSynonymInformation; private boolean retrieveTableColumns; private boolean retrieveAdditionalTableAttributes; private boolean retrieveAdditionalColumnAttributes; public String getTag() { return tag; } public boolean isRetrieveAdditionalColumnAttributes() { return retrieveAdditionalColumnAttributes; } public boolean isRetrieveAdditionalDatabaseInfo() { return retrieveAdditionalDatabaseInfo; } public boolean isRetrieveAdditionalJdbcDriverInfo() { return retrieveAdditionalJdbcDriverInfo; } public boolean isRetrieveAdditionalSchemaCrawlerInfo() { return retrieveAdditionalSchemaCrawlerInfo; } public boolean isRetrieveAdditionalTableAttributes() { return retrieveAdditionalTableAttributes; } public boolean isRetrieveCheckConstraintInformation() { return retrieveCheckConstraintInformation; } public boolean isRetrieveColumnDataTypes() { return retrieveColumnDataTypes; } public boolean isRetrieveDatabaseInfo() { return retrieveDatabaseInfo; } public boolean isRetrieveForeignKeys() { return retrieveForeignKeys; } public boolean isRetrieveIndices() { return retrieveIndices; } public boolean isRetrieveJdbcDriverInfo() { return retrieveJdbcDriverInfo; } public boolean isRetrieveRoutineColumns() { return retrieveRoutineColumns; } public boolean isRetrieveRoutineInformation() { return retrieveRoutineInformation; } public boolean isRetrieveRoutines() { return retrieveRoutines; } public boolean isRetrieveSchemaCrawlerInfo() { return retrieveSchemaCrawlerInfo; } public boolean isRetrieveSynonymInformation() { return retrieveSynonymInformation; } public boolean isRetrieveTableColumnPrivileges() { return retrieveTableColumnPrivileges; } public boolean isRetrieveTableColumns() { return retrieveTableColumns; } public boolean isRetrieveTablePrivileges() { return retrieveTablePrivileges; } public boolean isRetrieveTables() { return retrieveTables; } public boolean isRetrieveTriggerInformation() { return retrieveTriggerInformation; } public boolean isRetrieveUserDefinedColumnDataTypes() { return retrieveUserDefinedColumnDataTypes; } public boolean isRetrieveViewInformation() { return retrieveViewInformation; } public void setRetrieveAdditionalColumnAttributes(final boolean retrieveAdditionalColumnAttributes) { this.retrieveAdditionalColumnAttributes = retrieveAdditionalColumnAttributes; } public void setRetrieveAdditionalDatabaseInfo(final boolean retrieveAdditionalDatabaseInfo) { this.retrieveAdditionalDatabaseInfo = retrieveAdditionalDatabaseInfo; } public void setRetrieveAdditionalJdbcDriverInfo(final boolean retrieveAdditionalJdbcDriverInfo) { this.retrieveAdditionalJdbcDriverInfo = retrieveAdditionalJdbcDriverInfo; } public void setRetrieveAdditionalSchemaCrawlerInfo(final boolean retrieveAdditionalSchemaCrawlerInfo) { this.retrieveAdditionalSchemaCrawlerInfo = retrieveAdditionalSchemaCrawlerInfo; } public void setRetrieveAdditionalTableAttributes(final boolean retrieveAdditionalTableAttributes) { this.retrieveAdditionalTableAttributes = retrieveAdditionalTableAttributes; } public void setRetrieveCheckConstraintInformation(final boolean retrieveCheckConstraintInformation) { this.retrieveCheckConstraintInformation = retrieveCheckConstraintInformation; } public void setRetrieveColumnDataTypes(final boolean retrieveColumnDataTypes) { this.retrieveColumnDataTypes = retrieveColumnDataTypes; } public void setRetrieveDatabaseInfo(final boolean retrieveDatabaseInfo) { this.retrieveDatabaseInfo = retrieveDatabaseInfo; } public void setRetrieveForeignKeys(final boolean retrieveForeignKeys) { this.retrieveForeignKeys = retrieveForeignKeys; } public void setRetrieveIndices(final boolean retrieveIndices) { this.retrieveIndices = retrieveIndices; } public void setRetrieveJdbcDriverInfo(final boolean retrieveJdbcDriverInfo) { this.retrieveJdbcDriverInfo = retrieveJdbcDriverInfo; } public void setRetrieveRoutineColumns(final boolean retrieveRoutineColumns) { this.retrieveRoutineColumns = retrieveRoutineColumns; } public void setRetrieveRoutineInformation(final boolean retrieveRoutineInformation) { this.retrieveRoutineInformation = retrieveRoutineInformation; } public void setRetrieveRoutines(final boolean retrieveRoutines) { this.retrieveRoutines = retrieveRoutines; } public void setRetrieveSchemaCrawlerInfo(final boolean retrieveSchemaCrawlerInfo) { this.retrieveSchemaCrawlerInfo = retrieveSchemaCrawlerInfo; } public void setRetrieveSynonymInformation(final boolean retrieveSynonymInformation) { this.retrieveSynonymInformation = retrieveSynonymInformation; } public void setRetrieveTableColumnPrivileges(final boolean retrieveTableColumnPrivileges) { this.retrieveTableColumnPrivileges = retrieveTableColumnPrivileges; } public void setRetrieveTableColumns(final boolean retrieveTableColumns) { this.retrieveTableColumns = retrieveTableColumns; } public void setRetrieveTablePrivileges(final boolean retrieveTablePrivileges) { this.retrieveTablePrivileges = retrieveTablePrivileges; } public void setRetrieveTables(final boolean retrieveTables) { this.retrieveTables = retrieveTables; } public void setRetrieveTriggerInformation(final boolean retrieveTriggerInformation) { this.retrieveTriggerInformation = retrieveTriggerInformation; } public void setRetrieveUserDefinedColumnDataTypes(final boolean retrieveUserDefinedColumnDataTypes) { this.retrieveUserDefinedColumnDataTypes = retrieveUserDefinedColumnDataTypes; } public void setRetrieveViewInformation(final boolean retrieveViewInformation) { this.retrieveViewInformation = retrieveViewInformation; } public void setTag(final String tag) { this.tag = tag; } @Override public String toString() { return tag == null? "": tag; } }