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

com.evasion.module.travel.ITravelModule Maven / Gradle / Ivy

The newest version!
/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */
package com.evasion.module.travel;

import com.evasion.entity.booktravel.BookTravel;
import com.evasion.entity.booktravel.Itinerary;
import com.evasion.entity.booktravel.RoadMap;
import com.evasion.entity.booktravel.exception.BookTravelServiceException;
import com.evasion.entity.content.Comment;
import com.evasion.entity.content.Contribution;
import com.evasion.exception.EvasionException;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 *
 * @author sebastien
 */
public interface ITravelModule {

    /**
     * Trouver un carnet de voyage a partir de son ID. Cette methode ne remonte
     * pas les elements en lazy loading tels que les feuilles de route.
     *
     * @param id identifiant technique du carnet de voyage.
     * @return le carnet de voyage correspondant a l'ID technique demande.
     * @throws EvasionException
     */
    BookTravel findBooktravelWithoutRoadMap(Long id)
            throws EvasionException;

    /**
     * Trouver les couples id,titre d'un auteur.
     *
     * @param username username de l'auteur
     * @return map des clé, titre des booktravel de l'auteur passé en paramètre
     * @throws EvasionException
     */
    Map findBooktravelForUser(String username)
            throws EvasionException;
    
    /**
     * Trouver les N dernier carnet de voyage créé.
     * @param nbr nombre max d'enregistrment retourné.
     * @return map des clé, titre des  N dernier booktravel créé.
     */
    Map lastBookTravel(int nbr);
    /**
     * Creer un carnet de voyage.
     *
     * @param booktravel le carnet de voyage a creer.
     * @return le carnet de voyage persiste.
     * @throws EvasionException
     */
    BookTravel createOrUpdateBookTravel(BookTravel booktravel)
            throws EvasionException;

    /**
     * Créer une feuille de route au sein d'un carnet de voyage.
     *
     * @param idBookTravel identifiant technique du carnet de voyage;
     * @param contribution récit de la feuille de route;
     * @param itinerary itineraire de la feuille de route;
     * @throws EvasionExceptions
     */
    void createRoadMap(final Long idBookTravel,
            final Contribution contribution, final Itinerary itinerary)
            throws EvasionException;

    /**
     * Renvoi les n plus récente feuille de route d'un carnet de voyage.
     *
     * @param idBookTravel identifiant technique du carnet de voyage.
     * @param size nombre d'élément à remonter.
     * @return liste des feuilles de route.
     */
    List findNewestRoadMap(Long idBookTravel, int size);

    /**
     * Renvoi une feuille de route à partir de son Id technique. Récupère
     * également les commentaire associé.
     *
     * @param id identifiant technique de la feuille de route.
     * @return la feuille de route; null si non trouvé en base
     * @throws BookTravelServiceException
     */
    RoadMap findRoadMapById(Long id) throws EvasionException;

    /**
     * Créer un commentaire sur une feuille de route.
     *
     * @param roadMap feuille de route.
     * @param commentaireNew commentaire à créer.
     * @return
     * true si création réussi;
     * false sinon
     */
    boolean createCommentOnRoadMap(RoadMap roadMap, Comment commentaireNew) throws EvasionException;

    /**
     * Renvoi une Map des titres et Id des roadmap Compris entre 2 date.
* L'interval est limiter à 1 ans. * * @param idBookTravel identifiant du bookTravel; * @param dateDebutt date de début de la recherche * @param dateFin date de fin de la recherche; * @return Liste des feuilles de route correspondat à la recherche. */ List getArchiveRoadMapBetweenDate(Long idBookTravel, Date dateDebut, Date dateFin); /** * Renvoi la liste des étapes du voyage. * @param idBookTravel identifiant du booktravel. * @return liste des étapes. */ List getBookTravelStep(Long idBookTravel); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy