/*
* 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.oar;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
/**
* Esta clase almacena los resultados de búsqueda por buscadores para una
* determinada consulta
*
*
* @deprecated As of DrakkarKeel version 1.1,
* replaced by <code>ResultSetMetaData</code>.
*
* @see drakkar.oar.ResultSetMetaData
*
*/
public class DocumentsList implements java.io.Serializable {
private static final long serialVersionUID = 70000000000006L;
private String query;
private Map<Integer, ArrayList<MetaDocument>> results;
/**
* Constructor por defecto
*/
public DocumentsList() {
this.query = "";
this.results = new HashMap<>();
}
/**
* Constructor de la clase
*
* @param query consulta de búsqueda
*/
public DocumentsList(String query) {
this.query = query;
this.results = new HashMap<>();
}
/**
* Constructor de la clase
*
* @param query consulta de búsqueda
* @param results resultados de la búsqueda
*/
public DocumentsList(String query, Map<Integer, ArrayList<MetaDocument>> results) {
this.query = query;
this.results = results;
}
/**
* Constructor de la clase
*
* @param query consulta de búsqueda
* @param searcher buscador empleado para la búsqueda
*/
public DocumentsList(String query, int searcher) {
this.query = query;
this.results = new HashMap<>();
this.results.put(searcher, new ArrayList<MetaDocument>());
}
/**
* Constructor de la clase
*
* @param query consulta de búsqueda
* @param searcher buscador empleado para la búsqueda
* @param values resultados de la búsqueda
*/
public DocumentsList(String query, int searcher, ArrayList<MetaDocument> values) {
this.query = query;
this.results = new HashMap<>();
this.results.put(searcher, values);
}
/**
* Devuelve la consulta de la búsqueda
*
* @return consulta
*/
public String getQuery() {
return query;
}
/**
* Devuelve los resultados de búsqueda por cada buscador
*
* @return resultados
*/
public Map<Integer, ArrayList<MetaDocument>> getResults() {
return this.results;
}
/**
* Devuelve todos los resultados de búsqueda
*
* @return resultados
*/
public ArrayList<MetaDocument> getResultsList() {
Collection<ArrayList<MetaDocument>> temp = this.results.values();
ArrayList<MetaDocument> finalList = new ArrayList<>(temp.size());
for (ArrayList<MetaDocument> arrayList : temp) {
finalList.addAll(arrayList);
}
return finalList;
}
/**
* Devuelve los resultados de búsqueda obtenidos para una buscador
*
* @param searcher buscador
* @return lista de metadocument para ese searchable, o null si el searchable especificado
* no cuenta con resultados.
*/
public ArrayList<MetaDocument> getResultsList(int searcher) {
ArrayList<MetaDocument> temp = this.results.get(searcher);
return temp;
}
/**
* Determina si existen resultados de búsqueda
*
* @return true si no existen resultados de búsqueda, false en caso contrario
*/
public boolean isEmpty() {
return this.results.isEmpty();
}
/**
* Agrega una lista de docuementos obtenidos por un buscador
*
* @param searcher buscador
* @param docs documentos obtenidos
*/
public void add(int searcher, ArrayList<MetaDocument> docs) {
this.results.put(searcher, docs);
}
/**
* Modifica el valor de la consulta de búsqueda
*
* @param query nueva consulta
*/
public void setQuery(String query) {
this.query = query;
}
/**
* Devuelve el número total de documentos
*
* @return total
*/
public int size() {
Collection<ArrayList<MetaDocument>> temp = this.results.values();
int size = 0;
for (ArrayList<MetaDocument> arrayList : temp) {
size += arrayList.size();
}
return size;
}
}