/*
############################################################################
##
## Copyright (C) 2006-2009 University of Utah. All rights reserved.
##
## This file is part of DeepPeep.
##
## This file may be used under the terms of the GNU General Public
## License version 2.0 as published by the Free Software Foundation
## and appearing in the file LICENSE.GPL included in the packaging of
## this file. Please review the following to ensure GNU General Public
## Licensing requirements will be met:
## http://www.opensource.org/licenses/gpl-license.php
##
## If you are unsure which license is appropriate for your use (for
## instance, you are interested in developing a commercial derivative
## of DeepPeep), please contact us at deeppeep@sci.utah.edu.
##
## This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
## WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
##
############################################################################
*/
package focusedCrawler.util.storage;
import java.util.Enumeration;
import focusedCrawler.util.CommunicationException;
import focusedCrawler.util.DataNotFoundException;
public interface Storage {
/**
* Insercao de elementos.
*/
Object insert(Object obj) throws StorageException, CommunicationException;
Object[] insertArray(Object[] objs) throws StorageException, CommunicationException;
/**
* Selecao de elementos.
*/
Object select(Object obj) throws StorageException, DataNotFoundException, CommunicationException;
Object[] selectArray(Object[] objs) throws StorageException, DataNotFoundException, CommunicationException;
Enumeration<?> selectEnumeration(Object obj) throws StorageException, DataNotFoundException, CommunicationException;
/**
* Atualizacao de elementos.
*/
Object update(Object obj) throws StorageException, CommunicationException;
Object[] updateArray(Object[] objs) throws StorageException, CommunicationException;
/**
* Remocao de elementos.
*/
Object remove(Object obj) throws StorageException, CommunicationException;
Object[] removeArray(Object[] objs) throws StorageException, CommunicationException;
/**
* Adiciona recursos.
*/
Object addResource(Object obj) throws StorageException, CommunicationException;
Object[] addResourceArray(Object[] objs) throws StorageException, CommunicationException;
/**
* Remove recursos.
*/
Object removeResource(Object obj) throws StorageException, CommunicationException;
Object[] removeResourceArray(Object[] objs) throws StorageException, CommunicationException;
/**
* Realiza o commit de um estado.
*/
Object commit(Object obj) throws StorageException, CommunicationException;
/**
* Realiza o rollback em caso de problemas.
*/
Object rollback(Object obj) throws StorageException, CommunicationException;
/**
* Finaliza um Storage.
*/
Object finalize(Object obj) throws StorageException, CommunicationException;
/**
* Utilizado para acessar o objeto
*/
Object ping(Object obj) throws StorageException, CommunicationException;
}