Repository: bval
Updated Branches:
  refs/heads/bv2 e28f2b944 -> 18f5bba2e


TCK: ctor return value validation considers value itself as first leaf bean


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

Branch: refs/heads/bv2
Commit: 99f0f965c0cca2e56dee445e2687706f9b0554b1
Parents: e28f2b9
Author: Matt Benson <[email protected]>
Authored: Fri Mar 30 11:10:38 2018 -0500
Committer: Matt Benson <[email protected]>
Committed: Fri Mar 30 11:10:38 2018 -0500

----------------------------------------------------------------------
 .../bval/jsr/job/ValidateReturnValue.java       | 32 +++++++++++++++-----
 1 file changed, 25 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bval/blob/99f0f965/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateReturnValue.java
----------------------------------------------------------------------
diff --git 
a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateReturnValue.java 
b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateReturnValue.java
index f8d030b..4b469bb 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateReturnValue.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateReturnValue.java
@@ -64,6 +64,16 @@ public abstract class ValidateReturnValue<E extends 
Executable, T> extends Valid
                 .getBeanDescriptor(object.getClass())
                 .getConstraintsForMethod(executable.getName(), 
executable.getParameterTypes());
         }
+
+        @Override
+        protected ValidationJob<T>.Frame<?> createBaseFrame(ReturnValueD<?, ?> 
descriptor, GraphContext context) {
+            return new SproutFrame<ReturnValueD<?, ?>>(descriptor, context) {
+                @Override
+                Object getBean() {
+                    return getRootBean();
+                }
+            };
+        }
     }
 
     public static class ForConstructor<T> extends 
ValidateReturnValue<Constructor<?>, T> {
@@ -93,6 +103,17 @@ public abstract class ValidateReturnValue<E extends 
Executable, T> extends Valid
                 .getBeanDescriptor(executable.getDeclaringClass())
                 .getConstraintsForConstructor(executable.getParameterTypes());
         }
+
+        @Override
+        protected ValidationJob<T>.Frame<?> createBaseFrame(ReturnValueD<?, ?> 
descriptor, GraphContext context) {
+            final Object returnValue = context.getValue();
+            return new SproutFrame<ReturnValueD<?, ?>>(descriptor, context) {
+                @Override
+                Object getBean() {
+                    return returnValue;
+                }
+            };
+        }
     }
 
     private final Object returnValue;
@@ -112,13 +133,8 @@ public abstract class ValidateReturnValue<E extends 
Executable, T> extends Valid
         final PathImpl path = createBasePath();
         path.addNode(new NodeImpl.ReturnValueNodeImpl());
 
-        return new SproutFrame<ReturnValueD<?, ?>>((ReturnValueD<?, ?>) 
describe().getReturnValueDescriptor(),
-            new GraphContext(validatorContext, path, returnValue)) {
-            @Override
-            Object getBean() {
-                return getRootBean();
-            }
-        };
+        return createBaseFrame((ReturnValueD<?, ?>) 
describe().getReturnValueDescriptor(),
+            new GraphContext(validatorContext, path, returnValue));
     }
 
     @Override
@@ -137,4 +153,6 @@ public abstract class ValidateReturnValue<E extends 
Executable, T> extends Valid
     protected abstract ExecutableD<?, ?, ?> describe();
 
     protected abstract T getRootBean();
+
+    protected abstract Frame<?> createBaseFrame(ReturnValueD<?, ?> descriptor, 
GraphContext context);
 }

Reply via email to