package gcom.faturamento.conta;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.Subcategoria;
import gcom.interceptor.ObjetoGcom;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
public class ContaCategoriaPK extends ObjetoGcom implements IContaCategoriaPK{
private static final long serialVersionUID = 1L;
private Conta conta;
private Categoria categoria;
private Subcategoria subcategoria;
public ContaCategoriaPK(Conta conta, Categoria categoria) {
this.conta = conta;
this.categoria = categoria;
}
public ContaCategoriaPK() {
}
public ContaCategoriaPK(Integer idConta, Categoria categoria, Subcategoria subcategoria) {
this.conta = new Conta(idConta);
this.categoria = categoria;
this.subcategoria = subcategoria;
}
public gcom.faturamento.conta.Conta getConta() {
return this.conta;
}
public void setConta(gcom.faturamento.conta.Conta conta) {
this.conta = conta;
}
public Categoria getCategoria() {
return this.categoria;
}
public void setCategoria(Categoria categoria) {
this.categoria = categoria;
}
public Subcategoria getSubcategoria() {
return subcategoria;
}
public void setSubcategoria(Subcategoria subcategoria) {
this.subcategoria = subcategoria;
}
public String toString() {
return new ToStringBuilder(this)
.append("conta", getConta())
.append("categoria", getCategoria())
.toString();
}
public boolean equals(Object other) {
if ( (this == other ) ) return true;
if ( !(other instanceof ContaCategoriaPK) ) return false;
ContaCategoriaPK castOther = (ContaCategoriaPK) other;
return new EqualsBuilder()
.append(this.getCategoria(), castOther.getCategoria())
.append(this.getSubcategoria(),castOther.getSubcategoria())
.isEquals();
}
public int hashCode() {
return new HashCodeBuilder()
.append(getConta())
.append(getCategoria())
.toHashCode();
}
@Override
public String[] retornaCamposChavePrimaria() {
String[] retorno = new String[2];
retorno[0] = "categoria";
retorno[1] = "conta";
return retorno;
}
public String getDescricao(){
return this.categoria.getDescricao();
}
public void initializeLazy(){
if (this.getCategoria() != null){
this.getCategoria().initializeLazy();
}
if (this.getSubcategoria() != null){
this.getSubcategoria().initializeLazy();
}
}
public Integer getIdConta() {
return this.conta.getId();
}
public void setIdConta(Integer id) {
this.conta.setId(id);
}
public void setConta(IConta conta) {
this.conta = new Conta(conta.getId());
}
}