public static <T> Result<T> of(
                final Set<? extends ConstraintViolation<? extends T>> constraintViolations,
                final Class<T> configSuperType) {

            if (constraintViolations == null || constraintViolations.isEmpty()) {
                return new Result<>(Collections.emptySet(), configSuperType);
            } else {
                return new Result(constraintViolations, 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