Mam taki kawalek kodu:
public static void someFunc() {
List<Data> data = someService.getData();
Either<ContextStatus, Set<Data>> validData =
data.stream()
.map(d -> validateData(d.getContext()))
// co dalej...?
}
private Either<ContextStatus, Context> validateData(Context context) {
if (context != ...) {
return Either.left(ContextStatus.Fail)
}
if (context != ...) {
return Either.left(ContextStatus.Fail)
}
return context;
}
w jaki sposób mogę z tego głównego streama wyciągnąć sobie koncowego Eithera postaci Either<ContextStatus, Set<Data>>
? po .map(d -> validateData(d.getContext()))
dostaje Stream<Either<ContextStatus, Context> i nie mam kompletnie pomyslu jak to przemapować do docelowej postaci Either<ContextStatus, Set<Data>>
gdzie left
trzymalby info gdyby jakikolwiek context nie przeszedl walidacji a right
set ze wszystkimi danymi jak wszystko jest ok.