Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
restructure DefaultIncomingMapping#apply
* This is done to improve readability and to avoid hint from IntelliJ that
  suggested to remove "unnecessary" optional wrapping (which is wrong)

Signed-off-by: Klem Yannic (INST/ECS1) <yannic.klem@bosch-si.com>
  • Loading branch information
Yannic92 committed Aug 26, 2019
1 parent 34441a0 commit 3a8ac21
Showing 1 changed file with 13 additions and 6 deletions.
Expand Up @@ -38,14 +38,21 @@ static DefaultIncomingMapping get() {

@Override
public Optional<Adaptable> apply(final ExternalMessage message) {
return Optional.ofNullable(
message.getTextPayload()
.orElseGet(() -> message.getBytePayload()
.map(b -> StandardCharsets.UTF_8.decode(b).toString())
.orElse(null))
).map(plainString -> DittoJsonException.wrapJsonRuntimeException(() -> {
return getPlainStringPayload(message).map(plainString -> DittoJsonException.wrapJsonRuntimeException(() -> {
final JsonObject jsonObject = JsonFactory.readFrom(plainString).asObject();
return ProtocolFactory.jsonifiableAdaptableFromJson(jsonObject);
}));
}

private static Optional<String> getPlainStringPayload(final ExternalMessage message) {
final String plainString;
if (message.getTextPayload().isPresent()) {
plainString = message.getTextPayload().get();
} else {
plainString = message.getBytePayload()
.map(b -> StandardCharsets.UTF_8.decode(b).toString())
.orElse(null);
}
return Optional.ofNullable(plainString);
}
}

0 comments on commit 3a8ac21

Please sign in to comment.