/*
* Copyright 1999-2017 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.druid.sql.dialect.oracle.visitor;
import com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeIntervalDay;
import com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeIntervalYear;
import com.alibaba.druid.sql.dialect.oracle.ast.OracleDataTypeTimestamp;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.CycleClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.FlashbackQueryClause.AsOfFlashbackQueryClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.FlashbackQueryClause.AsOfSnapshotClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.FlashbackQueryClause.VersionsFlashbackQueryClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.ModelClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleLobStorageClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleReturningClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleStorageClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.OracleWithSubqueryEntry;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.PartitionExtensionClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.SampleClause;
import com.alibaba.druid.sql.dialect.oracle.ast.clause.SearchClause;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAnalytic;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleAnalyticWindowing;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleArgumentExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleBinaryDoubleExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleBinaryFloatExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleCursorExpr;
import com.alibaba.druid.sql.ast.expr.SQLDateExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDatetimeExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDbLinkExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIntervalExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleIsSetExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleOuterExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleRangeExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleSizeExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleSysdateExpr;
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.*;
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMultiInsertStatement.ConditionalInsertClause;
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMultiInsertStatement.ConditionalInsertClauseItem;
import com.alibaba.druid.sql.dialect.oracle.ast.stmt.OracleMultiInsertStatement.InsertIntoClause;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public interface OracleASTVisitor extends SQLASTVisitor {
void endVisit(OraclePLSQLCommitStatement astNode);
void endVisit(OracleAnalytic x);
void endVisit(OracleAnalyticWindowing x);
void endVisit(SQLDateExpr x);
void endVisit(OracleDbLinkExpr x);
void endVisit(OracleDeleteStatement x);
void endVisit(OracleIntervalExpr x);
void endVisit(OracleOuterExpr x);
void endVisit(OracleSelectForUpdate x);
void endVisit(OracleSelectJoin x);
void endVisit(OracleSelectPivot x);
void endVisit(OracleSelectPivot.Item x);
void endVisit(OracleSelectRestriction.CheckOption x);
void endVisit(OracleSelectRestriction.ReadOnly x);
void endVisit(OracleSelectSubqueryTableSource x);
void endVisit(OracleSelectUnPivot x);
void endVisit(OracleUpdateStatement x);
boolean visit(OraclePLSQLCommitStatement astNode);
boolean visit(OracleAnalytic x);
boolean visit(OracleAnalyticWindowing x);
boolean visit(SQLDateExpr x);
boolean visit(OracleDbLinkExpr x);
boolean visit(OracleDeleteStatement x);
boolean visit(OracleIntervalExpr x);
boolean visit(OracleOuterExpr x);
boolean visit(OracleSelectForUpdate x);
boolean visit(OracleSelectJoin x);
boolean visit(OracleSelectPivot x);
boolean visit(OracleSelectPivot.Item x);
boolean visit(OracleSelectRestriction.CheckOption x);
boolean visit(OracleSelectRestriction.ReadOnly x);
boolean visit(OracleSelectSubqueryTableSource x);
boolean visit(OracleSelectUnPivot x);
boolean visit(OracleUpdateStatement x);
boolean visit(SampleClause x);
void endVisit(SampleClause x);
boolean visit(OracleSelectTableReference x);
void endVisit(OracleSelectTableReference x);
boolean visit(PartitionExtensionClause x);
void endVisit(PartitionExtensionClause x);
boolean visit(VersionsFlashbackQueryClause x);
void endVisit(VersionsFlashbackQueryClause x);
boolean visit(AsOfFlashbackQueryClause x);
void endVisit(AsOfFlashbackQueryClause x);
boolean visit(OracleWithSubqueryEntry x);
void endVisit(OracleWithSubqueryEntry x);
boolean visit(SearchClause x);
void endVisit(SearchClause x);
boolean visit(CycleClause x);
void endVisit(CycleClause x);
boolean visit(OracleBinaryFloatExpr x);
void endVisit(OracleBinaryFloatExpr x);
boolean visit(OracleBinaryDoubleExpr x);
void endVisit(OracleBinaryDoubleExpr x);
boolean visit(OracleSelect x);
void endVisit(OracleSelect x);
boolean visit(OracleCursorExpr x);
void endVisit(OracleCursorExpr x);
boolean visit(OracleIsSetExpr x);
void endVisit(OracleIsSetExpr x);
boolean visit(ModelClause.ReturnRowsClause x);
void endVisit(ModelClause.ReturnRowsClause x);
boolean visit(ModelClause.MainModelClause x);
void endVisit(ModelClause.MainModelClause x);
boolean visit(ModelClause.ModelColumnClause x);
void endVisit(ModelClause.ModelColumnClause x);
boolean visit(ModelClause.QueryPartitionClause x);
void endVisit(ModelClause.QueryPartitionClause x);
boolean visit(ModelClause.ModelColumn x);
void endVisit(ModelClause.ModelColumn x);
boolean visit(ModelClause.ModelRulesClause x);
void endVisit(ModelClause.ModelRulesClause x);
boolean visit(ModelClause.CellAssignmentItem x);
void endVisit(ModelClause.CellAssignmentItem x);
boolean visit(ModelClause.CellAssignment x);
void endVisit(ModelClause.CellAssignment x);
boolean visit(ModelClause x);
void endVisit(ModelClause x);
boolean visit(OracleReturningClause x);
void endVisit(OracleReturningClause x);
boolean visit(OracleInsertStatement x);
void endVisit(OracleInsertStatement x);
boolean visit(InsertIntoClause x);
void endVisit(InsertIntoClause x);
boolean visit(OracleMultiInsertStatement x);
void endVisit(OracleMultiInsertStatement x);
boolean visit(ConditionalInsertClause x);
void endVisit(ConditionalInsertClause x);
boolean visit(ConditionalInsertClauseItem x);
void endVisit(ConditionalInsertClauseItem x);
boolean visit(OracleSelectQueryBlock x);
void endVisit(OracleSelectQueryBlock x);
boolean visit(OracleLockTableStatement x);
void endVisit(OracleLockTableStatement x);
boolean visit(OracleAlterSessionStatement x);
void endVisit(OracleAlterSessionStatement x);
boolean visit(OracleExprStatement x);
void endVisit(OracleExprStatement x);
boolean visit(OracleDatetimeExpr x);
void endVisit(OracleDatetimeExpr x);
boolean visit(OracleSysdateExpr x);
void endVisit(OracleSysdateExpr x);
boolean visit(OracleExceptionStatement x);
void endVisit(OracleExceptionStatement x);
boolean visit(OracleExceptionStatement.Item x);
void endVisit(OracleExceptionStatement.Item x);
boolean visit(OracleArgumentExpr x);
void endVisit(OracleArgumentExpr x);
boolean visit(OracleSetTransactionStatement x);
void endVisit(OracleSetTransactionStatement x);
boolean visit(OracleExplainStatement x);
void endVisit(OracleExplainStatement x);
boolean visit(OracleAlterProcedureStatement x);
void endVisit(OracleAlterProcedureStatement x);
boolean visit(OracleAlterTableDropPartition x);
void endVisit(OracleAlterTableDropPartition x);
boolean visit(OracleAlterTableTruncatePartition x);
void endVisit(OracleAlterTableTruncatePartition x);
boolean visit(OracleAlterTableSplitPartition.TableSpaceItem x);
void endVisit(OracleAlterTableSplitPartition.TableSpaceItem x);
boolean visit(OracleAlterTableSplitPartition.UpdateIndexesClause x);
void endVisit(OracleAlterTableSplitPartition.UpdateIndexesClause x);
boolean visit(OracleAlterTableSplitPartition.NestedTablePartitionSpec x);
void endVisit(OracleAlterTableSplitPartition.NestedTablePartitionSpec x);
boolean visit(OracleAlterTableSplitPartition x);
void endVisit(OracleAlterTableSplitPartition x);
boolean visit(OracleAlterTableModify x);
void endVisit(OracleAlterTableModify x);
boolean visit(OracleCreateIndexStatement x);
void endVisit(OracleCreateIndexStatement x);
boolean visit(OracleForStatement x);
void endVisit(OracleForStatement x);
boolean visit(OracleRangeExpr x);
void endVisit(OracleRangeExpr x);
boolean visit(OracleAlterIndexStatement x);
void endVisit(OracleAlterIndexStatement x);
boolean visit(OraclePrimaryKey x);
void endVisit(OraclePrimaryKey x);
boolean visit(OracleCreateTableStatement x);
void endVisit(OracleCreateTableStatement x);
boolean visit(OracleAlterIndexStatement.Rebuild x);
void endVisit(OracleAlterIndexStatement.Rebuild x);
boolean visit(OracleStorageClause x);
void endVisit(OracleStorageClause x);
boolean visit(OracleGotoStatement x);
void endVisit(OracleGotoStatement x);
boolean visit(OracleLabelStatement x);
void endVisit(OracleLabelStatement x);
boolean visit(OracleCommitStatement x);
void endVisit(OracleCommitStatement x);
boolean visit(OracleAlterTriggerStatement x);
void endVisit(OracleAlterTriggerStatement x);
boolean visit(OracleAlterSynonymStatement x);
void endVisit(OracleAlterSynonymStatement x);
boolean visit(OracleAlterViewStatement x);
void endVisit(OracleAlterViewStatement x);
boolean visit(AsOfSnapshotClause x);
void endVisit(AsOfSnapshotClause x);
boolean visit(OracleAlterTableMoveTablespace x);
void endVisit(OracleAlterTableMoveTablespace x);
boolean visit(OracleSizeExpr x);
void endVisit(OracleSizeExpr x);
boolean visit(OracleFileSpecification x);
void endVisit(OracleFileSpecification x);
boolean visit(OracleAlterTablespaceAddDataFile x);
void endVisit(OracleAlterTablespaceAddDataFile x);
boolean visit(OracleAlterTablespaceStatement x);
void endVisit(OracleAlterTablespaceStatement x);
boolean visit(OracleExitStatement x);
void endVisit(OracleExitStatement x);
boolean visit(OracleConntinueStatement x);
void endVisit(OracleConntinueStatement x);
boolean visit(OracleRaiseStatement x);
void endVisit(OracleRaiseStatement x);
boolean visit(OracleSavePointStatement x);
void endVisit(OracleSavePointStatement x);
boolean visit(OracleCreateDatabaseDbLinkStatement x);
void endVisit(OracleCreateDatabaseDbLinkStatement x);
boolean visit(OracleDropDbLinkStatement x);
void endVisit(OracleDropDbLinkStatement x);
boolean visit(OracleDataTypeTimestamp x);
void endVisit(OracleDataTypeTimestamp x);
boolean visit(OracleDataTypeIntervalYear x);
void endVisit(OracleDataTypeIntervalYear x);
boolean visit(OracleDataTypeIntervalDay x);
void endVisit(OracleDataTypeIntervalDay x);
boolean visit(OracleUsingIndexClause x);
void endVisit(OracleUsingIndexClause x);
boolean visit(OracleLobStorageClause x);
void endVisit(OracleLobStorageClause x);
boolean visit(OracleUnique x);
void endVisit(OracleUnique x);
boolean visit(OracleForeignKey x);
void endVisit(OracleForeignKey x);
boolean visit(OracleCheck x);
void endVisit(OracleCheck x);
}