/* * 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.cache; import drakkar.oar.Seeker; import drakkar.oar.SessionProperty; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Esta clase almacena toda la información relacionada con la sesión */ public class SessionProfile { private SeekerInfo seekerProxies; private SeekerInfo recordWaitAdmission; private SeekerSearchResults recordSearches; private SeekerRecommendResults recordRecommendation; private CommentDocuments commentDocs; private ViewedDocuments viewedDocs; private SelectedDocuments selectedDocs; private Chairman chairman; private SessionProperty properties; private Count seekerMessagesCount; private Count memberRecommendationsCount; private Map<String, Long> querys; private int searchesCount; private int messagesCount; private int recommendationsCount; private Date startDate; private Date stopDate; private SeekerRecommends seekerRecommends; private Seeker tempChairman; //chairman temporal private boolean termsSuggest = false; private List<Seeker> activeTermsSuggestList; public SessionProfile() { this.seekerProxies = new SeekerInfo(); this.recordWaitAdmission = new SeekerInfo(); this.properties = new SessionProperty(); this.recordRecommendation = new SeekerRecommendResults(); this.commentDocs = new CommentDocuments(); this.viewedDocs = new ViewedDocuments(); this.selectedDocs = new SelectedDocuments(); this.recordSearches = new SeekerSearchResults(properties.getSessionName(), viewedDocs, selectedDocs, commentDocs); this.chairman = null; this.seekerMessagesCount = new Count(); this.memberRecommendationsCount = new Count(); this.querys = new HashMap<>(); this.searchesCount = 0; this.messagesCount = 0; this.recommendationsCount = 0; this.startDate = new Date(); this.stopDate = null; this.seekerRecommends = new SeekerRecommends(); this.activeTermsSuggestList = new ArrayList<>(); } public SessionProfile(String sessionName, String sessionDescription) { this.seekerProxies = new SeekerInfo(); this.recordWaitAdmission = new SeekerInfo(); this.recordRecommendation = new SeekerRecommendResults(); this.commentDocs = new CommentDocuments(); this.viewedDocs = new ViewedDocuments(); this.selectedDocs = new SelectedDocuments(); this.chairman = null; this.properties = new SessionProperty(sessionName, sessionDescription); this.recordSearches = new SeekerSearchResults(properties.getSessionName(), viewedDocs, selectedDocs, commentDocs); this.seekerMessagesCount = new Count(); this.memberRecommendationsCount = new Count(); this.querys = new HashMap<>(); this.searchesCount = 0; this.messagesCount = 0; this.recommendationsCount = 0; this.startDate = new Date(); this.stopDate = null; this.seekerRecommends = new SeekerRecommends(); this.activeTermsSuggestList = new ArrayList<>(); } /** * Constructor de la clase * * @param chairman jefe de la sesión * @param members relación de usuarios con sus objetos proxies * @param properties propiedades de la sesión */ public SessionProfile(Chairman chairman, SeekerInfo members, SessionProperty properties) { this.seekerProxies = members; this.recordWaitAdmission = new SeekerInfo(); this.recordRecommendation = new SeekerRecommendResults(); this.commentDocs = new CommentDocuments(); this.viewedDocs = new ViewedDocuments(); this.selectedDocs = new SelectedDocuments(); this.chairman = chairman; this.properties = properties; this.recordSearches = new SeekerSearchResults(properties.getSessionName(), viewedDocs, selectedDocs, commentDocs); this.seekerMessagesCount = new Count(); this.memberRecommendationsCount = new Count(); this.querys = new HashMap<>(); this.searchesCount = 0; this.messagesCount = 0; this.recommendationsCount = 0; this.startDate = new Date(); this.stopDate = null; this.seekerRecommends = new SeekerRecommends(); this.activeTermsSuggestList = new ArrayList<>(); } /** * Devuelve el objeto Chairman * * @return objeto */ public Chairman getChairman() { return chairman; } /** * Modifica el valor del objeto Chairman * @param chairman */ public void setChairman(Chairman chairman) { this.chairman = chairman; } /** * Devuelve la relación de mensajes efectuados por los miembros de la * sesión * * @return relación de mensajes */ public Count getSeekersMessages() { return seekerMessagesCount; } /** * Modifica el valor de la relación de mensajes efectuados por los miembros * de la sesión * * @param seekersMessagesCount nueva relación de mensajes */ public void setSeekersMessages(Count seekersMessagesCount) { this.seekerMessagesCount = seekersMessagesCount; } /** * Devuelve la relación de recomendaciones efectuados por los miembros de la * sesión * * @return relación de recomendaciones */ public Count getSeekersRecommendations() { return memberRecommendationsCount; } /** * Modifica el valor de la relación de recomendaciones efectuados por los * miembros de la sesión * * @param memberRecommendationsCount */ public void setSeekersRecommendations(Count memberRecommendationsCount) { this.memberRecommendationsCount = memberRecommendationsCount; } /** * Devuelve el total de mensajes enviados por los miembros de la sesión * * @return total de mensajes */ public int getMessagesCount() { return messagesCount; } /** * Modifica el valor del total de mensajes enviados por los miembros de la sesión * * @param messagesCount nuevo valor */ public void setMessagesCount(int messagesCount) { this.messagesCount = messagesCount; } /** * Devuelve las propiedades de la sesión * * @return propiedades */ public SessionProperty getProperties() { return properties; } /** * Modifica las propiedades de la sesión * * @param properties nuevas propiedades */ public void setProperties(SessionProperty properties) { this.properties = properties; } /** * Devuelve la relación de las consultas efectuadas por los miembros de la * sesión con el total de documentos obtenido para cada una de ellas * * @return relación de consultas * */ public Map<String, Long> getQuerys() { return querys; } /** * Modifica el valor de la relación de las consultas efectuadas por los miembros * de la sesión * * @param querys nueva relación */ public void setQuerys(Map<String, Long> querys) { this.querys = querys; } /** * Devuelve el total de recomendaciones efectuadas por los miembros de la * sesión * * @return total de recomendaciones */ public int getRecommendationsCount() { return recommendationsCount; } /** * Modifica el valor del total de recomendaciones efectuadas por los miembros de la * sesión * * @param recommendationsCount nuevo valor */ public void setRecommendationsCount(int recommendationsCount) { this.recommendationsCount = recommendationsCount; } /** * Devuelve la instancia del objeto ViewedDocuments * * @return objeto */ public ViewedDocuments getViewedDocuments() { return viewedDocs; } /** * Modifica la instancia del objeto ViewedDocuments * * @param viewedDocs nueva instancia */ public void setViewedDocuments(ViewedDocuments viewedDocs) { this.viewedDocs = viewedDocs; } /** * Devuelve la instancia del objeto SeekerComments * * @return objeto */ public CommentDocuments getSeekerComments() { return commentDocs; } /** * Modifica la instancia del objeto SeekerComments * * @param seekerComments nueva instancia */ public void setRecordComments(CommentDocuments seekerComments) { this.commentDocs = seekerComments; } /** * Devuelve la instancia del objeto SeekerProxy * * @return objeto */ public SeekerInfo getSeekerInfo() { return seekerProxies; } /** * Modifica la instancia del objeto SeekerProxy * * @param seekerProxies */ public void setSeekerInfo(SeekerInfo seekerProxies) { this.seekerProxies = seekerProxies; } /** * Devuelve la instancia del objeto SeekerSearchResults * * @return objeto */ public SeekerSearchResults getSeekerSearchResults() { return recordSearches; } /** * Modifica la instancia del objeto SeekerSearchResults * * @param recordSearches nueva instancia */ public void setSeekerSearchResults(SeekerSearchResults recordSearches) { this.recordSearches = recordSearches; } /** * Devuelve la instancia del objeto SeekerProxy que representa los usuarios * pendientes de admisión a una sesión de búsqueda * * @return objeto */ public SeekerInfo getSeekerWaitAdmission() { return recordWaitAdmission; } /** * Modifica la instancia del objeto SeekerProxy que representa los usuarios * pendientes de admisión a una sesión de búsqueda * * @param recordWaitAdmission nueva instancia */ public void setRecordWaitAdmission(SeekerInfo recordWaitAdmission) { this.recordWaitAdmission = recordWaitAdmission; } /** * Devuelve la instancia del objeto SelectedDocuments * * @return objeto */ public SelectedDocuments getSelectedDocuments() { return selectedDocs; } /** * Modifica la instancia del objeto SelectedDocuments * * @param recordEvaluations nueva instancia */ public void setSelectedDocuments(SelectedDocuments recordEvaluations) { this.selectedDocs = recordEvaluations; } /** * Devuelve el total de búsquedas efectuadas por los miembros de la sesión * * @return total de búsquedas */ public int getSearchesCount() { return searchesCount; } /** * Modifica el valor del total de búsquedas efectuadas por los miembros de * la sesión * * @param searchesCount nuevo valor */ public void setSearchesCount(int searchesCount) { this.searchesCount = searchesCount; } /** * Devuelve la fecha de inicio de la sesión * * @return fecha */ public Date getStartDate() { return startDate; } /** * Modifica el valor de la fecha de inicio de la sesión * * @param startDate nueva fecha */ public void setStartDate(Date startDate) { this.startDate = startDate; } /** * Devuelve la fecha de fin de la sesión * * @return fecha */ public Date getStopDate() { return stopDate; } /** * Modifica la fecha de fin de la sesión * * @param stopDate nueva fecha */ public void setStopDate(Date stopDate) { this.stopDate = stopDate; } /** * * @return */ public SeekerRecommendResults getSeekerRecommendResults() { return recordRecommendation; } /** * * @param recordRecommendation */ public void setSeekerRecommendResults(SeekerRecommendResults recordRecommendation) { this.recordRecommendation = recordRecommendation; } /** * @return the seekerRecommend */ public SeekerRecommends getSeekerRecommends() { return seekerRecommends; } /** * @param seekerRecommend the seekerRecommend to set */ public void setSeekerRecommends(SeekerRecommends seekerRecommend) { this.seekerRecommends = seekerRecommend; } /** * * @return */ public Seeker getTempChairman() { return tempChairman; } /** * * @param tempChairman */ public void setTempChairman(Seeker tempChairman) { this.tempChairman = tempChairman; } public boolean isTermsSuggest() { return termsSuggest; } public void setTermsSuggest(boolean termsSuggest) { this.termsSuggest = termsSuggest; } public List<Seeker> getActiveTermsSuggestList() { return activeTermsSuggestList; } public boolean isActiveTermsSuggest(Seeker seeker){ return activeTermsSuggestList.contains(seeker); } public void clear() { seekerProxies.record.clear(); recordWaitAdmission.record.clear(); recordSearches.record.clear(); recordRecommendation.record.clear(); commentDocs.record.clear(); viewedDocs.record.clear(); selectedDocs.record.clear(); seekerMessagesCount.record.clear(); memberRecommendationsCount.record.clear(); querys.clear(); searchesCount = 0; messagesCount = 0; recommendationsCount = 0; seekerRecommends.values.clear(); } }