package com.chenyang.nse.bussiness.entity.orm.table.core;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.chenyang.nse.bussiness.entity.orm.table.TBaseEntity;
import com.chenyang.nse.bussiness.entity.orm.table.core.scopeproject.TProAttributeGroup;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(
   name = "T_CORE_COMPLIANCE_DIRECTORY"
)
public class TCoreComplianceDirectory extends TBaseEntity {
   @Column(
      length = 100
   )
   private String edition_id;
   @Column(
      length = 100
   )
   private String directory_id;
   @Column(
      length = 100
   )
   private String directory_name;
   @Column(
      length = 100
   )
   private String fa_tid;
   @Column(
      length = 100
   )
   private String chinese_name;
   @Column(
      length = 100
   )
   private String foreigh_name;
   @Column(
      length = 100
   )
   private String abbreviation;
   @Column(
      length = 100
   )
   private String public_name;
   @Column(
      length = 50
   )
   private String public_date;
   @Column(
      length = 50
   )
   private String implementation_date;
   @Column(
      length = 50
   )
   private String revised_date;
   @Column(
      length = 100
   )
   private String application_state;
   @Column(
      length = 100
   )
   private String directory_type;
   @Column(
      length = 50
   )
   private String create_user;
   @Column(
      length = 50
   )
   @JsonFormat(
      pattern = "yyyy-MM-dd HH:mm:ss"
   )
   private Date create_date;
   private String projectid;
   @Transient
   private List<TCoreComplianceDirectory> childrens = new ArrayList();
   @Transient
   private List<TProAttributeGroup> groups = new ArrayList();

   public String getDirectory_id() {
      return this.directory_id;
   }

   public void setDirectory_id(String directory_id) {
      this.directory_id = directory_id;
   }

   public String getDirectory_name() {
      return this.directory_name;
   }

   public void setDirectory_name(String directory_name) {
      this.directory_name = directory_name;
   }

   public String getFa_tid() {
      return this.fa_tid;
   }

   public void setFa_tid(String fa_tid) {
      this.fa_tid = fa_tid;
   }

   public String getChinese_name() {
      return this.chinese_name;
   }

   public void setChinese_name(String chinese_name) {
      this.chinese_name = chinese_name;
   }

   public String getForeigh_name() {
      return this.foreigh_name;
   }

   public void setForeigh_name(String foreigh_name) {
      this.foreigh_name = foreigh_name;
   }

   public String getAbbreviation() {
      return this.abbreviation;
   }

   public void setAbbreviation(String abbreviation) {
      this.abbreviation = abbreviation;
   }

   public String getPublic_name() {
      return this.public_name;
   }

   public void setPublic_name(String public_name) {
      this.public_name = public_name;
   }

   public String getPublic_date() {
      return this.public_date;
   }

   public void setPublic_date(String public_date) {
      this.public_date = public_date;
   }

   public String getImplementation_date() {
      return this.implementation_date;
   }

   public void setImplementation_date(String implementation_date) {
      this.implementation_date = implementation_date;
   }

   public String getRevised_date() {
      return this.revised_date;
   }

   public void setRevised_date(String revised_date) {
      this.revised_date = revised_date;
   }

   public String getApplication_state() {
      return this.application_state;
   }

   public void setApplication_state(String application_state) {
      this.application_state = application_state;
   }

   public String getDirectory_type() {
      return this.directory_type;
   }

   public void setDirectory_type(String directory_type) {
      this.directory_type = directory_type;
   }

   public String getCreate_user() {
      return this.create_user;
   }

   public void setCreate_user(String create_user) {
      this.create_user = create_user;
   }

   public Date getCreate_date() {
      return this.create_date;
   }

   public void setCreate_date(Date create_date) {
      this.create_date = create_date;
   }

   public String getProjectid() {
      return this.projectid;
   }

   public void setProjectid(String projectId) {
      this.projectid = projectId;
   }

   public String getEdition_id() {
      return this.edition_id;
   }

   public void setEdition_id(String edition_id) {
      this.edition_id = edition_id;
   }

   public List<TCoreComplianceDirectory> getChildrens() {
      return this.childrens;
   }

   public List<TProAttributeGroup> getGroups() {
      return this.groups;
   }

   public void setChildrens(final List<TCoreComplianceDirectory> childrens) {
      this.childrens = childrens;
   }

   public void setGroups(final List<TProAttributeGroup> groups) {
      this.groups = groups;
   }

   public boolean equals(final Object o) {
      if (o == this) {
         return true;
      } else if (!(o instanceof TCoreComplianceDirectory)) {
         return false;
      } else {
         TCoreComplianceDirectory other = (TCoreComplianceDirectory)o;
         if (!other.canEqual(this)) {
            return false;
         } else {
            Object this$edition_id = this.getEdition_id();
            Object other$edition_id = other.getEdition_id();
            if (this$edition_id == null) {
               if (other$edition_id != null) {
                  return false;
               }
            } else if (!this$edition_id.equals(other$edition_id)) {
               return false;
            }

            Object this$directory_id = this.getDirectory_id();
            Object other$directory_id = other.getDirectory_id();
            if (this$directory_id == null) {
               if (other$directory_id != null) {
                  return false;
               }
            } else if (!this$directory_id.equals(other$directory_id)) {
               return false;
            }

            Object this$directory_name = this.getDirectory_name();
            Object other$directory_name = other.getDirectory_name();
            if (this$directory_name == null) {
               if (other$directory_name != null) {
                  return false;
               }
            } else if (!this$directory_name.equals(other$directory_name)) {
               return false;
            }

            Object this$fa_tid = this.getFa_tid();
            Object other$fa_tid = other.getFa_tid();
            if (this$fa_tid == null) {
               if (other$fa_tid != null) {
                  return false;
               }
            } else if (!this$fa_tid.equals(other$fa_tid)) {
               return false;
            }

            Object this$chinese_name = this.getChinese_name();
            Object other$chinese_name = other.getChinese_name();
            if (this$chinese_name == null) {
               if (other$chinese_name != null) {
                  return false;
               }
            } else if (!this$chinese_name.equals(other$chinese_name)) {
               return false;
            }

            Object this$foreigh_name = this.getForeigh_name();
            Object other$foreigh_name = other.getForeigh_name();
            if (this$foreigh_name == null) {
               if (other$foreigh_name != null) {
                  return false;
               }
            } else if (!this$foreigh_name.equals(other$foreigh_name)) {
               return false;
            }

            Object this$abbreviation = this.getAbbreviation();
            Object other$abbreviation = other.getAbbreviation();
            if (this$abbreviation == null) {
               if (other$abbreviation != null) {
                  return false;
               }
            } else if (!this$abbreviation.equals(other$abbreviation)) {
               return false;
            }

            Object this$public_name = this.getPublic_name();
            Object other$public_name = other.getPublic_name();
            if (this$public_name == null) {
               if (other$public_name != null) {
                  return false;
               }
            } else if (!this$public_name.equals(other$public_name)) {
               return false;
            }

            Object this$public_date = this.getPublic_date();
            Object other$public_date = other.getPublic_date();
            if (this$public_date == null) {
               if (other$public_date != null) {
                  return false;
               }
            } else if (!this$public_date.equals(other$public_date)) {
               return false;
            }

            Object this$implementation_date = this.getImplementation_date();
            Object other$implementation_date = other.getImplementation_date();
            if (this$implementation_date == null) {
               if (other$implementation_date != null) {
                  return false;
               }
            } else if (!this$implementation_date.equals(other$implementation_date)) {
               return false;
            }

            Object this$revised_date = this.getRevised_date();
            Object other$revised_date = other.getRevised_date();
            if (this$revised_date == null) {
               if (other$revised_date != null) {
                  return false;
               }
            } else if (!this$revised_date.equals(other$revised_date)) {
               return false;
            }

            Object this$application_state = this.getApplication_state();
            Object other$application_state = other.getApplication_state();
            if (this$application_state == null) {
               if (other$application_state != null) {
                  return false;
               }
            } else if (!this$application_state.equals(other$application_state)) {
               return false;
            }

            Object this$directory_type = this.getDirectory_type();
            Object other$directory_type = other.getDirectory_type();
            if (this$directory_type == null) {
               if (other$directory_type != null) {
                  return false;
               }
            } else if (!this$directory_type.equals(other$directory_type)) {
               return false;
            }

            Object this$create_user = this.getCreate_user();
            Object other$create_user = other.getCreate_user();
            if (this$create_user == null) {
               if (other$create_user != null) {
                  return false;
               }
            } else if (!this$create_user.equals(other$create_user)) {
               return false;
            }

            Object this$create_date = this.getCreate_date();
            Object other$create_date = other.getCreate_date();
            if (this$create_date == null) {
               if (other$create_date != null) {
                  return false;
               }
            } else if (!this$create_date.equals(other$create_date)) {
               return false;
            }

            Object this$projectid = this.getProjectid();
            Object other$projectid = other.getProjectid();
            if (this$projectid == null) {
               if (other$projectid != null) {
                  return false;
               }
            } else if (!this$projectid.equals(other$projectid)) {
               return false;
            }

            Object this$childrens = this.getChildrens();
            Object other$childrens = other.getChildrens();
            if (this$childrens == null) {
               if (other$childrens != null) {
                  return false;
               }
            } else if (!this$childrens.equals(other$childrens)) {
               return false;
            }

            Object this$groups = this.getGroups();
            Object other$groups = other.getGroups();
            if (this$groups == null) {
               if (other$groups != null) {
                  return false;
               }
            } else if (!this$groups.equals(other$groups)) {
               return false;
            }

            return true;
         }
      }
   }

   protected boolean canEqual(final Object other) {
      return other instanceof TCoreComplianceDirectory;
   }

   public int hashCode() {
      int PRIME = 59;
      int result = 1;
      Object $edition_id = this.getEdition_id();
      result = result * 59 + ($edition_id == null ? 43 : $edition_id.hashCode());
      Object $directory_id = this.getDirectory_id();
      result = result * 59 + ($directory_id == null ? 43 : $directory_id.hashCode());
      Object $directory_name = this.getDirectory_name();
      result = result * 59 + ($directory_name == null ? 43 : $directory_name.hashCode());
      Object $fa_tid = this.getFa_tid();
      result = result * 59 + ($fa_tid == null ? 43 : $fa_tid.hashCode());
      Object $chinese_name = this.getChinese_name();
      result = result * 59 + ($chinese_name == null ? 43 : $chinese_name.hashCode());
      Object $foreigh_name = this.getForeigh_name();
      result = result * 59 + ($foreigh_name == null ? 43 : $foreigh_name.hashCode());
      Object $abbreviation = this.getAbbreviation();
      result = result * 59 + ($abbreviation == null ? 43 : $abbreviation.hashCode());
      Object $public_name = this.getPublic_name();
      result = result * 59 + ($public_name == null ? 43 : $public_name.hashCode());
      Object $public_date = this.getPublic_date();
      result = result * 59 + ($public_date == null ? 43 : $public_date.hashCode());
      Object $implementation_date = this.getImplementation_date();
      result = result * 59 + ($implementation_date == null ? 43 : $implementation_date.hashCode());
      Object $revised_date = this.getRevised_date();
      result = result * 59 + ($revised_date == null ? 43 : $revised_date.hashCode());
      Object $application_state = this.getApplication_state();
      result = result * 59 + ($application_state == null ? 43 : $application_state.hashCode());
      Object $directory_type = this.getDirectory_type();
      result = result * 59 + ($directory_type == null ? 43 : $directory_type.hashCode());
      Object $create_user = this.getCreate_user();
      result = result * 59 + ($create_user == null ? 43 : $create_user.hashCode());
      Object $create_date = this.getCreate_date();
      result = result * 59 + ($create_date == null ? 43 : $create_date.hashCode());
      Object $projectid = this.getProjectid();
      result = result * 59 + ($projectid == null ? 43 : $projectid.hashCode());
      Object $childrens = this.getChildrens();
      result = result * 59 + ($childrens == null ? 43 : $childrens.hashCode());
      Object $groups = this.getGroups();
      result = result * 59 + ($groups == null ? 43 : $groups.hashCode());
      return result;
   }

   public String toString() {
      return "TCoreComplianceDirectory(edition_id=" + this.getEdition_id() + ", directory_id=" + this.getDirectory_id() + ", directory_name=" + this.getDirectory_name() + ", fa_tid=" + this.getFa_tid() + ", chinese_name=" + this.getChinese_name() + ", foreigh_name=" + this.getForeigh_name() + ", abbreviation=" + this.getAbbreviation() + ", public_name=" + this.getPublic_name() + ", public_date=" + this.getPublic_date() + ", implementation_date=" + this.getImplementation_date() + ", revised_date=" + this.getRevised_date() + ", application_state=" + this.getApplication_state() + ", directory_type=" + this.getDirectory_type() + ", create_user=" + this.getCreate_user() + ", create_date=" + this.getCreate_date() + ", projectid=" + this.getProjectid() + ", childrens=" + this.getChildrens() + ", groups=" + this.getGroups() + ")";
   }
}
