/* * 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.prow; import drakkar.oar.Documents; import drakkar.oar.QuerySource; import drakkar.oar.Request; import drakkar.oar.Seeker; import static drakkar.oar.util.KeyTransaction.*; import static drakkar.oar.util.SeekerAction.*; import java.io.Serializable; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Esta clase es permite construir objetos Request para efectuar los diferentes * métodos de recomendaciones soportadas por DrakkarKeel */ public class RequestRecommendFactory implements Serializable{ private static final long serialVersionUID = 80000000000008L; /** * Devuelve un objeto Request para recomendar todos resultados de la búsqueda * a toda la sesión * * @param sessionName nombre de la sesión del usuario * @param comments comentarios de la recomendación * * @param data * @return objeto request */ public static Request getRFRecommendation(String sessionName, String comments, QuerySource data) { Map<Object, Object> hash = new HashMap<>(4); hash.put(OPERATION, RECOMMEND_SESSION_RESULTS); hash.put(SESSION_NAME, sessionName); hash.put(COMMENT, comments); hash.put(QUERY_SOURCE, data); return new Request(hash); } /** * Devuelve un objeto Request para recomendar todos resultados de la búsqueda * a un usuario * * @param sessionName nombre de la sesión * @param receptor usuario a quien va dirigido la recomendación * @param comments comentarios de la recomendación * * @param data * @return objeto request */ public static Request getRFRecommendation(String sessionName, Seeker receptor, String comments, QuerySource data) { Map<Object, Object> hash = new HashMap<>(5); hash.put(OPERATION, RECOMMEND_SINGLE_RESULTS); hash.put(SESSION_NAME, sessionName); hash.put(MEMBER_RECEPTOR, receptor); hash.put(COMMENT, comments); hash.put(QUERY_SOURCE, data); return new Request(hash); } /** * Devuelve un objeto Request para recomendar a un grupo de miembros * de su sesión * * @param sessionName nombre de la sesión * @param receptors miembros a quienes va dirigido la recomendación * @param comments comentarios de la recomendación * * @param data * @return objeto request */ public static Request getRFRecommendation(String sessionName, List<Seeker> receptors, String comments, QuerySource data) { Map<Object, Object> hash = new HashMap<>(5); hash.put(OPERATION, RECOMMEND_GROUP_RESULTS); hash.put(SESSION_NAME, sessionName); hash.put(SEEKERS_RECEPTORS, receptors); hash.put(COMMENT, comments); hash.put(QUERY_SOURCE, data); return new Request(hash); } /** * Devuelve un objeto Request para recomendar una selección de los resultados * de la búsqueda a toda su sesión * * @param sessionName nombre de la sesión * @param docs * @param comments comentarios de la recomendación * @param data * * @return objeto request */ public static Request getRFRecommendation(String sessionName, Documents docs, String comments, QuerySource data) { Map<Object, Object> hash = new HashMap<>(5); hash.put(OPERATION, RECOMMEND_SESSION_SELECTION_RESULTS); hash.put(SESSION_NAME, sessionName); hash.put(DOCUMENTS, docs); hash.put(COMMENT, comments); hash.put(QUERY_SOURCE, data); return new Request(hash); } /** * Devuelve un objeto Request para recomendar una selección de los resultados * de la búsqueda a un usuario de su sesión * * @param sessionName nombre de la sesión * @param receptor usuario a quien va dirigida la recomendación * @param docs * @param comments comentarios de la recomendación * @param data * * @return objeto request */ public static Request getRFRecommendation(String sessionName, Seeker receptor, Documents docs, String comments, QuerySource data) { Map<Object, Object> hash = new HashMap<>(6); hash.put(OPERATION, RECOMMEND_SINGLE_SELECTION_RESULTS); hash.put(SESSION_NAME, sessionName); hash.put(MEMBER_RECEPTOR, receptor); hash.put(DOCUMENTS, docs); hash.put(COMMENT, comments); hash.put(QUERY_SOURCE, data); return new Request(hash); } /** * Devuelve un objeto Request para recomendar una selección de los resultados * de la búsqueda a un grupo de miembros de su sesión * * @param sessionName nombre de la sesión * @param receptors a quienes va dirigida la recomendación * @param docs * @param data * @param comments comentarios de la recomendación * * @return objeto request */ public static Request getRFRecommendation(String sessionName, List<Seeker> receptors, Documents docs, String comments, QuerySource data) { Map<Object, Object> hash = new HashMap<>(6); hash.put(OPERATION, RECOMMEND_GROUP_SELECTION_RESULTS); hash.put(SESSION_NAME, sessionName); hash.put(SEEKERS_RECEPTORS, receptors); hash.put(DOCUMENTS, docs); hash.put(COMMENT, comments); hash.put(QUERY_SOURCE, data); return new Request(hash); } /** * Devuelve un objeto Request para 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 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 * @return objeto request */ public static Request getRFRecommendation(String sessionName, String sessionNameRtr, Seeker receptor, String comments, QuerySource data) { Map<Object, Object> hash = new HashMap<>(6); hash.put(OPERATION, RECOMMEND_ANOTHER_SESSION_SINGLE_RESULTS); hash.put(SESSION_NAME, sessionName); hash.put(OTHER_SESSION_NAME, sessionNameRtr); hash.put(MEMBER_RECEPTOR, receptor); hash.put(COMMENT, comments); hash.put(QUERY_SOURCE, data); return new Request(hash); } /** * Devuelve un objeto Request para recomendar una selección de 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 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 * @return objeto request */ public static Request getRFRecommendation(String sessionName, String sessionNameRtr, Seeker receptor, Documents docs, String comments, QuerySource data) { Map<Object, Object> hash = new HashMap<>(7); hash.put(OPERATION, RECOMMEND_ANOTHER_SESSION_SINGLE_SELECTION_RESULTS); hash.put(SESSION_NAME, sessionName); hash.put(OTHER_SESSION_NAME, sessionNameRtr); hash.put(MEMBER_RECEPTOR, receptor); hash.put(DOCUMENTS, docs); hash.put(COMMENT, comments); hash.put(QUERY_SOURCE, data); return new Request(hash); } /** * Devuelve un objeto Request para recomendar todos los resultados de la búsqueda * a un grupo de miembros de otra sesión de búsqueda * * @param sessionName nombre de la sesión del emisor * @param sessionNameRtrs nombre de la sesión de los receptores * @param receptors miembros a quienes va dirigida la recomendación * @param comments comentarios de la recomendación * * @param data * @return objeto request */ public static Request getRFRecommendation(String sessionName, String sessionNameRtrs, List<Seeker> receptors, String comments, QuerySource data) { Map<Object, Object> hash = new HashMap<>(6); hash.put(OPERATION, RECOMMEND_ANOTHER_SESSION_GROUP_RESULTS); hash.put(SESSION_NAME, sessionName); hash.put(OTHER_SESSION_NAME, sessionNameRtrs); hash.put(SEEKERS_RECEPTORS, receptors); hash.put(COMMENT, comments); hash.put(QUERY_SOURCE, data); return new Request(hash); } /** * Devuelve un objeto Request para recomendar una selección de los resultados * de la búsqueda a un grupo de miembros de otra sesión de búsqueda * * @param sessionName nombre de la sesión del emisor * @param sessionNameRtrs nombre de la sesión de los receptores * @param receptors miembros a quienes va dirigida la recomendación * @param docs * @param comments comentarios de la recomendación * @param data * * @return objeto request */ public static Request getRFRecommendation(String sessionName, String sessionNameRtrs, List<Seeker> receptors, Documents docs, String comments, QuerySource data) { Map<Object, Object> hash = new HashMap<>(7); hash.put(OPERATION, RECOMMEND_ANOTHER_SESSION_GROUP_SELECTION_RESULTS); hash.put(SESSION_NAME, sessionName); hash.put(OTHER_SESSION_NAME, sessionNameRtrs); hash.put(SEEKERS_RECEPTORS, receptors); hash.put(DOCUMENTS, docs); hash.put(COMMENT, comments); hash.put(QUERY_SOURCE, data); return new Request(hash); } /** * Devuelve un objeto Request para notificar la acción de activar la sugerencias * de términos relevantes. * * @param sessionName nombre de la sesión * @param event true, para activar PQT, false en caso contrario * @return objeto request */ public static Request getRFCollabTermsSuggest(String sessionName, int event) { Map<Object, Object> hash = new HashMap<>(3); hash.put(OPERATION, COLLABORATIVE_TERMS_SUGGEST); hash.put(SESSION_NAME, sessionName); hash.put(DISTRIBUTED_EVENT, event); return new Request(hash); } }