static <T> void serialize(final Message<T> message, final JsonObjectBuilder messageBuilder, final Predicate<JsonField> predicate) { final Optional<ByteBuffer> rawPayloadOptional = message.getRawPayload(); final Optional<T> payloadOptional = message.getPayload(); if (rawPayloadOptional.isPresent() && !payloadOptional.filter(p -> p instanceof JsonValue).isPresent()) { final ByteBuffer rawPayload = rawPayloadOptional.get(); final String encodedString; if (shouldBeInterpretedAsText(message.getContentType().orElse(""))) { encodedString = new String(rawPayload.array()); } else { final ByteBuffer base64Encoded = BASE64_ENCODER.encode(rawPayload); encodedString = new String(base64Encoded.array(), StandardCharsets.UTF_8); } injectMessagePayload(messageBuilder, predicate, encodedString, message.getHeaders()); } else if (payloadOptional.isPresent()) { final T payload = payloadOptional.get(); if (payload instanceof JsonValue) { MessageCommandSizeValidator.getInstance().ensureValidSize(() -> ((JsonValue) payload).toString().length(), message::getHeaders); messageBuilder.set(MessageCommand.JsonFields.JSON_MESSAGE_PAYLOAD, (JsonValue) payload, predicate); } else { injectMessagePayload(messageBuilder, predicate, payload.toString(), message.getHeaders()); } } }
static <T> void serialize(final Message<T> message, final JsonObjectBuilder messageBuilder, final Predicate<JsonField> predicate) { final Optional<ByteBuffer> rawPayloadOptional = message.getRawPayload(); final Optional<T> payloadOptional = message.getPayload(); if (rawPayloadOptional.isPresent() && !payloadOptional.filter(p -> p instanceof JsonValue).isPresent()) { final ByteBuffer rawPayload = rawPayloadOptional.get(); final String encodedString; if (shouldBeInterpretedAsText(message.getContentType().orElse(""))) { encodedString = new String(rawPayload.array()); } else { final ByteBuffer base64Encoded = BASE64_ENCODER.encode(rawPayload); encodedString = new String(base64Encoded.array(), StandardCharsets.UTF_8); } injectMessagePayload(messageBuilder, predicate, encodedString, message.getHeaders()); } else if (payloadOptional.isPresent()) { final T payload = payloadOptional.get(); if (payload instanceof JsonValue) { MessageCommandSizeValidator.getInstance().ensureValidSize(() -> ((JsonValue) payload).toString().length(), message::getHeaders); messageBuilder.set(MessageCommand.JsonFields.JSON_MESSAGE_PAYLOAD, (JsonValue) payload, predicate); } else { injectMessagePayload(messageBuilder, predicate, payload.toString(), message.getHeaders()); } } }
final Optional<ContentType> optionalContentType = message.getContentType().map(ContentType$.MODULE$::parse) .filter(Either::isRight) .map(Either::right)