/** * @see com.isotrol.impe3.nr.api.NodeRepository#groupBy(com.isotrol.impe3.nr.api.NodeQuery, * com.isotrol.impe3.nr.api.NodeFilter, java.util.List) */ public GroupResult groupBy(NodeQuery query, NodeFilter filter, List<String> fields) { return remote.groupBy(query, filter, fields); } }
private GroupResult doQuery(final Date start, final Date end) { if (logger.isTraceEnabled()) { logger.trace("Doing query..."); } final NodeQuery and = and(); final NodeQuery query; if (start == null) { query = and != null ? and : NodeQueries.matchAll(); } else { final NodeQuery range = NodeQueries.range(Schema.DATE, start, end, true, true); query = and != null ? NodeQueries.all(range, and) : range; } if (logger.isTraceEnabled()) { logger.trace("Query ", query.toString()); } final List<String> fields = fields(); if (logger.isTraceEnabled()) { logger.trace("Fields ", fields.toString()); } final GroupResult result = this.contentRepository.getRepository().groupBy(query, null, fields); if (logger.isTraceEnabled() && result != null) { logger.trace("Recover {} results", result.getTotalHits()); } return result; }
@Transactional(rollbackFor = Throwable.class) /** Return repository summary */ public NodeRepositoryDTO getSummary(String repositoryId) throws PMSException { if (logger.isTraceEnabled()) { logger.trace("Getting summary for repository service with id {}", repositoryId); } final NodeRepositoryDTO dto = new NodeRepositoryDTO(); final NodeRepository repository = getExternalService(repositoryId); final GroupResult result = repository.groupBy(NodeQueries.matchAll(), null, Lists.newArrayList(Schema.TYPE)); final Group root = result.getGroup(); final ContentTypesObject types = loadContentTypes(); dto.setNodeCount(result.getTotalHits()); final List<ContentTypeCountDTO> contentTypes = Lists.newArrayListWithCapacity(root.getGroupNames().size()); for (String name : root.getGroupNames()) { final Group g = root.getGroup(name); final ContentTypeCountDTO count = new ContentTypeCountDTO(); count.setContentType(getContentType(types, name)); count.setCount(g.getHits()); contentTypes.add(count); } dto.setContentTypes(contentTypes); return dto; }