Первое условие if (!reference.isPresent())
покрыто .orElse(Response.status(Status.NOT_FOUND))
Для покрытия второго условия if (Objects.isNull(responseBuilder))
создайте Optional из результата this.request.evaluatePreconditions(entityTag)
, а затем orElseGet
для возврата ok
builder
Приведенный ниже код написан с моей головы, я не проверял его
this.referenceService
.get(id)
.map(this::eTag)
.map(entityTag -> Optional.ofNullable(this.request.evaluatePreconditions(entityTag))
.orElseGet(() -> Response.ok()
.entity(entityTag)
.cacheControl(this.cacheControl)
.tag(entityTag)))
.orElse(Response.status(Status.NOT_FOUND))
.buld();
Чтобы упростить выражение, часть Optional.ofNullable(...).orElseGet(...)
может быть реорганизована в методеи вызовите этот метод вместо того, чтобы иметь все встроенные
что-то вроде ниже
private ResponseBuilder getBuilderOrDefault(EntityTag entityTag) {
return Optional.ofNullable(this.request.evaluatePreconditions(entityTag))
.orElseGet(() -> Response.ok()
.entity(entityTag)
.cacheControl(this.cacheControl)
.tag(entityTag));
}
Отображение станет
this.referenceService
.get(id)
.map(this::eTag)
.map(this::getBuilderOrDefault)
.orElse(Response.status(Status.NOT_FOUND))
.buld();