/*
* 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.tracker.persistent;
import drakkar.stern.tracker.persistent.tables.DerbyConnection;
import drakkar.stern.tracker.persistent.objects.SeekerData;
import drakkar.stern.tracker.persistent.objects.SessionData;
import drakkar.oar.DocumentMetaData;
import drakkar.oar.MarkupData;
import drakkar.oar.RecommendTracker;
import drakkar.oar.ResultSetMetaData;
import drakkar.oar.SearchResultData;
import drakkar.oar.SearchTracker;
import drakkar.oar.Seeker;
import drakkar.oar.SeekerQuery;
import drakkar.oar.Session;
import java.awt.image.BufferedImage;
import java.sql.Date;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
/**
* Clase para manejar los datos para la persistencia de DrakkarKeel
* utilizados en la aplicación cliente
*/
public class FacadeDBProw {
SearchDB search;
SearchSessionDB session;
TrackerDB tracker;
SeekerDB seeker;
/**
* Constructor de la clase
*
* @param connection
* @param dbutil
*/
public FacadeDBProw(DerbyConnection connection, DBUtil dbutil) {
seeker = new SeekerDB(connection, dbutil);
session = new SearchSessionDB(connection, dbutil, seeker);
search = new SearchDB(connection, dbutil, session);
tracker = new TrackerDB(connection, dbutil, search, session);
}
/*********************************SEEKER*******************
/**
* Registrar un nuevo usuario
*
* @param user nombre del usuario
* @param name nombre completo
* @param password contraseña
* @param description descripción
* @param email correo
* @param avatar avatar
* @param rol rol
* @param state estado
*
* @return true si encontró el seeker, de lo contrario false
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public boolean registerSeeker(String user, String name, String password, String description, String email, byte[] avatar, String rol, String state) throws SQLException {
return seeker.registerSeeker(user, name, password, description, email, avatar, rol, state);
}
/**
* Elimina un usuario
*
* @param user nombre del usuario
*
* @return true si lo eliminó, false si no lo encontró
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public boolean deleteSeeker(String user) throws SQLException {
return seeker.deleteSeeker(user);
}
/**
* Actualiza el rol del usuario
*
* @param user usuario a actualizar
* @param rol nombre del nuevo rol
*
* @return true si lo actualizó, de lo contrario devuelve false
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public boolean updateSeekerRol(String user, String rol) throws SQLException {
return seeker.updateSeekerRol(user, rol);
}
/**
* Actualiza el estado del usuario
*
* @param user nombre del usuario
* @param state estado
*
* @return true si lo actualizó, de lo contrario devuelve false
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public boolean updateSeekerState(String user, String state) throws SQLException {
return seeker.updateSeekerState(user, state);
}
/**
* Actualiza la imagen del usuario
*
* @param user nombre del usuario
* @param newAvatar imagen que representa a este usuario
*
* @return true si lo actualizó, de lo contrario devuelve false
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public boolean updateSeekerAvatar(String user, Object newAvatar) throws SQLException {
return seeker.updateSeekerAvatar(user, newAvatar);
}
/**
* Obtiene el avatar de un usuario
*
* @param user nombre del usuario
*
* @return el avatar del usuario
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public BufferedImage getAvatar(String user) throws SQLException {
return seeker.getAvatar(user);
}
/**
* Compara contraseñas de un usuario
*
* @param user nombre del usuario
* @param password contraseña
*
* @return true si la contraseña coincide, de lo contrario false
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public boolean compareSeekerPassword(String user, String password) throws SQLException {
return seeker.compareSeekerPassword(user, password);
}
/**
* Devuelve todos los datos de un seeker dado su user
*
* @param user nombre del usuario
*
* @return devuelve un objeto que contiene los datos de un usuario
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public SeekerData getSeekerData(String user) throws SQLException {
return seeker.getSeekerData(user);
}
/**
* Obtiene el rol dado su id
*
* @param id id del rol
*
* @return devuelve el nombre del rol
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public String getRol(int id) throws SQLException {
return seeker.getRol(id);
}
/**
* Obtiene el tipo de estado dado su id
*
* @param id id del estado
*
* @return devuelve el tipo de estado
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public String getState(int id) throws SQLException {
return seeker.getState(id);
}
/**
* Obtiene el id del rol
*
* @param name nombre del rol
*
* @return devuelve el id del rol
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public int getRol(String name) throws SQLException {
return seeker.getRol(name);
}
/**
* Obtiene el id del estado
*
* @param type nombre del estado
*
* @return devuelve el id del estado
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public int getState(String type) throws SQLException {
return seeker.getState(type);
}
/**
* Verifica si un usuario determinado existe (si ya está registrado)
*
* @param user nombre del usuario
*
* @return true si existe el usuario, false de lo contrario
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public boolean existSeeker(String user) throws SQLException {
return seeker.existSeeker(user);
}
/**
* Actualiza la contraseña de un usuario
*
* @param user nombre del usuario
* @param newPassword nueva contraseña
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public void updateSeekerPassword(String user, String newPassword) throws SQLException {
seeker.updateSeekerPassword(user, newPassword);
}
/**
* Devuelve el email de un usuario
*
* @param user nombre del usuario
*
* @return devuelve el email del usuario
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public String getSeekerEmail(String user) throws SQLException {
return seeker.getEmail(user);
}
/**
* Establece el estado de baja a un usuario en una sesión
*
* @param sessionTopic nombre de la sesión
* @param seekerUser nombre del usuario
*
* @return devuelve true si le dio baja al usuario de dicha sesión, devuelve false
* en caso que ese usuario no pertenezca a la sesión especificada
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public boolean declineSeekerSession(String sessionTopic, String seekerUser) throws SQLException {
return seeker.declineSeekerSession(sessionTopic, seekerUser);
}
/**
* Verifica si un usuario pertenece a una sesión
*
* @param session nombre de la sesión
* @param seekerUser nombre del usuario
*
* @return devuelve true si el seeker pertenece a la sesión, false si no
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public boolean verifySeeker(String session, String seekerUser) throws SQLException {
return seeker.verifySeeker(session, seekerUser);
}
/*******************SEARCH SESSION*******************
/**
* Inserta una nueva sesión de búsqueda
*
* @param topic nombre de la sesión
* @param description descripción
* @param chairman usuario que la creó
* @param criteria criterio de integridad
* @param maxMember número máximo de miembros
* @param minMember número mínimo de miembros
* @param members número de miembros actuales
* @param membership membresía
*
* @return devuelve true si guardó los datos de la sesión, de lo contrario devuelve false
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public boolean saveSearchSession(String topic, String description, String chairman, boolean criteria, int maxMember, int minMember, List<Seeker> members, String membership) throws SQLException {
return session.saveSearchSession(topic, description, chairman, criteria, maxMember, minMember, members, membership);
}
/**
* Verifica si una sesión de búsqueda está guardada en la BD
*
* @param session nombre de la sesión
*
* @return true si la sesión existe, false si no
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public boolean existSession(String session) throws SQLException {
return this.session.existSession(session);
}
/**
* Obtiene el id de la membresía
*
* @param type nombre del tipo de membresía
*
* @return devuelve el id de la membrersía
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public int getMembership(String type) throws SQLException {
return session.getMembership(type);
}
/**
* Elimina una sesión de búsqueda
*
* @param sessionTopic nombre de la sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public void deleteSearchSession(String sessionTopic) throws SQLException {
session.deleteSearchSession(sessionTopic);
}
/**
* Carga los datos de los usuarios que pertencen a determinada sesión
*
* @param sessionTopic nombre de la sesión
*
* @return devuelve una lista de objetos Seekers
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<Seeker> loadSeekers(String sessionTopic) throws SQLException {
return session.loadSeekers(sessionTopic);
}
/**
* Relaciona un usuario a una sesión de búsqueda, actualiza el rol del usuario a Miembro
*
* @param seeker nombre del usuario
* @param sessionTopic nombre de la sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public void joinNewSeeker(String seeker, String sessionTopic) throws SQLException {
session.joinNewSeeker(seeker, sessionTopic);
}
/**
* Relaciona varios seekers a una sesión
*
* @param seekers lista de usuarios
* @param sessionTopic nombre de la sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public void joinNewSeeker(List<Seeker> seekers, String sessionTopic) throws SQLException {
session.joinNewSeeker(seekers, sessionTopic);
}
/**
* Obtiene todas las sesiones guardadas en la BD
*
* @return devuelve una lista de los datos de todas las sesiones persistentes
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<SessionData> getAllSessions() throws SQLException {
return session.getAllSessions();
}
/**
* Guarda los mensajes enviados por un usuario
*
* @param sessionTopic nombre de la sesión
* @param user usuario que envió el mensaje
* @param text texto del mensaje
* @param receptor lista de receptores a quienes fue enviado
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public void saveMessages(String sessionTopic, String user, String text, List<Seeker> receptor) throws SQLException {
session.saveMessages(sessionTopic, user, text, receptor);
}
/**
* Guarda el mensaje enviado a un receptor
*
* @param sessionTopic nombre de la sesión
* @param user usuario que envió el mensaje
* @param text texto del mensaje
* @param receptor receptor a quien fue enviado
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public void saveMessages(String sessionTopic, String user, String text, Seeker receptor) throws SQLException {
session.saveMessages(sessionTopic, user, text, receptor);
}
/**
* Obtiene todos los datos de una sesión de búsqueda
*
* @param sessionTopic nombre de la sesión
*
* @return objeto que contiene datos de la sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public SessionData getSessionData(String sessionTopic) throws SQLException {
return session.getSessionData(sessionTopic);
}
/**
* Obtener las sesiones activas por usuario
*
* @param seekerUser nombre del usuario
*
* @return lista con los datos de las sesiones
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<Session> getSeekerAvailableSessions(String seekerUser) throws SQLException {
return session.getSeekerAvailableSessions(seekerUser);
}
/**
*
* Obtener todos los usuarios que pertenecen a una sesión
*
* @param sessionTopic nombre de la sesión
*
* @return devuelve una lista con los nombres de los usuarios de la sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<String> getSessionSeekers(String sessionTopic) throws SQLException {
return session.getSessionSeekers(sessionTopic);
}
/**
* Finaliza una sesión
*
* @param sessionTopic nombre de la sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public void closeCollabSession(String sessionTopic) throws SQLException {
session.closeCollabSession(sessionTopic);
}
/**
* Obtener todas las sesiones activas
*
* @return devuelve una lista de los nombres de las sesiones activas
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<String> getAllEnableSessions() throws SQLException {
return session.getAllEnableSessions();
}
/***********************SEARCH************************
/**
* Obtiene todos los resultados de búsqueda de una sesión
*
* @param sessionTopic nombre de la sesión
*
* @return devuelve una lista de los datos de todos los resultados de búsqueda de esa sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<SearchResultData> getAllDocuments(String sessionTopic) throws SQLException {
return search.getAllDocuments(sessionTopic);
}
/**
* Obtiene todos los resultados de búsqueda revisados de una sesión
*
* @param sessionTopic nombre de la sesión
*
* @return devuelve una lista de los datos de todos los resultados de búsqueda revisados de esa sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<SearchResultData> getAllReviewDocuments(String sessionTopic) throws SQLException {
return search.getAllReviewDocuments(sessionTopic);
}
/**
* Obtiene todos los resultados de búsqueda evaluados de una sesión
*
*
* @param sessionTopic nombre de la sesión
* @param date fecha de la evaluación del documento
*
* @return devuelve una lista de los datos de todos los resultados de búsqueda relevantes de esa sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<SearchResultData> getAllRelevantDocuments(String sessionTopic, Date date) throws SQLException {
return search.getAllRelevantDocuments(sessionTopic, date);
}
/**
* Obtiene todos los resultados de búsqueda evaluados dada una consulta de
* una sesión
*
* @param session nombre de la sesión
* @param query consulta
*
* @return devuelve una lista que contiene los nombres de los documentos
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<String> getAllRelevantDocuments(String session, String query) throws SQLException {
return search.getRelevantDocumentsQuery(session, query);
}
/**
* Guarda los datos de una búsqueda
*
* @param principle principio de búsqueda utilizado
* @param query consulta
* @param session nombre de la sesión
* @param allResults resultados de búsqueda por motor
* @param user nombre del usuario
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public void saveSearchData(String query, String principle, Map<Integer, List<DocumentMetaData>> allResults, String user, String session) throws SQLException {
search.saveSearchData(session, query, principle, allResults, user);
}
/**
* Obtiene el id de determinado principio de búsqueda
*
* @param principle principio de búsqueda
*
* @return devuelve el id del principio
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public int getSearchPrinciple(String principle) throws SQLException {
return search.getSearchPrinciple(principle);
}
/**
* Obtiene el principio de búsqueda dado su id
*
* @param principle id del principio de búsqueda
*
* @return devuelve el nombre del principio
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public String getSearchPrinciple(int principle) throws SQLException {
return search.getSearchPrinciple(principle);
}
/**
* Obtiene una lista de todos los estados de usuarios existentes
*
* @return devuelve una lista de todos los estados
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<String> getAllStates() throws SQLException {
return search.getAllStates();
}
/**
* Obtiene el id de un motor de búsqueda
*
* @param engine nombre del motor
*
* @return id en la tabla
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public int getSearchEngine(String engine) throws SQLException {
return search.getSearchEngine(engine);
}
/**
* Obtiene el nombre de un motor de búsqueda
*
* @param idEngine id del motor
*
* @return nombre en la tabla
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public String getSearchEngine(int idEngine) throws SQLException {
return search.getSearchEngine(idEngine);
}
/**
* Obtiene los motores seleccionados por consulta
*
* @param query id de la consulta
*
* @return devuelve una lista de todos los motores utilizados para dicha consulta
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<String> getSearchEngineQuery(int query) throws SQLException {
return search.getSearchEngineQuery(query);
}
/**
* Obtiene todas las consultas de una sesión sin repetir
*
* @param session nombre de la sesión
*
* @return devuelve una lista de todas las consultas para esa sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<String> getAllQueries(String session) throws SQLException {
return search.getAllQueries(session);
}
/**
* Obtiene todas las consultas de una sesión sin repetir
*
* @param session nombre de la sesión
* @param date fecha de la consulta
*
* @return devuelve todos los seekers de una sesión con sus consultas
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public SeekerQuery getSeekerQueries(String session, Date date) throws SQLException {
return search.getSeekerQueries(session, date);
}
/**
* Dados los ids de documentos devuelve una lista con sus datos
* correspondientes
*
*
* @param list lista de ids de documentos
*
* @return devuelve una lista con los datos de los documentos correspondientes a los ids especificados
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<DocumentMetaData> getSearchResults(List<Integer> list) throws SQLException {
return this.search.getSearchResults(list);
}
/**
* Devuelve todos los resultados de búsqueda para una consulta y una sesión
*
* @param session nombre de la sesión
* @param query consulta
*
* @return devuelve una lista con los datos de los documentos correspondientes a la consulta
* especificada en esa sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<DocumentMetaData> getSearchResults(String session, String query) throws SQLException {
return this.search.getSearchResults(session, query);
}
/**
* Devuelve resultados de búsqueda
*
* @param session nombre de la sesión
* @param query consulta
* @param engine motor de búsqueda empleado
*
* @return devuelve una lista con los datos de los documentos correspondientes a la consulta
* especificada en esa sesión para un motor de búsqueda
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<DocumentMetaData> getSearchResults(String query, String session, String engine) throws SQLException {
return this.search.getSearchResults(session, query, engine);
}
/***************SEARCH RESULT*********************
/**
* Actualiza el campo de revisión de un documento
*
* @param idDoc id del documento
* @param review revisado
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public void updateDocumentReview(int idDoc, boolean review) throws SQLException {
search.updateDocumentReview(idDoc, review);
}
/**
* Establece que un documento fue revisado
*
* @param uri dirección del documento revisado
* @param session nombre de la sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución de la operación
*/
public void setReviewDocument(String session, String uri) throws SQLException {
this.search.setReviewDocument(session, uri);
}
/**
* Guarda los datos de la recomendación hecha por un usuario a muchos usuarios
* de su sesión
*
* @param sessionTopic nombre de la sesión
* @param user nombre del usuario que emitió la recomendación
* @param receptors lista de recpetores
* @param idDoc id del documento
* @param text texto o comentario de la recomendación
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución de la operación
*/
public void saveRecommendation(String sessionTopic, String user, List<Seeker> receptors, int idDoc, String text) throws SQLException {
search.saveRecommendation(sessionTopic, user, receptors, idDoc, text);
}
/**
* Guarda los datos de la recomendación hecha por un usuario a muchos usuarios
* de su sesión
*
* @param sessionTopic nombre de la sesión
* @param user nombre del usuario que emitió la recomendación
* @param receptors lista de receptores
* @param list documentos
* @param text texto o comentario de la recomendación
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución de la operación
*/
public void saveRecommendation(String sessionTopic, String user, List<Seeker> receptors, ResultSetMetaData list, String text) throws SQLException {
search.saveRecommendation(sessionTopic, user, receptors, list, text);
}
/**
*
* Guarda los datos de la recomendación de varios documentos hecha por un usuario a muchos usuarios
* de su sesión
*
* @param sessionTopic nombre de la sesión
* @param user nombre del usuario que emitió la recomendación
* @param receptors lista de receptores
* @param idDoc documentos
* @param text texto o comentario de la recomendación
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución de la operación
*/
public void saveRecommendation(String sessionTopic, String user, List<Seeker> receptors, List<Integer> idDoc, String text) throws SQLException {
search.saveRecommendation(sessionTopic, user, receptors, idDoc, text);
}
/**
* Guarda los datos de la recomendación hecha por un usuario a un usuario
* de su sesión
*
* @param sessionTopic nombre de la sesión
* @param user nombre del usuario que emitió la recomendación
* @param receptor receptor
* @param idDoc documentos
* @param text texto o comentario de la recomendación
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución de la operación
*/
public void saveRecommendation(String sessionTopic, String user, Seeker receptor, int idDoc, String text) throws SQLException {
search.saveRecommendation(sessionTopic, user, receptor, idDoc, text);
}
/**
* Obtiene los datos de un resultado de búsqueda, dado su id
*
* @param id id del documento
* @param session nombre de la sesión
*
* @return devuelve los datos de un resultado de búsqueda
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución de la operación
*/
public SearchResultData getResult(int id, String session) throws SQLException {
return search.getResult(id, session);
}
/**
* Obtiene el id del resultado dado su uri
*
* @param uri ubicacion del documento
* @param session nombre de la sesión
*
* @return devuelve el id del resultado
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución de la operación
*/
public int getResultId(String uri, String session) throws SQLException {
return search.getResultId(uri, session);
}
/**
* Cargar resultados de búsquedas a partir de la consulta
*
* @param idQuery id de la consulta
* @param session nombre de la sesión
*
* @return devuelve una lista de los ids de resultados de búsquedas
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución de la operación
*/
public List<Integer> loadQueryResults(int idQuery, String session) throws SQLException {
return search.loadQueryResults(idQuery, session);
}
/**************REVIEW DOCUMENTS********************
/**
* Guarda los datos de la revisión hecha por un usuario a un resultado de búsqueda
*
* @param sessionTopic nombre de la sesión
* @param comment comentario sobre el documento
* @param relevance valor de relevancia dado al documento
* @param user nombre del usuario
* @param uri uri del documento
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución de la operación
*/
public void saveEvaluation(String sessionTopic, String comment, int relevance, String user, String uri) throws SQLException {
search.saveEvaluation(sessionTopic, comment, relevance, user, uri);
}
/**
* Inserta un comentario realizado por un usuario para un documento
* en una sesión, de existir lo reemplaza
*
* @param sessionTopic nombre de la sesión
* @param seeker objeto seeker del usuario
* @param uri uri del documento evaluado
* @param comment comentario
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución de la operación
*/
public void updateComment(String sessionTopic, Seeker seeker, String uri, String comment) throws SQLException {
search.updateComment(sessionTopic, seeker, uri, comment);
}
/**
* Obtiene el id de la revisión
*
* @param idDoc id del documento
* @param user usuario que hizo la revisión
*
* @return devuelve el id de la revisión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución de la operación
*/
public int getMarkup(int idDoc, String user) throws SQLException {
return search.getMarkup(idDoc, user);
}
/**
* Obtener las evaluaciones hechas a un resultado de búsqueda.
*
* @param result objeto que representa el resultado de búsqueda
* @param sessionTopic nombre de la sesión
*
* @return devuelve una lista con los datos de todas las evaluaciones hechas a un resultado
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<MarkupData> getEvaluations(SearchResultData result, String sessionTopic) throws SQLException {
return session.getEvaluations(result, sessionTopic);
}
/*****************************RECORD TABLES********************/
////////////////////RECOMMEND//////////////
/**
* Obtiene una lista las recomendaciones realizadas en una sesión.
*
* @param sessionTopic nombre de la sesión
*
* @return devuelve una lista con los datos de las recomendaciones realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<RecommendTracker> getAllRecommendations(String sessionTopic) throws SQLException {
return tracker.getAllRecommendations(sessionTopic);
}
/**
* Obtiene una lista las recomendaciones realizadas en una sesión.
*
* @param sessionTopic nombre de la sesión
* @param seeker nombre del usuario que emitió la recomendación
*
* @return devuelve una lista con los datos de las recomendaciones realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<RecommendTracker> getAllRecommendations(String sessionTopic, Seeker seeker) throws SQLException {
return tracker.getAllRecommendations(sessionTopic, seeker);
}
/**
* Obtiene una lista las recomendaciones realizadas en una sesión
*
* @param sessionTopic nombre de la sesión
* @param date fecha de la recomendación
*
* @return devuelve una lista con los datos de las recomendaciones realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<RecommendTracker> getAllRecommendations(String sessionTopic, Date date) throws SQLException {
return tracker.getAllRecommendations(sessionTopic, date);
}
/**
* Obtiene una lista las recomendaciones realizadas en una sesión.
*
* @param sessionTopic nombre de la sesión
* @param query consulta
*
* @return devuelve una lista con los datos de las recomendaciones realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<RecommendTracker> getAllRecommendations(String sessionTopic, String query) throws SQLException {
return tracker.getAllRecommendations(sessionTopic, query);
}
/**
* Obtiene una lista las recomendaciones realizadas en una sesión.
*
* @param sessionTopic nombre de la sesión
* @param seeker usuario que hizo la recomendación
* @param query consulta
*
* @return devuelve una lista con los datos de las recomendaciones realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<RecommendTracker> getAllRecommendations(String sessionTopic, Seeker seeker, String query) throws SQLException {
return tracker.getAllRecommendations(sessionTopic, seeker, query);
}
/**
* Obtiene una lista las recomendaciones realizadas en una sesión
*
* @param sessionTopic nombre de la sesión
* @param query consulta
* @param date fecha de recomendación
*
* @return devuelve una lista con los datos de las recomendaciones realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<RecommendTracker> getAllRecommendations(String sessionTopic, String query, Date date) throws SQLException {
return tracker.getAllRecommendations(sessionTopic, query, date);
}
/**
* Obtiene una lista las recomendaciones realizadas en una sesión.
*
* @param sessionTopic nombre de la sesión
* @param seeker nombre del usuario que emitió la recomendación
* @param date fecha de la recomendación
*
* @return devuelve una lista con los datos de las recomendaciones realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<RecommendTracker> getAllRecommendations(String sessionTopic, Seeker seeker, Date date) throws SQLException {
return tracker.getAllRecommendations(sessionTopic, seeker, date);
}
/**
* Obtiene una lista las recomendaciones realizadas en una sesión.
*
* @param sessionTopic nombre de la sesión
* @param seeker nombre del usuario que emitió la recomendación
* @param query consulta
* @param date fecha
*
* @return devuelve una lista con los datos de las recomendaciones realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<RecommendTracker> getAllRecommendations(String sessionTopic, Seeker seeker, String query, Date date) throws SQLException {
return tracker.getAllRecommendations(sessionTopic, seeker, query, date);
}
///////////////////SEARCHES////////////////////////////////
/**
* Obtiene una lista de documentos correspondientes a búsquedas
* realizadas en una sesión
*
* @param sessionTopic nombre de la sesión
* @param group identificador de los documentos (revisados, relevantes o todos)
*
* @return devuelve una lista con los datos de las búsquedas realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<SearchTracker> getAllSearches(String sessionTopic, int group) throws SQLException {
return tracker.getAllSearches(sessionTopic, group);
}
/**
* Obtiene una lista de documentos correspondientes a búsquedas
* realizadas en una sesión dados los parámetros entrados
*
* @param sessionTopic nombre de la sesión
* @param group identificador de los documentos (revisados, relevantes o todos)
* @param seeker nombre del usuario
*
* @return devuelve una lista con los datos de las búsquedas realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<SearchTracker> getAllSearches(String sessionTopic, int group, Seeker seeker) throws SQLException {
return tracker.getAllSearches(sessionTopic, group, seeker);
}
/**
*
* Obtiene una lista de documentos correspondientes a búsquedas
* realizadas en una sesión dados los parámetros entrados
*
* @param sessionTopic nombre de la sesión
* @param group identificador de los documentos (revisados, relevantes o todos)
* @param date fecha
*
* @return devuelve una lista con los datos de las búsquedas realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<SearchTracker> getAllSearches(String sessionTopic, int group, Date date) throws SQLException {
return tracker.getAllSearches(sessionTopic, group, date);
}
/**
* Obtiene una lista de documentos correspondientes a búsquedas
* realizadas en una sesión dados los parámetros entrados
*
* @param sessionTopic nombre de la sesión
* @param group identificador de los documentos (revisados, relevantes o todos)
* @param query consulta
*
* @return devuelve una lista con los datos de las búsquedas realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<SearchTracker> getAllSearches(String sessionTopic, int group, String query) throws SQLException {
return tracker.getAllSearches(sessionTopic, group, query);
}
/**
* Obtiene una lista de documentos correspondientes a búsquedas
* realizadas en una sesión dados los parámetros entrados
*
* @param sessionTopic nombre de la sesión
* @param group identificador de los documentos (revisados, relevantes o todos)
* @param seeker nombre del usuario
* @param query consulta
*
* @return devuelve una lista con los datos de las búsquedas realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<SearchTracker> getAllSearches(String sessionTopic, int group, Seeker seeker, String query) throws SQLException {
return tracker.getAllSearches(sessionTopic, group, seeker, query);
}
/**
* Obtiene una lista de documentos correspondientes a búsquedas
* realizadas en una sesión dados los parámetros entrados
*
* @param sessionTopic nombre de la sesión
* @param group identificador de los documentos (revisados, relevantes o todos)
* @param query consulta
* @param date fecha de la búsqueda
*
* @return devuelve una lista con los datos de las búsquedas realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<SearchTracker> getAllSearches(String sessionTopic, int group, String query, Date date) throws SQLException {
return tracker.getAllSearches(sessionTopic, group, query, date);
}
/**
* Obtiene una lista de documentos correspondientes a búsquedas
* realizadas en una sesión dados los parámetros entrados
*
* @param sessionTopic nombre de la sesión
* @param group identificador de los documentos (revisados, relevantes o todos)
* @param seeker nombre del usuario
* @param date fecha de la búsqueda
*
* @return devuelve una lista con los datos de las búsquedas realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<SearchTracker> getAllSearches(String sessionTopic, int group, Seeker seeker, Date date) throws SQLException {
return tracker.getAllSearches(sessionTopic, group, seeker, date);
}
/**
* Obtiene una lista de documentos correspondientes a búsquedas
* realizadas en una sesión dados los parámetros entrados
*
* @param sessionTopic nombre de la sesión
* @param group identificador de los documentos (revisados, relevantes o todos)
* @param seeker nombre del usuario
* @param date fecha
* @param query consulta
*
* @return devuelve una lista con los datos de las búsquedas realizadas en una sesión
*
* @throws SQLException si ocurre alguna SQLException durante la ejecución
* de la operación
*/
public List<SearchTracker> getAllSearches(String sessionTopic, int group, Seeker seeker, Date date, String query) throws SQLException {
return tracker.getAllSearches(sessionTopic, group, seeker, date, query);
}
}