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

import com.chenyang.druid.DbType;
import com.chenyang.druid.sql.ast.SQLExpr;
import com.chenyang.druid.sql.ast.SQLStatementImpl;
import com.chenyang.druid.sql.dialect.db2.visitor.DB2ASTVisitor;
import com.chenyang.druid.sql.visitor.SQLASTVisitor;

public class DB2LockTableStatement extends SQLStatementImpl implements DB2SQLStatement {
   private SQLExpr tableName;
   private boolean accessShare;
   private boolean rowShare;
   private boolean rowExclusive;
   private boolean share;
   private boolean shareRowExclusive;
   private boolean exclusive;
   private boolean accessExclusive;
   private boolean nowait;

   public SQLExpr getTableName() {
      return this.tableName;
   }

   public void setTableName(SQLExpr tableName) {
      this.tableName = tableName;
   }

   public boolean isAccessShare() {
      return this.accessShare;
   }

   public void setAccessShare(boolean accessShare) {
      this.accessShare = accessShare;
   }

   public boolean isRowShare() {
      return this.rowShare;
   }

   public void setRowShare(boolean rowShare) {
      this.rowShare = rowShare;
   }

   public boolean isRowExclusive() {
      return this.rowExclusive;
   }

   public void setRowExclusive(boolean rowExclusive) {
      this.rowExclusive = rowExclusive;
   }

   public boolean isShare() {
      return this.share;
   }

   public void setShare(boolean share) {
      this.share = share;
   }

   public boolean isShareRowExclusive() {
      return this.shareRowExclusive;
   }

   public void setShareRowExclusive(boolean shareRowExclusive) {
      this.shareRowExclusive = shareRowExclusive;
   }

   public boolean isExclusive() {
      return this.exclusive;
   }

   public void setExclusive(boolean exclusive) {
      this.exclusive = exclusive;
   }

   public boolean isAccessExclusive() {
      return this.accessExclusive;
   }

   public void setAccessExclusive(boolean accessExclusive) {
      this.accessExclusive = accessExclusive;
   }

   public boolean isNowait() {
      return this.nowait;
   }

   public void setNowait(boolean nowait) {
      this.nowait = nowait;
   }

   public DB2LockTableStatement() {
      this.dbType = DbType.db2;
   }

   protected void accept0(SQLASTVisitor visitor) {
      this.accept0((DB2ASTVisitor)visitor);
   }

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

      visitor.endVisit(this);
   }
}
