/*
* 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.datatools.connectivity.ui;
import org.eclipse.datatools.sqltools.core.SQLDevToolsConfiguration;
import org.eclipse.datatools.sqltools.core.services.ExecutionService;
import org.eclipse.datatools.sqltools.core.services.SQLService;
/**
* @since 8.0
*/
public class TeiidDBConfiguration extends SQLDevToolsConfiguration {
/**
*/
static final String[] TERMINATORS = new String[] {";"}; //$NON-NLS-1$
private static final String[] PRODUCTS = {"Teiid Server", "Teiid"}; //$NON-NLS-1$ //$NON-NLS-2$
private String format( String in ) {
return in.trim().toLowerCase();
}
/* (non-Javadoc)
* @see org.eclipse.datatools.sqltools.core.SQLDevToolsConfiguration#recognize(java.lang.String, java.lang.String)
*/
@Override
public boolean recognize( String product,
String version ) {
if (product != null) {
String formattedProduct = format(product);
for (int i = 0; i < PRODUCTS.length; i++) {
if (formattedProduct.equals(format(PRODUCTS[i]))) {
return true;
}
}
}
return false;
}
/* (non-Javadoc)
* @see org.eclipse.datatools.sqltools.core.SQLDevToolsConfiguration#getAssociatedConnectionProfileType()
*/
@Override
public String[] getAssociatedConnectionProfileType() {
return new String[] {"org.teiid.datatools.connectivity.connectionProfile"}; //$NON-NLS-1$
}
/* (non-Javadoc)
* @see org.eclipse.datatools.sqltools.core.SQLDevToolsConfiguration#getExecutionService()
*/
@Override
public ExecutionService getExecutionService() {
return new TeiidExecutionService();
}
/**
* {@inheritDoc}
*
* @see org.eclipse.datatools.sqltools.core.SQLDevToolsConfiguration#getSQLService()
*/
@Override
public SQLService getSQLService() {
return new SQLService() {
/**
* {@inheritDoc}
*
* @see org.eclipse.datatools.sqltools.core.services.SQLService#splitSQL(java.lang.String)
*/
@Override
public String[] splitSQL( String sql ) {
if (sql.indexOf(';') < 0) {
return new String[] {sql};
}
return splitSQLByTerminatorLine(sql, TERMINATORS);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.datatools.sqltools.core.services.SQLService#splitSQL(java.lang.String, boolean)
*/
@Override
public String[] splitSQL( String sql,
boolean splitByDefault ) {
if (splitByDefault) {
return splitSQL(sql);
}
return new String[] {sql};
}
};
}
}