public static <T> Result<T> merge(final Result<T> result1, final Result<T> result2) {
            final Set<ConstraintViolation<? extends T>> constraintViolations = new HashSet<>();
            constraintViolations.addAll(result1.constraintViolations);
            constraintViolations.addAll(result2.constraintViolations);
            return Result.of(constraintViolations, result1.configSuperType);
        }
Walks the config object tree validating each branch regardless of whether they have @Valid
annotations.
stroom-util/src/main/java/stroom/util/config/ConfigValidator.java