class TokenStringValidator implements StringValidator {

    @Override
    public void validate(String input)
    {
        if(tokens == null) return;
        logger.info("Verifying input [{}] contains tokens: [{}]", input, String.join(",", tokens));
        if(!tokens.stream().allMatch(token -> StringUtils.containsIgnoreCase(input, token)))
            throw new StringValidationException(String.format("Input [%1$s] is missing a required token.", input));
    }

    public  TokenStringValidator(Collection<String> tokens);

}