com.evasion.entity.content.Contribution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of API Show documentation
Show all versions of API Show documentation
API de l'application modulaire evasion-en-ligne
/*
* 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