package com.alibaba.druid.sql.dialect.postgresql.ast;

import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLPartitionBy;
import com.alibaba.druid.sql.dialect.postgresql.visitor.PGASTVisitor;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
import java.util.ArrayList;

public class PGSQLPartitionBy extends SQLPartitionBy {
   private SQLName column;
   private SQLName partitionType;
   private ArrayList<PGSQLPartitionBy> subPartitionByList = new ArrayList();
   private ArrayList<PGSQLPartition> 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<PGSQLPartitionBy> getSubPartitionByList() {
      return this.subPartitionByList;
   }

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

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

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

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

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

   public SQLPartitionBy clone() {
      return null;
   }
}
