/*
* DrakkarKeel - An Enterprise Collaborative Search Platform
*
* The contents of this file are subject under the terms described in the
* DRAKKARKEEL_LICENSE file included in this distribution; you may not use this
* file except in compliance with the License.
*
* 2013-2014 DrakkarKeel Platform.
*/
package drakkar.stern.servant.service;
import drakkar.oar.Documents;
import drakkar.oar.QuerySource;
import drakkar.oar.Seeker;
import drakkar.oar.exception.RecommendationException;
import drakkar.oar.exception.SeekerException;
import drakkar.oar.exception.SessionException;
import java.io.IOException;
import java.util.List;
/**
* The <code>ResponseUtilFactory</code> class is.....
* Esta interfaz declara los diferentes métodos de recomendación soportados por
* el framework DrakkarKeel
*/
public interface Recommendable {
/**
* Recomendar todos resultados de la búsqueda a todos los usuarios de la sesión
*
* @param sessionName nombre de la sesión del usuario
* @param emitter usuario emisor
* @param comments comentarios de la recomendación
*
* @param data
* @throws SessionException si la sesión no se encuentra registrada en el servidor
* @throws SeekerException si el usuario emisor no se encuentra registrado en la sesión
* @throws RecommendationException si el usuario que emite la recomendación
* no cuenta con resultados de búquedas previas
* registradas
* @throws IOException si ocurre alguna excepción durante el proceso de
* serialización del objeto Response
*/
public void recommendResults(String sessionName, Seeker emitter, String comments, QuerySource data) throws SessionException, SeekerException, RecommendationException, IOException;
/**
* Recomendar todos resultados de la búsqueda a un usuario de la sesión
*
* @param sessionName nombre de la sesión
* @param emitter usuario emisor
* @param receptor usuario receptor
* @param comments comentarios de la recomendación
* @param data
*
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws SeekerException si el usuario emisor ó el receptor no se
* encuentra registrado en la sesión
* @throws RecommendationException si el usuario que emite la recomendación
* no cuenta con resultados de búquedas previas
* registradas
* @throws IOException si ocurre alguna excepción durante el proceso de
* serialización del objeto Response
*/
public void recommendResults(String sessionName, Seeker emitter, Seeker receptor, String comments, QuerySource data) throws SessionException, SeekerException, RecommendationException, IOException;
/**
* Recomendar todos resultados de la búsqueda a un grupo de usuarios
* de la sesión
*
* @param sessionName nombre de la sesión
* @param emitter usuario que emite la recomendación
* @param receptors miembros a quienes va dirigido la recomendación
* @param comments comentarios de la recomendación
* @param data
*
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws SeekerException si el usuario emisor ó alguno de los receptores
* no se encuentra registrado en la sesión
* @throws RecommendationException si el usuario que emite la recomendación
* no cuenta con resultados de búquedas previas
* registradas
* @throws IOException si ocurre alguna excepción durante el proceso de
* serialización del objeto Response
*/
public void recommendResults(String sessionName, Seeker emitter, List<Seeker> receptors, String comments, QuerySource data) throws SessionException, SeekerException, RecommendationException, IOException;
/**
* Recomendar una selección de los resultados de la búsqueda, obtenidos por
* un buscador a toda la sesión
*
* @param sessionName nombre de la sesión
* @param emitter usuario emisor
* @param comments comentarios de la recomendación
* @param docs
* @param data
*
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws SeekerException si el usuario emisor no se encuentra
* registrado en la sesión
* @throws RecommendationException si el usuario que emite la recomendación
* no cuenta con resultados de búquedas previas
* registradas
* @throws IOException si ocurre alguna excepción durante el proceso de
* serialización del objeto Response
*/
public void recommendResults(String sessionName, Seeker emitter, String comments, Documents docs, QuerySource data) throws SessionException, SeekerException, RecommendationException, IOException;
/**
* Recomendar una selección de los resultados de la búsqueda, obtenidos por
* un buscador a un usuario de la sesión
*
* @param sessionName nombre de la sesión
* @param emitter usuario emisor
* @param receptor usuario receptor
* @param docs
* @param data
* @param comments comentarios de la recomendación
*
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws SeekerException si el usuario emisor ó el receptor no se
* encuentra registrado en la sesión
* @throws RecommendationException si el usuario que emite la recomendación
* no cuenta con resultados de búquedas previas
* registradas
* @throws IOException si ocurre alguna excepción durante el proceso de
* serialización del objeto Response
*/
public void recommendResults(String sessionName, Seeker emitter, Seeker receptor, Documents docs, String comments , QuerySource data) throws SessionException, SeekerException, RecommendationException, IOException;
/**
* Recomendar una selección de los resultados de la búsqueda, obtenidos por
* un buscador a un grupo de usuarios de su sesión
*
* @param sessionName nombre de la sesión
* @param emitter usuario emisor
* @param receptors usuario receptor
* @param docs
* @param data
* @param comments comentarios de la recomendación
*
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws SeekerException si el usuario emisor ó alguno de los receptores
* no se encuentra registrado en la sesión
* @throws RecommendationException Si el usuario que emite la recomendación
* no cuenta con resultados de búquedas previas
* registradas
* @throws IOException si ocurre alguna excepción durante el proceso de
* serialización del objeto Response
*/
public void recommendResults(String sessionName, Seeker emitter, List<Seeker> receptors, Documents docs, String comments, QuerySource data) throws SessionException, SeekerException, RecommendationException, IOException;
/**
* Recomendar todos los resultados de la búsqueda a un usuario de otra sesión
* de búsqueda
*
* @param sessionName nombre de la sesión del emisor
* @param emitter usuario emisor
* @param sessionNameRtr nombre de la sesión del receptor
* @param receptor usuario a quien va dirigida la recomendación
* @param comments comentarios de la recomendación
* @param data
*
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws SeekerException si el usuario emisor ó el receptor no se
* encuentra registrado en la sesión
* @throws RecommendationException si el usuario que emite la recomendación
* no cuenta con resultados de búquedas previas
* registradas
* @throws IOException si ocurre alguna excepción durante el proceso de
* serialización del objeto Response
*/
public void recommendResults(String sessionName, Seeker emitter, String sessionNameRtr, Seeker receptor, String comments, QuerySource data) throws SessionException, SeekerException, RecommendationException, IOException;
/**
* Recomendar una selección de los resultados de la búsqueda, obtenidos por
* un buscador a un usuario de otra sesión de búsqueda
*
* @param sessionName nombre de la sesión del emisor
* @param emitter usuario emisor
* @param sessionNameRtr nombre de la sesión del receptor
* @param receptor usuario a quien va dirigida la recomendación
* @param docs
* @param comments comentarios de la recomendación
* @param data
*
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws SeekerException si el usuario emisor ó el receptor no se
* encuentra registrado en la sesión
* @throws RecommendationException si el usuario que emite la recomendación
* no cuenta con resultados de búquedas previas
* registradas
* @throws IOException si ocurre alguna excepción durante el proceso de
* serialización del objeto Response
*/
public void recommendResults(String sessionName, Seeker emitter, String sessionNameRtr, Seeker receptor, Documents docs, String comments, QuerySource data) throws SessionException, SeekerException, RecommendationException, IOException;
/**
* Recomendar todos los resultados de la búsqueda a un grupo de usuarios de
* otra sesión de búsqueda
*
* @param sessionName nombre de la sesión del emisor
* @param emitter usuario emisor
* @param sessionNameRtrs nombre de la sesión de los receptores
* @param receptors usuario receptor
* @param comments comentarios de la recomendación
* @param data
*
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws SeekerException si el usuario emisor ó alguno de los receptores
* no se encuentra registrado en la sesión
* @throws RecommendationException si el usuario que emite la recomendación
* no cuenta con resultados de búquedas previas
* registradas
* @throws IOException si ocurre alguna excepción durante el proceso de
* serialización del objeto Response
*/
public void recommendResults(String sessionName, Seeker emitter, String sessionNameRtrs, List<Seeker> receptors, String comments, QuerySource data) throws SessionException, SeekerException, RecommendationException, IOException;
/**
* Recomendar una selección de los resultados de la búsqueda, obtenidos por
* un buscador a un grupo de miembros de otra sesión de búsqueda
*
* @param sessionName nombre de la sesión del emisor
* @param emitter usuario emisor
* @param sessionNameRtrs nombre de la sesión de los receptores
* @param receptors usuario receptor
* @param docs
* @param comments comentarios de la recomendación
* @param data
*
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws SeekerException si el usuario emisor ó alguno de los receptores
* no se encuentra registrado en la sesión
* @throws RecommendationException si el usuario que emite la recomendación
* no cuenta con resultados de búquedas previas
* registradas
* @throws IOException si ocurre alguna excepción durante el proceso de
* serialización del objeto Response
*/
public void recommendResults(String sessionName, Seeker emitter, String sessionNameRtrs, List<Seeker> receptors, Documents docs, String comments, QuerySource data) throws SessionException, SeekerException, RecommendationException, IOException;
/**
* Devuelve la total de recomendaciones efectuadas por los usuarios de todas
* las sesiones activas en el servidor
*
* @return total de recomendaciones.
*/
public long getRecommendationsCount();
/**
* Devuelve la total de recomendaciones efectuadas por los usuarios de la
* las sesión especificada
*
* @param sessionName nombre de la sesión
*
* @return total de recomendaciones
*
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
*/
public long getRecommendationsCount(String sessionName) throws SessionException;
/**
* Devuelve el total de recomendaciones efectuadas por un usuario de la sesión
* especificada
*
* @param sessionName nombre de la sesión
* @param seeker usuario
*
* @return total de recomendaciones
*
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws SeekerException si el usuario del que solicita el total
* mensajes no está registrado en la sesión
*/
public long getRecommendationsCount(String sessionName, Seeker seeker) throws SessionException, SeekerException;
}