Example usage for org.springframework.data.history Revisions Revisions

List of usage examples for org.springframework.data.history Revisions Revisions

Introduction

In this page you can find the example usage for org.springframework.data.history Revisions Revisions.

Prototype

private Revisions(List<? extends Revision<N, T>> revisions) 

Source Link

Document

Creates a new Revisions instance containing the given revisions.

Usage

From source file:com.wiiyaya.framework.provider.repository.revision.BaseRevisionDaoImpl.java

@SuppressWarnings("unchecked")
public Revisions<N, T> findRevisions(ID id) {

    Class<T> type = entityInformation.getJavaType();
    AuditReader reader = AuditReaderFactory.get(entityManager);
    List<? extends Number> revisionNumbers = reader.getRevisions(type, id);

    return revisionNumbers.isEmpty() ? new Revisions<N, T>(Collections.EMPTY_LIST)
            : getEntitiesForRevisions((List<N>) revisionNumbers, id, reader);
}

From source file:com.wiiyaya.framework.provider.repository.revision.BaseRevisionDaoImpl.java

@SuppressWarnings("unchecked")
private Revisions<N, T> getEntitiesForRevisions(List<N> revisionNumbers, ID id, AuditReader reader) {

    Class<T> type = entityInformation.getJavaType();
    Map<N, T> revisions = new HashMap<N, T>(revisionNumbers.size());

    Class<?> revisionEntityClass = revisionEntityInformation.getRevisionEntityClass();
    Map<Number, Object> revisionEntities = (Map<Number, Object>) reader.findRevisions(revisionEntityClass,
            new HashSet<Number>(revisionNumbers));

    for (Number number : revisionNumbers) {
        revisions.put((N) number, reader.find(type, id, number));
    }//from w w w  .j a v a 2  s  .  c o  m

    return new Revisions<N, T>(toRevisions(revisions, revisionEntities));
}

From source file:pl.konczak.mystartupapp.sharedkernel.enversRepository.EnversRevisionRepositoryImpl.java

/**
 * Returns the entities in the given revisions for the entitiy with the given id.
 *
 * @param revisionNumbers/*from w  w  w .j  a v  a 2 s  .  co  m*/
 * @param id
 * @param reader
 * @return
 */
@SuppressWarnings("unchecked")
private Revisions<N, T> getEntitiesForRevisions(List<N> revisionNumbers, ID id, AuditReader reader) {

    Class<T> type = entityInformation.getJavaType();
    Map<N, T> revisions = new HashMap<N, T>(revisionNumbers.size());

    Class<?> revisionEntityClass = revisionEntityInformation.getRevisionEntityClass();
    Map<Number, Object> revisionEntities = (Map<Number, Object>) reader.findRevisions(revisionEntityClass,
            new HashSet<Number>(revisionNumbers));

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

    return new Revisions<N, T>(toRevisions(revisions, revisionEntities));
}

From source file:org.agatom.springatom.data.hades.repo.factory.NVersionedRepositoryImpl.java

/** {@inheritDoc} */
@Override/*  www . j  a  v a 2 s.c  om*/
@SafeVarargs
@SuppressWarnings("unchecked")
public final Revisions<Long, T> findInRevisions(final Long id, final Long... revisionNumbers) {
    Preconditions.checkArgument(id != null, ERROR_MESSAGE_ID);
    Preconditions.checkArgument(revisionNumbers.length >= 1, ERROR_MESSAGE_INSUFFICIENT_REV_NUMBERS);

    if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(String.format("%s(%s,%s)", "findInRevision", id, Arrays.toString(revisionNumbers)));
    }

    final Class<T> type = this.entityInformation.getJavaType();
    final AuditReader reader = AuditReaderFactory.get(this.entityManager);
    final Map<Long, T> revisions = new HashMap<>(revisionNumbers.length);
    final Class<?> revisionEntityClass = this.revisionEntityInformation.getRevisionEntityClass();
    final Map<Number, Object> revisionEntities = (Map<Number, Object>) reader.findRevisions(revisionEntityClass,
            new HashSet<Number>(Lists.newArrayList(revisionNumbers)));

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

    return new Revisions<>(this.toRevisions(revisions, revisionEntities));
}

From source file:org.agatom.springatom.data.hades.repo.factory.NVersionedRepositoryImpl.java

/** {@inheritDoc} */
@Override/*from   www . jav  a  2s  .  c o  m*/
@SuppressWarnings({ "unchecked", "SuspiciousToArrayCall" })
public Revisions<Long, T> findRevisions(final Long id, final DateTime dateTime, final Operators operator) {
    final Class<T> type = this.entityInformation.getJavaType();
    final AuditReader reader = AuditReaderFactory.get(this.entityManager);
    final AuditProperty<Object> actualDate = AuditEntity.revisionProperty("timestamp");

    if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(String.format("%s(%s,%s,%s)", "findRevisions", id, dateTime, operator));
    }

    AuditQuery auditQuery = reader.createQuery().forRevisionsOfEntity(type, false, true);

    switch (operator) {
    case BEFORE:
        auditQuery = auditQuery.add(actualDate.le(dateTime.getMillis()));
        break;
    case AFTER:
        auditQuery = auditQuery.add(actualDate.ge(dateTime.getMillis()));
        break;
    case EQ:
        auditQuery = auditQuery.add(actualDate.eq(dateTime.getMillis()));
        break;
    }

    final List<Object[]> resultList = auditQuery.getResultList();
    if (resultList.isEmpty()) {
        return new Revisions<>(Lists.<Revision<Long, T>>newArrayList());
    }

    final List<Revision<Long, T>> revisionList = new ArrayList<>();
    for (Object[] number : resultList) {
        final Object entity = number[0];
        final Object revEntity = number[1];
        revisionList.add((Revision<Long, T>) new Revision<>(this.getRevisionMetadata(revEntity), entity));
    }

    return new Revisions<>(revisionList);
}