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/
 


Atrašyti