diff --git a/src/main/java/org/springframework/data/querydsl/QueryDslPredicateExecutor.java b/src/main/java/org/springframework/data/querydsl/QuerydslPredicateExecutor.java similarity index 98% rename from src/main/java/org/springframework/data/querydsl/QueryDslPredicateExecutor.java rename to src/main/java/org/springframework/data/querydsl/QuerydslPredicateExecutor.java index 9e1313c80..66f82a5bc 100644 --- a/src/main/java/org/springframework/data/querydsl/QueryDslPredicateExecutor.java +++ b/src/main/java/org/springframework/data/querydsl/QuerydslPredicateExecutor.java @@ -28,7 +28,7 @@ import com.querydsl.core.types.Predicate; * @author Oliver Gierke * @author Thomas Darimont */ -public interface QueryDslPredicateExecutor { +public interface QuerydslPredicateExecutor { /** * Returns a single entity matching the given {@link Predicate} or {@literal null} if none was found. diff --git a/src/main/java/org/springframework/data/querydsl/QuerydslRepositoryInvokerAdapter.java b/src/main/java/org/springframework/data/querydsl/QuerydslRepositoryInvokerAdapter.java index d9a334d9f..28aa255f4 100644 --- a/src/main/java/org/springframework/data/querydsl/QuerydslRepositoryInvokerAdapter.java +++ b/src/main/java/org/springframework/data/querydsl/QuerydslRepositoryInvokerAdapter.java @@ -27,7 +27,7 @@ import org.springframework.util.MultiValueMap; import com.querydsl.core.types.Predicate; /** - * {@link RepositoryInvoker} that is aware of a {@link QueryDslPredicateExecutor} and {@link Predicate} to be executed + * {@link RepositoryInvoker} that is aware of a {@link QuerydslPredicateExecutor} and {@link Predicate} to be executed * for all flavors of {@code findAll(…)}. All other calls are forwarded to the configured delegate. * * @author Oliver Gierke @@ -35,18 +35,18 @@ import com.querydsl.core.types.Predicate; public class QuerydslRepositoryInvokerAdapter implements RepositoryInvoker { private final RepositoryInvoker delegate; - private final QueryDslPredicateExecutor executor; + private final QuerydslPredicateExecutor executor; private final Predicate predicate; /** * Creates a new {@link QuerydslRepositoryInvokerAdapter} for the given delegate {@link RepositoryInvoker}, - * {@link QueryDslPredicateExecutor} and Querydsl {@link Predicate}. + * {@link QuerydslPredicateExecutor} and Querydsl {@link Predicate}. * * @param delegate must not be {@literal null}. * @param executor must not be {@literal null}. * @param predicate can be {@literal null}. */ - public QuerydslRepositoryInvokerAdapter(RepositoryInvoker delegate, QueryDslPredicateExecutor executor, + public QuerydslRepositoryInvokerAdapter(RepositoryInvoker delegate, QuerydslPredicateExecutor executor, Predicate predicate) { Assert.notNull(delegate, "Delegate RepositoryInvoker must not be null!"); diff --git a/src/main/java/org/springframework/data/querydsl/QueryDslUtils.java b/src/main/java/org/springframework/data/querydsl/QuerydslUtils.java similarity index 95% rename from src/main/java/org/springframework/data/querydsl/QueryDslUtils.java rename to src/main/java/org/springframework/data/querydsl/QuerydslUtils.java index a6091e828..fde96c39b 100644 --- a/src/main/java/org/springframework/data/querydsl/QueryDslUtils.java +++ b/src/main/java/org/springframework/data/querydsl/QuerydslUtils.java @@ -29,10 +29,10 @@ import com.querydsl.core.types.PathType; * @author Oliver Gierke */ @UtilityClass -public class QueryDslUtils { +public class QuerydslUtils { public static final boolean QUERY_DSL_PRESENT = org.springframework.util.ClassUtils - .isPresent("com.querydsl.core.types.Predicate", QueryDslUtils.class.getClassLoader()); + .isPresent("com.querydsl.core.types.Predicate", QuerydslUtils.class.getClassLoader()); /** * Returns the property path for the given {@link Path}. diff --git a/src/main/java/org/springframework/data/querydsl/SimpleEntityPathResolver.java b/src/main/java/org/springframework/data/querydsl/SimpleEntityPathResolver.java index ff6ee89ae..87a854e29 100644 --- a/src/main/java/org/springframework/data/querydsl/SimpleEntityPathResolver.java +++ b/src/main/java/org/springframework/data/querydsl/SimpleEntityPathResolver.java @@ -17,6 +17,7 @@ package org.springframework.data.querydsl; import java.lang.reflect.Field; import java.lang.reflect.Modifier; +import java.util.Optional; import org.springframework.util.ClassUtils; import org.springframework.util.ReflectionUtils; @@ -50,14 +51,12 @@ public enum SimpleEntityPathResolver implements EntityPathResolver { String pathClassName = getQueryClassName(domainClass); try { - Class pathClass = ClassUtils.forName(pathClassName, domainClass.getClassLoader()); - Field field = getStaticFieldOfType(pathClass); - if (field == null) { - throw new IllegalStateException(String.format(NO_FIELD_FOUND_TEMPLATE, pathClass)); - } else { - return (EntityPath) ReflectionUtils.getField(field, null); - } + Class pathClass = ClassUtils.forName(pathClassName, domainClass.getClassLoader()); + + return getStaticFieldOfType(pathClass)// + .map(it -> (EntityPath) ReflectionUtils.getField(it, null))// + .orElseThrow(() -> new IllegalStateException(String.format(NO_FIELD_FOUND_TEMPLATE, pathClass))); } catch (ClassNotFoundException e) { throw new IllegalArgumentException(String.format(NO_CLASS_FOUND_TEMPLATE, pathClassName, domainClass.getName()), @@ -71,7 +70,7 @@ public enum SimpleEntityPathResolver implements EntityPathResolver { * @param type * @return */ - private Field getStaticFieldOfType(Class type) { + private Optional getStaticFieldOfType(Class type) { for (Field field : type.getDeclaredFields()) { @@ -79,12 +78,12 @@ public enum SimpleEntityPathResolver implements EntityPathResolver { boolean hasSameType = type.equals(field.getType()); if (isStatic && hasSameType) { - return field; + return Optional.of(field); } } Class superclass = type.getSuperclass(); - return Object.class.equals(superclass) ? null : getStaticFieldOfType(superclass); + return Object.class.equals(superclass) ? Optional.empty() : getStaticFieldOfType(superclass); } /** diff --git a/src/main/java/org/springframework/data/querydsl/binding/QuerydslPathInformation.java b/src/main/java/org/springframework/data/querydsl/binding/QuerydslPathInformation.java index 1f78dc3c2..91153ff9b 100644 --- a/src/main/java/org/springframework/data/querydsl/binding/QuerydslPathInformation.java +++ b/src/main/java/org/springframework/data/querydsl/binding/QuerydslPathInformation.java @@ -23,7 +23,7 @@ import java.beans.PropertyDescriptor; import org.springframework.beans.BeanUtils; import org.springframework.data.querydsl.EntityPathResolver; -import org.springframework.data.querydsl.QueryDslUtils; +import org.springframework.data.querydsl.QuerydslUtils; import com.querydsl.core.types.Path; @@ -82,7 +82,7 @@ class QuerydslPathInformation implements PathInformation { */ @Override public String toDotPath() { - return QueryDslUtils.toDotPath(path); + return QuerydslUtils.toDotPath(path); } /* diff --git a/src/main/java/org/springframework/data/web/config/EnableSpringDataWebSupport.java b/src/main/java/org/springframework/data/web/config/EnableSpringDataWebSupport.java index 42dafb695..b28c14a82 100644 --- a/src/main/java/org/springframework/data/web/config/EnableSpringDataWebSupport.java +++ b/src/main/java/org/springframework/data/web/config/EnableSpringDataWebSupport.java @@ -31,7 +31,7 @@ import org.springframework.core.env.Environment; import org.springframework.core.io.ResourceLoader; import org.springframework.core.io.support.SpringFactoriesLoader; import org.springframework.core.type.AnnotationMetadata; -import org.springframework.data.querydsl.QueryDslUtils; +import org.springframework.data.querydsl.QuerydslUtils; import org.springframework.data.web.PageableHandlerMethodArgumentResolver; import org.springframework.util.ClassUtils; @@ -146,7 +146,7 @@ public @interface EnableSpringDataWebSupport { */ @Override public String[] selectImports(AnnotationMetadata importingClassMetadata) { - return QueryDslUtils.QUERY_DSL_PRESENT ? new String[] { QuerydslWebConfiguration.class.getName() } + return QuerydslUtils.QUERY_DSL_PRESENT ? new String[] { QuerydslWebConfiguration.class.getName() } : new String[0]; } } diff --git a/src/test/java/org/springframework/data/querydsl/QuerydslRepositoryInvokerAdapterUnitTests.java b/src/test/java/org/springframework/data/querydsl/QuerydslRepositoryInvokerAdapterUnitTests.java index d2a8acd93..e61dea273 100755 --- a/src/test/java/org/springframework/data/querydsl/QuerydslRepositoryInvokerAdapterUnitTests.java +++ b/src/test/java/org/springframework/data/querydsl/QuerydslRepositoryInvokerAdapterUnitTests.java @@ -41,7 +41,7 @@ import com.querydsl.core.types.Predicate; public class QuerydslRepositoryInvokerAdapterUnitTests { @Mock RepositoryInvoker delegate; - @Mock QueryDslPredicateExecutor executor; + @Mock QuerydslPredicateExecutor executor; @Mock Predicate predicate; QuerydslRepositoryInvokerAdapter adapter; diff --git a/src/test/java/org/springframework/data/querydsl/QueryDslUtilsUnitTests.java b/src/test/java/org/springframework/data/querydsl/QuerydslUtilsUnitTests.java similarity index 85% rename from src/test/java/org/springframework/data/querydsl/QueryDslUtilsUnitTests.java rename to src/test/java/org/springframework/data/querydsl/QuerydslUtilsUnitTests.java index 0ff47889b..aa8070397 100755 --- a/src/test/java/org/springframework/data/querydsl/QueryDslUtilsUnitTests.java +++ b/src/test/java/org/springframework/data/querydsl/QuerydslUtilsUnitTests.java @@ -16,20 +16,20 @@ package org.springframework.data.querydsl; import static org.assertj.core.api.Assertions.*; -import static org.springframework.data.querydsl.QueryDslUtils.*; +import static org.springframework.data.querydsl.QuerydslUtils.*; import org.junit.Test; /** - * Unit tests for {@link QueryDslUtils}. + * Unit tests for {@link QuerydslUtils}. * * @author Oliver Gierke */ -public class QueryDslUtilsUnitTests { +public class QuerydslUtilsUnitTests { @Test // DATACMNS-883 public void rendersDotPathForPathTraversalContainingAnyExpression() { - assertThat(QueryDslUtils.toDotPath(QUser.user.addresses.any().street)).isEqualTo("addresses.street"); + assertThat(QuerydslUtils.toDotPath(QUser.user.addresses.any().street)).isEqualTo("addresses.street"); } @Test // DATACMNS-941 diff --git a/src/test/java/org/springframework/data/querydsl/SimpleEntityPathResolverUnitTests.java b/src/test/java/org/springframework/data/querydsl/SimpleEntityPathResolverUnitTests.java index 9ee30ec3e..e45ce2dd7 100755 --- a/src/test/java/org/springframework/data/querydsl/SimpleEntityPathResolverUnitTests.java +++ b/src/test/java/org/springframework/data/querydsl/SimpleEntityPathResolverUnitTests.java @@ -37,13 +37,11 @@ public class SimpleEntityPathResolverUnitTests { @Test public void resolvesEntityPathForInnerClassCorrectly() throws Exception { - assertThat(resolver.createPath(NamedUser.class)).isInstanceOf(QSimpleEntityPathResolverUnitTests_NamedUser.class); } @Test(expected = IllegalArgumentException.class) public void rejectsClassWithoutQueryClassConfrmingToTheNamingScheme() throws Exception { - resolver.createPath(QSimpleEntityPathResolverUnitTests_Sample.class); }