This is an automated email from the ASF dual-hosted git repository.

mbenson pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bval.git

commit c39044853929ece203b681ada116bffb2af14536
Author: Matt Benson <[email protected]>
AuthorDate: Fri Feb 8 17:42:24 2019 -0600

    cache constrained-ness of executable parameters/return values
---
 .../src/main/java/org/apache/bval/jsr/descriptor/ExecutableD.java | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ExecutableD.java 
b/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ExecutableD.java
index eab7a9a..4a73771 100644
--- a/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ExecutableD.java
+++ b/bval-jsr/src/main/java/org/apache/bval/jsr/descriptor/ExecutableD.java
@@ -33,6 +33,8 @@ public abstract class ExecutableD<E extends Executable, R 
extends MetadataReader
     private final ReturnValueD<SELF, E> returnValue;
     private final List<ParameterD<SELF>> parameters;
     private final CrossParameterD<SELF, E> crossParameter;
+    private final boolean parametersAreConstrained;
+    private final boolean returnValueIsConstrained;
 
     @SuppressWarnings("unchecked")
     protected ExecutableD(R reader, BeanD<?> parent) {
@@ -43,6 +45,8 @@ public abstract class ExecutableD<E extends Executable, R 
extends MetadataReader
         returnValue = reader.getReturnValueDescriptor((SELF) this);
         parameters = reader.getParameterDescriptors((SELF) this);
         crossParameter = reader.getCrossParameterDescriptor((SELF) this);
+        parametersAreConstrained = 
parameters.stream().anyMatch(DescriptorManager::isConstrained) || 
crossParameter.hasConstraints();
+        returnValueIsConstrained = 
DescriptorManager.isConstrained(returnValue);
     }
 
     @Override
@@ -68,11 +72,11 @@ public abstract class ExecutableD<E extends Executable, R 
extends MetadataReader
 
     @Override
     public final boolean hasConstrainedParameters() {
-        return parameters.stream().anyMatch(DescriptorManager::isConstrained) 
|| getCrossParameterDescriptor().hasConstraints();
+        return parametersAreConstrained;
     }
 
     @Override
     public final boolean hasConstrainedReturnValue() {
-        return DescriptorManager.isConstrained(returnValue);
+        return returnValueIsConstrained;
     }
 }

Reply via email to