com.evasion.entity.booktravel.RoadMap 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 com.evasion.entity.content.Contribution;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
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 feuille de route.
* @author sebastien
*/
@Entity(name=RoadMap.ENTITY_NAME)
@Table(name = RoadMap.ENTITY_NAME)
public class RoadMap extends EntityJPA {
/***
* serialVersionUID.
*/
private static final long serialVersionUID = 1L;
public static final String ENTITY_NAME= "TRAVEL_ROAD_MAP";
/**
* Id technique.
*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
/**
* Article descriptif de la feuille de route.
*/
@OneToOne(cascade = {CascadeType.PERSIST, CascadeType.REFRESH})
private Contribution contribution;
/**
* Itineraire de la feuille de route.
*/
@OneToOne(cascade = {CascadeType.PERSIST, CascadeType.REFRESH})
private Itinerary itinerary;
public static final String BOOKTRAVEL = "bookTravel";
/**
* Carnet de voyage de rattachement.
*/
@ManyToOne
private BookTravel bookTravel;
public static final String EXECUTION_DATE ="executionDateInternal";
/**
* Date de réalisation (du parcour) de la feuille de route.
*/
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Calendar executionDateInternal;
/**
* Constructeur pour la persistance.
*/
protected RoadMap() {
super();
}
/**
* Constructeur par defaut.
* @param contrib Article descriptif de la feuille de route.
* @param itin Itineraire de la feuille de route.
* @param bkTravel Carnet de voyage de rattachement.
*/
public RoadMap(final Contribution contrib, final Itinerary itin,
final BookTravel bkTravel) {
this.executionDateInternal = Calendar.getInstance();
this.contribution = contrib;
this.itinerary = itin;
this.bookTravel = bkTravel;
}
/**
* 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 de l'article.
* @return l'article de la feuille de route.
*/
public Contribution getContribution() {
return contribution;
}
/**
* Setter de l'article.
* @param contribution l'article a setter.
*/
public void setContribution(Contribution contribution) {
this.contribution = contribution;
}
/**
* Getter de l'itineraire.
* @return l'itineraire de la feuille de route
*/
public Itinerary getItinerary() {
return itinerary;
}
/**
* Setter de l'itineraire.
* @param itinerary l'itineraire a setter.
*/
public void setItinerary(Itinerary itinerary) {
this.itinerary = itinerary;
}
/**
* Getter du carnet de voyage.
* @return carnet de voyage auquel est rattaché la feuille de route.
*/
public BookTravel getBookTravel() {
return bookTravel;
}
/**
* Setter du carnet de voyage.
* @param bookTravel carnet de voyage auquel rattaché la feuille de route.
*/
public void setBookTravel(BookTravel bookTravel) {
this.bookTravel = bookTravel;
}
/**
* Getter pour la persistance de la date de creation.
* @return date de réalisation (du parcour) de la feuille de route.
*/
protected Calendar getExecutionDateInternal() {
if (executionDateInternal == null) {
executionDateInternal = new GregorianCalendar();
}
return executionDateInternal;
}
/**
* Setter pour la persistance de la date de creation.
* @param creationDate date de réalisation (du parcour) de la feuillle de route.
*/
protected void setExecutionDateInternal(Calendar creationDate) {
this.executionDateInternal = creationDate;
}
/**
* Getter de la date de réalisation (du parcour) de la feuillle de route.
* @return date de réalisation (du parcour) de la feuillle de route.
*/
public Date getExecutionDate() {
return getExecutionDateInternal().getTime();
}
/**
* Setter de la date de réalisation (du parcour) de la feuillle de route.
* @param date date de réalisation (du parcour) de la feuillle de route.
*/
public void setExecutionDate(Date date) {
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
this.executionDateInternal =calendar;
}
/**
* Getter de la date de creation.
* @return date de création de la feuille de route.
*/
public Date getCreationDate() {
if (this.getContribution() == null) {
return null;
} else {
return this.getContribution().getDateEnregistrement();
}
}
/**
* {@inheritDoc }.
*/
@Override
public boolean equals(final Object obj) {
if (obj == null) {
return false;
}
if (!( obj instanceof RoadMap )) {
return false;
}
final RoadMap other = (RoadMap) obj;
return new EqualsBuilder().append(this.itinerary, other.itinerary).
append(this.contribution, other.contribution).
append(this.bookTravel, other.bookTravel).isEquals();
}
/**
* {@inheritDoc }.
*/
@Override
public int hashCode() {
return new HashCodeBuilder().append(itinerary).
append(contribution).append(bookTravel).toHashCode();
}
}