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

com.evasion.entity.booktravel.BookTravel Maven / Gradle / Ivy

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(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy