/*******************************************************************************
* Copyright (c) 2013 hangum.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v2.1
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* hangum - initial API and implementation
******************************************************************************/
package com.hangum.tadpole.rdb.core.dialog.dbconnect;
import java.util.List;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine;
import com.hangum.tadpole.engine.define.DBDefine;
import com.hangum.tadpole.engine.query.dao.system.UserDBDAO;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.AbstractLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.AgensLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.AltibaseLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.CubridLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.HiveLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.MSSQLLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.MariaDBLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.MongoDBLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.MySQLLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.OracleLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.PostgresLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.RedShiftLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.SQLiteLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.TajoLoginComposite;
import com.hangum.tadpole.rdb.core.dialog.dbconnect.composite.TiberoLoginComposite;
/**
* DB Connection utils
*
* @author hangum
*
*/
public class DBConnectionUtils {
/**
* db connection composite
*
* @param dbDefine
* @param compositeBody
* @param listGroupName
* @param selGroupName
* @param userDB
* @return
*/
public static AbstractLoginComposite getDBConnection(DBDefine dbDefine, Composite compositeBody, List<String> listGroupName, String selGroupName, UserDBDAO userDB, boolean isReadOnly) {
return getDBConnection(dbDefine, compositeBody, listGroupName, selGroupName, userDB, PublicTadpoleDefine.DATA_STATUS.NEW, isReadOnly);
}
/**
* db connection composite
*
* @param dbDefine
* @param compositeBody
* @param listGroupName
* @param selGroupName
* @param userDB
* @param dataStatus
*
* @return
*/
public static AbstractLoginComposite getDBConnection(DBDefine dbDefine, Composite compositeBody, List<String> listGroupName, String selGroupName, UserDBDAO userDB,
PublicTadpoleDefine.DATA_STATUS dataStatus, boolean isReadOnly) {
AbstractLoginComposite loginComposite = null;
if (dbDefine == DBDefine.MYSQL_DEFAULT) {
loginComposite = new MySQLLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if (dbDefine == DBDefine.MARIADB_DEFAULT) {
loginComposite = new MariaDBLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if (dbDefine == DBDefine.ORACLE_DEFAULT) {
loginComposite = new OracleLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if (dbDefine == DBDefine.SQLite_DEFAULT) {
loginComposite = new SQLiteLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if (dbDefine == DBDefine.MSSQL_DEFAULT) {
loginComposite = new MSSQLLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if (dbDefine == DBDefine.CUBRID_DEFAULT) {
loginComposite = new CubridLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if(dbDefine == DBDefine.POSTGRE_DEFAULT) {
loginComposite = new PostgresLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if(dbDefine == DBDefine.AGENSGRAPH_DEFAULT) {
loginComposite = new AgensLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if(dbDefine == DBDefine.MONGODB_DEFAULT) {
loginComposite = new MongoDBLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
// } else if(dbDefine == DBDefine.AMAZONRDS_DEFAULT) {
// loginComposite = new AWSRDSLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if(dbDefine == DBDefine.HIVE_DEFAULT || dbDefine == DBDefine.HIVE2_DEFAULT) {
loginComposite = new HiveLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if(dbDefine == DBDefine.TAJO_DEFAULT) {
loginComposite = new TajoLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if(dbDefine == DBDefine.TIBERO_DEFAULT) {
loginComposite = new TiberoLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if(dbDefine == DBDefine.ALTIBASE_DEFAULT) {
loginComposite = new AltibaseLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
} else if(dbDefine == DBDefine.AMAZON_REDSHIFT_DEFAULT) {
loginComposite = new RedShiftLoginComposite(compositeBody, SWT.NONE, listGroupName, selGroupName, userDB, isReadOnly);
}
loginComposite.setDataActionStatus(dataStatus);
return loginComposite;
}
}