parseRecurrenceDateTime function

RecurrenceDateTime parseRecurrenceDateTime(
  1. CalendarProperty property
)

Parses a CalendarProperty into a recurrence date-time value.

Implementation

RecurrenceDateTime parseRecurrenceDateTime(CalendarProperty property) {
  final valueType =
      property.parameters['VALUE']?.first ?? ValueTypeNames.dateTime;
  if (valueType == ValueTypeNames.date) {
    final date = parseCalDate(property);
    return RecurrenceDateTime.dateTime(date);
  }
  if (valueType == ValueTypeNames.dateTime) {
    final dateTime = parseCalDateTime(property);
    return RecurrenceDateTime.dateTime(dateTime);
  }
  if (valueType == ValueTypeNames.period) {
    final period = parsePeriod(property);
    return RecurrenceDateTime.period(period);
  }
  throw ParseException(
    'Invalid value type "$valueType" for property "${property.name}"',
    lineNumber: property.lineNumber,
  );
}