Давайте разберем это l oop вниз. Сначала вы набираете go над всеми валидаторами и вызываете validate
- это операция map
. Если status
равно INVALID
или VALID
, вы возвращаете его - это операция filter
с findFirst
logi c. И если вы не можете его найти, вы возвращаете UNKNOWN
- это операция orElse
. Собираем все вместе:
private Status validate(final Type type, final String id) {
return validators.stream()
.map(v -> v.validate(type, id))
.filter(s -> s == Status.INVALID || s == Status.VALID)
.findFirst()
.orElse(Status.UNKNOWN);
}