com.evasion.entity.booktravel.BookTravel 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
The newest version!
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.evasion.entity.booktravel;
import com.evasion.EntityJPA;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.*;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* Business Oject représentant un Carnet de Voyage
* @author sebastien
*/
@Entity(name=BookTravel.ENTITY_NAME)
@Table(name = BookTravel.ENTITY_NAME)
@NamedQueries(value={
@NamedQuery(name=BookTravel.QUERY_BOOKTRAVEl_BY_AUTHOR, query="select b from "+BookTravel.ENTITY_NAME+" b where b."+BookTravel.PARAM_USERNAME+"=?1"),
@NamedQuery(name=BookTravel.QUERY_BOOKTRAVEL_ORDER_BY_DATE_DEPART, query="select b from "+BookTravel.ENTITY_NAME+" b order by b."+BookTravel.ATTR_DATE_DEPART)})
public class BookTravel extends EntityJPA {
/***
* serialVersionUID.
*/
private static final long serialVersionUID = 1L;
public static final String ENTITY_NAME = "TRAVEL_BOOKTRAVEL";
public static final String QUERY_BOOKTRAVEl_BY_AUTHOR = "BOOKTRAVEL_BY_AUTHOR";
public static final String QUERY_BOOKTRAVEL_ORDER_BY_DATE_DEPART = "BOOKTRAVEL_ORDER_BY_DATE_DEPART";
/**
* Id technique.
*/
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator="TRAVEL_SEQ")
private Long id;
/**
* Nom du carnet de voyage.
*/
@Column(unique = true, nullable = false)
private String nom;
/**
* Texte introductif du carnet de voyage.
*/
@Lob
@Column(nullable = false)
private String introduction;
public static final String ATTR_DATE_DEPART = "dateDepartInternal";
/**
* Date de depart du voyage.
*/
@Temporal(javax.persistence.TemporalType.DATE)
@Column(name=ATTR_DATE_DEPART)
private Calendar dateDepartInternal;
/**
* Date de fin du voyage.
*/
@Temporal(javax.persistence.TemporalType.DATE)
private Calendar dateFinInternal;
/**
* Ensemble des feuilles de route du voyage.
*/
@OneToMany(mappedBy = "bookTravel", fetch = FetchType.LAZY)
private Set roadMapsInternal;
/**
* Itineraire prévisionnel du voyage.
*/
@OneToOne
private Itinerary itineraryBase;
public static final String PARAM_USERNAME = "username";
/**
* Auteur propriétaire du carnet de voyage.
*/
@Column(name=PARAM_USERNAME, nullable=false)
private String username;
/**
* Constructeur pour la persistance.
*/
public BookTravel() {
super();
}
/**
* Constructeur par defaut.
* @param nom Nom du carnet de voyage.
* @param intro Texte introductif du carnet de voyage.
*/
public BookTravel(String nom, String intro) {
super();
this.introduction = intro;
this.nom = nom;
}
/**
* Getter de l'ID technique.
* @return ID technique.
*/
@Override
public Long getId() {
return id;
}
/**
* Setter de l'ID technique.
* @param id ID technique.
*/
public void setId(Long id) {
this.id = id;
}
/**
* Getter pour la persistance de la date de debut du voyage.
* @return date de debut du voyage.
*/
protected Calendar getDateDepartInternal() {
if (dateDepartInternal == null) {
dateDepartInternal = new GregorianCalendar();
}
return dateDepartInternal;
}
/**
* Setter pour la persistance de la date de debut du voyage.
* @param dateDepart date de debut du voyage.
*/
protected void setDateDepartInternal(Calendar dateDepart) {
this.dateDepartInternal = dateDepart;
}
/**
* Getter de la date de depart du voyage.
* @return date de depart du voyage.
*/
public Date getDateDepart() {
return getDateDepartInternal().getTime();
}
/**
* Setter de la date de depart du voyage.
* @param date date de depart du voyage.
*/
public void setDateDepart(Date date) {
getDateDepartInternal().setTime(date);
}
/**
* Getter pour la persistance de la date de fin du voyage.
* @return date de fin du voyage.
*/
protected Calendar getDateFinInternal() {
if (dateFinInternal == null) {
dateFinInternal = new GregorianCalendar();
}
return dateFinInternal;
}
/**
* Setter pour la persistance de la date de fin du voyage.
* @param dateDepart date de fin du voyage.
*/
protected void setDateFinInternal(Calendar dateFin) {
this.dateFinInternal = dateFin;
}
/**
* Getter de la date de fin du voyage.
* @return date de fin du voyage.
*/
public Date getDateFin() {
return getDateFinInternal().getTime();
}
/**
* Setter de la date de fin du voyage.
* @param date date de fin du voyage.
*/
public void setDateFin(Date date) {
getDateFinInternal().setTime(date);
}
/**
* Getter du text d'introduction du voyage.
* @return text d'introduction du voyage.
*/
public String getIntroduction() {
return introduction;
}
/**
* Setter du text d'introduction du voyage.
* @param introduction text d'introduction du voyage.
*/
public void setIntroduction(String introduction) {
this.introduction = introduction;
}
/**
* Getter de l'itineraire previsionnel.
* @return itineraire previsionnel.
*/
public Itinerary getItineraryBase() {
return itineraryBase;
}
/**
* Setter de l'itineraire previsionnel.
* @param itineraryBase itineraire previsionnel.
*/
public void setItineraryBase(Itinerary itineraryBase) {
this.itineraryBase = itineraryBase;
}
/**
* Getter pour la persistance de l'ensemble des feuilles de route.
* @return ensemble de feuilles de route.
*/
protected Set getRoadMapsInternal() {
if (roadMapsInternal == null) {
roadMapsInternal = new HashSet();
}
return roadMapsInternal;
}
/**
* Setter pour la persistance de l'ensemble des feuilles de route.
* @param roadMaps ensemble de feuilles de route.
*/
protected void setRoadMapsInternal(Set roadMaps) {
this.roadMapsInternal = roadMaps;
}
/**
* Getter de l'ensemble des feuilles de route.
* @return ensemble de feuilles de route.
*/
public Set getRoadMaps() {
return Collections.unmodifiableSet(getRoadMapsInternal());
}
/**
* Ajout d'une feuille de route.
* @param roadMap feuille de route
* @return renvoi true
si l'ajout est réussi; sinon false
*/
public boolean addRoadMap(RoadMap roadMap) {
return getRoadMapsInternal().add(roadMap);
}
/**
* Getter du nom du carnet de voyage.
* @return nom du carnet de voyage.
*/
public String getNom() {
return nom;
}
/**
* Setter du nom du carnet de voyage.
* @param nom nom du carnet de voyage.
*/
public void setNom(String nom) {
this.nom = nom;
}
/**
* Getter de l'utilisateur auteur .
* @return username.
*/
public String getUsername() {
return username;
}
/**
* Setter de l'utilisateur auteur .
* @param username username du propriétaire;
*/
public void setUsername(String username) {
this.username = username;
}
/**
* {@inheritDoc }
*/
@Override
public boolean equals(final Object obj) {
if (obj == null) {
return false;
}
if (this == obj) {
return true;
}
if (!( obj instanceof BookTravel )) {
return false;
}
BookTravel rhs = (BookTravel) obj;
return new EqualsBuilder().append(this.nom, rhs.nom).append(this.username, rhs.username).isEquals();
}
/**
* Calcul du hashcode sur la clé naturelle.
* @return valeur du hashCode.
*/
@Override
public int hashCode() {
return new HashCodeBuilder().append(this.nom).append(this.username).toHashCode();
}
@Override
public String toString() {
return new ToStringBuilder(this).append("id", id).
append("nom", nom).append("auteur", username).toString();
}
}