You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bval.apache.org by mb...@apache.org on 2018/04/05 17:19:12 UTC

[2/3] bval git commit: TCK: pick up constraints on 'inherited' fields

TCK: pick up constraints on 'inherited' fields


Project: http://git-wip-us.apache.org/repos/asf/bval/repo
Commit: http://git-wip-us.apache.org/repos/asf/bval/commit/69a817da
Tree: http://git-wip-us.apache.org/repos/asf/bval/tree/69a817da
Diff: http://git-wip-us.apache.org/repos/asf/bval/diff/69a817da

Branch: refs/heads/bv2
Commit: 69a817dace7640bbf5e6d78471c4812a85edad21
Parents: 7fab00d
Author: Matt Benson <mb...@apache.org>
Authored: Thu Apr 5 12:17:45 2018 -0500
Committer: Matt Benson <mb...@apache.org>
Committed: Thu Apr 5 12:17:45 2018 -0500

----------------------------------------------------------------------
 .../apache/bval/jsr/metadata/HierarchyBuilder.java | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bval/blob/69a817da/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/HierarchyBuilder.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/HierarchyBuilder.java b/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/HierarchyBuilder.java
index 5fe228c..b449a6b 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/HierarchyBuilder.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/metadata/HierarchyBuilder.java
@@ -95,7 +95,19 @@ public class HierarchyBuilder extends CompositeBuilder {
 
         @Override
         public Map<String, MetadataBuilder.ForContainer<Field>> getFields(Meta<Class<T>> meta) {
-            return delegate.getFields(hierarchyElement);
+            final Map<String, MetadataBuilder.ForContainer<Field>> fields = delegate.getFields(hierarchyElement);
+
+            if (fields.isEmpty()) {
+                return fields;
+            }
+            final Map<String, MetadataBuilder.ForContainer<Field>> result = new LinkedHashMap<>();
+
+            fields.forEach((k, v) -> {
+                final Field fld = Reflection.getDeclaredField(hierarchyElement.getHost(), k);
+                Exceptions.raiseIf(fld == null, IllegalStateException::new, "delegate builder specified unknown field");
+                result.put(k, new ContainerDelegate<Field>(v, new Meta.ForField(fld)));
+            });
+            return result;
         }
 
         @Override
@@ -113,6 +125,9 @@ public class HierarchyBuilder extends CompositeBuilder {
         @Override
         public Map<String, MetadataBuilder.ForContainer<Method>> getGetters(Meta<Class<T>> meta) {
             final Map<String, MetadataBuilder.ForContainer<Method>> getters = delegate.getGetters(hierarchyElement);
+            if (getters.isEmpty()) {
+                return getters;
+            }
             final Map<String, MetadataBuilder.ForContainer<Method>> result = new LinkedHashMap<>();
 
             getters.forEach((k, v) -> {