From db4bf10ebb1f6861001320414259c26ef44ef0c5 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Tue, 11 Oct 2016 15:43:42 +0200 Subject: [PATCH] DATACMNS-867 - Introduced PersistentEntity.getRequiredPersistentProperty(). --- .../data/mapping/PersistentEntity.java | 2 ++ .../data/mapping/model/BasicPersistentEntity.java | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/mapping/PersistentEntity.java b/src/main/java/org/springframework/data/mapping/PersistentEntity.java index f8d2e75ee..010d26f49 100644 --- a/src/main/java/org/springframework/data/mapping/PersistentEntity.java +++ b/src/main/java/org/springframework/data/mapping/PersistentEntity.java @@ -97,6 +97,8 @@ public interface PersistentEntity> { */ Optional

getPersistentProperty(String name); + P getRequiredPersistentProperty(String name); + /** * Returns the property equipped with an annotation of the given type. * 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 4b2568e7e..fc99f653f 100644 --- a/src/main/java/org/springframework/data/mapping/model/BasicPersistentEntity.java +++ b/src/main/java/org/springframework/data/mapping/model/BasicPersistentEntity.java @@ -107,7 +107,7 @@ public class BasicPersistentEntity> implement this.properties = new ArrayList<>(); this.comparator = comparator; this.constructor = new PreferredConstructorDiscoverer<>(this).getConstructor(); - this.associations = comparator.>>map(it -> new TreeSet<>(new AssociationComparator<>(it))) + this.associations = comparator.>> map(it -> new TreeSet<>(new AssociationComparator<>(it))) .orElseGet(() -> new HashSet<>()); this.propertyCache = new HashMap<>(); @@ -273,6 +273,17 @@ public class BasicPersistentEntity> implement return Optional.ofNullable(propertyCache.get(name)); } + /* + * (non-Javadoc) + * @see org.springframework.data.mapping.PersistentEntity#getRequiredPersistentProperty(java.lang.String) + */ + @Override + public P getRequiredPersistentProperty(String name) { + + return getPersistentProperty(name).orElseThrow( + () -> new IllegalArgumentException(String.format("No property %s found for type %s!", name, getType()))); + } + /* * (non-Javadoc) * @see org.springframework.data.mapping.PersistentEntity#getPersistentProperty(java.lang.Class)