StandardTimeZoneComponent.fromCrawledBlock constructor
StandardTimeZoneComponent.fromCrawledBlock(
- CrawledBlock block
Implementation
factory StandardTimeZoneComponent.fromCrawledBlock(CrawledBlock block) {
assert(
block.blockName.toUpperCase() == "STANDARD",
"Received invalid block: ${block.blockName}",
);
DateTimeStartProperty? dateTimeStart;
TimeZoneOffsetFromProperty? timeZoneOffsetFrom;
TimeZoneOffsetToProperty? timeZoneOffsetTo;
List<CommentProperty>? comments;
List<RecurrenceDateTimesProperty>? recurrenceDateTimes;
List<RecurrenceRuleProperty>? recurrenceRules;
List<TimeZoneNameProperty>? timeZoneNames;
for (var e in block.properties) {
switch (e.name.toUpperCase()) {
case "DTSTART":
dateTimeStart = DateTimeStartProperty.fromCrawledProperty(e);
break;
case "TZOFFSETFROM":
timeZoneOffsetFrom =
TimeZoneOffsetFromProperty.fromCrawledProperty(e);
break;
case "TZOFFSETTO":
timeZoneOffsetTo = TimeZoneOffsetToProperty.fromCrawledProperty(e);
break;
case "COMMENT":
comments ??= [];
comments.add(CommentProperty.fromCrawledProperty(e));
break;
case "RDATE":
recurrenceDateTimes ??= [];
recurrenceDateTimes
.add(RecurrenceDateTimesProperty.fromCrawledProperty(e));
break;
case "RRULE":
recurrenceRules ??= [];
recurrenceRules.add(RecurrenceRuleProperty.fromCrawledProperty(e));
break;
case "TZNAME":
timeZoneNames ??= [];
timeZoneNames.add(TimeZoneNameProperty.fromCrawledProperty(e));
break;
default:
print(
"Unknown property encountered in StandardTimeZoneComponent: ${e.name}");
}
}
assert(
dateTimeStart != null &&
timeZoneOffsetFrom != null &&
timeZoneOffsetTo != null,
"[dateTimeStart], [timeZoneOffsetFrom], and [timeZoneOffsetTo] cannot be null",
);
return StandardTimeZoneComponent(
dateTimeStart: dateTimeStart!,
timeZoneOffsetFrom: timeZoneOffsetFrom!,
timeZoneOffsetTo: timeZoneOffsetTo!,
comments: comments,
recurrenceDateTimes: recurrenceDateTimes,
recurrenceRules: recurrenceRules,
timeZoneNames: timeZoneNames,
);
}