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

com.evasion.entity.content.Contribution Maven / Gradle / Ivy

There is a newer version: 2.0.0.2
Show newest version
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.evasion.entity.content;

import com.evasion.entity.security.User;
import java.io.Serializable;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;

/**
 * Business Object representant une contribution de type Article.
 * @author sebastien
 */
@Entity
@Table(name = "contribution")
public class Contribution implements Serializable {
    /***
     * serialVersionUID.
     */
    private static final long serialVersionUID = 1L;
    /**
     * Id technique.
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    /**
     * Titre de la contribution.
     **/
    private String title;
    /**
     * Texte de la contribution.
     */
    @Lob
    @Column(nullable = false)
    private String text;
    /**
     * Liste de commentaire.
     */
    @OneToMany(cascade={CascadeType.PERSIST, CascadeType.REMOVE})
    private List commentairesInternal;
    /**
     * Date d'enregistrement de la contribution.
     */
    @Temporal(javax.persistence.TemporalType.DATE)
    private Calendar dateEnregistrement;
    /**
     * Utilisateur rédacteur de la contribution.
     */
    @ManyToOne
    private User user;

    /** Constructeur par defaut. */
    protected Contribution() {
    }

    /**
     * Constructeur general de l'objet.
     * @param title titre de la contribution.
     * @param text corp du texte de la contribution.
     * @param user utilisateur redacteur de la contribution.
     */
    public Contribution(String title, String text, User user) {
        this.title = title;
        this.text = text;
        this.user = user;
        this.dateEnregistrement = Calendar.getInstance();
    }

    /**
     * Getter de l'ID technique.
     * @return ID technique.
     */
    public Long getId() {
        return id;
    }

    /**
     * Setter de l'ID technique.
     * @param id ID technique.
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * Getter  de text.
     * @return renvoi de text.
     */
    public String getText() {
        return text;
    }

    /**
     * Setter de text.
     * @param text text a setter.
     */
    public void setText(String text) {
        this.text = text;
    }

    /**
     * Getter de titre.
     * @return renvoi de titre.
     */
    public String getTitle() {
        return title;
    }

    /**
     * Setter de titre.
     * @param title titre a setter.
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * Getter de la date d'enregistrement de la contribution.
     * @return renvoi la date.
     */
    public Date getDateEnregistrement() {
        return dateEnregistrement.getTime();
    }

    /**
     * Setter de la date d'enregistrement.
* Cette propriete n'est pas directement modifiable par l'utilisateur.
* La valeur est initialise dans le constructeur de l'objet. * @param dateEnregistrement */ protected void setDateEnregistrement(Date dateEnregistrement) { this.dateEnregistrement.setTime(dateEnregistrement); } /** * Getter de l'utilisateur ayant redige la contribution. * @return renvoi l'utilisateur. */ public User getUser() { return user; } /** * Setter de l'utilisateur ayant redige la contribution. * @param user valeur a setter. */ public void setUser(User user) { this.user = user; } protected List getCommentairesInternal() { return commentairesInternal; } protected void setCommentairesInternal(List commentairesInternal) { this.commentairesInternal = commentairesInternal; } public List getCommentaires() { return Collections.unmodifiableList( commentairesInternal); } public boolean addCommentaire(Comment commentaire) { return getCommentairesInternal().add(commentaire); } /** * {@inheritDoc } */ @Override public boolean equals(final Object obj) { if (obj == null) { return false; } if (this == obj) { return true; } if (!( obj instanceof Contribution )) { return false; } Contribution rhs = (Contribution) obj; return new EqualsBuilder().append(this.title, rhs.title). append(this.dateEnregistrement, rhs.dateEnregistrement). isEquals(); } /** * @{@inheritDoc } */ @Override public int hashCode() { return new HashCodeBuilder(17, 37).append(this.title).append(this.dateEnregistrement).toHashCode(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy