package com.chenyang.druid.sql.dialect.dm.ast.stmt;

import com.chenyang.druid.DbType;
import com.chenyang.druid.sql.ast.SQLName;
import com.chenyang.druid.sql.ast.statement.SQLAlterIndexStatement;
import com.chenyang.druid.sql.ast.statement.SQLAlterStatement;
import com.chenyang.druid.sql.ast.statement.SQLDDLStatement;
import com.chenyang.druid.sql.dialect.dm.visitor.DmASTVisitor;
import com.chenyang.druid.sql.visitor.SQLASTOutputVisitor;
import com.chenyang.druid.sql.visitor.SQLASTVisitor;

public class DmAlterIndexStatement extends SQLAlterIndexStatement implements SQLDDLStatement, SQLAlterStatement, DmStatement {
   private Boolean visible;
   private Boolean context;
   private Boolean noMonitoringUsage;
   private Boolean increment;
   private Boolean optimize;
   private Boolean online;
   private SQLName lexer;

   public DmAlterIndexStatement() {
      this.dbType = DbType.dm;
   }

   public void accept0(SQLASTVisitor v) {
      if (v instanceof DmASTVisitor) {
         this.accept0((DmASTVisitor)v);
      } else {
         if (v instanceof SQLASTOutputVisitor) {
            ((SQLASTOutputVisitor)v).print(this.toString());
         }

      }
   }

   public void accept0(DmASTVisitor visitor) {
      if (visitor.visit(this)) {
      }

      visitor.endVisit(this);
   }

   public Boolean getOptimize() {
      return this.optimize;
   }

   public void setOptimize(Boolean optimize) {
      this.optimize = optimize;
   }

   public Boolean getIncrement() {
      return this.increment;
   }

   public void setIncrement(Boolean increment) {
      this.increment = increment;
   }

   public Boolean getContext() {
      return this.context;
   }

   public void setContext(Boolean context) {
      this.context = context;
   }

   public Boolean getVisible() {
      return this.visible;
   }

   public void setVisible(Boolean visible) {
      this.visible = visible;
   }

   public Boolean getNoMonitoringUsage() {
      return this.noMonitoringUsage;
   }

   public void setNoMonitoringUsage(Boolean noMonitoringUsage) {
      this.noMonitoringUsage = noMonitoringUsage;
   }

   public SQLName getLexer() {
      return this.lexer;
   }

   public void setLexer(SQLName lexer) {
      this.lexer = lexer;
   }

   public Boolean getOnline() {
      return this.online;
   }

   public void setOnline(Boolean online) {
      this.online = online;
   }
}
