class HeaderBasedPlaceholderSubstitutionAlgorithm {

    public String substitute(final String input, final WithDittoHeaders withDittoHeaders) {
        requireNonNull(input);
        requireNonNull(withDittoHeaders);

        return substitute(input, withDittoHeaders.getDittoHeaders());
    }

    private  HeaderBasedPlaceholderSubstitutionAlgorithm(
            final Map<String, Function<DittoHeaders, String>> replacementDefinitions);

}