@Override
public RegularDictionaryConfiguration read(String id, Integer version, String filter, String order, Integer index, Integer limit) throws ResourceNotFoundException, ResourceStoreException {
RuntimeUtilities.checkNotNull(filter, "filter");
RuntimeUtilities.checkNotNull(order, "order");
RuntimeUtilities.checkNotNull(index, "index");
RuntimeUtilities.checkNotNull(limit, "limit");
ResultManipulator<RegularDictionaryConfiguration.WordConfiguration> wordManipulator;
ResultManipulator<RegularDictionaryConfiguration.PhraseConfiguration> phraseManipulator;
RegularDictionaryConfiguration regularDictionary = regularDictionaryResourceStore.read(id, version);
wordManipulator = new ResultManipulator<>(regularDictionary.getWords(),
RegularDictionaryConfiguration.WordConfiguration.class);
phraseManipulator = new ResultManipulator<>(regularDictionary.getPhrases(),
RegularDictionaryConfiguration.PhraseConfiguration.class);
try {
wordManipulator.filterEntities(filter);
phraseManipulator.filterEntities(filter);
} catch (ResultManipulator.FilterEntriesException e) {
throw new ResourceStoreException(e.getLocalizedMessage(), e);
}
wordManipulator.sortEntities(WORD_COMPARATOR, order);
phraseManipulator.sortEntities(PHRASE_COMPARATOR, order);
wordManipulator.limitEntities(index, limit);
phraseManipulator.limitEntities(index, limit);
return regularDictionary;
}