class DateRangeParser implements ConditionalValueParser {

    public DateRange getRange(String dateRangeString) throws ParseException {
        if (dateRangeString == null || dateRangeString.isEmpty())
            throw new IllegalArgumentException("Passing empty Strings is not allowed");

        String[] dateArr = dateRangeString.split("-");
        if (dateArr.length > 2 || dateArr.length < 1)
            return null;
        // throw new IllegalArgumentException("Only Strings containing two Date separated by a '-' or a single Date are allowed");

        ParsedCalendar from = parseDateString(dateArr[0]);
        ParsedCalendar to;
        if (dateArr.length == 2)
            to = parseDateString(dateArr[1]);
        else
            // faster and safe?
            // to = new ParsedCalendar(from.parseType, (Calendar) from.parsedCalendar.clone());
            to = parseDateString(dateArr[0]);

        return new DateRange(from, to);
    }

    public  DateRangeParser();
    public  DateRangeParser(Calendar date);

}