/*
* 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.Seeker;
import drakkar.oar.exception.NotificationException;
import drakkar.oar.exception.ScoreOutOfBoundsException;
import drakkar.oar.exception.SessionException;
import java.io.IOException;
/**
* The <code>ResponseUtilFactory</code> class is.....
* Esta interfaz declara los diferentes metodos empleados para notificar al servidor
* los documentos revisados, evaluados y comentados
*/
public interface Notifiable {
/**
* Notifica al servidor el documento revisado, obtenido por un buscador determinado
*
* @param sessionName nombre de la sesión
* @param seeker usuario que realiza la revisión.
* @param query consulta de la búsqueda
* @param searchable buscador
* @param docIndex índice del documento revisado
*
* @param uri
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws NotificationException si se invoca una actualización de estado
* usuario, y este no aparece registrado en
* sesión
*/
public void notifyDocumentViewed(String sessionName, Seeker seeker, String query, int searchable, int docIndex, String uri) throws SessionException, NotificationException;
/**
* Notifica al servidor la evaluación de un documento revisado, obtenido por
* un buscador determinado
*
* @param sessionName nombre de la sesión
* @param seeker usuario que realiza la evaluación
* @param query consulta de la búsqueda
* @param searchable buscador
* @param docIndex índice del documento revisado
* @param uri
* @param score calificación dada al documento por su relevancia
* @param source fuente del documento: caché, BD, recomendación
*
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws NotificationException si se invoca una actualización de estado
* usuario, y este no aparece registrado en
* sesión
* @throws ScoreOutOfBoundsException si el usuario asigna una puntuación al
* documento fuera del rango de valores
* establecidos
* @throws IOException si ocurre alguna excepción durante el proceso de
* serialización del objeto Response
*/
public void notifyDocumentEvaluated(String sessionName, Seeker seeker, String query, int searchable, int docIndex,String uri, byte score, int source) throws SessionException, NotificationException, ScoreOutOfBoundsException, IOException;
/**
* Notifica al servidor un comentario sobre un documento revisado, obtenido por
* un buscador determinado
*
* @param sessionName nombre de la sesión
* @param seeker usuario que realiza el comentario.
* @param query consulta de la búsqueda
* @param searchable buscador
* @param docIndex índice del documento revisado
* @param uri
* @param comment comentario del documento
*
* @param source fuente del documento: caché, BD, recomendación
* @throws SessionException si la sesión no se encuentra registrada
* en el servidor
* @throws NotificationException si se invoca una actualización de estado
* usuario, y este no aparece registrado en
* sesión
* @throws IOException si ocurre alguna excepción durante el proceso de
* serialización del objeto Response
*/
public void notifyDocumentCommented(String sessionName, Seeker seeker, String query, int searchable, int docIndex, String uri, String comment,int source) throws SessionException, NotificationException, IOException;
}