/******************************************************************************* * 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.util; import org.apache.commons.lang.StringUtils; import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine; import com.hangum.tadpole.engine.define.DBDefine; import com.hangum.tadpole.engine.define.DBGroupDefine; import com.hangum.tadpole.engine.query.dao.system.UserDBDAO; import com.hangum.tadpole.engine.sql.template.AltibaseDMLTemplate; import com.hangum.tadpole.engine.sql.template.CubridDMLTemplate; import com.hangum.tadpole.engine.sql.template.HIVEDMLTemplate; import com.hangum.tadpole.engine.sql.template.MSSQLDMLTemplate; import com.hangum.tadpole.engine.sql.template.MySQLDMLTemplate; import com.hangum.tadpole.engine.sql.template.OracleDMLTemplate; import com.hangum.tadpole.engine.sql.template.PostgreDMLTemplate; import com.hangum.tadpole.engine.sql.template.SQLiteDMLTemplate; import com.hangum.tadpole.engine.sql.template.TAJODMLTemplate; /** * db에 다른 템플릿 쿼리를 생성합니다. * * * @author hangum * */ public class QueryTemplateUtils { /** * 쿼리 * * @param userDB * @param initAction * @return */ public static String getQuery(UserDBDAO userDB, PublicTadpoleDefine.OBJECT_TYPE initAction) { String defaultStr = ""; if(DBGroupDefine.MYSQL_GROUP == userDB.getDBGroup()) { if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TABLES) { defaultStr = MySQLDMLTemplate.TMP_CREATE_TABLE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.VIEWS) { defaultStr = MySQLDMLTemplate.TMP_CREATE_VIEW_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.INDEXES) { defaultStr = MySQLDMLTemplate.TMP_CREATE_INDEX_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.CONSTRAINTS) { defaultStr = MySQLDMLTemplate.TMP_CREATE_CONSTRAINTS_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.PROCEDURES) { defaultStr = MySQLDMLTemplate.TMP_CREATE_PROCEDURE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.FUNCTIONS) { defaultStr = MySQLDMLTemplate.TMP_CREATE_FUNCTION_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TRIGGERS) { defaultStr = MySQLDMLTemplate.TMP_CREATE_TRIGGER_STMT; } } else if(DBGroupDefine.ORACLE_GROUP == userDB.getDBGroup() ) { if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TABLES) { defaultStr = OracleDMLTemplate.TMP_CREATE_TABLE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.VIEWS) { defaultStr = OracleDMLTemplate.TMP_CREATE_VIEW_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.INDEXES) { defaultStr = OracleDMLTemplate.TMP_CREATE_INDEX_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.CONSTRAINTS) { defaultStr = OracleDMLTemplate.TMP_CREATE_CONSTRAINTS_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.PROCEDURES) { defaultStr = OracleDMLTemplate.TMP_CREATE_PROCEDURE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.PACKAGES) { defaultStr = OracleDMLTemplate.TMP_CREATE_PACKAGE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.FUNCTIONS) { defaultStr = OracleDMLTemplate.TMP_CREATE_FUNCTION_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.SYNONYM) { defaultStr = OracleDMLTemplate.TMP_CREATE_SYNONYM_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TRIGGERS) { defaultStr = OracleDMLTemplate.TMP_CREATE_TRIGGER_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.SEQUENCE) { defaultStr = OracleDMLTemplate.TMP_CREATE_SEQUENCE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.LINK) { defaultStr = OracleDMLTemplate.TMP_CREATE_LINK_STMT; } } else if(DBGroupDefine.SQLITE_GROUP == userDB.getDBGroup()) { if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TABLES) { defaultStr = SQLiteDMLTemplate.TMP_CREATE_TABLE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.VIEWS) { defaultStr = SQLiteDMLTemplate.TMP_CREATE_VIEW_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.INDEXES) { defaultStr = SQLiteDMLTemplate.TMP_CREATE_INDEX_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TRIGGERS) { defaultStr = SQLiteDMLTemplate.TMP_CREATE_TRIGGER_STMT; } } else if(DBGroupDefine.CUBRID_GROUP == userDB.getDBGroup()) { if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TABLES) { defaultStr = CubridDMLTemplate.TMP_CREATE_TABLE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.VIEWS) { defaultStr = CubridDMLTemplate.TMP_CREATE_VIEW_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.INDEXES) { defaultStr = CubridDMLTemplate.TMP_CREATE_INDEX_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.PROCEDURES) { defaultStr = CubridDMLTemplate.TMP_CREATE_PROCEDURE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.FUNCTIONS) { defaultStr = CubridDMLTemplate.TMP_CREATE_FUNCTION_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TRIGGERS) { defaultStr = CubridDMLTemplate.TMP_CREATE_TRIGGER_STMT; } } else if(DBGroupDefine.POSTGRE_GROUP == userDB.getDBGroup()) { if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TABLES) { defaultStr = PostgreDMLTemplate.TMP_CREATE_TABLE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.VIEWS) { defaultStr = PostgreDMLTemplate.TMP_CREATE_VIEW_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.INDEXES) { defaultStr = PostgreDMLTemplate.TMP_CREATE_INDEX_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.PROCEDURES) { defaultStr = PostgreDMLTemplate.TMP_CREATE_PROCEDURE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.FUNCTIONS) { defaultStr = PostgreDMLTemplate.TMP_CREATE_FUNCTION_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TRIGGERS) { defaultStr = PostgreDMLTemplate.TMP_CREATE_TRIGGER_STMT; } } else if(DBGroupDefine.HIVE_GROUP == userDB.getDBGroup()) { if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TABLES) { defaultStr = HIVEDMLTemplate.TMP_CREATE_TABLE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.VIEWS) { defaultStr = HIVEDMLTemplate.TMP_CREATE_VIEW_STMT; } } else if(DBGroupDefine.TAJO_GROUP == userDB.getDBGroup()) { defaultStr = TAJODMLTemplate.TMP_CREATE_TABLE_STMT; } else if(DBGroupDefine.MSSQL_GROUP == userDB.getDBGroup()) { if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TABLES) { defaultStr = MSSQLDMLTemplate.TMP_CREATE_TABLE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.VIEWS) { defaultStr = MSSQLDMLTemplate.TMP_CREATE_VIEW_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.INDEXES) { defaultStr = MSSQLDMLTemplate.TMP_CREATE_INDEX_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.CONSTRAINTS) { defaultStr = MSSQLDMLTemplate.TMP_CREATE_CONSTRAINTS_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.PROCEDURES) { defaultStr = MSSQLDMLTemplate.TMP_CREATE_PROCEDURE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.FUNCTIONS) { defaultStr = MSSQLDMLTemplate.TMP_CREATE_FUNCTION_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TRIGGERS) { defaultStr = MSSQLDMLTemplate.TMP_CREATE_TRIGGER_STMT; } } else if(DBGroupDefine.ALTIBASE_GROUP == userDB.getDBGroup()) { if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TABLES) { defaultStr = AltibaseDMLTemplate.TMP_CREATE_TABLE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.VIEWS) { defaultStr = AltibaseDMLTemplate.TMP_CREATE_VIEW_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.INDEXES) { defaultStr = AltibaseDMLTemplate.TMP_CREATE_INDEX_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.PROCEDURES) { defaultStr = AltibaseDMLTemplate.TMP_CREATE_PROCEDURE_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.FUNCTIONS) { defaultStr = AltibaseDMLTemplate.TMP_CREATE_FUNCTION_STMT; } else if(initAction == PublicTadpoleDefine.OBJECT_TYPE.TRIGGERS) { defaultStr = AltibaseDMLTemplate.TMP_CREATE_TRIGGER_STMT; } } if(StringUtils.isBlank(defaultStr)){ defaultStr = initAction.name() + "의 CREATE문 템플릿이 정의되지 않았습니다."; } if(!StringUtils.isBlank(userDB.getSchema())){ defaultStr = StringUtils.replace(defaultStr, "{#schema#}", userDB.getSchema()); }else{ defaultStr = StringUtils.replace(defaultStr, "{#schema#}.", ""); } return defaultStr; } }