Vavr i Either

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1