Se vc sobreescrever os métodos equals e hashCode, automaticamente
vc
terá as comparações feitas.
Abaixo mostro o código de duas classes, uma com equals e hashCode
e
outra, especializada para ordenação :
/*
* Criado em 19/03/2005
*
*/
package br.gov.dac.sintac.aeronauta.modelo.entidade;
import br.gov.dac.sintac.framework.modelo.entidade.EntidadeBase;
/**
* @author wreis
*
* Entidade direcionada para manter FaixaEtaria
*/
public class FaixaEtaria extends EntidadeBase {
private int idadeInicial;
private int idadeFinal;
private int validade;
private long idValidadeCCF;
private ValidadeCCF validadeCCF;
/**
* Define as propriedades desta entidade:
*
* campos de duplicidade
* campos de ordenação default
* gênero
* chave (string) que representa este tipo de entidade
*
*/
public FaixaEtaria() {
super.setCamposDuplicidade(new String[][]
{{"idValidadeCCF" , "idadeInicial"}});
super.setCamposOrdenacao(new String[]
{"idadeInicial"});
super.setChaveEntidade("faixaetaria");
super.setChaveGenero(EntidadeBase.GENERO_FEMININO);
super.setCamposChave(new String[]
{"idValidadeCCF" , "idadeInicial"});
}
/**
* @return
*/
public int getIdadeFinal() {
return idadeFinal;
}
/**
* @return
*/
public int getIdadeInicial() {
return idadeInicial;
}
/**
* @return
*/
public long getIdValidadeCCF() {
return idValidadeCCF;
}
/**
* @return
*/
public int getValidade() {
return validade;
}
/**
* @return
*/
public ValidadeCCF getValidadeCCF() {
return validadeCCF;
}
/**
* @param integer
*/
public void setIdadeFinal(int integer) {
idadeFinal = integer;
}
/**
* @param i
*/
public void setIdadeInicial(int i) {
idadeInicial = i;
}
/**
* @param l
*/
private void setIdValidadeCCF(long l) {
idValidadeCCF = l;
}
/**
* @param i
*/
public void setValidade(int i) {
validade = i;
}
/**
* @param validadeCCF
*/
public void setValidadeCCF(ValidadeCCF valid) {
this.validadeCCF = valid;
}
/**
* Métodos para garantir a identidade dos objetos
* Igualdade é baseada na descrição
*
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof FaixaEtaria)) return false;
final FaixaEtaria obj = (FaixaEtaria) o;
if (idValidadeCCF != obj.idValidadeCCF) return false;
if (idadeInicial != obj.idadeInicial) return false;
return true;
}
/**
* Garantir que a mesma identidade
* sempre retorne o mesmo valor
*
* @return int
*/
public int hashCode() {
int result;
result = (idValidadeCCF != 0 ? new Long
(idValidadeCCF).hashCode() : 0);
result = INCREMENTO_HASHCODE * result +
(idadeInicial != 0 ? new Long(idValidadeCCF).hashCode() : 0);
return result;
}
}
/////////////////////////////
/*
* Criado em 08/03/2005
*
*/
package br.gov.dac.sintac.aeronauta.modelo.entidade;
import java.util.Comparator;
/**
* @author wreis
*
*
*/
public class FaixaEtariaComparatorClass implements Comparator {
/** (não-Javadoc)
* @see java.util.Comparator#compare(java.lang.Object,
java.lang.Object)
*/
public int compare(Object o1, Object o2) {
FaixaEtaria obj1 = (FaixaEtaria) o1;
FaixaEtaria obj2 = (FaixaEtaria) o2;
Long l1 = new Long(obj1.getIdadeInicial());
Long l2 = new Long(obj2.getIdadeInicial());
return l1.compareTo(l2);
}
}
--- In [email protected], "Leonardo Schmitt"
<[EMAIL PROTECTED]> wrote:
> Gostaria de saber se alguem já implementou qq coisa para
comparação
de
> objetos absolutos ex: comparar um objeto q contenha atributos
strings,
> inteiros, TAD´s etc com outro qualquer sem limitação da
quantidade
de
> atributos ( chamada recursiva ) tenho esse problema mais não sei
por
> onde começar, alguem arrisca uma hipotese.
>
> Leonardo Schmitt
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/jug-petropolis/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/