@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); }