/******************************************************************************* * 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.engine.sql.util.sqlscripts.scripts; import java.util.HashMap; import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine; import com.hangum.tadpole.engine.manager.TadpoleSQLManager; import com.hangum.tadpole.engine.query.dao.mysql.ProcedureFunctionDAO; import com.hangum.tadpole.engine.query.dao.mysql.TriggerDAO; import com.hangum.tadpole.engine.query.dao.system.UserDBDAO; import com.ibatis.sqlmap.client.SqlMapClient; /** * Oracle DDL Script * * * @author hangum * */ public class TiberoDDLScript extends OracleDDLScript { private static final Logger logger = Logger.getLogger(TiberoDDLScript.class); public TiberoDDLScript(UserDBDAO userDB, PublicTadpoleDefine.OBJECT_TYPE actionType) { super(userDB, actionType); } /* (non-Javadoc) * @see com.hangum.tadpole.rdb.core.editors.objects.table.scripts.RDBDDLScript#getFunctionScript(com.hangum.tadpole.dao.mysql.ProcedureFunctionDAO) */ @Override public String getFunctionScript(ProcedureFunctionDAO functionDAO) throws Exception { SqlMapClient client = TadpoleSQLManager.getInstance(userDB); if(logger.isDebugEnabled()) logger.debug("\n Function DDL Generation..."); HashMap<String, String>paramMap = new HashMap<String, String>(); paramMap.put("schema_name", functionDAO.getSchema_name() == null ? userDB.getSchema() : functionDAO.getSchema_name()); //$NON-NLS-1$ paramMap.put("object_name", StringUtils.replace(functionDAO.getSysName(), "\"", "")); //$NON-NLS-1$ StringBuilder result = new StringBuilder(""); List<String> srcScriptList = client.queryForList("getFunctionScript", paramMap); if(srcScriptList.isEmpty()) { return strMSG_BlankScript; } else { for (int i=0; i<srcScriptList.size(); i++){ result.append( srcScriptList.get(i)); } return result.toString(); } } /* (non-Javadoc) * @see com.hangum.tadpole.rdb.core.editors.objects.table.scripts.RDBDDLScript#getProcedureScript(com.hangum.tadpole.dao.mysql.ProcedureFunctionDAO) */ @Override public String getProcedureScript(ProcedureFunctionDAO procedureDAO) throws Exception { SqlMapClient client = TadpoleSQLManager.getInstance(userDB); if(logger.isDebugEnabled()) logger.debug("\n Procedure DDL Generation..."); HashMap<String, String>paramMap = new HashMap<String, String>(); paramMap.put("schema_name", procedureDAO.getSchema_name() == null ? userDB.getSchema() : procedureDAO.getSchema_name()); //$NON-NLS-1$ paramMap.put("object_name", procedureDAO.getName()); //$NON-NLS-1$ StringBuilder result = new StringBuilder(""); String objType = (String)client.queryForObject("getSourceObjectType", paramMap); List<String> srcScriptList = null; if (StringUtils.contains(objType, "PROCEDURE")){ srcScriptList = client.queryForList("getProcedureScript", paramMap); if(srcScriptList.isEmpty()) { return strMSG_BlankScript; } else { for (int i=0; i<srcScriptList.size(); i++){ result.append( srcScriptList.get(i)); } } }else if (StringUtils.contains(objType, "PACKAGE")){ result.append("/* STATEMENT PACKAGE BODY " + procedureDAO.getName() + "; */ \n\n"); result.append("/* STATEMENT PACKAGE " + procedureDAO.getName() + "; */ \n\n"); srcScriptList = client.queryForList("getPackageScript.head", paramMap); if(srcScriptList.isEmpty()) { return strMSG_BlankScript; } else { for (int i=0; i<srcScriptList.size(); i++){ result.append( srcScriptList.get(i)); } result.append("/ \n\n "); srcScriptList = client.queryForList("getPackageScript.body", paramMap); for (int i=0; i<srcScriptList.size(); i++){ result.append( srcScriptList.get(i)); } result.append("/ \n\n "); } } return result.toString(); } /* (non-Javadoc) * @see com.hangum.tadpole.rdb.core.editors.objects.table.scripts.RDBDDLScript#getTriggerScript(com.hangum.tadpole.dao.mysql.TriggerDAO) */ @Override public String getTriggerScript(TriggerDAO triggerDAO) throws Exception { SqlMapClient client = TadpoleSQLManager.getInstance(userDB); String objectName = triggerDAO.getTrigger(); if(logger.isDebugEnabled()) logger.debug("\n Trigger DDL Generation..."); HashMap<String, String>paramMap = new HashMap<String, String>(); paramMap.put("schema_name", triggerDAO.getSchema_name() == null ? userDB.getSchema() : triggerDAO.getSchema_name()); //$NON-NLS-1$ paramMap.put("object_name", triggerDAO.getTrigger()); //$NON-NLS-1$ StringBuilder result = new StringBuilder(""); List<String> srcScriptList = client.queryForList("getTriggerScript", paramMap); if(srcScriptList.isEmpty()) { return strMSG_BlankScript; } else { for (int i=0; i<srcScriptList.size(); i++){ result.append( srcScriptList.get(i)); } return result.toString(); } } }