class Language extends SalesManagerEntity<Integer, Language> implements Auditable {
  private static final long serialVersionUID = 1L;



  @Id
  @Column(name = "LANGUAGE_ID")
  @TableGenerator(name = "TABLE_GEN", table = "SM_SEQUENCER", pkColumnName = "SEQ_NAME",
      valueColumnName = "SEQ_COUNT", pkColumnValue = "LANG_SEQ_NEXT_VAL")
  @GeneratedValue(strategy = GenerationType.TABLE, generator = "TABLE_GEN")
  private Integer id;
  
  @JsonIgnore
  @Embedded
  private AuditSection auditSection = new AuditSection();

  @Column(name = "CODE", nullable = false)
  private String code;

  @JsonIgnore
  @Column(name = "SORT_ORDER")
  private Integer sortOrder;

  @JsonIgnore
  @OneToMany(mappedBy = "defaultLanguage", targetEntity = MerchantStore.class)
  private List<MerchantStore> storesDefaultLanguage;

  @JsonIgnore
  @ManyToMany(mappedBy = "languages", targetEntity = MerchantStore.class, fetch = FetchType.LAZY)
  private List<MerchantStore> stores = new ArrayList<MerchantStore>();

  public Language() {}

  public Language(String code) {
    this.setCode(code);
  }

  @Override
  public Integer getId() {
    return id;
  }

  @Override
  public void setId(Integer id) {
    this.id = id;
  }


  public String getCode() {
    return code;
  }

  public void setCode(String code) {
    this.code = code;
  }

  public Integer getSortOrder() {
    return sortOrder;
  }

  public void setSortOrder(Integer sortOrder) {
    this.sortOrder = sortOrder;
  }

  @Override
  public AuditSection getAuditSection() {
    return auditSection;
  }

  @Override
  public void setAuditSection(AuditSection auditSection) {
    this.auditSection = auditSection;
  }

  @Override
  public boolean equals(Object obj) {<FILL_FUNCTION_BODY>}
}

    if (null == obj)
      return false;
    if (!(obj instanceof Language)) {
      return false;
    } else {
      Language language = (Language) obj;
      return (this.id == language.getId());
    }
  
<methods>public non-sealed void <init>() ,public int compareTo(com.salesmanager.core.model.reference.language.Language) ,public boolean equals(java.lang.Object) ,public abstract java.lang.Integer getId() ,public int hashCode() ,public boolean isNew() ,public abstract void setId(java.lang.Integer) ,public java.lang.String toString() <variables>public static final java.text.Collator DEFAULT_STRING_COLLATOR,private static final long serialVersionUID