package com.chenyang.druid.sql.ast.statement;

import com.chenyang.druid.sql.ast.SQLExpr;
import com.chenyang.druid.sql.ast.SQLName;
import com.chenyang.druid.sql.ast.SQLStatement;
import com.chenyang.druid.sql.ast.SQLStatementImpl;
import com.chenyang.druid.sql.visitor.SQLASTVisitor;

public class SQLCreateOutlineStatement extends SQLStatementImpl {
   private SQLName name;
   private SQLExpr where;
   private SQLStatement on;
   private SQLStatement to;

   public SQLName getName() {
      return this.name;
   }

   public void setName(SQLName x) {
      if (x != null) {
         x.setParent(this);
      }

      this.name = x;
   }

   public SQLStatement getOn() {
      return this.on;
   }

   public void setOn(SQLStatement x) {
      if (x != null) {
         x.setParent(this);
      }

      this.on = x;
   }

   public SQLStatement getTo() {
      return this.to;
   }

   public void setTo(SQLStatement x) {
      if (x != null) {
         x.setParent(this);
      }

      this.to = x;
   }

   protected void accept0(SQLASTVisitor v) {
      if (v.visit(this)) {
         this.acceptChild(v, this.name);
         this.acceptChild(v, this.where);
         this.acceptChild(v, this.on);
         this.acceptChild(v, this.to);
      }

      v.endVisit(this);
   }

   public SQLExpr getWhere() {
      return this.where;
   }

   public void setWhere(SQLExpr x) {
      if (x != null) {
         x.setParent(this);
      }

      this.where = x;
   }
}
