diff --git a/src/main/java/org/springframework/data/mapping/PersistentEntity.java b/src/main/java/org/springframework/data/mapping/PersistentEntity.java index 010d26f49..34e58cbc7 100644 --- a/src/main/java/org/springframework/data/mapping/PersistentEntity.java +++ b/src/main/java/org/springframework/data/mapping/PersistentEntity.java @@ -17,6 +17,7 @@ package org.springframework.data.mapping; import java.lang.annotation.Annotation; import java.util.Optional; +import java.util.stream.Stream; import org.springframework.data.convert.EntityInstantiator; import org.springframework.data.util.TypeInformation; @@ -156,6 +157,8 @@ public interface PersistentEntity> { void doWithProperties(SimplePropertyHandler handler); + Stream

getPersistentProperties(); + /** * Applies the given {@link AssociationHandler} to all {@link Association} contained in this {@link PersistentEntity}. * @@ -165,6 +168,8 @@ public interface PersistentEntity> { void doWithAssociations(SimpleAssociationHandler handler); + Stream> getAssociations(); + /** * Looks up the annotation of the given type on the {@link PersistentEntity}. * diff --git a/src/main/java/org/springframework/data/mapping/model/BasicPersistentEntity.java b/src/main/java/org/springframework/data/mapping/model/BasicPersistentEntity.java index fc99f653f..3e433270a 100644 --- a/src/main/java/org/springframework/data/mapping/model/BasicPersistentEntity.java +++ b/src/main/java/org/springframework/data/mapping/model/BasicPersistentEntity.java @@ -30,6 +30,7 @@ import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.TreeSet; +import java.util.stream.Stream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -335,11 +336,9 @@ public class BasicPersistentEntity> implement */ public void doWithProperties(PropertyHandler

handler) { - Assert.notNull(handler, "Handler must not be null!"); + Assert.notNull(handler, "PropertyHandler must not be null!"); - properties.stream()// - .filter(it -> !it.isTransient() && !it.isAssociation())// - .forEach(it -> handler.doWithPersistentProperty(it)); + getPersistentProperties().forEach(it -> handler.doWithPersistentProperty(it)); } /* @@ -351,9 +350,18 @@ public class BasicPersistentEntity> implement Assert.notNull(handler, "Handler must not be null!"); - properties.stream()// - .filter(it -> !it.isTransient() && !it.isAssociation())// - .forEach(it -> handler.doWithPersistentProperty(it)); + getPersistentProperties().forEach(it -> handler.doWithPersistentProperty(it)); + } + + /* + * (non-Javadoc) + * @see org.springframework.data.mapping.PersistentEntity#getPersistentProperties() + */ + @Override + public Stream

getPersistentProperties() { + + return properties.stream()// + .filter(it -> !it.isTransient() && !it.isAssociation()); } /* @@ -382,6 +390,15 @@ public class BasicPersistentEntity> implement } } + /* + * (non-Javadoc) + * @see org.springframework.data.mapping.PersistentEntity#getAssociations() + */ + @Override + public Stream> getAssociations() { + return associations.stream(); + } + /* * (non-Javadoc) * @see org.springframework.data.mapping.PersistentEntity#findAnnotation(java.lang.Class)