class AcknowledgementAdapter implements Adapter<Acknowledgement> {

    @Override
    public Adaptable toAdaptable(final Acknowledgement acknowledgement, final TopicPath.Channel channel) {
        if (DittoAcknowledgementLabel.contains(acknowledgement.getLabel())) {
            throw new DittoAcknowledgementLabelExternalUseForbiddenException(acknowledgement.getLabel());
        }
        return Adaptable.newBuilder(getTopicPath(acknowledgement, channel))
                .withPayload(getPayload(acknowledgement))
                .withHeaders(getExternalHeaders(acknowledgement.getDittoHeaders()))
                .build();
    }

    private  AcknowledgementAdapter(final HeaderTranslator headerTranslator);

}