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

com.evasion.entity.Don 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 com.evasion.EntityJPA;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.PrePersist;
import javax.persistence.Table;
import javax.persistence.Temporal;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;

/**
 *
 * @author sebastien.glon
 */
@Entity(name=Don.ENTITY_NAME)
@Table(name = Don.ENTITY_NAME)
public class Don extends EntityJPA {

    /**
     * *
     * serialVersionUID.
     */
    private static final long serialVersionUID = 1L;
public static final String ENTITY_NAME = "DONNATION_DON";
    /**
     * Identifiant unique du don.
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    /**
     * Personne donatrice.
     */
    @ManyToOne
    @JoinColumn(name = "person_fk", nullable = false)
    private Person donateur;

    /**
     * Montaont du don.
     */
    @Column(nullable = false)
    private Long montant;

    /**
     * Commentaire d'accompagnement du don en provenance du donateur.
     */
    private String commentaireDonateur;

    /**
     * Commentaire du beneficiaire pour le suivi du traitement.
     */
    private String commentaireBeneficiaire;

    /**
     * Date d'enregistrement de la promesse.
     */
    @Temporal(javax.persistence.TemporalType.DATE)
    private Calendar datePromesseInternal;

    /**
     * Date de confirmation.
     */
    @Temporal(javax.persistence.TemporalType.DATE)
    private Calendar dateConfirmInternal;

    /**
     * Etat de validation.
     */
    private boolean valide;

    /**
     * Constructeur par defaut pour la persistence.
     */
    protected Don() {
    }

    /**
     * Constructeur avec les champs obligatoire.
     * @param person donateur.
     * @param montant montant du don.
     * @param commentaireDonateur commentaire d'accompagnement du donateur
     * (optionel).
     */
    public Don(Person person, Long montant, String commentaireDonateur) {
        this.donateur = person;
        this.montant = montant;
        this.commentaireDonateur = commentaireDonateur;
    }

    /**
     * Constructeur avec les champs obligatoire.
     * @param person donateur.
     * @param montant montant du don.
     */
    public Don(Person person, Long montant) {
        this.donateur = person;
        this.montant = montant;
    }

    @SuppressWarnings("PMD.UnusedPrivateMethod")
    @edu.umd.cs.findbugs.annotations.SuppressWarnings("UPM_UNCALLED_PRIVATE_METHOD")
    @PrePersist
    private void initDatePromess() {
        datePromesseInternal = Calendar.getInstance();
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getCommentaireClient() {
        return commentaireDonateur;
    }

    public void setCommentaireClient(String commentaireClient) {
        this.commentaireDonateur = commentaireClient;
    }

    public String getCommentaireReceveur() {
        return commentaireBeneficiaire;
    }

    public void setCommentaireReceveur(String commentaireReceveur) {
        this.commentaireBeneficiaire = commentaireReceveur;
    }

    public Calendar getDateConfirmInternal() {
        return dateConfirmInternal;
    }

    public void setDateConfirmInternal(Calendar dateConfirmInternal) {
        this.dateConfirmInternal = dateConfirmInternal;
    }

    public Date getDateConfirm() {
        if (getDateConfirmInternal() == null) {
            return null;
        } else {
            return getDateConfirmInternal().getTime();
        }
    }

    public void setDateConfirm(Date dateConfirm) {
        Calendar cal = new GregorianCalendar();
        cal.setTime(dateConfirm);
        this.setDateConfirmInternal(cal);
    }

    public Calendar getDatePromesseInternal() {
        return datePromesseInternal;
    }

    public void setDatePromesseInternal(Calendar datePromesseInternal) {
        this.datePromesseInternal = datePromesseInternal;
    }

    public Date getDatePromesse() {
        if (getDatePromesseInternal() == null) {
            return null;
        } else {
            return getDatePromesseInternal().getTime();
        }
    }

    public void setDatePromesse(Date datePromesse) {
        Calendar cal = new GregorianCalendar();
        cal.setTime(datePromesse);
        this.setDatePromesseInternal(cal);
    }

    public Long getMontant() {
        return montant;
    }

    public void setMontant(Long montant) {
        this.montant = montant;
    }

    public Person getPerson() {
        return donateur;
    }

    public void setPerson(Person person) {
        this.donateur = person;
    }

    public boolean isValide() {
        return valide;
    }

    public void setValide(boolean valide) {
        this.valide = valide;
    }

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

        return new EqualsBuilder().append(this.donateur, rhs.donateur).
                append(this.getDatePromesseInternal(), rhs.datePromesseInternal).
                isEquals();
    }

    /**
     * @{@inheritDoc }
     */
    @Override
    public int hashCode() {
        return new HashCodeBuilder(17, 37).append(this.donateur).append(this.getDatePromesseInternal()).toHashCode();
    }

    /**
     * @{@inheritDoc }
     */
    @Override
    public String toString() {
        return this.getClass().getName() + "[id=" + id
                + " person=" + donateur
                + " montant=" + montant
                + " commentaireClient=" + commentaireDonateur
                + " commentaireReceveur=" + commentaireBeneficiaire
                + " datePromesse=" + getDatePromesse()
                + " dateConfirm=" + getDateConfirm()
                + "]";
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy