import 'package:webfeed/domain/media/category.dart'; import 'package:webfeed/domain/media/content.dart'; import 'package:webfeed/domain/media/credit.dart'; import 'package:webfeed/domain/media/rating.dart'; import 'package:webfeed/util/helpers.dart'; import 'package:xml/xml.dart'; class Group { final List contents; final List credits; final Category category; final Rating rating; Group({ this.contents, this.credits, this.category, this.rating, }); factory Group.parse(XmlElement element) { if (element == null) { return null; } return new Group( contents: element.findElements("media:content").map((e) { return new Content.parse(e); }).toList(), credits: element.findElements("media:credit").map((e) { return new Credit.parse(e); }).toList(), category: new Category.parse( findElementOrNull(element, "media:category"), ), rating: new Rating.parse( findElementOrNull(element, "media:rating"), ), ); } }