@Override public <S> Result<S> flatMap(SerializableFunction<R, Result<S>> mapper) { Result<S> result = wrappedResult.flatMap(mapper); if (!(result instanceof ValidationResultWrap)) { return new ValidationResultWrap<S>(result, resultList); } List<ValidationResult> currentResults = new ArrayList<>(resultList); ValidationResultWrap<S> resultWrap = (ValidationResultWrap<S>) result; currentResults.addAll(resultWrap.getValidationResults()); return new ValidationResultWrap<>(resultWrap.getWrappedResult(), currentResults); }
@Override public Result<T> convertToModel(T value, ValueContext context) { ValidationResult validationResult = validator.apply(value, context); return new ValidationResultWrap<>(value, validationResult); }
if (result instanceof ValidationResultWrap) { results = ((ValidationResultWrap<TARGET>) result) .getValidationResults(); } else { results = Collections.emptyList();