Class DateRangeBuilder


  • public class DateRangeBuilder
    extends Object

    Builder which allows to build proper instance of DateRange

    Usage example:

    DateRange range = new DateRangeBuilder("DAY").set(TimeZone.getTimeZone("GMT")).setValueClass(Timestamp.class).toDateRange()
    Author:
    Sergey Prilukin
    • Constructor Detail

      • DateRangeBuilder

        public DateRangeBuilder​(Date dateValue)

        Constructor which allows to create DateRange instance from passed date instance.

        No additional configuration via set methods is necessary

        Parameters:
        dateValue - date instance to create DateRange instance
      • DateRangeBuilder

        public DateRangeBuilder​(String expression)

        Constructor which allows to create DateRange instance from passed string expression.

        It is usually necessary to pass additional configuration through set methods

        Parameters:
        expression - string expression which will be parsed in order to construct instance of DateRange
    • Method Detail

      • set

        public DateRangeBuilder set​(String datePattern)

        Configuration method which sets date pattern which will be used to parse expression

        NOTE: this method only will take effect if expression is in fact formatted date like "1970-01-01".

        Parameters:
        datePattern - date pattern which will be used to parse date
        Returns:
        this instance of DateRangeBuilder
        See Also:
        SimpleDateFormat
      • set

        public DateRangeBuilder set​(Class<? extends Date> valueClass)

        Configuration method which sets value class, to indicate desired class of DateRange.getStart and DateRange.getEnd methods.

        NOTE: this method will not take effect if DateRangeBuilder(java.util.Date) constructor was used.

        Parameters:
        valueClass - class instance of which will be returned by DateRange.getStart and DateRange.getEnd methods
        Returns:
        this instance of DateRangeBuilder
      • set

        public DateRangeBuilder set​(TimeZone timeZone)

        Configuration method which sets desired time zone which will be used to calculate DateRange.getStart and DateRange.getEnd.

        NOTE: this method will not take effect if DateRangeBuilder(java.util.Date) constructor was used.

        Parameters:
        timeZone - time zone which will be used to calculate DateRange.getStart and DateRange.getStart.
        Returns:
        this instance of DateRangeBuilder
      • set

        public DateRangeBuilder set​(Integer weekStartDay)

        Configuration method which set start of a week which will be used during DateRange.getStart and DateRange.getEnd calculations.

        Should be one of: Calendar.SUNDAY, Calendar.MONDAY

        NOTE: this method only will take effect if expression is in fact date range expression like "WEEK".

        Parameters:
        weekStartDay - week start day to calculate DateRange.getStart and DateRange.getEnd for expressions like "WEEK"
        Returns:
        this instance of DateRangeBuilder
      • getWeekStartDay

        public Integer getWeekStartDay()
        Returns the week start day used for WEEK expressions.
        Returns:
        the week start day
        See Also:
        set(Integer)
      • set

        public DateRangeBuilder set​(Locale locale)

        Configuration method which set start of a week which will be used during DateRange.getStart and DateRange.getEnd calculations from passed locale instance

        NOTE: This method and set(Integer) will overwrite each other so configuration which was set later will be used.

        NOTE: this method only will take effect if expression is in fact date range expression like "WEEK".

        Parameters:
        locale - locale to calculate DateRange.getStart and DateRange.getEnd for expressions like "WEEK"
        Returns:
        this instance of DateRangeBuilder