From 21c7b0914c812da16d51e1e09470f70a71d42e01 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Fri, 24 Nov 2017 11:50:53 +0100 Subject: [PATCH] DATAJPA-1173 - Polishing. CollectionAwareProjectionInformation is now a static class. JavaDoc. Removed superfluous imports. Original pull request: #218. Related issue: DATACMNS-1158. --- .../CollectionAwareProjectionFactory.java | 18 ++++++++++++------ .../support/JpaRepositoryFactory.java | 6 +++++- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java b/src/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java index 6d56f57a5..d0c6ecc5b 100644 --- a/src/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java +++ b/src/main/java/org/springframework/data/jpa/projection/CollectionAwareProjectionFactory.java @@ -27,20 +27,29 @@ import org.springframework.data.projection.SpelAwareProxyProjectionFactory; * maps to be open. * * @author Jens Schauder + * @author Oliver Gierke */ public class CollectionAwareProjectionFactory extends SpelAwareProxyProjectionFactory { + /* + * (non-Javadoc) + * @see org.springframework.data.projection.SpelAwareProxyProjectionFactory#createProjectionInformation(java.lang.Class) + */ @Override protected ProjectionInformation createProjectionInformation(Class projectionType) { return new CollectionAwareProjectionInformation(projectionType); } - private class CollectionAwareProjectionInformation extends SpelAwareProjectionInformation { + private static class CollectionAwareProjectionInformation extends SpelAwareProjectionInformation { CollectionAwareProjectionInformation(Class projectionType) { super(projectionType); } + /* + * (non-Javadoc) + * @see org.springframework.data.projection.SpelAwareProxyProjectionFactory.SpelAwareProjectionInformation#isInputProperty(java.beans.PropertyDescriptor) + */ @Override protected boolean isInputProperty(PropertyDescriptor descriptor) { @@ -48,11 +57,8 @@ public class CollectionAwareProjectionFactory extends SpelAwareProxyProjectionFa return false; } - boolean isMapOrCollection = // - Collection.class.isAssignableFrom(descriptor.getPropertyType()) // - || Map.class.isAssignableFrom(descriptor.getPropertyType()); - - return !isMapOrCollection; + return !(Collection.class.isAssignableFrom(descriptor.getPropertyType()) // + || Map.class.isAssignableFrom(descriptor.getPropertyType())); } } } diff --git a/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java b/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java index 042c1c338..93a50398e 100644 --- a/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java +++ b/src/main/java/org/springframework/data/jpa/repository/support/JpaRepositoryFactory.java @@ -29,7 +29,6 @@ import org.springframework.data.jpa.provider.QueryExtractor; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy; import org.springframework.data.projection.ProjectionFactory; -import org.springframework.data.projection.SpelAwareProxyProjectionFactory; import org.springframework.data.querydsl.QuerydslPredicateExecutor; import org.springframework.data.repository.core.RepositoryInformation; import org.springframework.data.repository.core.RepositoryMetadata; @@ -76,6 +75,7 @@ public class JpaRepositoryFactory extends RepositoryFactorySupport { */ @Override public void setBeanClassLoader(ClassLoader classLoader) { + super.setBeanClassLoader(classLoader); this.crudMethodMetadataPostProcessor.setBeanClassLoader(classLoader); } @@ -123,6 +123,10 @@ public class JpaRepositoryFactory extends RepositoryFactorySupport { } } + /* + * (non-Javadoc) + * @see org.springframework.data.repository.core.support.RepositoryFactorySupport#getProjectionFactory(java.lang.ClassLoader, org.springframework.beans.factory.BeanFactory) + */ @Override protected ProjectionFactory getProjectionFactory(ClassLoader classLoader, BeanFactory beanFactory) {