/*
* Created on Nov 15, 2012
*
* Copyright 2013 ATPCO Confidential and Proprietary. All Rights Reserved.
*/
package net.atpco.dds.offline.filing.common.service;
import java.util.List;
import net.atpco.dds.offline.filing.common.model.Entity;
import net.atpco.dds.offline.filing.model.SearchCriteria;
import net.atpco.dds.offline.filing.model.SortCriteria;
/**
*
* This interface provides methods to retrieve data from temporary data
* extracted for Filing - like lucene index file etc.
*
* @author Infosys
* @version 1.0
*
*/
public interface DataRead {
/**
* This method is used to retrieve data from the Filings temp data storage
* based on the input search criteria.
*
* @param searchCriteria
* - List<SearchCriteria>
* @return list of entity - List<Entity>
* */
List<Entity> retrieveData(List<SearchCriteria> searchCriteria);
/**
* This method is used to retrieve data from Filings temp data storage based
* on the input search criteria and sort criteria.
*
* @param searchCriteria
* - List<SearchCriteria>
* @param sortCriteria
* - List<SortCriteria>
* @return list of entity - List<Entity>
* */
List<Entity> retrieveData(List<SearchCriteria> searchCriteria,
List<SortCriteria> sortCriteria);
/**
* This method is used to retrieve specific data from Filings temp data
* storage based on the input column name.
*
* @param columnName
* - String
* @return column data list - List<String>
* */
List<String> retrieveSpecificColumnData(List<SearchCriteria> searchCriteria, String columnName);
/**
* This method is used to check if the data based on the search criteria
* exists in lucene index file.
*
* @param searchCriteria
* - List<SearchCriteria>
* @return boolean value - Boolean
* */
Boolean checkDataExistence(List<SearchCriteria> searchCriteria);
/**
* This method is used to get the total count of documents based on the
* search criteria exists in lucene index file.
*
* @param searchCriteria - List<SearchCriteria>
* @return Integer
* */
Integer retrieveDataCount(List<SearchCriteria> searchCriteria);
/**
* This method is used to get the total number of count in lucene index file.
*
* @return Integer
* */
Integer retrieveAllDataCount();
/**
* This method is used to get the specific Entity objects based on the
* search criteria,startNumber, endNumber and sort criteria exists in
* lucene index file.
*
* @param searchCriteria
* - List<SearchCriteria>
* @param startNumber
* - int
* @param endNumber
* - int
* @param sortCriteria
* - List<SortCriteria>
* @return Entity list
* - List<Entity>
* */
List<Entity> retrieveDataChunk(List<SearchCriteria> searchCriteria,
List<SortCriteria> sortCriteria, int startNumber, int endNumber);
/**
* This method is used to get the specific Entity objects based on the
* search criteria,startNumber and endNumber exists in lucene index file.
*
* @param searchCriteria
* - List<SearchCriteria>
* @param startNumber
* - int
* @param endNumber
* - int
* @return Entity list
* - List<Entity>
* */
List<Entity> retrieveDataChunk(List<SearchCriteria> searchCriteria,
int startNumber, int endNumber);
/**
* This method is used to close IndexSearcher and IndexReader.
*/
void closeDataRead();
}