class BetweenMatcher implements Matcher {

    @Override
    public <T extends ValueHolder> boolean matches(String value, String pattern, Type<T> type) {
        char separator = findSeparator(pattern);

        String[] tokens = EngineUtil.split2(pattern, separator);
        String lower = tokens[0].trim();
        String upper = tokens[1].trim();

        T v = type.decode(value);

        return lowerCondition(v, lower, type) && upperCondition(v, upper, type);
    }

    public  BetweenMatcher();
    public  BetweenMatcher(String lowerInclusive, String upperInclusive);
    public  BetweenMatcher(String lowerInclusive, String upperInclusive, String separators);
    public  BetweenMatcher(boolean lowerInclusive, boolean upperInclusive, String separators);

}