class ImmutableAcknowledgements implements Acknowledgements {

    static ImmutableAcknowledgements of(final Collection<? extends Acknowledgement> acknowledgements,
            final DittoHeaders dittoHeaders) {

        argumentNotEmpty(acknowledgements, "acknowledgements");

        return new ImmutableAcknowledgements(getEntityId(acknowledgements), acknowledgements,
                getCombinedStatusCode(acknowledgements), dittoHeaders);
    }

    private  ImmutableAcknowledgements(final EntityIdWithType entityId,
            final Collection<? extends Acknowledgement> acknowledgements,
            final HttpStatusCode statusCode,
            final DittoHeaders dittoHeaders);

}