RecurrenceRule constructor

RecurrenceRule({
  1. required Frequency frequency,
  2. int interval = 1,
  3. List<int>? bySecond,
  4. List<int>? byMinute,
  5. List<int>? byHour,
  6. List<DayOfWeek?>? byDay,
  7. List<int>? byMonthDay,
  8. List<int>? byYearDay,
  9. List<int>? byWeekNo,
  10. List<int>? byMonth,
  11. List<int>? bySetPosition,
  12. Weekday? weekStart,
  13. DateTime? until,
  14. int? count,
})

Implementation

RecurrenceRule({
  required this.frequency,
  int interval = 1,
  List<int>? bySecond,
  List<int>? byMinute,
  List<int>? byHour,
  List<DayOfWeek?>? byDay,
  List<int>? byMonthDay,
  List<int>? byYearDay,
  List<int>? byWeekNo,
  List<int>? byMonth,
  List<int>? bySetPosition,
  this.weekStart,
  this.until,
  this.count,
})  : _interval = interval,
      _byHour = byHour,
      _byMinute = byMinute,
      _bySecond = bySecond,
      _byMonthDay = byMonthDay,
      _byDay = byDay,
      _byYearDay = byYearDay,
      _byWeekNo = byWeekNo,
      _byMonth = byMonth,
      _bySetPosition = bySetPosition {
  assert(_interval > 0);
  assert(count == null || count! > 0);
  assert(bySecond == null ||
      (bySecond.isNotEmpty &&
          bySecond.every((element) => element > 0 && element <= 60)));
  assert(byMinute == null ||
      (byMinute.isNotEmpty &&
          byMinute.every((element) => element > 0 && element <= 60)));
  assert(byHour == null ||
      (byHour.isNotEmpty &&
          byHour.every((element) => element > 0 && element <= 24)));
  assert(byDay == null ||
      (byDay.isNotEmpty && byDay.every((element) => element != null)));
  assert(byMonthDay == null ||
      (byMonthDay.isNotEmpty &&
          byMonthDay.every((element) => element > 0 && element <= 31)));
  assert(byYearDay == null ||
      (byYearDay.isNotEmpty &&
          byYearDay.every((element) => element > 0 && element <= 365)));
  assert(byWeekNo == null ||
      (byWeekNo.isNotEmpty &&
          byWeekNo.every((element) => element > 0 && element <= 53)));
  assert(byMonth == null ||
      (byMonth.isNotEmpty &&
          byMonth.every((element) => element > 0 && element <= 12)));
  assert(bySetPosition == null ||
      (bySetPosition.isNotEmpty &&
          bySetPosition.every((element) => element > 0 && element <= 366)));
  assert(byDay == null ||
      (byDay.isNotEmpty && byDay.every((element) => element != null)));
}