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 2017/05/02 04:53:22 UTC

svn commit: r1793432 [1/5] - in /bval/branches/bv2.x: ./ bval-core/src/main/java/org/apache/bval/ bval-core/src/main/java/org/apache/bval/model/ bval-core/src/main/java/org/apache/bval/routines/ bval-core/src/main/java/org/apache/bval/util/ bval-core/s...

Author: mbenson
Date: Tue May  2 04:53:20 2017
New Revision: 1793432

URL: http://svn.apache.org/viewvc?rev=1793432&view=rev
Log:
basic Java 8 upgrade

Modified:
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/BeanValidationContext.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/BeanValidator.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/ConstructorAccess.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/IntrospectorMetaBeanFactory.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/MetaBeanBuilder.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/MetaBeanCache.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/ValidationResults.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/DynaTypeEnum.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/Features.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/FeaturesCapable.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaAnnotated.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaBean.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaInvocable.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaProperty.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/routines/EMailValidationUtils.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/BValVersion.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/ObjectUtils.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/PropertyAccess.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/StringUtils.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/ValidationHelper.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/reflection/Reflection.java
    bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/reflection/TypeUtils.java
    bval/branches/bv2.x/bval-core/src/test/java/org/apache/bval/ValidationResultsTest.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ABANumber.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/CUSIP.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/EAN13.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/IBAN.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/IBANValidator.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ISBN10.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Luhn.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ModulusValidator.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Sedol.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Verhoeff.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/VerhoeffValidator.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/creditcard/AmericanExpress.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/creditcard/Diners.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/creditcard/Discover.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/creditcard/Mastercard.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/file/DirectoryValidator.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/file/SymlinkValidator.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/net/DomainValidator.java
    bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/net/InetAddressValidator.java
    bval/branches/bv2.x/bval-extras/src/test/java/org/apache/bval/extras/constraints/checkdigit/ABANumberValidatorTest.java
    bval/branches/bv2.x/bval-extras/src/test/java/org/apache/bval/extras/constraints/checkdigit/AbstractCheckDigitTest.java
    bval/branches/bv2.x/bval-extras/src/test/java/org/apache/bval/extras/constraints/checkdigit/CUSIPValidatorTest.java
    bval/branches/bv2.x/bval-extras/src/test/java/org/apache/bval/extras/constraints/checkdigit/EAN13CheckDigitTest.java
    bval/branches/bv2.x/bval-extras/src/test/java/org/apache/bval/extras/constraints/checkdigit/IBANCheckDigitTest.java
    bval/branches/bv2.x/bval-extras/src/test/java/org/apache/bval/extras/constraints/checkdigit/ISBN10CheckDigitTest.java
    bval/branches/bv2.x/bval-extras/src/test/java/org/apache/bval/extras/constraints/checkdigit/LuhnCheckDigitTest.java
    bval/branches/bv2.x/bval-extras/src/test/java/org/apache/bval/extras/constraints/checkdigit/SedolCheckDigitTest.java
    bval/branches/bv2.x/bval-extras/src/test/java/org/apache/bval/extras/constraints/checkdigit/VerhoeffCheckDigitTest.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/cdi/AnyLiteral.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/cdi/BValAnnotatedType.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptor.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/cdi/BValInterceptorBean.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/cdi/DefaultLiteral.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/cdi/EmptyAnnotationLiteral.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorBean.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/cdi/ValidatorFactoryBean.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/DecimalMaxValidatorForNumber.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/DecimalMaxValidatorForString.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/DecimalMinValidatorForNumber.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/DecimalMinValidatorForString.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/Email.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/EmailValidator.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/FutureValidatorForCalendar.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/FutureValidatorForDate.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/MaxValidatorForNumber.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/MaxValidatorForString.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/MinValidatorForNumber.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/MinValidatorForString.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/NotEmpty.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/NotEmptyValidator.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/PastValidatorForCalendar.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/PastValidatorForDate.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/constraints/PatternValidator.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/el/ELFacade.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationConstraintBuilder.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationProcessor.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheFactoryContext.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorConfiguration.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorFactory.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/AppendValidationToBuilder.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/AppendValidationToList.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/BeanDescriptorImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ClassValidator.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ConfigurationImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintCached.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintDefaults.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintDescriptorImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintFinderImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidation.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidationListener.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidatorContextImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidatorIdentity.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintViolationImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultConstraintValidatorFactory.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultMessageInterpolator.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultValidationProviderResolver.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ElementDescriptorImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/GraphBeanIdentity.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/GroupValidationContextImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/InvocableElementDescriptor.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/JsrMetaBeanFactory.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/NodeBuilderCustomizableContextImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/NodeContextBuilderImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ParameterAccess.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/ParameterDescriptorImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/PropertyDescriptorImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/groups/Group.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/groups/GroupConversionDescriptorImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/groups/Groups.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/groups/GroupsComputer.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/parameter/DefaultParameterNameProvider.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/resolver/CachingTraversableResolver.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/util/ClassHelper.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/util/IOs.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/util/LeafNodeBuilderCustomizableContextImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderCustomizableContextImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderDefinedContextImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeContextBuilderImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/util/PathImpl.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/util/PathNavigation.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/util/Proxies.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/util/ValidationContextTraversal.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/xml/AnnotationIgnores.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/xml/AnnotationProxy.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/xml/AnnotationProxyBuilder.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/xml/MetaConstraint.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationMappingParser.java
    bval/branches/bv2.x/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationParser.java
    bval/branches/bv2.x/bval-xstream/src/main/java/org/apache/bval/routines/EMailValidation.java
    bval/branches/bv2.x/bval-xstream/src/main/java/org/apache/bval/routines/StandardValidation.java
    bval/branches/bv2.x/bval-xstream/src/main/java/org/apache/bval/xml/XMLFeaturesCapable.java
    bval/branches/bv2.x/bval-xstream/src/main/java/org/apache/bval/xml/XMLMetaBean.java
    bval/branches/bv2.x/bval-xstream/src/main/java/org/apache/bval/xml/XMLMetaBeanBuilder.java
    bval/branches/bv2.x/bval-xstream/src/main/java/org/apache/bval/xml/XMLMetaBeanFactory.java
    bval/branches/bv2.x/bval-xstream/src/main/java/org/apache/bval/xml/XMLMetaBeanInfos.java
    bval/branches/bv2.x/bval-xstream/src/main/java/org/apache/bval/xml/XMLMetaBeanManager.java
    bval/branches/bv2.x/bval-xstream/src/main/java/org/apache/bval/xml/XMLMetaBeanURLLoader.java
    bval/branches/bv2.x/bval-xstream/src/main/java/org/apache/bval/xml/XMLMetaElement.java
    bval/branches/bv2.x/bval-xstream/src/test/java/org/apache/bval/routines/StandardValidationTest.java
    bval/branches/bv2.x/pom.xml

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/BeanValidationContext.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/BeanValidationContext.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/BeanValidationContext.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/BeanValidationContext.java Tue May  2 04:53:20 2017
@@ -35,8 +35,11 @@ import java.util.Map;
  * <b>This class is NOT thread-safe: a new instance will be created for each
  * validation
  * processing per thread.<br/></b>
+ * @param <L> {@link ValidationListener} type
+ * @param <I> bean instance key
+ * @param <S> structure used to track bean instances
  */
-public class BeanValidationContext<T extends ValidationListener> implements ValidationContext<T> {
+public class BeanValidationContext<L extends ValidationListener, I, S> implements ValidationContext<L> {
     /** represent an unknown propertyValue. */
     private static final Object UNKNOWN = new Object() {
         @Override
@@ -61,8 +64,7 @@ public class BeanValidationContext<T ext
     private AccessStrategy access;
 
     /** set of objects already validated to avoid endless loops. */
-    @SuppressWarnings({ "rawtypes" })
-    protected Map validatedObjects;
+    protected Map<I, S> validatedObjects;
 
     /**
      * true when value is fixed, so that it will NOT be dynamically
@@ -73,15 +75,14 @@ public class BeanValidationContext<T ext
     private boolean fixed;
 
     /** listener notified of validation constraint violations. */
-    private T listener;
+    private L listener;
 
     /**
      * Create a new BeanValidationContext instance.
      * @param listener
      */
-    @SuppressWarnings({ "rawtypes" })
-    public BeanValidationContext(T listener) {
-        this(listener, new IdentityHashMap());
+    public BeanValidationContext(L listener) {
+        this(listener, new IdentityHashMap<>());
     }
 
     /**
@@ -89,8 +90,7 @@ public class BeanValidationContext<T ext
      * @param listener
      * @param validatedMap
      */
-    @SuppressWarnings({ "rawtypes" })
-    protected BeanValidationContext(T listener, Map validatedMap) {
+    protected BeanValidationContext(L listener, Map<I, S> validatedMap) {
         this.listener = listener;
         this.validatedObjects = validatedMap;
     }
@@ -99,7 +99,7 @@ public class BeanValidationContext<T ext
      * {@inheritDoc}
      */
     @Override
-    public T getListener() {
+    public L getListener() {
         return listener;
     }
 
@@ -107,7 +107,7 @@ public class BeanValidationContext<T ext
      * Set the listener.
      * @param listener T
      */
-    public void setListener(T listener) {
+    public void setListener(L listener) {
         this.listener = listener;
     }
 
@@ -115,10 +115,10 @@ public class BeanValidationContext<T ext
      * {@inheritDoc}
      * Here, state equates to a given bean reference.
      */
-    @Override
     @SuppressWarnings("unchecked")
+    @Override
     public boolean collectValidated() {
-        return validatedObjects.put(getBean(), Boolean.TRUE) == null;
+        return validatedObjects.put((I) getBean(), (S) Boolean.TRUE) == null;
     }
 
     /**
@@ -232,7 +232,7 @@ public class BeanValidationContext<T ext
      * @return something that is capable to deliver features
      */
     public FeaturesCapable getMeta() {
-        return (metaProperty == null) ? metaBean : metaProperty;
+        return metaProperty == null ? metaBean : metaProperty;
     }
 
     /**
@@ -303,8 +303,8 @@ public class BeanValidationContext<T ext
      */
     @Override
     public String toString() {
-        return "BeanValidationContext{ bean=" + bean + ", metaProperty=" + metaProperty + ", propertyValue="
-            + propertyValue + '}';
+        return String.format("BeanValidationContext{bean=%s, metaProperty=%s, propertyValue=%s}",
+            BeanValidationContext.class.getSimpleName(), bean, metaProperty, propertyValue);
     }
 
     /**

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/BeanValidator.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/BeanValidator.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/BeanValidator.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/BeanValidator.java Tue May  2 04:53:20 2017
@@ -173,7 +173,7 @@ public class BeanValidator<T extends Val
      * @return ValidationContext parameterized with our listener type
      */
     protected ValidationContext<T> createContext() {
-        return new BeanValidationContext<T>(createResults());
+        return new BeanValidationContext<>(createResults());
     }
 
     /**

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/ConstructorAccess.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/ConstructorAccess.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/ConstructorAccess.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/ConstructorAccess.java Tue May  2 04:53:20 2017
@@ -66,7 +66,7 @@ public class ConstructorAccess extends A
         if (this == o) {
             return true;
         }
-        if (o == null || getClass() != o.getClass()) {
+        if (o == null || !getClass().equals(o.getClass())) {
             return false;
         }
 

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/IntrospectorMetaBeanFactory.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/IntrospectorMetaBeanFactory.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/IntrospectorMetaBeanFactory.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/IntrospectorMetaBeanFactory.java Tue May  2 04:53:20 2017
@@ -51,7 +51,7 @@ public class IntrospectorMetaBeanFactory
             meta.setName(info.getBeanDescriptor().getName()); // (display?)name = simple class name!
         }
         for (PropertyDescriptor pd : info.getPropertyDescriptors()) {
-            if (!(pd instanceof IndexedPropertyDescriptor || pd.getName().equals("class"))) {
+            if (!(pd instanceof IndexedPropertyDescriptor || "class".equals(pd.getName()))) {
                 MetaProperty metaProp = buildMetaProperty(pd, meta.getProperty(pd.getName()));
                 meta.putProperty(pd.getName(), metaProp);
             }

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/MetaBeanBuilder.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/MetaBeanBuilder.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/MetaBeanBuilder.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/MetaBeanBuilder.java Tue May  2 04:53:20 2017
@@ -42,7 +42,7 @@ public class MetaBeanBuilder {
      * Create a new MetaBeanBuilder instance.
      */
     public MetaBeanBuilder() {
-        this(new MetaBeanFactory[] { new IntrospectorMetaBeanFactory() });
+        this(new IntrospectorMetaBeanFactory());
     }
 
     /**
@@ -50,7 +50,7 @@ public class MetaBeanBuilder {
      * 
      * @param factories
      */
-    public MetaBeanBuilder(MetaBeanFactory[] factories) {
+    public MetaBeanBuilder(MetaBeanFactory... factories) {
         setFactories(factories);
     }
 
@@ -60,7 +60,7 @@ public class MetaBeanBuilder {
      * @return {@link MetaBeanFactory} array
      */
     public MetaBeanFactory[] getFactories() {
-        return factories != null ? factories.clone() : null;
+        return factories == null ? null : factories.clone();
     }
 
     /**
@@ -69,8 +69,8 @@ public class MetaBeanBuilder {
      * 
      * @param factories
      */
-    public void setFactories(MetaBeanFactory[] factories) {
-        this.factories = factories != null ? factories.clone() : null;
+    public void setFactories(MetaBeanFactory... factories) {
+        this.factories = factories == null ? null : factories.clone();
     }
 
     /**
@@ -92,7 +92,7 @@ public class MetaBeanBuilder {
      * @return Map of String : MetaBean
      */
     public Map<String, MetaBean> buildAll() throws Exception {
-        return new HashMap<String, MetaBean>();
+        return new HashMap<>();
     }
 
     /**

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/MetaBeanCache.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/MetaBeanCache.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/MetaBeanCache.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/MetaBeanCache.java Tue May  2 04:53:20 2017
@@ -32,11 +32,11 @@ public class MetaBeanCache implements Me
     /**
      * Cache keyed by id.
      */
-    protected final ConcurrentMap<String, MetaBean> cacheById = new ConcurrentHashMap<String, MetaBean>();
+    protected final ConcurrentMap<String, MetaBean> cacheById = new ConcurrentHashMap<>();
     /**
      * Cache keyed by class.
      */
-    protected final ConcurrentMap<Class<?>, MetaBean> cacheByClass = new ConcurrentHashMap<Class<?>, MetaBean>();
+    protected final ConcurrentMap<Class<?>, MetaBean> cacheByClass = new ConcurrentHashMap<>();
 
     /**
      * Create a new MetaBeanCache instance.
@@ -51,9 +51,7 @@ public class MetaBeanCache implements Me
      */
     public MetaBeanCache(Map<String, MetaBean> beans) {
         this();
-        for (MetaBean bean : beans.values()) {
-            cache(bean);
-        }
+        beans.values().forEach(this::cache);
     }
 
     /**

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/ValidationResults.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/ValidationResults.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/ValidationResults.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/ValidationResults.java Tue May  2 04:53:20 2017
@@ -21,6 +21,7 @@ import org.apache.bval.model.ValidationL
 
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
@@ -92,8 +93,8 @@ public class ValidationResults implement
      * not on instance creation to save memory garbage.
      */
     protected void initialize() {
-        errorsByReason = new LinkedHashMap<String, List<Error>>();
-        errorsByOwner = new LinkedHashMap<Object, Map<String, List<Error>>>();
+        errorsByReason = new LinkedHashMap<>();
+        errorsByOwner = new LinkedHashMap<>();
     }
 
     /**
@@ -102,16 +103,9 @@ public class ValidationResults implement
      * @see {@link Error#getReason()}
      */
     protected void addToReasonBucket(Error error) {
-        if (error.getReason() == null) {
-            return;
+        if (error.getReason() != null) {
+            errorsByReason.computeIfAbsent(error.getReason(), k -> new ArrayList<>()).add(error);
         }
-
-        List<Error> errors = errorsByReason.get(error.getReason());
-        if (errors == null) {
-            errors = new ArrayList<Error>();
-            errorsByReason.put(error.getReason(), errors);
-        }
-        errors.add(error);
     }
 
     /**
@@ -120,21 +114,10 @@ public class ValidationResults implement
      * @see {@link Error#getOwner()}
      */
     protected void addToOwnerBucket(Error error) {
-        if (error.getOwner() == null) {
-            return;
-        }
-
-        Map<String, List<Error>> errors = errorsByOwner.get(error.getOwner());
-        if (errors == null) {
-            errors = new HashMap<String, List<Error>>();
-            errorsByOwner.put(error.getOwner(), errors);
-        }
-        List<Error> list = errors.get(error.getPropertyName());
-        if (list == null) {
-            list = new ArrayList<Error>();
-            errors.put(error.getPropertyName(), list);
+        if (error.getOwner() != null) {
+            errorsByOwner.computeIfAbsent(error.getOwner(), k -> new HashMap<>())
+                .computeIfAbsent(error.getPropertyName(), k -> new ArrayList<>()).add(error);
         }
-        list.add(error);
     }
 
     /**
@@ -143,10 +126,7 @@ public class ValidationResults implement
      * @return map
      */
     public Map<String, List<Error>> getErrorsByReason() {
-        if (errorsByReason == null) {
-            return Collections.emptyMap();
-        }
-        return errorsByReason;
+        return errorsByReason == null ? Collections.emptyMap() : Collections.unmodifiableMap(errorsByReason);
     }
 
     /**
@@ -156,10 +136,7 @@ public class ValidationResults implement
      * @return map
      */
     public Map<Object, Map<String, List<Error>>> getErrorsByOwner() {
-        if (errorsByOwner == null) {
-            return Collections.emptyMap();
-        }
-        return errorsByOwner;
+        return errorsByOwner == null ? Collections.emptyMap() : Collections.unmodifiableMap(errorsByOwner);
     }
 
     /**
@@ -170,19 +147,8 @@ public class ValidationResults implement
         if (errorsByReason == null || (errorsByReason.isEmpty() && errorsByOwner.isEmpty())) {
             return true;
         }
-        for (List<Error> list : errorsByReason.values()) {
-            if (!list.isEmpty()) {
-                return false;
-            }
-        }
-        for (Map<String, List<Error>> map : errorsByOwner.values()) {
-            for (List<Error> list : map.values()) {
-                if (!list.isEmpty()) {
-                    return false;
-                }
-            }
-        }
-        return true;
+        return errorsByReason.values().stream().allMatch(Collection::isEmpty) && errorsByOwner.values().stream()
+            .map(Map::values).flatMap(Collection::stream).allMatch(Collection::isEmpty);
     }
 
     /**
@@ -215,12 +181,7 @@ public class ValidationResults implement
             return false;
         }
         if (propertyName == null) {
-            for (List<Error> list : errors.values()) {
-                if (!list.isEmpty()) {
-                    return true;
-                }
-            }
-            return false;
+            return !errors.values().stream().allMatch(Collection::isEmpty);
         }
         List<Error> list = errors.get(propertyName);
         return list != null && !list.isEmpty();

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/DynaTypeEnum.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/DynaTypeEnum.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/DynaTypeEnum.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/DynaTypeEnum.java Tue May  2 04:53:20 2017
@@ -16,6 +16,8 @@
  */
 package org.apache.bval.model;
 
+import java.util.stream.Stream;
+
 /**
  * Description: ("artificial" enum with custom values).<br/>
  */
@@ -46,11 +48,7 @@ public class DynaTypeEnum implements Dyn
      * @param names
      */
     public void setEnumNames(String[] names) {
-        enumConstants = new Value[names.length];
-        int i = 0;
-        for (String each : names) {
-            enumConstants[i++] = new Value(each);
-        }
+        enumConstants = Stream.of(names).map(Value::new).toArray(Value[]::new);
     }
 
     /**
@@ -83,7 +81,7 @@ public class DynaTypeEnum implements Dyn
      * @return Value[]
      */
     public Value[] getEnumConstants() {
-        return enumConstants != null ? enumConstants.clone() : null;
+        return enumConstants == null ? null : enumConstants.clone();
     }
 
     /**

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/Features.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/Features.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/Features.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/Features.java Tue May  2 04:53:20 2017
@@ -26,7 +26,7 @@ package org.apache.bval.model;
  */
 public interface Features {
     /** Features of {@link MetaBean} */
-    public interface Bean {
+    interface Bean {
         /** INFO: String, name of the Property, that is the Primary Key */
         String MAIN_KEY = "mainKey";
         /** INFO: category/domain to which the metaBean belongs to */
@@ -40,7 +40,7 @@ public interface Features {
     }
 
     /** Features of {@link MetaProperty} */
-    public interface Property {
+    interface Property {
         /** INFO: possible Enum values */
         String ENUM = "enum";
         /** INFO: Boolean, TRUE if Property is a Unique Key */

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/FeaturesCapable.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/FeaturesCapable.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/FeaturesCapable.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/FeaturesCapable.java Tue May  2 04:53:20 2017
@@ -20,6 +20,8 @@ import java.io.Serializable;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.function.Predicate;
+import java.util.stream.Stream;
 
 /**
  * Description: abstract superclass of meta objects that support a map of
@@ -69,13 +71,10 @@ public abstract class FeaturesCapable im
      * @param defaultValue
      * @return T
      */
-    @SuppressWarnings("unchecked")
     public <T> T getFeature(String key, T defaultValue) {
+        @SuppressWarnings("unchecked")
         final T value = (T) features.get(key);
-        if (value == null) {
-            return defaultValue;
-        }
-        return value;
+        return value == null ? defaultValue : value;
     }
 
     /**
@@ -129,7 +128,7 @@ public abstract class FeaturesCapable im
      * @return Validation array
      */
     public Validation[] getValidations() {
-        return validations != null ? validations.clone() : null;
+        return validations == null ? null : validations.clone();
     }
 
     /**
@@ -138,7 +137,7 @@ public abstract class FeaturesCapable im
      * @param validations
      */
     public void setValidations(Validation[] validations) {
-        this.validations = validations != null ? validations.clone() : null;
+        this.validations = validations == null ? null : validations.clone();
     }
 
     /**
@@ -165,15 +164,7 @@ public abstract class FeaturesCapable im
      * @return true if found
      */
     public boolean hasValidation(Validation aValidation) {
-        if (validations == null) {
-            return false;
-        }
-        for (Validation validation : validations) {
-            if (validation.equals(aValidation)) {
-                return true;
-            }
-        }
-        return false;
+        return validations != null && Stream.of(validations).anyMatch(Predicate.isEqual(aValidation));
     }
 
     /**
@@ -181,6 +172,6 @@ public abstract class FeaturesCapable im
      * @return ConcurrentMap
      */
     protected ConcurrentMap<String, Object> createFeaturesMap() {
-        return new ConcurrentHashMap<String, Object>();
+        return new ConcurrentHashMap<>();
     }
 }

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaAnnotated.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaAnnotated.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaAnnotated.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaAnnotated.java Tue May  2 04:53:20 2017
@@ -25,7 +25,7 @@ import org.apache.bval.util.ObjectUtils;
 public abstract class MetaAnnotated extends Meta {
     private static final long serialVersionUID = 1L;
 
-    private Set<Annotation> annotations = new HashSet<Annotation>();
+    private Set<Annotation> annotations = new HashSet<>();
     private Annotation[] annArray = null;
 
     public Annotation[] getAnnotations() {

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaBean.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaBean.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaBean.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaBean.java Tue May  2 04:53:20 2017
@@ -24,6 +24,7 @@ import java.util.Arrays;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.SortedMap;
 import java.util.TreeMap;
 
 import org.apache.bval.util.reflection.Reflection;
@@ -44,9 +45,9 @@ public class MetaBean extends FeaturesCa
     private String name;
     private Class<?> beanClass;
 
-    private Map<String, MetaProperty> properties = null;
-    private Map<Method, MetaMethod> methods = null;
-    private Map<Constructor<?>, MetaConstructor> constructors = null;
+    private SortedMap<String, MetaProperty> properties;
+    private Map<Method, MetaMethod> methods;
+    private Map<Constructor<?>, MetaConstructor> constructors;
 
     /**
      * Get the id.
@@ -109,15 +110,15 @@ public class MetaBean extends FeaturesCa
             final Map<Method, MetaMethod> oldMethods = methods;
             final Map<Constructor<?>, MetaConstructor> oldConstructors = constructors;
 
-            properties = new TreeMap<String, MetaProperty>(new FieldComparator(beanClass));
+            properties = new TreeMap<>(new FieldComparator(beanClass));
             if (oldProperties != null) {
                 properties.putAll(oldProperties);
             }
-            methods = new TreeMap<Method, MetaMethod>(new MethodComparator(beanClass));
+            methods = new TreeMap<>(new MethodComparator(beanClass));
             if (oldMethods != null) {
                 methods.putAll(oldMethods);
             }
-            constructors = new TreeMap<Constructor<?>, MetaConstructor>(new ConstructorComparator(beanClass));
+            constructors = new TreeMap<>(new ConstructorComparator(beanClass));
             if (oldConstructors != null) {
                 constructors.putAll(oldConstructors);
             }
@@ -145,14 +146,14 @@ public class MetaBean extends FeaturesCa
 
     public void addMethod(final Method method, final MetaMethod meta) {
         if (methods == null) {
-            methods = new HashMap<Method, MetaMethod>();
+            methods = new HashMap<>();
         }
         methods.put(method, meta);
     }
 
     public void addConstructor(final Constructor<?> constructor, final MetaConstructor meta) {
         if (constructors == null) {
-            constructors = new HashMap<Constructor<?>, MetaConstructor>();
+            constructors = new HashMap<>();
         }
         constructors.put(constructor, meta);
     }
@@ -164,12 +165,22 @@ public class MetaBean extends FeaturesCa
      *            the MetaProperty[] to set
      */
     public void setProperties(MetaProperty[] properties) {
-        this.properties = new HashMap<String, MetaProperty>();
-        for (final MetaProperty property : properties) {
-            this.properties.put(property.getName(), property);
+        initProperties();
+        for (MetaProperty mp : properties) {
+            this.properties.put(mp.getName(), mp);
         }
     }
 
+    private SortedMap<String, MetaProperty> initProperties() {
+        synchronized (this) {
+            if (properties == null) {
+                properties = new TreeMap<>(
+                    beanClass == null ? Comparator.<String> naturalOrder() : new FieldComparator(beanClass));
+            }
+        }
+        return properties;
+    }
+
     /**
      * Get the specified {@link MetaProperty}.
      * 
@@ -177,10 +188,7 @@ public class MetaBean extends FeaturesCa
      * @return MetaProperty found or <code>null</code>
      */
     public MetaProperty getProperty(String name) {
-        if (properties == null) {
-            return null;
-        }
-        return this.properties.get(name);
+        return properties == null ? null : this.properties.get(name);
     }
 
     /**
@@ -190,15 +198,7 @@ public class MetaBean extends FeaturesCa
      * @return true when at least one of the properties is a relationship
      */
     public boolean hasRelationships() {
-        if (properties == null) {
-            return false;
-        }
-        for (MetaProperty property : this.properties.values()) {
-            if (property.isRelationship()) {
-                return true;
-            }
-        }
-        return false;
+        return properties != null && properties.values().stream().anyMatch(MetaProperty::isRelationship);
     }
 
     /**
@@ -209,9 +209,7 @@ public class MetaBean extends FeaturesCa
      *            if <code>null</code>, remove
      */
     public void putProperty(String name, MetaProperty property) {
-        if (properties == null) {
-            properties = new HashMap<String, MetaProperty>();
-        }
+        initProperties();
         if (property == null) {
             this.properties.remove(name);
         } else {
@@ -225,7 +223,8 @@ public class MetaBean extends FeaturesCa
      */
     @Override
     public String toString() {
-        return "MetaBean{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", beanClass=" + beanClass + '}';
+        return String.format("%s{id='%s', name='%s', beanClass=%s", MetaBean.class.getSimpleName(), id, name,
+            beanClass);
     }
 
     /**
@@ -236,10 +235,9 @@ public class MetaBean extends FeaturesCa
         super.copyInto(target);
         final MetaBean copy = (MetaBean) target;
         if (properties != null) {
-            copy.properties = new TreeMap<String, MetaProperty>();
-            for (Map.Entry<String, MetaProperty> entry : properties.entrySet()) {
-                copy.properties.put(entry.getKey(), (MetaProperty) entry.getValue().copy());
-            }
+            copy.properties = null;
+            copy.initProperties();
+            properties.forEach((k, v) -> copy.properties.put(k, v.copy()));
         }
     }
 
@@ -272,7 +270,7 @@ public class MetaBean extends FeaturesCa
     }
 
     protected static class FieldComparator implements Comparator<String> {
-        private final Map<String, Integer> fields = new HashMap<String, Integer>();
+        private final Map<String, Integer> fields = new HashMap<>();
 
         protected FieldComparator(final Class<?> beanClass) {
             int i = 0;
@@ -333,7 +331,7 @@ public class MetaBean extends FeaturesCa
     }
 
     protected static class MethodComparator implements Comparator<Method> {
-        private final Map<Method, Integer> methods = new HashMap<Method, Integer>();
+        private final Map<Method, Integer> methods = new HashMap<>();
 
         protected MethodComparator(final Class<?> beanClass) {
             Class<?> clazz = beanClass;
@@ -357,7 +355,7 @@ public class MetaBean extends FeaturesCa
     }
 
     protected static class ConstructorComparator implements Comparator<Constructor<?>> {
-        private final Map<Constructor<?>, Integer> constructors = new HashMap<Constructor<?>, Integer>();
+        private final Map<Constructor<?>, Integer> constructors = new HashMap<>();
 
         protected ConstructorComparator(final Class<?> beanClass) {
             for (final Constructor<?> c : Reflection.getDeclaredConstructors(beanClass)) {

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaInvocable.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaInvocable.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaInvocable.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaInvocable.java Tue May  2 04:53:20 2017
@@ -16,18 +16,18 @@
  */
 package org.apache.bval.model;
 
-import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
 public abstract class MetaInvocable extends MetaAnnotated {
     private static final long serialVersionUID = 1L;
 
-    private Map<Integer, MetaParameter> parameters = new HashMap<Integer, MetaParameter>();
+    private Map<Integer, MetaParameter> parameters = new HashMap<>();
 
     public Collection<MetaParameter> getParameters() {
-        return new ArrayList<MetaParameter>(parameters.values());
+        return Collections.unmodifiableCollection(parameters.values());
     }
 
     public void addParameter(final int idx, final MetaParameter param) {

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaProperty.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaProperty.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaProperty.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/model/MetaProperty.java Tue May  2 04:53:20 2017
@@ -36,12 +36,6 @@ public class MetaProperty extends Meta i
     private MetaBean metaBean;
 
     /**
-     * Create a new MetaProperty instance.
-     */
-    public MetaProperty() {
-    }
-
-    /**
      * Get the metabean of the target bean (mainly for relationships).
      * @return MetaBean (may be null).
      */
@@ -116,7 +110,7 @@ public class MetaProperty extends Meta i
      * @see {@link Features.Property#MANDATORY}
      */
     public boolean isMandatory() {
-        return getFeature(MANDATORY, Boolean.FALSE).booleanValue();
+        return Boolean.TRUE.equals(getFeature(MANDATORY));
     }
 
     /**
@@ -159,6 +153,6 @@ public class MetaProperty extends Meta i
      */
     @Override
     public String toString() {
-        return "MetaProperty{" + "name='" + name + '\'' + ", type=" + type + '}';
+        return String.format("%s{name='%s', type=%s}", MetaProperty.class.getSimpleName(), name, type);
     }
 }

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/routines/EMailValidationUtils.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/routines/EMailValidationUtils.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/routines/EMailValidationUtils.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/routines/EMailValidationUtils.java Tue May  2 04:53:20 2017
@@ -29,12 +29,11 @@ public class EMailValidationUtils {
     private static String ATOM = "[^\\x00-\\x1F\\(\\)\\<\\>\\@\\,\\;\\:\\\\\\\"\\.\\[\\]\\s]";
     private static String DOMAIN = "(" + ATOM + "+(\\." + ATOM + "+)*";
     private static String IP_DOMAIN = "\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\]";
-    public static final java.util.regex.Pattern DEFAULT_EMAIL_PATTERN;
+    public static final Pattern DEFAULT_EMAIL_PATTERN;
 
     static {
-        DEFAULT_EMAIL_PATTERN =
-            java.util.regex.Pattern.compile("^" + ATOM + "+(\\." + ATOM + "+)*@" + DOMAIN + "|" + IP_DOMAIN + ")$",
-                java.util.regex.Pattern.CASE_INSENSITIVE);
+        DEFAULT_EMAIL_PATTERN = Pattern.compile("^" + ATOM + "+(\\." + ATOM + "+)*@" + DOMAIN + "|" + IP_DOMAIN + ")$",
+            Pattern.CASE_INSENSITIVE);
     }
 
     /**

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/BValVersion.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/BValVersion.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/BValVersion.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/BValVersion.java Tue May  2 04:53:20 2017
@@ -54,21 +54,17 @@ public class BValVersion {
 
     static {
         Properties revisionProps = new Properties();
-        try {
-            InputStream in = BValVersion.class.getResourceAsStream("/META-INF/org.apache.bval.revision.properties");
+        try (InputStream in = BValVersion.class.getResourceAsStream("/META-INF/org.apache.bval.revision.properties")) {
             if (in != null) {
-                try {
-                    revisionProps.load(in);
-                } finally {
-                    in.close();
-                }
+                revisionProps.load(in);
             }
         } catch (IOException ioe) {
         }
 
         String vers = revisionProps.getProperty("project.version");
-        if (vers == null || "".equals(vers.trim()))
+        if (vers == null || "".equals(vers.trim())) {
             vers = "0.0.0";
+        }
         VERSION_NUMBER = vers;
 
         StringTokenizer tok = new StringTokenizer(VERSION_NUMBER, ".-");

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java Tue May  2 04:53:20 2017
@@ -97,7 +97,7 @@ public class FieldAccess extends AccessS
         if (this == o) {
             return true;
         }
-        if (o == null || getClass() != o.getClass()) {
+        if (o == null || !getClass().equals(o.getClass())) {
             return false;
         }
 

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java Tue May  2 04:53:20 2017
@@ -46,7 +46,7 @@ public class IndexedAccess extends Acces
         if (TypeUtils.isAssignable(containerType, Iterable.class)) {
             Map<TypeVariable<?>, Type> typeArguments = TypeUtils.getTypeArguments(containerType, Iterable.class);
             Type type = TypeUtils.unrollVariables(typeArguments, ITERABLE_TYPE);
-            return type != null ? type : Object.class;
+            return type == null ? Object.class : type;
         }
         return null;
     }

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java Tue May  2 04:53:20 2017
@@ -22,6 +22,7 @@ import java.lang.annotation.ElementType;
 import java.lang.reflect.Type;
 import java.lang.reflect.TypeVariable;
 import java.util.Map;
+import java.util.Optional;
 
 /**
  * {@link AccessStrategy} to get a keyed value from a {@link Map}. Contains
@@ -43,7 +44,7 @@ public class KeyedAccess extends AccessS
     public static Type getJavaElementType(Type containerType) {
         if (TypeUtils.isAssignable(containerType, Map.class)) {
             Map<TypeVariable<?>, Type> typeArguments = TypeUtils.getTypeArguments(containerType, Map.class);
-            return ObjectUtils.defaultIfNull(TypeUtils.unrollVariables(typeArguments, MAP_TYPEVARS[1]), Object.class);
+            return Optional.ofNullable(TypeUtils.unrollVariables(typeArguments, MAP_TYPEVARS[1])).orElse(Object.class);
         }
         return null;
     }
@@ -83,11 +84,7 @@ public class KeyedAccess extends AccessS
                     final Object result = map.get(Enum.valueOf((Class<? extends Enum>) rawKeyType, name));
                     return result;
                 }
-                for (Map.Entry<?, ?> e : map.entrySet()) {
-                    if (name.equals(e.getKey())) {
-                        return e.getValue();
-                    }
-                }
+                return map.get(name);
             }
         }
         return null;

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java Tue May  2 04:53:20 2017
@@ -89,9 +89,7 @@ public class MethodAccess extends Access
         final boolean mustUnset = Reflection.setAccessible(method, true);
         try {
             return method.invoke(instance);
-        } catch (IllegalAccessException e) {
-            throw new IllegalArgumentException(e);
-        } catch (InvocationTargetException e) {
+        } catch (IllegalAccessException | InvocationTargetException e) {
             throw new IllegalArgumentException(e);
         } finally {
             if (mustUnset) {
@@ -132,7 +130,7 @@ public class MethodAccess extends Access
         if (this == o) {
             return true;
         }
-        if (o == null || getClass() != o.getClass()) {
+        if (o == null || !getClass().equals(o.getClass())) {
             return false;
         }
 

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/ObjectUtils.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/ObjectUtils.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/ObjectUtils.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/ObjectUtils.java Tue May  2 04:53:20 2017
@@ -18,6 +18,8 @@ package org.apache.bval.util;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Array;
+import java.util.function.Predicate;
+import java.util.stream.Stream;
 
 public final class ObjectUtils {
     public static final Class<?>[] EMPTY_CLASS_ARRAY = new Class[0];
@@ -44,7 +46,7 @@ public final class ObjectUtils {
      * @return {@code object} if it is not {@code null}, defaultValue otherwise
      */
     public static <T> T defaultIfNull(final T object, final T defaultValue) {
-        return object != null ? object : defaultValue;
+        return object == null ? defaultValue : object;
     }
 
     public static <T> boolean isNotEmpty(final T[] array) {
@@ -68,29 +70,19 @@ public final class ObjectUtils {
         if (array == null) {
             return false;
         }
-        for (Object o : array) {
-            if (o.equals(objectToFind)) {
-                return true;
-            }
-        }
-        return false;
+        return Stream.of(array).anyMatch(Predicate.isEqual(objectToFind));
     }
 
     public static <T> T[] arrayAdd(T[] array, T objectToAdd) {
-        Class<?> type;
-        if (array != null) {
-            type = array.getClass().getComponentType();
-        } else if (objectToAdd != null) {
-            type = objectToAdd.getClass();
-        } else {
+        if (array == null && objectToAdd == null) {
             throw new IllegalArgumentException("Arguments cannot both be null");
         }
         final int arrayLength = Array.getLength(array);
+        @SuppressWarnings("unchecked")
         T[] newArray = (T[]) Array.newInstance(array.getClass().getComponentType(), arrayLength + 1);
         System.arraycopy(array, 0, newArray, 0, arrayLength);
         newArray[newArray.length - 1] = objectToAdd;
 
         return newArray;
-
     }
 }

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/PropertyAccess.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/PropertyAccess.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/PropertyAccess.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/PropertyAccess.java Tue May  2 04:53:20 2017
@@ -33,6 +33,8 @@ import java.lang.reflect.Type;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.logging.Level;
@@ -51,7 +53,7 @@ public class PropertyAccess extends Acce
     private static final String BEANUTILS_PROPERTY_ACCESS = "org.apache.bval.util.BeanUtilsPropertyAccess";
     private static final Constructor<? extends PropertyAccess> BEANUTILS_PROPERTY_ACCESS_CTOR;
     private static final ConcurrentMap<Class<?>, Map<String, PropertyDescriptor>> PROPERTY_DESCRIPTORS =
-        new ConcurrentHashMap<Class<?>, Map<String, PropertyDescriptor>>();
+        new ConcurrentHashMap<>();
 
     static {
         final ClassLoader cl = Reflection.getClassLoader(PropertyAccess.class);
@@ -206,10 +208,8 @@ public class PropertyAccess extends Acce
 
     private static Method getPropertyReadMethod(String propertyName, Class<?> beanClass) {
         final Map<String, PropertyDescriptor> propertyDescriptors = getPropertyDescriptors(beanClass);
-        if (propertyDescriptors.containsKey(propertyName)) {
-            return propertyDescriptors.get(propertyName).getReadMethod();
-        }
-        return null;
+        return Optional.ofNullable(propertyDescriptors.get(propertyName)).map(PropertyDescriptor::getReadMethod)
+            .orElse(null);
     }
 
     private static Field getField(String propertyName, Class<?> beanClass) {
@@ -291,7 +291,7 @@ public class PropertyAccess extends Acce
         if (this == o) {
             return true;
         }
-        if (o == null || getClass() != o.getClass()) {
+        if (o == null || !getClass().equals(o.getClass())) {
             return false;
         }
 
@@ -305,10 +305,7 @@ public class PropertyAccess extends Acce
      */
     @Override
     public int hashCode() {
-        int result;
-        result = beanClass.hashCode();
-        result = 31 * result + propertyName.hashCode();
-        return result;
+        return Objects.hash(beanClass, propertyName);
     }
 
     private static Map<String, PropertyDescriptor> getPropertyDescriptors(Class<?> type) {
@@ -321,7 +318,7 @@ public class PropertyAccess extends Acce
             if (propertyDescriptors == null) {
                 m = Collections.emptyMap();
             } else {
-                m = new HashMap<String, PropertyDescriptor>();
+                m = new HashMap<>();
                 for (PropertyDescriptor pd : propertyDescriptors) {
                     m.put(pd.getName(), pd);
                 }

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/StringUtils.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/StringUtils.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/StringUtils.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/StringUtils.java Tue May  2 04:53:20 2017
@@ -17,8 +17,6 @@
 package org.apache.bval.util;
 
 import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 
 public final class StringUtils {
@@ -93,51 +91,6 @@ public final class StringUtils {
         return true;
     }
 
-    public static String join(Collection<?> values, String joinToken) {
-        if (values == null) {
-            return null;
-        }
-        if (values.size() == 0) {
-            return "";
-        }
-        if (values.size() == 1) {
-            return values.iterator().next().toString();
-        }
-        if (joinToken == null) {
-            joinToken = "null"; // backward compat with commons-lang StringUtils...
-        }
-
-        StringBuilder sb = new StringBuilder(values.size() * (16 + joinToken.length()));
-        Iterator<?> it = values.iterator();
-        sb.append(it.next());
-        while (it.hasNext()) {
-            sb.append(joinToken).append(it.next());
-        }
-        return sb.toString();
-    }
-
-    public static String joinArray(Object[] values, String joinToken) {
-        if (values == null) {
-            return null;
-        }
-        if (values.length == 0) {
-            return "";
-        }
-        if (values.length == 1) {
-            return values[0].toString();
-        }
-        if (joinToken == null) {
-            joinToken = "null"; // backward compat with commons-lang StringUtils...
-        }
-
-        StringBuilder sb = new StringBuilder(values.length * (16 + joinToken.length()));
-        sb.append(values[0]);
-        for (int i = 1; i < values.length; i++) {
-            sb.append(joinToken).append(values[i]);
-        }
-        return sb.toString();
-    }
-
     /**
      * <p>Splits the provided text into an array, separator is whitespace.
      */
@@ -149,12 +102,12 @@ public final class StringUtils {
      * <p>Splits the provided text into an array, separator is whitespace.
      */
     public static String[] split(String str, Character token) {
-        if (str == null || str.length() == 0) {
+        if (str == null || str.isEmpty()) {
             return ObjectUtils.EMPTY_STRING_ARRAY;
         }
 
         // split on token
-        List<String> ret = new ArrayList<String>();
+        List<String> ret = new ArrayList<>();
         StringBuilder sb = new StringBuilder(str.length());
         for (int pos = 0; pos < str.length(); pos++) {
             char c = str.charAt(pos);

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/ValidationHelper.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/ValidationHelper.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/ValidationHelper.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/ValidationHelper.java Tue May  2 04:53:20 2017
@@ -41,7 +41,7 @@ public class ValidationHelper {
      * . Its {@link #validate()} method will be called accordingly for every
      * dispatch.
      */
-    public static interface ValidateCallback {
+    public interface ValidateCallback {
         void validate();
     }
 

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/reflection/Reflection.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/reflection/Reflection.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/reflection/Reflection.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/reflection/Reflection.java Tue May  2 04:53:20 2017
@@ -61,8 +61,6 @@ public class Reflection {
         PRIMITIVE_WRAPPER_MAP.put(Void.TYPE, Void.TYPE);
     }
 
-
-
     /**
      * <p>Converts the specified primitive Class object to its corresponding
      * wrapper Class object.</p>
@@ -129,8 +127,7 @@ public class Reflection {
         return cl == null ? clazz.getClassLoader() : cl;
     }
 
-    public static Class<?> toClass(String className) throws ClassNotFoundException
-    {
+    public static Class<?> toClass(String className) throws ClassNotFoundException {
         ClassLoader cl = getClassLoader(Reflection.class);
         return toClass(className, cl);
     }
@@ -142,7 +139,7 @@ public class Reflection {
      *
      * @throws RuntimeException on load error
      */
-    public static Class toClass(String className, ClassLoader loader) throws ClassNotFoundException {
+    public static Class<?> toClass(String className, ClassLoader loader) throws ClassNotFoundException {
         return toClass(className, false, loader);
     }
 
@@ -153,7 +150,7 @@ public class Reflection {
      *
      * @throws RuntimeException on load error
      */
-    public static Class toClass(String className, boolean resolve, ClassLoader loader) throws ClassNotFoundException {
+    public static Class<?> toClass(String className, boolean resolve, ClassLoader loader) throws ClassNotFoundException {
         if (className == null) {
             throw new NullPointerException("className == null");
         }
@@ -171,7 +168,7 @@ public class Reflection {
             for (int i = 0; !primitive && (i < NATIVE_CODES.length); i++) {
                 if (NATIVE_CODES[i][1].equals(className)) {
                     if (dims == 0) {
-                        return (Class) NATIVE_CODES[i][0];
+                        return (Class<?>) NATIVE_CODES[i][0];
                     }
                     className = (String) NATIVE_CODES[i][2];
                     primitive = true;

Modified: bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/reflection/TypeUtils.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/reflection/TypeUtils.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/reflection/TypeUtils.java (original)
+++ bval/branches/bv2.x/bval-core/src/main/java/org/apache/bval/util/reflection/TypeUtils.java Tue May  2 04:53:20 2017
@@ -28,7 +28,9 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
+import java.util.stream.Stream;
 
 import org.apache.bval.util.Validate;
 
@@ -148,13 +150,7 @@ public class TypeUtils {
          */
         @Override
         public int hashCode() {
-            int result = 71 << 4;
-            result |= raw.hashCode();
-            result <<= 4;
-            result |= useOwner == null ? 0 : useOwner.hashCode();
-            result <<= 8;
-            result |= Arrays.hashCode(typeArguments);
-            return result;
+            return Objects.hash(raw, useOwner, typeArguments);
         }
     }
 
@@ -173,8 +169,8 @@ public class TypeUtils {
          * @param lowerBounds of this type
          */
         private WildcardTypeImpl(final Type[] upperBounds, final Type[] lowerBounds) {
-            this.upperBounds = upperBounds != null ? upperBounds : EMPTY_BOUNDS;
-            this.lowerBounds = lowerBounds != null ? lowerBounds : EMPTY_BOUNDS;
+            this.upperBounds = upperBounds == null ? EMPTY_BOUNDS : upperBounds;
+            this.lowerBounds = lowerBounds == null ? EMPTY_BOUNDS : lowerBounds;
         }
 
         /**
@@ -214,11 +210,7 @@ public class TypeUtils {
          */
         @Override
         public int hashCode() {
-            int result = 73 << 8;
-            result |= Arrays.hashCode(upperBounds);
-            result <<= 8;
-            result |= Arrays.hashCode(lowerBounds);
-            return result;
+            return Objects.hash(upperBounds, lowerBounds);
         }
     }
 
@@ -320,19 +312,13 @@ public class TypeUtils {
         if (type instanceof TypeVariable<?>) {
             // if any of the bounds are assignable to the class, then the
             // type is assignable to the class.
-            for (final Type bound : ((TypeVariable<?>) type).getBounds()) {
-                if (isAssignable(bound, toClass)) {
-                    return true;
-                }
-            }
-
-            return false;
+            return Stream.of(((TypeVariable<?>) type).getBounds()).anyMatch(bound -> isAssignable(bound, toClass));
         }
 
         // the only classes to which a generic array type can be assigned
         // are class Object and array classes
         if (type instanceof GenericArrayType) {
-            return toClass.equals(Object.class)
+            return Object.class.equals(toClass)
                     || toClass.isArray()
                     && isAssignable(((GenericArrayType) type).getGenericComponentType(), toClass
                             .getComponentType());
@@ -554,25 +540,15 @@ public class TypeUtils {
 
         if (type instanceof WildcardType) {
             // so long as one of the upper bounds is assignable, it's good
-            for (final Type bound : getImplicitUpperBounds((WildcardType) type)) {
-                if (isAssignable(bound, toGenericArrayType)) {
-                    return true;
-                }
-            }
-
-            return false;
+            return Stream.of(getImplicitUpperBounds((WildcardType) type))
+                .anyMatch(bound -> isAssignable(bound, toGenericArrayType));
         }
 
         if (type instanceof TypeVariable<?>) {
             // probably should remove the following logic and just return false.
             // type variables cannot specify arrays as bounds.
-            for (final Type bound : getImplicitBounds((TypeVariable<?>) type)) {
-                if (isAssignable(bound, toGenericArrayType)) {
-                    return true;
-                }
-            }
-
-            return false;
+            return Stream.of(getImplicitBounds((TypeVariable<?>) type))
+                .anyMatch(bound -> isAssignable(bound, toGenericArrayType));
         }
 
         if (type instanceof ParameterizedType) {
@@ -871,8 +847,7 @@ public class TypeUtils {
                     getRawType(parameterizedOwnerType), subtypeVarAssigns);
         } else {
             // no owner, prep the type variable assignments map
-            typeVarAssigns = subtypeVarAssigns == null ? new HashMap<TypeVariable<?>, Type>()
-                    : new HashMap<TypeVariable<?>, Type>(subtypeVarAssigns);
+            typeVarAssigns = subtypeVarAssigns == null ? new HashMap<>() : new HashMap<>(subtypeVarAssigns);
         }
 
         // get the subject parameterized type's arguments
@@ -917,7 +892,7 @@ public class TypeUtils {
             if (toClass.isPrimitive()) {
                 // dealing with widening here. No type arguments to be
                 // harvested with these two types.
-                return new HashMap<TypeVariable<?>, Type>();
+                return new HashMap<>();
             }
 
             // work with wrapper the wrapper class instead of the primitive
@@ -925,8 +900,8 @@ public class TypeUtils {
         }
 
         // create a copy of the incoming map, or an empty one if it's null
-        final HashMap<TypeVariable<?>, Type> typeVarAssigns = subtypeVarAssigns == null ? new HashMap<TypeVariable<?>, Type>()
-                : new HashMap<TypeVariable<?>, Type>(subtypeVarAssigns);
+        final Map<TypeVariable<?>, Type> typeVarAssigns =
+            subtypeVarAssigns == null ? new HashMap<>() : new HashMap<>(subtypeVarAssigns);
 
         // has target class been reached?
         if (toClass.equals(cls)) {
@@ -1030,7 +1005,7 @@ public class TypeUtils {
             return bounds;
         }
 
-        final Set<Type> types = new HashSet<Type>(bounds.length);
+        final Set<Type> types = new HashSet<>(bounds.length);
 
         for (final Type type1 : bounds) {
             boolean subtypeFound = false;
@@ -1243,7 +1218,7 @@ public class TypeUtils {
                 if (p.getOwnerType() == null) {
                     parameterizedTypeArguments = typeArguments;
                 } else {
-                    parameterizedTypeArguments = new HashMap<TypeVariable<?>, Type>(typeArguments);
+                    parameterizedTypeArguments = new HashMap<>(typeArguments);
                     parameterizedTypeArguments.putAll(TypeUtils.getTypeArguments(p));
                 }
                 final Type[] args = p.getActualTypeArguments();

Modified: bval/branches/bv2.x/bval-core/src/test/java/org/apache/bval/ValidationResultsTest.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-core/src/test/java/org/apache/bval/ValidationResultsTest.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-core/src/test/java/org/apache/bval/ValidationResultsTest.java (original)
+++ bval/branches/bv2.x/bval-core/src/test/java/org/apache/bval/ValidationResultsTest.java Tue May  2 04:53:20 2017
@@ -37,7 +37,7 @@ public class ValidationResultsTest {
     @Test
     public void testValidationResults() throws Exception {
         assertTrue(results.isEmpty());
-        BeanValidationContext<ValidationResults> ctx = new BeanValidationContext<ValidationResults>(results);
+        BeanValidationContext<ValidationResults, Object, Boolean> ctx = new BeanValidationContext<>(results);
         ctx.setBean(this);
         ctx.setMetaProperty(new MetaProperty());
         ctx.getMetaProperty().setName("prop");

Modified: bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ABANumber.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ABANumber.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ABANumber.java (original)
+++ bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ABANumber.java Tue May  2 04:53:20 2017
@@ -25,7 +25,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
 import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
 import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
@@ -40,7 +42,7 @@ import static java.lang.annotation.Reten
  */
 @Documented
 @Constraint(validatedBy = ABANumberValidator.class)
-@Target({ FIELD, ANNOTATION_TYPE, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
 @Retention(RUNTIME)
 public @interface ABANumber {
 

Modified: bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/CUSIP.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/CUSIP.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/CUSIP.java (original)
+++ bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/CUSIP.java Tue May  2 04:53:20 2017
@@ -25,7 +25,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
 import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
 import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
@@ -40,7 +42,7 @@ import static java.lang.annotation.Reten
  */
 @Documented
 @Constraint(validatedBy = CUSIPValidator.class)
-@Target({ FIELD, ANNOTATION_TYPE, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
 @Retention(RUNTIME)
 public @interface CUSIP {
 

Modified: bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/EAN13.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/EAN13.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/EAN13.java (original)
+++ bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/EAN13.java Tue May  2 04:53:20 2017
@@ -25,7 +25,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
 import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
 import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
@@ -40,7 +42,7 @@ import static java.lang.annotation.Reten
  */
 @Documented
 @Constraint(validatedBy = EAN13Validator.class)
-@Target({ FIELD, ANNOTATION_TYPE, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
 @Retention(RUNTIME)
 public @interface EAN13 {
 

Modified: bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/IBAN.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/IBAN.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/IBAN.java (original)
+++ bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/IBAN.java Tue May  2 04:53:20 2017
@@ -25,7 +25,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
 import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
 import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
@@ -40,7 +42,7 @@ import static java.lang.annotation.Reten
  */
 @Documented
 @Constraint(validatedBy = IBANValidator.class)
-@Target({ FIELD, ANNOTATION_TYPE, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
 @Retention(RUNTIME)
 public @interface IBAN {
 

Modified: bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/IBANValidator.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/IBANValidator.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/IBANValidator.java (original)
+++ bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/IBANValidator.java Tue May  2 04:53:20 2017
@@ -26,7 +26,7 @@ import static java.lang.Character.getNum
 /**
  * <b>IBAN</b> (International Bank Account Number) Check Digit calculation/validation.
  * <p>
- * This rountine is based on the ISO 7064 Mod 97,10 check digit caluclation routine.
+ * This routine is based on the ISO 7064 Mod 97,10 check digit caluclation routine.
  * <p>
  * The two check digit characters in a IBAN number are the third and fourth characters
  * in the code. For <i>check digit</i> calculation/validation the first four characters are moved
@@ -40,7 +40,7 @@ import static java.lang.Character.getNum
  *  <a href="http://en.wikipedia.org/wiki/International_Bank_Account_Number">Wikipedia -
  *  IBAN number</a>.
  */
-public final class IBANValidator implements ConstraintValidator<IBAN, String> {
+public final class IBANValidator implements ConstraintValidator<IBAN, CharSequence> {
 
     private static final long MAX = 999999999;
 
@@ -50,12 +50,12 @@ public final class IBANValidator impleme
      * {@inheritDoc}
      */
     @Override
-    public boolean isValid(String code, ConstraintValidatorContext context) {
+    public boolean isValid(CharSequence code, ConstraintValidatorContext context) {
         if (code.length() < 5) {
             return false;
         }
 
-        String reformattedCode = code.substring(4) + code.substring(0, 4);
+        String reformattedCode = code.subSequence(4, code.length()).toString() + code.subSequence(0, 4).toString();
         long total = 0;
         for (int i = 0; i < reformattedCode.length(); i++) {
             int charValue = getNumericValue(reformattedCode.charAt(i));

Modified: bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ISBN10.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ISBN10.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ISBN10.java (original)
+++ bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ISBN10.java Tue May  2 04:53:20 2017
@@ -25,7 +25,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
 import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
 import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
@@ -40,7 +42,7 @@ import static java.lang.annotation.Reten
  */
 @Documented
 @Constraint(validatedBy = ISBN10Validator.class)
-@Target({ FIELD, ANNOTATION_TYPE, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
 @Retention(RUNTIME)
 public @interface ISBN10 {
 

Modified: bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Luhn.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Luhn.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Luhn.java (original)
+++ bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Luhn.java Tue May  2 04:53:20 2017
@@ -25,7 +25,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
 import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
 import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
@@ -40,7 +42,7 @@ import static java.lang.annotation.Reten
  */
 @Documented
 @Constraint(validatedBy = LuhnValidator.class)
-@Target({ FIELD, ANNOTATION_TYPE, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
 @Retention(RUNTIME)
 public @interface Luhn {
 

Modified: bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ModulusValidator.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ModulusValidator.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ModulusValidator.java (original)
+++ bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/ModulusValidator.java Tue May  2 04:53:20 2017
@@ -38,7 +38,7 @@ import static java.lang.Character.isDigi
  *
  * @param <A>
  */
-abstract class ModulusValidator<A extends Annotation> implements ConstraintValidator<A, String> {
+abstract class ModulusValidator<A extends Annotation> implements ConstraintValidator<A, CharSequence> {
 
     private final int modulus;
 
@@ -58,7 +58,7 @@ abstract class ModulusValidator<A extend
      * {@inheritDoc}
      */
     @Override
-    public boolean isValid(String code, ConstraintValidatorContext context) {
+    public boolean isValid(CharSequence code, ConstraintValidatorContext context) {
         if (code.length() == 0) {
             return false;
         }

Modified: bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Sedol.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Sedol.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Sedol.java (original)
+++ bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Sedol.java Tue May  2 04:53:20 2017
@@ -25,7 +25,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
 import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
 import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
@@ -40,7 +42,7 @@ import static java.lang.annotation.Reten
  */
 @Documented
 @Constraint(validatedBy = SedolValidator.class)
-@Target({ FIELD, ANNOTATION_TYPE, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
 @Retention(RUNTIME)
 public @interface Sedol {
 

Modified: bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Verhoeff.java
URL: http://svn.apache.org/viewvc/bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Verhoeff.java?rev=1793432&r1=1793431&r2=1793432&view=diff
==============================================================================
--- bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Verhoeff.java (original)
+++ bval/branches/bv2.x/bval-extras/src/main/java/org/apache/bval/extras/constraints/checkdigit/Verhoeff.java Tue May  2 04:53:20 2017
@@ -25,7 +25,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
 import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
 import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
@@ -40,7 +42,7 @@ import static java.lang.annotation.Reten
  */
 @Documented
 @Constraint(validatedBy = VerhoeffValidator.class)
-@Target({ FIELD, ANNOTATION_TYPE, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
 @Retention(RUNTIME)
 public @interface Verhoeff {