package org.vertexium.elasticsearch2; import org.vertexium.Element; import org.vertexium.ExtendedDataRowId; import org.vertexium.PropertyDefinition; import java.util.EnumSet; public interface IndexSelectionStrategy { String[] getIndicesToQuery(Elasticsearch2SearchIndex es); String getIndexName(Elasticsearch2SearchIndex es, Element element); String[] getIndexNames(Elasticsearch2SearchIndex es, PropertyDefinition propertyDefinition); boolean isIncluded(Elasticsearch2SearchIndex es, String indexName); String[] getManagedIndexNames(Elasticsearch2SearchIndex es); String[] getIndicesToQuery(ElasticsearchSearchQueryBase query, EnumSet<ElasticsearchDocumentType> elementType); String getExtendedDataIndexName(Elasticsearch2SearchIndex es, Element element, String tableName, String rowId); String getExtendedDataIndexName(Elasticsearch2SearchIndex es, ExtendedDataRowId rowId); }