diff --git a/driver-cql-shaded/src/main/java/io/nosqlbench/activitytype/cql/datamappers/functions/to_daterange/DateRangeFunc.java b/driver-cql-shaded/src/main/java/io/nosqlbench/activitytype/cql/datamappers/functions/to_daterange/DateRangeFunc.java index b17329deb..b538d845f 100644 --- a/driver-cql-shaded/src/main/java/io/nosqlbench/activitytype/cql/datamappers/functions/to_daterange/DateRangeFunc.java +++ b/driver-cql-shaded/src/main/java/io/nosqlbench/activitytype/cql/datamappers/functions/to_daterange/DateRangeFunc.java @@ -24,6 +24,9 @@ public class DateRangeFunc implements LongFunction { private final LongUnaryOperator lower; private final LongUnaryOperator upper; + @Example({ + "StartingEpochMillis('2017-01-01 23:59:59'); DateRangeFunc('second',Identity(),Add(3600000L)", + "Create 1-minute date ranges starting at 2017-01-01 23:59:59"}) public DateRangeFunc(String precision, LongUnaryOperator lower, LongUnaryOperator upper) { this.precision = DateRange.DateRangeBound.Precision.valueOf(precision.toUpperCase()); this.lower = lower; @@ -40,6 +43,37 @@ public class DateRangeFunc implements LongFunction { this.upper = upper::apply; } + public DateRangeFunc(String precision, LongUnaryOperator lower, Function upper) { + this.precision = DateRange.DateRangeBound.Precision.valueOf(precision.toUpperCase()); + this.lower = lower; + this.upper = upper::apply; + } + public DateRangeFunc(String precision, LongFunction lower, LongUnaryOperator upper) { + this.precision = DateRange.DateRangeBound.Precision.valueOf(precision.toUpperCase()); + this.lower = lower::apply; + this.upper = upper; + } + public DateRangeFunc(String precision, Function lower, LongFunction upper) { + this.precision = DateRange.DateRangeBound.Precision.valueOf(precision.toUpperCase()); + this.lower = lower::apply; + this.upper = upper::apply; + } + + public DateRangeFunc(String precision, LongUnaryOperator lower, LongFunction upper) { + this.precision = DateRange.DateRangeBound.Precision.valueOf(precision.toUpperCase()); + this.lower = lower; + this.upper = upper::apply; + } + public DateRangeFunc(String precision, LongFunction lower, Function upper) { + this.precision = DateRange.DateRangeBound.Precision.valueOf(precision.toUpperCase()); + this.lower = lower::apply; + this.upper = upper::apply; + } + public DateRangeFunc(String precision, Function lower, LongUnaryOperator upper) { + this.precision = DateRange.DateRangeBound.Precision.valueOf(precision.toUpperCase()); + this.lower = lower::apply; + this.upper = upper; + } @Override