@Override
public List<T> readDescriptors(String type, String filter, Integer index, Integer limit, boolean includeDeleted)
throws IResourceStore.ResourceStoreException, IResourceStore.ResourceNotFoundException {
List<IResourceFilter.QueryFilter> queryFiltersRequired = new LinkedList<>();
String filterURI = "eddi://" + type + ".*";
queryFiltersRequired.add(new IResourceFilter.QueryFilter(FIELD_RESOURCE, filterURI));
queryFiltersRequired.add(new IResourceFilter.QueryFilter(FIELD_DELETED, includeDeleted));
IResourceFilter.QueryFilters required = new IResourceFilter.QueryFilters(queryFiltersRequired);
List<IResourceFilter.QueryFilter> queryFiltersOptional = new LinkedList<>();
if (filter != null) {
filter = StringUtilities.convertToSearchString(filter);
queryFiltersOptional.add(new IResourceFilter.QueryFilter(FIELD_NAME, filter));
queryFiltersOptional.add(new IResourceFilter.QueryFilter(FIELD_DESCRIPTION, filter));
}
IResourceFilter.QueryFilters optional = new IResourceFilter.QueryFilters(IResourceFilter.QueryFilters.ConnectingType.OR, queryFiltersOptional);
return resourceFilter.readResources(new IResourceFilter.QueryFilters[]{required, optional}, index, limit, FIELD_LAST_MODIFIED);
}