/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.jdbc.metadata; /** * This interface defines the information that should be included when * accessing the metadata for a {@link JdbcDatabase}. * * @since 8.0 */ public interface Includes { /** * The default is to include foreign keys. */ public final boolean DEFAULT_INCLUDE_FOREIGN_KEYS = true; /** * The default is to include incomplete foreign keys. */ public final boolean DEFAULT_INCLUDE_INCOMPLETE_FKS = true; /** * The default is to include indexes. */ public final boolean DEFAULT_INCLUDE_INDEXES = true; /** * The default is to <i>not</i> include procedures. */ public final boolean DEFAULT_INCLUDE_PROCEDURES = false; /** * The default is to allow approximations. */ public final boolean DEFAULT_APPROXIMATE_INDEXES = true; /** * The default is to not do only unique indexes. */ public final boolean DEFAULT_UNIQUE_INDEXES = false; /** * The default is to calculate costing on import */ public final boolean DEFAULT_CALCULATE_COSTING = true; /** * Return the {@link JdbcDatabase} object that contains this node. * @return the database; may not be null */ public JdbcDatabase getJdbcDatabase(); /** * Return the table types that are to be included. * @return the table types; null if the table types have not been set, or empty * if no table types (i.e, no tables) are to be included * @see Capabilities#getTableTypes() */ public String[] getIncludedTableTypes(); /** * Set the table types that are to be included. * @param typesToInclude the table types; may be null if all the table types are to be included, * or empty if no table types (i.e, no tables) are to be included * @see Capabilities#getTableTypes() */ public void setIncludedTableTypes( String[] typesToInclude ); /** * Return whether procedures should be included. * @return true if procedures should be included, or false otherwise. */ public boolean includeProcedures(); /** * Set whether procedures should be included. * @param include true if procedures should be included, or false otherwise. */ public void setIncludeProcedures( boolean include ); /** * Return whether foreign keys should be included. * @return true if foreign keys should be included, or false otherwise. */ public boolean includeForeignKeys(); /** * Set whether foreign keys should be included. * @param include true if foreign keys should be included, or false otherwise. */ public void setIncludeForeignKeys( boolean include ); /** * Return whether incomplete foreign keys should be included. * * @return true if incomplete foreign keys should be included, or false otherwise. */ public boolean includeIncompleteFKs(); /** * Set whether incomplete foreign keys should be included. * * @param include true if incomplete foreign keys should be included, or false otherwise. */ public void setIncludeIncompleteFKs( boolean include ); /** * Return whether indexes should be included. * @return true if indexes should be included, or false otherwise. */ public boolean includeIndexes(); /** * Set whether indexes should be included. * @param include true if indexes should be included, or false otherwise. */ public void setIncludeIndexes( boolean include ); /** * Get whether approximate information for indexes is allowed. * @return true if approximate index information is allowed, or false if exact information is required. */ public boolean getApproximateIndexes(); /** * Set whether approximate information for indexes is allowed. * @param approximate true if approximate index information is allowed, or false if exact information is required. */ public void setApproximateIndexes( boolean approximate ); /** * get whether only unique indexes should be included. * @return true if only unique indexes should be included, or false if all indexes should be included. */ public boolean getUniqueIndexesOnly(); /** * Set whether only unique indexes should be included. * @param uniqueOnly true if only unique indexes should be included, or false if all indexes should be included. */ public void setUniqueIndexesOnly( boolean uniqueOnly ); /** * Determine if costing information is to be calculated * @return true if costing should be calculated, false if not. */ public boolean isCalculateCosting(); /** * Set whether to calculate costing information * @param enableCosting true if calculating costing information, false if not. */ public void setCalculateCosting( boolean enableCosting ); }