FreeBusyComponent.fromCrawledBlock constructor
FreeBusyComponent.fromCrawledBlock(
- CrawledBlock block
Implementation
factory FreeBusyComponent.fromCrawledBlock(CrawledBlock block) {
assert(
block.blockName.toUpperCase() == "VFREEBUSY",
"Received invalid block: ${block.blockName}",
);
ContactProperty? contact;
DateTimeStartProperty? dateTimeStart;
DateTimeEndProperty? dateTimeEnd;
DurationProperty? duration;
DateTimeStampProperty? dateTimeStamp;
OrganizerProperty? organizer;
UniqueIdentifierProperty? uniqueIdentifier;
URLProperty? url;
List<AttendeeProperty>? attendees;
List<CommentProperty>? comments;
List<FreeBusyTimeProperty>? freeBusyTimes;
List<RequestStatusProperty>? requestStatuses;
for (var e in block.properties) {
switch (e.name.toUpperCase()) {
case "DTSTART":
dateTimeStart = DateTimeStartProperty.fromCrawledProperty(e);
break;
case "ORGANIZER":
organizer = OrganizerProperty.fromCrawledProperty(e);
break;
case "DTSTAMP":
dateTimeStamp = DateTimeStampProperty.fromCrawledProperty(e);
break;
case "UID":
uniqueIdentifier = UniqueIdentifierProperty.fromCrawledProperty(e);
break;
case "URL":
url = URLProperty.fromCrawledProperty(e);
break;
case "DTEND":
dateTimeEnd = DateTimeEndProperty.fromCrawledProperty(e);
break;
case "DURATION":
duration = DurationProperty.fromCrawledProperty(e);
break;
case "ATTENDEE":
attendees ??= [];
attendees.add(AttendeeProperty.fromCrawledProperty(e));
break;
case "COMMENT":
comments ??= [];
comments.add(CommentProperty.fromCrawledProperty(e));
break;
case "CONTACT":
contact = ContactProperty.fromCrawledProperty(e);
break;
case "REQUEST-STATUS":
requestStatuses ??= [];
requestStatuses.add(RequestStatusProperty.fromCrawledProperty(e));
break;
case "FREEBUSY":
freeBusyTimes ??= [];
freeBusyTimes.add(FreeBusyTimeProperty.fromCrawledProperty(e));
break;
default:
// ignore: avoid_print
print("Unknown property encountered in FreeBusyComponent: ${e.name}");
}
}
return FreeBusyComponent(
contact: contact,
dateTimeStart: dateTimeStart,
dateTimeEnd: dateTimeEnd,
duration: duration,
dateTimeStamp: dateTimeStamp,
organizer: organizer,
uniqueIdentifier: uniqueIdentifier,
url: url,
attendees: attendees,
comments: comments,
freeBusyTimes: freeBusyTimes,
requestStatuses: requestStatuses,
);
}