Skip to content

Commit

Permalink
#21 - added ability to searching deleted entities.
Browse files Browse the repository at this point in the history
Original PR: #27
  • Loading branch information
Nikola Petrovic authored and schauder committed Jan 3, 2018
1 parent 92934b9 commit 14ef7aa
Showing 1 changed file with 6 additions and 4 deletions.
Expand Up @@ -117,6 +117,7 @@ public Optional<Revision<N, T>> findRevision(ID id, N revisionNumber) {
Assert.notNull(revisionNumber, "Revision number must not be null!");

return getEntityForRevision(revisionNumber, id, AuditReaderFactory.get(entityManager));

}

/*
Expand All @@ -131,7 +132,7 @@ public Revisions<N, T> findRevisions(ID id) {
List<? extends Number> revisionNumbers = reader.getRevisions(type, id);

return revisionNumbers.isEmpty() ? Revisions.none()
: getEntitiesForRevisions((List<N>) revisionNumbers, id, reader);
: getEntitiesForRevisions((List<N>) revisionNumbers, id, reader, true);
}

/*
Expand All @@ -158,7 +159,7 @@ public Page<Revision<N, T>> findRevisions(ID id, Pageable pageable) {
upperBound = upperBound > revisionNumbers.size() ? revisionNumbers.size() : upperBound;

List<? extends Number> subList = revisionNumbers.subList(toInt(pageable.getOffset()), toInt(upperBound));
Revisions<N, T> revisions = getEntitiesForRevisions((List<N>) subList, id, reader);
Revisions<N, T> revisions = getEntitiesForRevisions((List<N>) subList, id, reader, true);

revisions = isDescending ? revisions.reverse() : revisions;

Expand All @@ -174,7 +175,8 @@ public Page<Revision<N, T>> findRevisions(ID id, Pageable pageable) {
* @return
*/
@SuppressWarnings("unchecked")
private Revisions<N, T> getEntitiesForRevisions(List<N> revisionNumbers, ID id, AuditReader reader) {
private Revisions<N, T> getEntitiesForRevisions(List<N> revisionNumbers, ID id, AuditReader reader,
boolean includeDeletions) {

Class<T> type = entityInformation.getJavaType();
Map<N, T> revisions = new HashMap<N, T>(revisionNumbers.size());
Expand All @@ -184,7 +186,7 @@ private Revisions<N, T> getEntitiesForRevisions(List<N> revisionNumbers, ID id,
new HashSet<Number>(revisionNumbers));

for (Number number : revisionNumbers) {
revisions.put((N) number, reader.find(type, id, number));
revisions.put((N) number, reader.find(type, type.getName(), id, number, includeDeletions));
}

return Revisions.of(toRevisions(revisions, revisionEntities));
Expand Down

0 comments on commit 14ef7aa

Please sign in to comment.