package com.constellio.model.services.records.cache; import java.util.Collection; import java.util.List; import com.constellio.model.entities.records.Record; import com.constellio.model.entities.schemas.Metadata; import com.constellio.model.entities.schemas.MetadataSchemaType; import com.constellio.model.services.search.query.logical.LogicalSearchQuery; public interface RecordsCache { Record get(String id); boolean isCached(String id); void insert(List<Record> record); void insertQueryResults(LogicalSearchQuery query, List<Record> records); List<Record> getQueryResults(LogicalSearchQuery query); Record insert(Record record); Record forceInsert(Record record); void invalidateRecordsOfType(String recordType); void invalidate(List<String> recordIds); void invalidate(String recordId); void configureCache(CacheConfig cacheConfig); Collection<CacheConfig> getConfiguredCaches(); CacheConfig getCacheConfigOf(String schemaOrTypeCode); void invalidateAll(); Record getByMetadata(Metadata metadata, String value); void removeCache(String schemaType); boolean isConfigured(MetadataSchemaType type); boolean isConfigured(String typeCode); int getCacheObjectsCount(); }