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

com.evasion.entity.booktravel.RoadMap 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 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();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy