/**
* Alipay.com Inc.
* Copyright (c) 2004-2012 All Rights Reserved.
*/
package com.alipay.zdal.parser.sql.dialect.oracle.ast.clause;
import com.alipay.zdal.parser.sql.ast.SQLExpr;
import com.alipay.zdal.parser.sql.dialect.oracle.ast.OracleSQLObjectImpl;
import com.alipay.zdal.parser.sql.dialect.oracle.visitor.OracleASTVisitor;
/**
*
* @author ����
* @version $Id: FlashbackQueryClause.java, v 0.1 2012-11-17 ����3:41:42 Exp $
*/
public abstract class FlashbackQueryClause extends OracleSQLObjectImpl {
private static final long serialVersionUID = 1L;
private Type type;
public Type getType() {
return type;
}
public void setType(Type type) {
this.type = type;
}
public static enum Type {
SCN, TIMESTAMP
}
public static class VersionsFlashbackQueryClause extends FlashbackQueryClause {
private static final long serialVersionUID = 1L;
private SQLExpr begin;
private SQLExpr end;
public SQLExpr getBegin() {
return begin;
}
public void setBegin(SQLExpr begin) {
this.begin = begin;
}
public SQLExpr getEnd() {
return end;
}
public void setEnd(SQLExpr end) {
this.end = end;
}
@Override
public void accept0(OracleASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, begin);
acceptChild(visitor, end);
}
visitor.endVisit(this);
}
}
public static class AsOfFlashbackQueryClause extends FlashbackQueryClause {
private static final long serialVersionUID = 1L;
private SQLExpr expr;
public SQLExpr getExpr() {
return expr;
}
public void setExpr(SQLExpr expr) {
this.expr = expr;
}
@Override
public void accept0(OracleASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, expr);
}
visitor.endVisit(this);
}
}
public static class AsOfSnapshotClause extends FlashbackQueryClause {
private static final long serialVersionUID = 1L;
private SQLExpr expr;
public SQLExpr getExpr() {
return expr;
}
public void setExpr(SQLExpr expr) {
this.expr = expr;
}
@Override
public void accept0(OracleASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, expr);
}
visitor.endVisit(this);
}
}
}