/*
*
* Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved.
*
* This file is part of jAPS software.
* jAPS is a free software;
* you can redistribute it and/or modify it
* under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2.
*
* See the file License for the specific language governing permissions
* and limitations under the License
*
*
*
* Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved.
*
*/
package com.agiletec.plugins.jacms.aps.system.services.searchengine;
import java.io.File;
import java.util.Collection;
import java.util.List;
import com.agiletec.aps.system.exception.ApsSystemException;
/**
* Interfaccia base per i Data Access Object dediti
* alle operazioni di ricerca ad uso del motore di ricerca interno.
* @author W.Ambu
*/
public interface ISearcherDAO {
/**
* Inizializzazione del searcher.
* @param dir La cartella locale contenitore dei dati persistenti.
* @throws ApsSystemException In caso di errore
*/
public void init(File dir) throws ApsSystemException;
/**
* Ricerca una lista di identificativi di contenuto in base
* al codice della lingua corrente ed alla parola immessa.
* @param langCode Il codice della lingua corrente.
* @param word La parola in base al quale fare la ricerca. Nel caso
* venissero inserite stringhe di ricerca del tipo "Venice Amsterdam"
* viene considerato come se fosse "Venice OR Amsterdam".
* @param allowedGroups I gruppi autorizzati alla visualizzazione. Nel caso
* che la collezione sia nulla o vuota, la ricerca sarĂ effettuata su contenuti
* referenziati con il gruppo "Ad accesso libero". Nel caso che nella collezione
* sia presente il gruppo degli "Amministratori", la ricerca produrrĂ un'insieme
* di identificativi di contenuto non filtrati per gruppo.
* @return La lista di identificativi contenuto.
* @throws ApsSystemException
*/
public List<String> searchContentsId(String langCode,
String word, Collection<String> allowedGroups) throws ApsSystemException;
public void close();
}