/*
*
* 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 com.agiletec.aps.system.exception.ApsSystemException;
/**
* Classe factory degli elementi ad uso del SearchEngine.
* @author E.Santoboni
*/
public interface ISearchEngineDAOFactory {
/**
* Inizializzazione della classe factory.
* @throws Exception In caso di errore.
*/
public void init() throws Exception;
/**
* Restituisce la classe dao delegata alle operazioni di indicizzazione.
* @param newIndex Discrimina la costruzione.
* @return La classe dao delegata alle operazioni di indicizzazione.
* @throws ApsSystemException In caso nella errore.
*/
public IIndexerDAO getIndexer(boolean newIndex) throws ApsSystemException;
/**
* Restituisce la classe dao delegata alle operazioni di ricerca.
* @return La classe dao delegata alle operazioni di ricerca.
* @throws ApsSystemException In caso nella errore.
*/
public ISearcherDAO getSearcher() throws ApsSystemException;
/**
* Restituisce la classe dao delegata alle operazioni di indicizzazione.
* @param newIndex Discrimina la costruzione.
* @param subDir La sottocartella (figlia della root a servizio del sistema)
* utilizzata per le operazioni di indicizzazione dei documenti.
* @return La classe dao delegata alle operazioni di indicizzazione.
* @throws ApsSystemException In caso nella errore.
*/
public IIndexerDAO getIndexer(boolean newIndex, String subDir) throws ApsSystemException;
/**
* Restituisce la classe dao delegata alle operazioni di ricerca.
* @param subDir La sottocartella (figlia della root a servizio del sistema)
* utilizzata per le operazioni di ricerca dei documenti.
* @return La classe dao delegata alle operazioni di ricerca.
* @throws ApsSystemException In caso nella errore.
*/
public ISearcherDAO getSearcher(String subDir) throws ApsSystemException;
/**
* Aggiorna la sottocartella (figlia della root a servizio del sistema)
* utilizzata per le operazioni di indicizzazione e ricerca dei documenti.
* @param newSubDirectory La nuova subdirectory.
* @throws ApsSystemException In caso nella errore.
*/
public void updateSubDir(String newSubDirectory) throws ApsSystemException;
/**
* Cancella la sottocartella (figlia della root a servizio del sistema)
* utilizzata per le operazioni di indicizzazione e ricerca dei documenti.
* @param subDirectory La sottocartella
*/
public void deleteSubDirectory(String subDirectory);
}