Skip to content

Commit

Permalink
Polishing.
Browse files Browse the repository at this point in the history
See #3134
  • Loading branch information
gregturn committed Sep 5, 2023
1 parent a4977b2 commit 3b8556b
Show file tree
Hide file tree
Showing 11 changed files with 60 additions and 44 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,15 @@
*/
package org.springframework.data.envers.repository.support;

import static org.springframework.data.history.RevisionMetadata.RevisionType.*;

import jakarta.persistence.EntityManager;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;

import org.hibernate.Hibernate;
import org.hibernate.envers.AuditReader;
import org.hibernate.envers.AuditReaderFactory;
Expand Down Expand Up @@ -43,13 +51,6 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;

import static org.springframework.data.history.RevisionMetadata.RevisionType.*;

/**
* Repository implementation using Hibernate Envers to implement revision specific query methods.
*
Expand All @@ -61,6 +62,8 @@
* @author Mark Paluch
* @author Sander Bylemans
* @author Niklas Loechte
* @author Donghun Shin
* @author Greg Turnquist
*/
@Transactional(readOnly = true)
public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N>>
Expand All @@ -73,12 +76,12 @@ public class EnversRevisionRepositoryImpl<T, ID, N extends Number & Comparable<N
* Creates a new {@link EnversRevisionRepositoryImpl} using the given {@link JpaEntityInformation},
* {@link RevisionEntityInformation} and {@link EntityManager}.
*
* @param entityInformation must not be {@literal null}.
* @param entityInformation must not be {@literal null}.
* @param revisionEntityInformation must not be {@literal null}.
* @param entityManager must not be {@literal null}.
* @param entityManager must not be {@literal null}.
*/
public EnversRevisionRepositoryImpl(JpaEntityInformation<T, ?> entityInformation,
RevisionEntityInformation revisionEntityInformation, EntityManager entityManager) {
RevisionEntityInformation revisionEntityInformation, EntityManager entityManager) {

Assert.notNull(revisionEntityInformation, "RevisionEntityInformation must not be null!");

Expand Down Expand Up @@ -136,7 +139,6 @@ public Revisions<N, T> findRevisions(ID id) {
return Revisions.of(revisionList);
}


private AuditOrder mapRevisionSort(RevisionSort revisionSort) {

return RevisionSort.getRevisionDirection(revisionSort).isDescending() //
Expand All @@ -154,9 +156,9 @@ private List<AuditOrder> mapPropertySort(Sort sort) {
for (Sort.Order order : sort) {

AuditProperty<Object> property = AuditEntity.property(order.getProperty());
AuditOrder auditOrder = order.getDirection().isAscending() ?
property.asc() :
property.desc();
AuditOrder auditOrder = order.getDirection().isAscending() //
? property.asc() //
: property.desc();

result.add(auditOrder);
}
Expand All @@ -169,9 +171,9 @@ public Page<Revision<N, T>> findRevisions(ID id, Pageable pageable) {

AuditQuery baseQuery = createBaseQuery(id);

List<AuditOrder> orderMapped = (pageable.getSort() instanceof RevisionSort revisionSort) ?
Collections.singletonList(mapRevisionSort(revisionSort)) :
mapPropertySort(pageable.getSort());
List<AuditOrder> orderMapped = (pageable.getSort()instanceof RevisionSort revisionSort)
? List.of(mapRevisionSort(revisionSort))
: mapPropertySort(pageable.getSort());

orderMapped.forEach(baseQuery::addOrder);

Expand Down Expand Up @@ -235,17 +237,17 @@ RevisionMetadata<?> createRevisionMetadata() {
return metadata instanceof DefaultRevisionEntity defaultRevisionEntity //
? new DefaultRevisionMetadata(defaultRevisionEntity, revisionType) //
: new AnnotationRevisionMetadata<>(Hibernate.unproxy(metadata), RevisionNumber.class, RevisionTimestamp.class,
revisionType);
revisionType);
}

private static RevisionMetadata.RevisionType convertRevisionType(RevisionType datum) {

return switch (datum) {
case ADD -> INSERT;
case MOD -> UPDATE;
case DEL -> DELETE;
default -> UNKNOWN;
};
return switch (datum) {
case ADD -> INSERT;
case MOD -> UPDATE;
case DEL -> DELETE;
default -> UNKNOWN;
};
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
* @author Oliver Gierke
* @author Mark Paluch
* @author Jens Schauder
* @author Donghun Shin
* @author Greg Turnquist
* @since 1.10.2
* @soundtrack Benny Greb - Soulfood (Live, https://www.youtube.com/watch?v=9_ErMa_CtSw)
*/
Expand Down Expand Up @@ -54,8 +56,8 @@ public static String getHibernateQuery(Object query) {

// Try the old way, as it still works in some cases (haven't investigated in which exactly)

if (query instanceof Query) {
return ((Query<?>) query).getQueryString();
if (query instanceof Query<?> hibernateQuery) {
return hibernateQuery.getQueryString();
} else {
throw new IllegalArgumentException("Don't know how to extract the query string from " + query);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
* @author Oliver Gierke
* @author Christoph Strobl
* @author Jens Schauder
* @author Donghun Shin
* @author Greg Turnquist
*/
abstract class JpaClassUtils {

Expand All @@ -45,12 +47,9 @@ private JpaClassUtils() {}
*/
public static boolean isEntityManagerOfType(EntityManager em, String type) {

EntityManager entityManagerToUse = em;
Object delegate = em.getDelegate();

if (delegate instanceof EntityManager delegateEntityManager) {
entityManagerToUse = delegateEntityManager;
}
EntityManager entityManagerToUse = em.getDelegate()instanceof EntityManager delegate //
? delegate //
: em;

return isOfType(entityManagerToUse, type, entityManagerToUse.getClass().getClassLoader());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,14 @@
*/
package org.springframework.data.jpa.repository.cdi;

import jakarta.enterprise.event.Observes;
import jakarta.enterprise.inject.UnsatisfiedResolutionException;
import jakarta.enterprise.inject.spi.AfterBeanDiscovery;
import jakarta.enterprise.inject.spi.Bean;
import jakarta.enterprise.inject.spi.BeanManager;
import jakarta.enterprise.inject.spi.ProcessBean;
import jakarta.persistence.EntityManager;

import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.util.HashMap;
Expand All @@ -24,14 +32,6 @@
import java.util.Optional;
import java.util.Set;

import jakarta.enterprise.event.Observes;
import jakarta.enterprise.inject.UnsatisfiedResolutionException;
import jakarta.enterprise.inject.spi.AfterBeanDiscovery;
import jakarta.enterprise.inject.spi.Bean;
import jakarta.enterprise.inject.spi.BeanManager;
import jakarta.enterprise.inject.spi.ProcessBean;
import jakarta.persistence.EntityManager;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.data.repository.cdi.CdiRepositoryBean;
Expand All @@ -44,6 +44,7 @@
* @author Oliver Gierke
* @author Mark Paluch
* @author Christoph Strobl
* @author Donghun Shin
*/
public class JpaRepositoryExtension extends CdiRepositoryExtensionSupport {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
* Transformational operations needed to support either {@link HqlQueryTransformer} or {@link JpqlQueryTransformer}.
*
* @author Greg Turnquist
* @author Donghun Shin
* @since 3.1
*/
class JpaQueryTransformerSupport {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
* Value object to hold metadata about repository methods.
*
* @author Greg Turnquist
* @author Donghun Shin
* @since 3.0
* @see org.springframework.data.jpa.repository.Meta
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,12 @@
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.ParameterExpression;

import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.function.Supplier;
import java.util.stream.Collectors;

Expand Down Expand Up @@ -46,6 +51,8 @@
* @author Jens Schauder
* @author Andrey Kovalev
* @author Yuriy Tsarkov
* @author Donghun Shin
* @author Greg Turnquist
*/
class ParameterMetadataProvider {

Expand Down Expand Up @@ -275,7 +282,6 @@ private static Collection<?> toCollection(@Nullable Object value) {
}

if (value instanceof Collection<?> collection) {

return collection.isEmpty() ? null : collection;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
* @author Simon Paradies
* @author Vladislav Yukharin
* @author Chris Fraser
* @author Donghun Shin
*/
public abstract class QueryUtils {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
* @author Oliver Gierke
* @author Réda Housni Alaoui
* @author Mark Paluch
* @author Donghun Shin
*/
public class EntityManagerBeanDefinitionRegistrarPostProcessor implements BeanFactoryPostProcessor, Ordered {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
* @author Mark Paluch
* @author Christoph Strobl
* @author Marcus Voltolim
* @author Donghun Shin
*/
public class Querydsl {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@
import static java.util.Arrays.*;
import static org.springframework.beans.factory.BeanFactoryUtils.*;

import jakarta.persistence.EntityManagerFactory;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import jakarta.persistence.EntityManagerFactory;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
Expand All @@ -43,6 +43,7 @@
*
* @author Oliver Gierke
* @author Mark Paluch
* @author Donghun Shin
*/
public final class BeanDefinitionUtils {

Expand Down

0 comments on commit 3b8556b

Please sign in to comment.