/** * Returns a mutable builder with a fluent API for building an immutable {@code Message}. * * @param messageHeaders the headers of the message to be built. * @param <T> the type of the Message's payload. * @return the new builder. * @throws NullPointerException if {@code messageHeaders} is {@code null}. */ static <T> MessageBuilder<T> newBuilder(final MessageHeaders messageHeaders) { return MessagesModelFactory.newMessageBuilder(messageHeaders); }
/** * Returns a new builder for {@link MessageHeaders}. * * @param direction the direction of the message. * @param thingId the thing ID of the message. * @param subject the subject of the message. * @return the builder. * @throws NullPointerException if any argument is {@code null}. * @throws IllegalArgumentException if {@code thingId} or {@code subject} is empty. */ static MessageHeadersBuilder newHeadersBuilder(final MessageDirection direction, final CharSequence thingId, final CharSequence subject) { return MessagesModelFactory.newHeadersBuilder(direction, thingId, subject); }
private static MessageBuilder<Object> initMessageBuilder(final ByteBuffer payload, final ContentType contentType, final MessageHeaders headers) { // reset bytebuffer offset, otherwise payload will not be appended final ByteBuffer payloadWithoutOffset = ByteBuffer.wrap(payload.array()); final MessageBuilder<Object> messageBuilder = MessagesModelFactory.newMessageBuilder(headers) .rawPayload(payloadWithoutOffset); final Charset charset = contentType.getCharsetOption() .map(HttpCharset::nioCharset) .orElse(StandardCharsets.UTF_8); final String payloadString = charset.decode(payload).toString(); if (contentType.mediaType().isText()) { messageBuilder.payload(payloadString); } else if (ContentTypes.APPLICATION_JSON.equals(contentType)) { messageBuilder.payload(JsonFactory.readFrom(payloadString)); } return messageBuilder; }
/** * Returns a new builder with a fluent API for an immutable MessageHeaders object. * * @param direction the direction of the message. * @param thingId the thing ID of the message. * @param subject the subject of the message. * @return the builder; * @throws NullPointerException if any argument is {@code null}. * @throws IllegalArgumentException if {@code thingId} or {@code subject} is empty. * @throws SubjectInvalidException if {@code subject} is invalid. */ static MessageHeadersBuilder newBuilder(final MessageDirection direction, final CharSequence thingId, final CharSequence subject) { return MessagesModelFactory.newHeadersBuilder(direction, thingId, subject); }
final Charset charset = shouldBeInterpretedAsText ? determineCharset(contentType) : StandardCharsets.UTF_8; final MessageBuilder<T> messageBuilder = MessagesModelFactory.newMessageBuilder(messageHeaders); final Optional<JsonValue> value = adaptable.getPayload().getValue(); if (shouldBeInterpretedAsText) {
final Charset charset = shouldBeInterpretedAsText ? determineCharset(contentType) : StandardCharsets.UTF_8; final MessageBuilder<T> messageBuilder = MessagesModelFactory.newMessageBuilder(messageHeaders); final Optional<JsonValue> value = adaptable.getPayload().getValue(); if (shouldBeInterpretedAsText) {