/*******************************************************************************
* Copyright (c) 2015 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.parser.ddl;
import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine.QUERY_DDL_STATUS;
import com.hangum.tadpole.commons.libs.core.define.PublicTadpoleDefine.QUERY_DDL_TYPE;
/**
* define ddl
*
* @author hangum
*
*/
public enum DefineDDL {
TABLE_CREATE("CREATE\\s+TABLE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.TABLE, QUERY_DDL_STATUS.CREATE),
TABLE_ALTER("ALTER\\s+TABLE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.TABLE, QUERY_DDL_STATUS.ALTER),
TABLE_DROP("DROP\\s+TABLE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.TABLE, QUERY_DDL_STATUS.DROP),
VIEW_CREATE("CREATE\\s+VIEW\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.VIEW, QUERY_DDL_STATUS.CREATE),
VIEW_CREATE_REPLACE("CREATE\\s+OR\\s+REPLACE\\s+VIEW\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.VIEW, QUERY_DDL_STATUS.CREATE),
VIEW_ALTER("ALTER\\s+VIEW\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.VIEW, QUERY_DDL_STATUS.ALTER),
VIEW_DROP("DROP\\s+VIEW\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.VIEW, QUERY_DDL_STATUS.DROP),
SYNONYM_CREATE("CREATE\\s+SYNONYM\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.SYNONYM, QUERY_DDL_STATUS.CREATE),
SYNONYM_CREATE_REPLACE("CREATE\\s+OR\\s+REPLACE\\s+SYNONYM\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.SYNONYM, QUERY_DDL_STATUS.CREATE),
SYNONYM_ALTER("ALTER\\s+SYNONYM\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.SYNONYM, QUERY_DDL_STATUS.ALTER),
SYNONYM_DROP("DROP\\s+SYNONYM\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.SYNONYM, QUERY_DDL_STATUS.DROP),
// SEQUENCE
SEQUENCE_CREATE("CREATE\\s+SEQUENCE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.SEQUENCE, QUERY_DDL_STATUS.CREATE),
SEQUENCE_ALTER("ALTER\\s+SEQUENCE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.SEQUENCE, QUERY_DDL_STATUS.ALTER),
SEQUENCE_DROP("DROP\\s+SEQUENCE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.SEQUENCE, QUERY_DDL_STATUS.DROP),
// jobs
JOBS_CREATE("\\s+([A-Z0-9_\\.\"'`]+)SYS.DBMS_JOB.ISUBMIT\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.JOBS, QUERY_DDL_STATUS.CREATE),
JOBS_ALTER("\\s+([A-Z0-9_\\.\"'`]+)SYS.DBMS_JOB.REMOVE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.JOBS, QUERY_DDL_STATUS.ALTER),
JOBS_DROP("\\s+([A-Z0-9_\\.\"'`]+)SYS.DBMS_JOB.REMOVE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.JOBS, QUERY_DDL_STATUS.DROP),
PROCEDURE_CREATE("CREATE\\s+PROCEDURE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.PROCEDURE, QUERY_DDL_STATUS.CREATE),
PROCEDURE_CREATE_REPLACE("CREATE\\s+OR\\s+REPLACE\\s+PROCEDURE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.PROCEDURE, QUERY_DDL_STATUS.CREATE),
PROCEDURE_ALTER("ALTER\\s+PROCEDURE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.PROCEDURE, QUERY_DDL_STATUS.ALTER),
PROCEDURE_DROP("DROP\\s+PROCEDURE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.PROCEDURE, QUERY_DDL_STATUS.DROP),
FUNCTION_CREATE("CREATE\\s+FUNCTION\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.FUNCTION, QUERY_DDL_STATUS.CREATE),
FUNCTION_CREATE_REPLACE("CREATE\\s+OR\\s+REPLACE\\s+FUNCTION\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.FUNCTION, QUERY_DDL_STATUS.CREATE),
FUNCTION_ALTER("ALTER\\s+FUNCTION\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.FUNCTION, QUERY_DDL_STATUS.ALTER),
FUNCTION_DROP("DROP\\s+FUNCTION\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.FUNCTION, QUERY_DDL_STATUS.DROP),
PACKEAGE_CREATE("CREATE\\s+PACKAGE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.PACKAGE, QUERY_DDL_STATUS.CREATE),
PACKEAGE_CREATE_REPLACE("CREATE\\s+OR\\s+REPLACE\\s+PACKAGE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.PACKAGE, QUERY_DDL_STATUS.CREATE),
PACKAGE_ALTER("ALTER\\s+PACKAGE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.PACKAGE, QUERY_DDL_STATUS.ALTER),
PACKAGE_DROP("DROP\\s+PACKAGE\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.PACKAGE, QUERY_DDL_STATUS.DROP),
TRIGGER_CREATE("CREATE\\s+TRIGGER\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.TRIGGER, QUERY_DDL_STATUS.CREATE),
TRIGGER_CREATE_REPLACE("CREATE\\s+OR\\s+REPLACE\\s+TRIGGER\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.TRIGGER, QUERY_DDL_STATUS.CREATE),
TRIGGER_ALTER("ALTER\\s+TRIGGER\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.TRIGGER, QUERY_DDL_STATUS.ALTER),
TRIGGER_DROP("DROP\\s+TRIGGER\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.TRIGGER, QUERY_DDL_STATUS.DROP),
DBLINK_CREATE("CREATE\\s+DATABASE\\s+LINK\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.LINK, QUERY_DDL_STATUS.CREATE),
DBLINK_CREATE_SHARED("CREATE\\s+SHARED\\s+DATABASE\\s+LINK\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.LINK, QUERY_DDL_STATUS.CREATE),
DBLINK_CREATE_PUBLIC("CREATE\\s+PUBLIC\\s+DATABASE\\s+LINK\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.LINK, QUERY_DDL_STATUS.CREATE),
DBLINK_CREATE_PUBLIC_SHARED("CREATE\\s+SHARED\\s+PUBLIC\\s+DATABASE\\s+LINK\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.LINK, QUERY_DDL_STATUS.CREATE),
DBLINK_ALTER("ALTER\\s+DATABASE\\s+LINK\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.LINK, QUERY_DDL_STATUS.ALTER),
DBLINK_ALTER_SHARED("ALTER\\s+SHARED\\s+DATABASE\\s+LINK\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.LINK, QUERY_DDL_STATUS.ALTER),
DBLINK_ALTER_PUBLIC("ALTER\\s+PUBLIC\\s+DATABASE\\s+LINK\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.LINK, QUERY_DDL_STATUS.ALTER),
DBLINK_ALTER_PUBLIC_SHARED("ALTER\\s+SHARED\\s+PUBLIC\\s+DATABASE\\s+LINK\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.LINK, QUERY_DDL_STATUS.ALTER),
DBLINK_DROP("DROP\\s+DATABASE\\s+LINK\\s+([A-Z0-9_\\.\"'`]+)", QUERY_DDL_TYPE.LINK, QUERY_DDL_STATUS.DROP)
// java
;
private String regExp;
private QUERY_DDL_TYPE ddlType;
private QUERY_DDL_STATUS ddlStatus;
private DefineDDL(String regExp, QUERY_DDL_TYPE ddlType, QUERY_DDL_STATUS ddlStatus) {
this.regExp = regExp;
this.ddlType = ddlType;
this.ddlStatus = ddlStatus;
}
/**
* @return the regExp
*/
public String getRegExp() {
return regExp;
}
/**
* @param regExp the regExp to set
*/
public void setRegExp(String regExp) {
this.regExp = regExp;
}
/**
* @return the ddlType
*/
public QUERY_DDL_TYPE getDdlType() {
return ddlType;
}
/**
* @param ddlType the ddlType to set
*/
public void setDdlType(QUERY_DDL_TYPE ddlType) {
this.ddlType = ddlType;
}
/**
* @return the ddlStatus
*/
public QUERY_DDL_STATUS getDdlStatus() {
return ddlStatus;
}
/**
* @param ddlStatus the ddlStatus to set
*/
public void setDdlStatus(QUERY_DDL_STATUS ddlStatus) {
this.ddlStatus = ddlStatus;
}
}