/*
* 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.impl;
import org.teiid.core.designer.util.CoreArgCheck;
import org.teiid.designer.jdbc.metadata.Includes;
import org.teiid.designer.jdbc.metadata.JdbcDatabase;
/**
* IncludesImpl
*
* @since 8.0
*/
public class IncludesImpl implements Includes {
private static final String[] NO_TYPES = new String[]{};
private final JdbcDatabase database;
private String[] includedTableTypes;
private boolean fks = DEFAULT_INCLUDE_FOREIGN_KEYS;
private boolean incompleteFKs = DEFAULT_INCLUDE_INCOMPLETE_FKS;
private boolean indexes = DEFAULT_INCLUDE_INDEXES;
private boolean procedures = DEFAULT_INCLUDE_PROCEDURES;
private boolean approximateIndexes = DEFAULT_APPROXIMATE_INDEXES;
private boolean uniqueIndexes = DEFAULT_UNIQUE_INDEXES;
private boolean calculateCosting = DEFAULT_CALCULATE_COSTING;
/**
* Construct an instance of IncludesImpl.
* @param database the JdbcDatabase
*/
public IncludesImpl( final JdbcDatabase database ) {
super();
CoreArgCheck.isNotNull(database);
this.database = database;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#getJdbcDatabase()
*/
@Override
public JdbcDatabase getJdbcDatabase() {
return this.database;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#getIncludedTableTypes()
*/
@Override
public String[] getIncludedTableTypes() {
return includedTableTypes;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#getIncludedTableTypes(java.lang.String[])
*/
@Override
public void setIncludedTableTypes(String[] typesToInclude) {
includedTableTypes = typesToInclude != null ? typesToInclude : NO_TYPES;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#includeProcedures()
*/
@Override
public boolean includeProcedures() {
return procedures;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#setIncludeProcedures(boolean)
*/
@Override
public void setIncludeProcedures(boolean include) {
procedures = include;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#setIncludeForeignKeys(boolean)
*/
@Override
public void setIncludeForeignKeys( boolean include ) {
fks = include;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#includeForeignKeys()
*/
@Override
public boolean includeForeignKeys() {
return fks;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#setIncludeIncompleteFKs(boolean)
*/
@Override
public void setIncludeIncompleteFKs( boolean include ) {
incompleteFKs = include;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#includeIncompleteFKs()
*/
@Override
public boolean includeIncompleteFKs() {
return incompleteFKs;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#includeIndexes()
*/
@Override
public boolean includeIndexes() {
return indexes;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#setIncludeIndexes(boolean)
*/
@Override
public void setIncludeIndexes(boolean include) {
indexes = include;
}
/**
* @return
*/
@Override
public boolean getApproximateIndexes() {
return approximateIndexes;
}
/**
* @return
*/
@Override
public boolean getUniqueIndexesOnly() {
return uniqueIndexes;
}
/**
* @param b
*/
@Override
public void setApproximateIndexes(boolean b) {
approximateIndexes = b;
}
/**
* @param b
*/
@Override
public void setUniqueIndexesOnly(boolean b) {
uniqueIndexes = b;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#setCalculateCosting(boolean)
*/
@Override
public void setCalculateCosting( boolean enableCosting ) {
calculateCosting = enableCosting;
}
/* (non-Javadoc)
* @See org.teiid.designer.jdbc.metadata.Includes#isCalculateCosting()
*/
@Override
public boolean isCalculateCosting() {
return calculateCosting;
}
}