package com.constellio.data.dao.services.records; import java.util.Iterator; import java.util.List; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.params.SolrParams; import com.constellio.data.dao.dto.records.QueryResponseDTO; import com.constellio.data.dao.dto.records.RecordDTO; import com.constellio.data.dao.dto.records.TransactionDTO; import com.constellio.data.dao.dto.records.TransactionResponseDTO; import com.constellio.data.dao.services.DataStoreTypesFactory; import com.constellio.data.dao.services.bigVault.RecordDaoException; import com.constellio.data.dao.services.bigVault.solr.BigVaultServer; public interface RecordDao { RecordDTO get(String id) throws RecordDaoException.NoSuchRecordWithId; QueryResponseDTO query(SolrParams params); List<RecordDTO> searchQuery(SolrParams params); QueryResponse nativeQuery(SolrParams params); long documentsCount(); DataStoreTypesFactory getTypesFactory(); TransactionResponseDTO execute(TransactionDTO transaction) throws RecordDaoException.OptimisticLocking; List<String> getReferencedRecordsInHierarchy(String recordId); void flush(); void removeOldLocks(); long getCurrentVersion(String id); void recreateZeroCounterIndexesIn(String collection, Iterator<RecordDTO> recordsIterator); BigVaultServer getBigVaultServer(); void expungeDeletes(); }