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/03/22 17:12:16 UTC
bval git commit: improve handling of non-constrained executables
Repository: bval
Updated Branches:
refs/heads/bv2 339ada646 -> 513606da5
improve handling of non-constrained executables
Project: http://git-wip-us.apache.org/repos/asf/bval/repo
Commit: http://git-wip-us.apache.org/repos/asf/bval/commit/513606da
Tree: http://git-wip-us.apache.org/repos/asf/bval/tree/513606da
Diff: http://git-wip-us.apache.org/repos/asf/bval/diff/513606da
Branch: refs/heads/bv2
Commit: 513606da5de2d05c31f8adf5c64708ab55098831
Parents: 339ada6
Author: Matt Benson <mb...@apache.org>
Authored: Thu Mar 22 12:12:10 2018 -0500
Committer: Matt Benson <mb...@apache.org>
Committed: Thu Mar 22 12:12:10 2018 -0500
----------------------------------------------------------------------
.../apache/bval/jsr/job/ValidateParameters.java | 5 +++
.../bval/jsr/job/ValidateReturnValue.java | 5 +++
.../org/apache/bval/jsr/job/ValidationJob.java | 35 ++++++++++++--------
3 files changed, 32 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/bval/blob/513606da/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateParameters.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateParameters.java b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateParameters.java
index c80937f..d4f9668 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateParameters.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidateParameters.java
@@ -162,6 +162,11 @@ public abstract class ValidateParameters<E extends Executable, T> extends Valida
return new ParametersFrame(describe(), new GraphContext(validatorContext, cp, parameterValues));
}
+ @Override
+ protected boolean hasWork() {
+ return describe() != null;
+ }
+
protected abstract ExecutableDescriptor describe();
protected abstract List<String> getParameterNames(ParameterNameProvider parameterNameProvider);
http://git-wip-us.apache.org/repos/asf/bval/blob/513606da/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 ca1deba..d477b72 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
@@ -131,6 +131,11 @@ public abstract class ValidateReturnValue<E extends Executable, T> extends Valid
context.getConstraintDescriptor().unwrap(ConstraintD.class).getDeclaredOn(), returnValue, null);
}
+ @Override
+ protected boolean hasWork() {
+ return describe() != null;
+ }
+
protected abstract ExecutableD<?, ?, ?> describe();
protected abstract T getRootBean();
http://git-wip-us.apache.org/repos/asf/bval/blob/513606da/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidationJob.java
----------------------------------------------------------------------
diff --git a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidationJob.java b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidationJob.java
index b8f22c1..61dcd39 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidationJob.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/job/ValidationJob.java
@@ -489,26 +489,31 @@ public abstract class ValidationJob<T> {
if (results.optional().isPresent()) {
return results.get();
}
- final Frame<?> baseFrame = computeBaseFrame();
- Validate.validState(baseFrame != null, "%s computed null baseFrame", getClass().getName());
+ if (hasWork()) {
+ final Frame<?> baseFrame = computeBaseFrame();
+ Validate.validState(baseFrame != null, "%s computed null baseFrame", getClass().getName());
- final Consumer<ConstraintViolation<T>> sink = results.consumer(Set::add);
+ final Consumer<ConstraintViolation<T>> sink = results.consumer(Set::add);
- validatedPathsByConstraint = new ConcurrentHashMap<>();
+ validatedPathsByConstraint = new ConcurrentHashMap<>();
- try {
- groups.getGroups().stream().map(Group::getGroup).forEach(g -> baseFrame.process(g, sink));
+ try {
+ groups.getGroups().stream().map(Group::getGroup).forEach(g -> baseFrame.process(g, sink));
- sequences: for (List<Group> seq : groups.getSequences()) {
- final boolean proceed = each(seq.stream().map(Group::getGroup), baseFrame::process, sink);
- if (!proceed) {
- break sequences;
+ sequences: for (List<Group> seq : groups.getSequences()) {
+ final boolean proceed = each(seq.stream().map(Group::getGroup), baseFrame::process, sink);
+ if (!proceed) {
+ break sequences;
+ }
}
+ } finally {
+ validatedPathsByConstraint = null;
+ }
+ if (results.optional().isPresent()) {
+ return Collections.unmodifiableSet(results.get());
}
- } finally {
- validatedPathsByConstraint = null;
}
- return results.optional().map(Collections::unmodifiableSet).orElse(Collections.emptySet());
+ return results.reset(Collections::emptySet).get();
}
private boolean each(Stream<Class<?>> groupSequence, BiConsumer<Class<?>, Consumer<ConstraintViolation<T>>> closure,
@@ -543,6 +548,10 @@ public abstract class ValidationJob<T> {
protected abstract Class<T> getRootBeanClass();
+ protected boolean hasWork() {
+ return true;
+ }
+
private final String interpolate(String messageTemplate, MessageInterpolator.Context context) {
try {
return validatorContext.getMessageInterpolator().interpolate(messageTemplate, context);