package com.chenyang.druid.sql.dialect.gauss.ast;

import com.chenyang.druid.sql.ast.SQLName;
import com.chenyang.druid.sql.ast.SQLPartitionBy;
import com.chenyang.druid.sql.dialect.gauss.visitor.GaussASTVisitor;
import com.chenyang.druid.sql.visitor.SQLASTVisitor;
import java.util.ArrayList;

public class GaussSQLPartitionBy extends SQLPartitionBy {
   private SQLName column;
   private SQLName partitionType;
   private ArrayList<GaussSQLPartitionBy> subPartitionByList = new ArrayList();
   private ArrayList<GaussSQLPartition> partitionList = new ArrayList();
   private boolean ifUseTemplate;
   private boolean ifSubPartitionBy;

   public boolean isIfUseTemplate() {
      return this.ifUseTemplate;
   }

   public void setIfUseTemplate(boolean ifUseTemplate) {
      this.ifUseTemplate = ifUseTemplate;
   }

   public boolean isIfSubPartitionBy() {
      return this.ifSubPartitionBy;
   }

   public void setIfSubPartitionBy(boolean ifSubPartitionBy) {
      this.ifSubPartitionBy = ifSubPartitionBy;
   }

   public SQLName getColumn() {
      return this.column;
   }

   public void setColumn(SQLName column) {
      this.column = column;
   }

   public SQLName getPartitionType() {
      return this.partitionType;
   }

   public void setPartitionType(SQLName partitionType) {
      this.partitionType = partitionType;
   }

   public ArrayList<GaussSQLPartitionBy> getSubPartitionByList() {
      return this.subPartitionByList;
   }

   public void setSubPartitionByList(ArrayList<GaussSQLPartitionBy> subPartitionByList) {
      this.subPartitionByList = subPartitionByList;
   }

   public ArrayList<GaussSQLPartition> getPartitionList() {
      return this.partitionList;
   }

   public void setPartitionList(ArrayList<GaussSQLPartition> partitionList) {
      this.partitionList = partitionList;
   }

   public void accept0(SQLASTVisitor visitor) {
      this.accept0((GaussASTVisitor)visitor);
   }

   public void accept0(GaussASTVisitor visitor) {
      visitor.visit(this);
   }

   public SQLPartitionBy clone() {
      return null;
   }
}
