@@ -7,22 +7,10 @@ import 'package:webfeed_revised/util/datetime.dart';
7
7
import 'package:webfeed_revised/util/iterable.dart' ;
8
8
import 'package:xml/xml.dart' ;
9
9
10
+ /// Represents an Atom feed
11
+ /// See https://tools.ietf.org/html/rfc4287
10
12
class AtomFeed {
11
- final String ? id;
12
- final String ? title;
13
- final DateTime ? updated;
14
- final List <AtomItem >? items;
15
-
16
- final List <AtomLink >? links;
17
- final List <AtomPerson >? authors;
18
- final List <AtomPerson >? contributors;
19
- final List <AtomCategory >? categories;
20
- final AtomGenerator ? generator;
21
- final String ? icon;
22
- final String ? logo;
23
- final String ? rights;
24
- final String ? subtitle;
25
-
13
+ /// Default constructor for the AtomFeed class
26
14
AtomFeed ({
27
15
this .id,
28
16
this .title,
@@ -39,9 +27,10 @@ class AtomFeed {
39
27
this .subtitle,
40
28
});
41
29
30
+ /// Parse constructor for the AtomFeed class, used when 'parsing' a feed
42
31
factory AtomFeed .parse (String xmlString) {
43
- var document = XmlDocument .parse (xmlString);
44
- var feedElement = document.findElements ('feed' ).firstOrNull;
32
+ final document = XmlDocument .parse (xmlString);
33
+ final feedElement = document.findElements ('feed' ).firstOrNull;
45
34
if (feedElement == null ) {
46
35
throw ArgumentError ('feed not found' );
47
36
}
@@ -53,32 +42,59 @@ class AtomFeed {
53
42
parseDateTime (feedElement.findElements ('updated' ).firstOrNull? .text),
54
43
items: feedElement
55
44
.findElements ('entry' )
56
- .map ((e) => AtomItem .parse (e) )
45
+ .map (AtomItem .parse)
57
46
.toList (),
58
47
links: feedElement
59
48
.findElements ('link' )
60
- .map ((e) => AtomLink .parse (e) )
49
+ .map (AtomLink .parse)
61
50
.toList (),
62
51
authors: feedElement
63
52
.findElements ('author' )
64
- .map ((e) => AtomPerson .parse (e) )
53
+ .map (AtomPerson .parse)
65
54
.toList (),
66
55
contributors: feedElement
67
56
.findElements ('contributor' )
68
- .map ((e) => AtomPerson .parse (e) )
57
+ .map (AtomPerson .parse)
69
58
.toList (),
70
59
categories: feedElement
71
60
.findElements ('category' )
72
- .map ((e) => AtomCategory .parse (e) )
61
+ .map (AtomCategory .parse)
73
62
.toList (),
74
63
generator: feedElement
75
64
.findElements ('generator' )
76
- .map ((e) => AtomGenerator .parse (e) )
65
+ .map (AtomGenerator .parse)
77
66
.firstOrNull,
78
67
icon: feedElement.findElements ('icon' ).firstOrNull? .text,
79
68
logo: feedElement.findElements ('logo' ).firstOrNull? .text,
80
69
rights: feedElement.findElements ('rights' ).firstOrNull? .text,
81
70
subtitle: feedElement.findElements ('subtitle' ).firstOrNull? .text,
82
71
);
83
72
}
73
+
74
+ /// The feed id
75
+ final String ? id;
76
+ /// The feed title
77
+ final String ? title;
78
+ /// The feed updated date
79
+ final DateTime ? updated;
80
+ /// The feed items
81
+ final List <AtomItem >? items;
82
+ /// The feed links
83
+ final List <AtomLink >? links;
84
+ /// The feed authors
85
+ final List <AtomPerson >? authors;
86
+ /// The feed contributors
87
+ final List <AtomPerson >? contributors;
88
+ /// The feed categories
89
+ final List <AtomCategory >? categories;
90
+ /// The feed generator
91
+ final AtomGenerator ? generator;
92
+ /// The feed icon
93
+ final String ? icon;
94
+ /// The feed logo
95
+ final String ? logo;
96
+ /// The feed rights
97
+ final String ? rights;
98
+ /// The feed subtitle
99
+ final String ? subtitle;
84
100
}
0 commit comments