class ImmutableAdaptable implements Adaptable {

    public static ImmutableAdaptable of(final TopicPath topicPath, final Payload payload,
            @Nullable final DittoHeaders headers) {

        checkNotNull(topicPath, "topicPath");
        checkNotNull(payload, "payload");

        return new ImmutableAdaptable(topicPath, payload, headers);
    }

    private  ImmutableAdaptable(final TopicPath topicPath, final Payload payload, final DittoHeaders headers);

}