final int projects = countProjects(actor, pagedItemInfo);
return new Count(instruments, projects, files, experiments);
}
private <T> Iterable<T> search(final Criteria query, final Class<T> clazz, String keyword, Iterable<String> additionalFields) {
final FullTextQuery fullTextQuery = getFullTextQuery(query, clazz, keyword, additionalFields);
//noinspection unchecked
return Iterables.transform(fullTextQuery.getResultList(), new Function() {
@Override
public Object apply(Object input) {
if (input.getClass().isAssignableFrom(clazz)) return input;
throw new AssertionError(String.format("Expected: %s. Actual: %s", clazz, input.getClass()));
}