All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.evasion.entity.Individual Maven / Gradle / Ivy

The newest version!
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.evasion.entity;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;

/**
 * Decrit une personne physique.
 * @author sebglon
 */
@Entity(name=Individual.ENTITY_NAME)
@Table(name=Individual.ENTITY_NAME)
public class Individual extends Person {

    /**
     * UID de serialisation.
     */
    private static final long serialVersionUID = 1L;
    public static final String ENTITY_NAME = "COM_INDIVIDUAL";
    /**
     * Titre de civilite de la personne physique.
     */
    @Enumerated(EnumType.STRING)
    @Column(nullable = false)
    private Civilite titre;
    /**
     * Prenom de la personne physique.
     */
    @Column(nullable = false)
    private String prenom;
    /**
     * Date de naissance de la personne physique.
     */
    @Temporal(TemporalType.DATE)
    private Calendar anniversaire = new GregorianCalendar();;

    /**
     * Constructeur par defaut (utilise par la persistence).
     */
    public Individual() {
    }

    /**
     * Constructeur avance.
     * @param e {@link Person#email}
     * @param civ {@link Individual#titre}
     * @param n {@link Person#nom}
     * @param p {@link Individual#prenom}
     * @param date {@link Individual#anniversaire}
     */
    public Individual(final String e, final Civilite civ,
            final String n, final String p, final Date date) {
        super(n, e);
        this.titre = civ;
        this.prenom = p;
        this.anniversaire.setTime(date);
    }

    /**
     * Getter de la date anniversaire.
     * @return la date anniversaire.
     */
    public Date getAnniversaire() {
        return anniversaire.getTime();
    }

    /**
     * Setter de la date anniversaire.
     * @param date date a setter.
     */
    public void setAnniversaire(Date date) {
        this.anniversaire.setTime(date);
    }

    /**
     * Getter du prenom de la personne.
     * @return renvoi le prenom.
     */
    public String getPrenom() {
        return prenom;
    }

    /**
     * Setter du prenom de la personne.
     * @param prenom prenom de la personne.
     */
    public void setPrenom(String prenom) {
        this.prenom = prenom;
    }

    /**
     * Getter du titre de civilite.
     * @return titre de la personne.
     */
    public Civilite getTitre() {
        return titre;
    }

    /**
     * Setter du titre de civilite.
     * @param titre titre de la personne.
     */
    public void setTitre(Civilite titre) {
        this.titre = titre;
    }

    /**
     * {@inheritDoc }
     */
    @Override
    public boolean equals(final Object obj) {
        if (obj == null) {
            return false;
        }
        if (this == obj) {
            return true;
        }
        if (!( obj instanceof Individual )) {
            return false;
        }
        Individual rhs = (Individual) obj;

        return new EqualsBuilder().appendSuper(super.equals(rhs)).
                append(this.prenom, rhs.prenom).
                append(this.titre, rhs.titre).
                append(this.anniversaire, rhs.anniversaire).
                isEquals();
    }

    /**
     * @{@inheritDoc }
     */
    @Override
    public int hashCode() {
        return new HashCodeBuilder(17, 37).appendSuper(super.hashCode()).
                append(this.titre).
                append(this.prenom).
                append(this.anniversaire).
                toHashCode();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy