class BetweenMatcherType implements MatcherType<Range<C>> {

    @Override
    public Range<C> decode(String value, Type<?> type, Matcher matcher) {
        BetweenMatcher betweenMatcher = (BetweenMatcher) matcher;
        char separator = findSeparator(value, betweenMatcher.separators());

        String[] values = EngineUtil.split2(value, separator);
        String from = values[0].trim();
        String to = values[1].trim();

        return new Range<C>(decodeValue(from, type), decodeValue(to, type));
    }

}