@Override
 @SuppressWarnings({"unchecked"})
 public List<Object> findEntities(Number revision)
     throws IllegalStateException, IllegalArgumentException {
   final Set<Pair<String, Class>> entityTypes = findEntityTypes(revision);
   final List<Object> result = new ArrayList<Object>();
   for (Pair<String, Class> type : entityTypes) {
     result.addAll(
         auditReaderImplementor
             .createQuery()
             .forEntitiesModifiedAtRevision(type.getSecond(), type.getFirst(), revision)
             .getResultList());
   }
   return result;
 }
 @Override
 @SuppressWarnings({"unchecked"})
 public Map<RevisionType, List<Object>> findEntitiesGroupByRevisionType(Number revision)
     throws IllegalStateException, IllegalArgumentException {
   final Set<Pair<String, Class>> entityTypes = findEntityTypes(revision);
   final Map<RevisionType, List<Object>> result = new HashMap<RevisionType, List<Object>>();
   for (RevisionType revisionType : RevisionType.values()) {
     result.put(revisionType, new ArrayList<Object>());
     for (Pair<String, Class> type : entityTypes) {
       final List<Object> list =
           auditReaderImplementor
               .createQuery()
               .forEntitiesModifiedAtRevision(type.getSecond(), type.getFirst(), revision)
               .add(new RevisionTypeAuditExpression(revisionType, "="))
               .getResultList();
       result.get(revisionType).addAll(list);
     }
   }
   return result;
 }