Vavr - either

EI
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:2
0

Cześć, podpowie mi ktoś, jak to zmapować na Either<ErrorWrapper, TaskFile> ?

Kopiuj
mongoTaskFileRepository.findById(fileId).map(taskFileEntity ->
            TaskFile.builder()
                    .id(taskFileEntity.getId())
                    .filename(taskFileEntity.getFilename())
                    .file(taskFileEntity.getFile())
                    .timestamp(taskFileEntity.getTimestamp())
                    .build())

mongoTaskFileRepository.findById(fileId) zwraca Optional<TaskFileEntity>, następnie chce to zmapować na TaskFile i zapisać w Either right().
Jeśli nie znajdzie mi takiej encji, chce w Either.left() mieć new ErrorWrapper.

PI
Fajny nick xddd
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Silesia/Marki
  • Postów:5505
0

Strzelam:

Kopiuj
mongoTaskFileRepository.findById(fileId)
  .map(taskFileEntity ->
            Either.right(TaskFile.builder()
                    .id(taskFileEntity.getId())
                    .filename(taskFileEntity.getFilename())
                    .file(taskFileEntity.getFile())
                    .timestamp(taskFileEntity.getTimestamp())
                    .build()))
   .orElseGet(() -> Either.left(new ErrorWrapper()))

Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
EI
Required type: Either<ErrorWrapper,TaskFile> Provided: Either<Object,TaskFile>
AD
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 3 lata
  • Postów:9
0

mongoTaskFileRepository.findById(fileId).map(twoje mapowanie).toEither(ErrorWrapper)

EI
findById() zwraca Optional'a nie vavrowe Option
Charles_Ray
A w sumie to nie ma pluginu do Spring-data, żeby zwracało Vavrowe?
EI
A widzisz, tego nie wiedziałem, dzięki :D
nowyworek
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:świat
  • Postów:174
0

Co taka moda na tego vavra? W większości wypadków wystarczą OPtionale.Na pewno jak piszesz cruda.


Julian
S9
Ludzie się rejestrują żeby potrolować @Charles_Ray. PS To prawda
Charles_Ray
Jeśli ktoś się rejestruje i marnuje czas żeby potrolować jakiegoś randoma z neta (czyt. mnie), to szczerze współczuje :)
S9
@Charles_Ray ale wiesz ze ja żartowałem? Dla pewności dodam
Charles_Ray
Ciężko mi zinterpretować ironię z tekstu zakończonego PS To prawda. Ja natomiast mam to totalnie w leju + odpowiedziałem w formie zdania warunkowego. Jeśli założenia są pustym zbiorem, to nadal to zdanie jest prawdziwe :)
PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:4 miesiące
  • Postów:2787
2
nowyworek napisał(a):

Co taka moda na tego vavra? W większości wypadków wystarczą OPtionale.Na pewno jak piszesz cruda.

Chodzi o ogarnianie exceptionów - w Javie idą tylko do góry w stacktrace, nie możesz wyrzuconego exceptiona przekazać jako parametr do metody. A w Vavr Either możesz.

S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
2

@eithervavr: ale w sumie z tym Either to trochę dobre pytanie. Option chyba bardziej tu pasuje, i ogólnie Option jest często wystarczające ;)


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
EI
Tak, zdałem sobie sprawę że Either tutaj pasuje jak kij w mrowisko :/ i użyłem Optiona
PI
Uderz w stół a nozyce się odezwą ;) Wilk syty i owca cała. Włożyłeś kij w mrowisko.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.