package com.chenyang.druid.sql.dialect.oracle.visitor;

import com.chenyang.druid.sql.dialect.oracle.ast.OracleDataTypeIntervalDay;
import com.chenyang.druid.sql.dialect.oracle.ast.OracleDataTypeIntervalYear;
import com.chenyang.druid.sql.dialect.oracle.ast.clause.CycleClause;
import com.chenyang.druid.sql.dialect.oracle.ast.clause.ModelClause;
import com.chenyang.druid.sql.dialect.oracle.ast.clause.OracleLobStorageClause;
import com.chenyang.druid.sql.dialect.oracle.ast.clause.OracleReturningClause;
import com.chenyang.druid.sql.dialect.oracle.ast.clause.OracleStorageClause;
import com.chenyang.druid.sql.dialect.oracle.ast.clause.OracleWithSubqueryEntry;
import com.chenyang.druid.sql.dialect.oracle.ast.clause.PartitionExtensionClause;
import com.chenyang.druid.sql.dialect.oracle.ast.clause.SampleClause;
import com.chenyang.druid.sql.dialect.oracle.ast.clause.SearchClause;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleAnalytic;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleAnalyticWindowing;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleArgumentExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleBinaryDoubleExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleBinaryFloatExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleCursorExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleDatetimeExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleIntervalExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleIsOfTypeExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleIsSetExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleJsonArrayAggExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleJsonObjectExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleMethodInvokeAccessExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleMultisetExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleOuterExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleRangeExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleSysdateExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleTreatExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.expr.OracleXmlContentExpr;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleAlterSessionStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleAlterSynonymStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleAlterTableDropPartition;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleAlterTableModify;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleAlterTableMoveTablespace;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleAlterTableSplitPartition;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleAlterTableTruncatePartition;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleAlterTablespaceAddDataFile;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleAlterTablespaceStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleAlterTriggerStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleAlterViewStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleCheck;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleContinueStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleCreateDatabaseDbLinkStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleCreateIndexStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleCreatePackageStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleCreateSynonymStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleCreateTableStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleCreateTypeStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleDeleteStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleDropDbLinkStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleExceptionStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleExecuteImmediateStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleExitStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleExplainStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleFileSpecification;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleForStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleForeignKey;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleGotoStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleInsertStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleLabelStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleLockTableStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleMultiInsertStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OraclePipeRowStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OraclePrimaryKey;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleRaiseStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleRunStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleSelectJoin;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleSelectPivot;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleSelectQueryBlock;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleSelectRestriction;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleSelectSubqueryTableSource;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleSelectTableReference;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleSelectUnPivot;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleSetTransactionStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleSupplementalIdKey;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleSupplementalLogGrp;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleUnique;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleUpdateStatement;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleUsingIndexClause;
import com.chenyang.druid.sql.dialect.oracle.ast.stmt.OracleXmlColumnProperties;
import com.chenyang.druid.sql.visitor.SQLASTVisitor;

public interface OracleASTVisitor extends SQLASTVisitor {
   void endVisit(OracleAnalytic var1);

   void endVisit(OracleAnalyticWindowing var1);

   void endVisit(OracleDeleteStatement var1);

   void endVisit(OracleIntervalExpr var1);

   void endVisit(OracleOuterExpr var1);

   void endVisit(OracleSelectJoin var1);

   void endVisit(OracleSelectPivot var1);

   void endVisit(OracleSelectPivot.Item var1);

   void endVisit(OracleSelectRestriction.CheckOption var1);

   void endVisit(OracleSelectRestriction.ReadOnly var1);

   void endVisit(OracleSelectSubqueryTableSource var1);

   void endVisit(OracleSelectUnPivot var1);

   void endVisit(OracleUpdateStatement var1);

   boolean visit(OracleAnalytic var1);

   boolean visit(OracleAnalyticWindowing var1);

   boolean visit(OracleDeleteStatement var1);

   boolean visit(OracleIntervalExpr var1);

   boolean visit(OracleOuterExpr var1);

   boolean visit(OracleSelectJoin var1);

   boolean visit(OracleSelectPivot var1);

   boolean visit(OracleSelectPivot.Item var1);

   boolean visit(OracleSelectRestriction.CheckOption var1);

   boolean visit(OracleSelectRestriction.ReadOnly var1);

   boolean visit(OracleSelectSubqueryTableSource var1);

   boolean visit(OracleSelectUnPivot var1);

   boolean visit(OracleUpdateStatement var1);

   boolean visit(SampleClause var1);

   void endVisit(SampleClause var1);

   boolean visit(OracleSelectTableReference var1);

   void endVisit(OracleSelectTableReference var1);

   boolean visit(PartitionExtensionClause var1);

   void endVisit(PartitionExtensionClause var1);

   boolean visit(OracleWithSubqueryEntry var1);

   void endVisit(OracleWithSubqueryEntry var1);

   boolean visit(SearchClause var1);

   void endVisit(SearchClause var1);

   boolean visit(CycleClause var1);

   void endVisit(CycleClause var1);

   boolean visit(OracleBinaryFloatExpr var1);

   void endVisit(OracleBinaryFloatExpr var1);

   boolean visit(OracleBinaryDoubleExpr var1);

   void endVisit(OracleBinaryDoubleExpr var1);

   boolean visit(OracleCursorExpr var1);

   void endVisit(OracleCursorExpr var1);

   boolean visit(OracleIsSetExpr var1);

   void endVisit(OracleIsSetExpr var1);

   boolean visit(ModelClause.ReturnRowsClause var1);

   void endVisit(ModelClause.ReturnRowsClause var1);

   boolean visit(ModelClause.MainModelClause var1);

   void endVisit(ModelClause.MainModelClause var1);

   boolean visit(ModelClause.ModelColumnClause var1);

   void endVisit(ModelClause.ModelColumnClause var1);

   boolean visit(ModelClause.QueryPartitionClause var1);

   void endVisit(ModelClause.QueryPartitionClause var1);

   boolean visit(ModelClause.ModelColumn var1);

   void endVisit(ModelClause.ModelColumn var1);

   boolean visit(ModelClause.ModelRulesClause var1);

   void endVisit(ModelClause.ModelRulesClause var1);

   boolean visit(ModelClause.CellAssignmentItem var1);

   void endVisit(ModelClause.CellAssignmentItem var1);

   boolean visit(ModelClause.CellAssignment var1);

   void endVisit(ModelClause.CellAssignment var1);

   boolean visit(ModelClause var1);

   void endVisit(ModelClause var1);

   boolean visit(OracleReturningClause var1);

   void endVisit(OracleReturningClause var1);

   boolean visit(OracleInsertStatement var1);

   void endVisit(OracleInsertStatement var1);

   boolean visit(OracleMultiInsertStatement.InsertIntoClause var1);

   void endVisit(OracleMultiInsertStatement.InsertIntoClause var1);

   boolean visit(OracleMultiInsertStatement var1);

   void endVisit(OracleMultiInsertStatement var1);

   boolean visit(OracleMultiInsertStatement.ConditionalInsertClause var1);

   void endVisit(OracleMultiInsertStatement.ConditionalInsertClause var1);

   boolean visit(OracleMultiInsertStatement.ConditionalInsertClauseItem var1);

   void endVisit(OracleMultiInsertStatement.ConditionalInsertClauseItem var1);

   boolean visit(OracleSelectQueryBlock var1);

   void endVisit(OracleSelectQueryBlock var1);

   boolean visit(OracleLockTableStatement var1);

   void endVisit(OracleLockTableStatement var1);

   boolean visit(OracleAlterSessionStatement var1);

   void endVisit(OracleAlterSessionStatement var1);

   boolean visit(OracleDatetimeExpr var1);

   void endVisit(OracleDatetimeExpr var1);

   boolean visit(OracleSysdateExpr var1);

   void endVisit(OracleSysdateExpr var1);

   boolean visit(OracleExceptionStatement var1);

   void endVisit(OracleExceptionStatement var1);

   boolean visit(OracleExceptionStatement.Item var1);

   void endVisit(OracleExceptionStatement.Item var1);

   boolean visit(OracleArgumentExpr var1);

   void endVisit(OracleArgumentExpr var1);

   boolean visit(OracleSetTransactionStatement var1);

   void endVisit(OracleSetTransactionStatement var1);

   boolean visit(OracleExplainStatement var1);

   void endVisit(OracleExplainStatement var1);

   boolean visit(OracleAlterTableDropPartition var1);

   void endVisit(OracleAlterTableDropPartition var1);

   boolean visit(OracleAlterTableTruncatePartition var1);

   void endVisit(OracleAlterTableTruncatePartition var1);

   boolean visit(OracleAlterTableSplitPartition.TableSpaceItem var1);

   void endVisit(OracleAlterTableSplitPartition.TableSpaceItem var1);

   boolean visit(OracleAlterTableSplitPartition.UpdateIndexesClause var1);

   void endVisit(OracleAlterTableSplitPartition.UpdateIndexesClause var1);

   boolean visit(OracleAlterTableSplitPartition.NestedTablePartitionSpec var1);

   void endVisit(OracleAlterTableSplitPartition.NestedTablePartitionSpec var1);

   boolean visit(OracleAlterTableSplitPartition var1);

   void endVisit(OracleAlterTableSplitPartition var1);

   boolean visit(OracleAlterTableModify var1);

   void endVisit(OracleAlterTableModify var1);

   boolean visit(OracleCreateIndexStatement var1);

   void endVisit(OracleCreateIndexStatement var1);

   boolean visit(OracleForStatement var1);

   void endVisit(OracleForStatement var1);

   boolean visit(OracleRangeExpr var1);

   void endVisit(OracleRangeExpr var1);

   boolean visit(OraclePrimaryKey var1);

   void endVisit(OraclePrimaryKey var1);

   boolean visit(OracleCreateTableStatement var1);

   void endVisit(OracleCreateTableStatement var1);

   boolean visit(OracleStorageClause var1);

   void endVisit(OracleStorageClause var1);

   boolean visit(OracleGotoStatement var1);

   void endVisit(OracleGotoStatement var1);

   boolean visit(OracleLabelStatement var1);

   void endVisit(OracleLabelStatement var1);

   boolean visit(OracleAlterTriggerStatement var1);

   void endVisit(OracleAlterTriggerStatement var1);

   boolean visit(OracleAlterSynonymStatement var1);

   void endVisit(OracleAlterSynonymStatement var1);

   boolean visit(OracleAlterViewStatement var1);

   void endVisit(OracleAlterViewStatement var1);

   boolean visit(OracleAlterTableMoveTablespace var1);

   void endVisit(OracleAlterTableMoveTablespace var1);

   boolean visit(OracleFileSpecification var1);

   void endVisit(OracleFileSpecification var1);

   boolean visit(OracleAlterTablespaceAddDataFile var1);

   void endVisit(OracleAlterTablespaceAddDataFile var1);

   boolean visit(OracleAlterTablespaceStatement var1);

   void endVisit(OracleAlterTablespaceStatement var1);

   boolean visit(OracleExitStatement var1);

   void endVisit(OracleExitStatement var1);

   boolean visit(OracleContinueStatement var1);

   void endVisit(OracleContinueStatement var1);

   boolean visit(OracleRaiseStatement var1);

   void endVisit(OracleRaiseStatement var1);

   boolean visit(OracleCreateDatabaseDbLinkStatement var1);

   void endVisit(OracleCreateDatabaseDbLinkStatement var1);

   boolean visit(OracleDropDbLinkStatement var1);

   void endVisit(OracleDropDbLinkStatement var1);

   boolean visit(OracleDataTypeIntervalYear var1);

   void endVisit(OracleDataTypeIntervalYear var1);

   boolean visit(OracleDataTypeIntervalDay var1);

   void endVisit(OracleDataTypeIntervalDay var1);

   boolean visit(OracleUsingIndexClause var1);

   void endVisit(OracleUsingIndexClause var1);

   boolean visit(OracleLobStorageClause var1);

   void endVisit(OracleLobStorageClause var1);

   boolean visit(OracleUnique var1);

   void endVisit(OracleUnique var1);

   boolean visit(OracleForeignKey var1);

   void endVisit(OracleForeignKey var1);

   boolean visit(OracleCheck var1);

   void endVisit(OracleCheck var1);

   boolean visit(OracleSupplementalIdKey var1);

   void endVisit(OracleSupplementalIdKey var1);

   boolean visit(OracleSupplementalLogGrp var1);

   void endVisit(OracleSupplementalLogGrp var1);

   boolean visit(OracleCreateTableStatement.Organization var1);

   void endVisit(OracleCreateTableStatement.Organization var1);

   boolean visit(OracleCreateTableStatement.OIDIndex var1);

   void endVisit(OracleCreateTableStatement.OIDIndex var1);

   boolean visit(OracleCreatePackageStatement var1);

   void endVisit(OracleCreatePackageStatement var1);

   boolean visit(OracleExecuteImmediateStatement var1);

   void endVisit(OracleExecuteImmediateStatement var1);

   boolean visit(OracleTreatExpr var1);

   void endVisit(OracleTreatExpr var1);

   boolean visit(OracleCreateSynonymStatement var1);

   void endVisit(OracleCreateSynonymStatement var1);

   boolean visit(OracleCreateTypeStatement var1);

   void endVisit(OracleCreateTypeStatement var1);

   boolean visit(OraclePipeRowStatement var1);

   void endVisit(OraclePipeRowStatement var1);

   boolean visit(OracleIsOfTypeExpr var1);

   void endVisit(OracleIsOfTypeExpr var1);

   boolean visit(OracleRunStatement var1);

   void endVisit(OracleRunStatement var1);

   boolean visit(OracleXmlColumnProperties var1);

   void endVisit(OracleXmlColumnProperties var1);

   boolean visit(OracleXmlColumnProperties.OracleXMLTypeStorage var1);

   void endVisit(OracleXmlColumnProperties.OracleXMLTypeStorage var1);

   boolean visit(OracleXmlContentExpr var1);

   void endVisit(OracleXmlContentExpr var1);

   boolean visit(OracleMethodInvokeAccessExpr var1);

   void endVisit(OracleMethodInvokeAccessExpr var1);

   boolean visit(OracleMultisetExpr var1);

   void endVisit(OracleMultisetExpr var1);

   boolean visit(OracleJsonObjectExpr var1);

   void endVisit(OracleJsonObjectExpr var1);

   boolean visit(OracleJsonObjectExpr.OracleJsonObjectExprItem var1);

   void endVisit(OracleJsonObjectExpr.OracleJsonObjectExprItem var1);

   boolean visit(OracleJsonObjectExpr.OracleJsonObjectOnNullClause var1);

   void endVisit(OracleJsonObjectExpr.OracleJsonObjectOnNullClause var1);

   boolean visit(OracleJsonObjectExpr.OracleJsonObjectReturnClause var1);

   void endVisit(OracleJsonObjectExpr.OracleJsonObjectReturnClause var1);

   boolean visit(OracleJsonArrayAggExpr var1);

   void endVisit(OracleJsonArrayAggExpr var1);

   boolean visit(OracleJsonArrayAggExpr.OracleJsonAggArrayOnNullClause var1);

   void endVisit(OracleJsonArrayAggExpr.OracleJsonAggArrayOnNullClause var1);

   boolean visit(OracleJsonArrayAggExpr.OracleJsonAggArrayReturnClause var1);

   void endVisit(OracleJsonArrayAggExpr.OracleJsonAggArrayReturnClause var1);
}
