2222import com .apptasticsoftware .rssreader .module .youtube .internal .YoutubeChannelDataImpl ;
2323
2424import java .util .Objects ;
25+ import com .apptasticsoftware .rssreader .module .atom .internal .AtomChannelDataProvider ;
26+ import com .apptasticsoftware .rssreader .module .dc .internal .DcChannelDataProvider ;
27+ import com .apptasticsoftware .rssreader .module .georss .internal .GeoRssChannelDataProvider ;
28+ import com .apptasticsoftware .rssreader .module .itunes .internal .ItunesChannelDataProvider ;
29+ import com .apptasticsoftware .rssreader .module .mediarss .internal .MediaRssChannelDataProvider ;
30+ import com .apptasticsoftware .rssreader .module .opensearch .internal .OpenSearchChannelDataProvider ;
31+ import com .apptasticsoftware .rssreader .module .podcast .internal .PodcastChannelDataProvider ;
32+ import com .apptasticsoftware .rssreader .module .spotify .internal .SpotifyChannelDataProvider ;
33+ import com .apptasticsoftware .rssreader .module .youtube .internal .YoutubeChannelDataProvider ;
2534
26- public class FeedChannelImpl extends ChannelImpl implements FeedChannel {
27- private final AtomChannelData atomChannelData = new AtomChannelDataImpl () ;
28- private final DcChannelData dcChannelData = new DcChannelDataImpl () ;
29- private final GeoRssChannelData geoRssChannelData = new GeoRssChannelDataImpl () ;
30- private final ItunesChannelData itunesChannelData = new ItunesChannelDataImpl () ;
31- private final MediaRssChannelData mediaRssChannelData = new MediaRssChannelDataImpl () ;
32- private final OpenSearchChannelData openSearchChannelData = new OpenSearchChannelDataImpl () ;
33- private final PodcastChannelData podcastChannelData = new PodcastChannelDataImpl () ;
34- private final SpotifyChannelData spotifyChannelData = new SpotifyChannelDataImpl () ;
35- private final YoutubeChannelData youtubeChannelData = new YoutubeChannelDataImpl () ;
35+ public class FeedChannelImpl extends ChannelImpl implements FeedChannel , AtomChannelDataProvider , DcChannelDataProvider , GeoRssChannelDataProvider , ItunesChannelDataProvider , MediaRssChannelDataProvider , OpenSearchChannelDataProvider , PodcastChannelDataProvider , SpotifyChannelDataProvider , YoutubeChannelDataProvider {
36+ private AtomChannelData atomChannelData ;
37+ private DcChannelData dcChannelData ;
38+ private GeoRssChannelData geoRssChannelData ;
39+ private ItunesChannelData itunesChannelData ;
40+ private MediaRssChannelData mediaRssChannelData ;
41+ private OpenSearchChannelData openSearchChannelData ;
42+ private PodcastChannelData podcastChannelData ;
43+ private SpotifyChannelData spotifyChannelData ;
44+ private YoutubeChannelData youtubeChannelData ;
3645
3746 /**
3847 * Constructor
@@ -44,47 +53,119 @@ public FeedChannelImpl(DateTimeParser dateTimeParser) {
4453 }
4554
4655 @ Override
47- public AtomChannelData getAtomChannelData () {
56+ public boolean hasAtomChannel () {
57+ return atomChannelData != null ;
58+ }
59+
60+ @ Override
61+ public AtomChannelData atomChannelData () {
62+ if (atomChannelData == null ) {
63+ atomChannelData = new AtomChannelDataImpl ();
64+ }
4865 return atomChannelData ;
4966 }
5067
5168 @ Override
52- public DcChannelData getDcChannelData () {
69+ public boolean hasDcChannel () {
70+ return dcChannelData != null ;
71+ }
72+
73+ @ Override
74+ public DcChannelData dcChannelData () {
75+ if (dcChannelData == null ) {
76+ dcChannelData = new DcChannelDataImpl ();
77+ }
5378 return dcChannelData ;
5479 }
5580
5681 @ Override
57- public GeoRssChannelData getGeoRssChannelData () {
82+ public boolean hasGeoRssChannel () {
83+ return geoRssChannelData != null ;
84+ }
85+
86+ @ Override
87+ public GeoRssChannelData geoRssChannelData () {
88+ if (geoRssChannelData == null ) {
89+ geoRssChannelData = new GeoRssChannelDataImpl ();
90+ }
5891 return geoRssChannelData ;
5992 }
6093
6194 @ Override
62- public ItunesChannelData getItunesChannelData () {
95+ public boolean hasItunesChannel () {
96+ return itunesChannelData != null ;
97+ }
98+
99+ @ Override
100+ public ItunesChannelData itunesChannelData () {
101+ if (itunesChannelData == null ) {
102+ itunesChannelData = new ItunesChannelDataImpl ();
103+ }
63104 return itunesChannelData ;
64105 }
65106
66107 @ Override
67- public MediaRssChannelData getMediaRssChannelData () {
108+ public boolean hasMediaRssChannel () {
109+ return mediaRssChannelData != null ;
110+ }
111+
112+ @ Override
113+ public MediaRssChannelData mediaRssChannelData () {
114+ if (mediaRssChannelData == null ) {
115+ mediaRssChannelData = new MediaRssChannelDataImpl ();
116+ }
68117 return mediaRssChannelData ;
69118 }
70119
71120 @ Override
72- public OpenSearchChannelData getOpenSearchChannelData () {
121+ public boolean hasOpenSearchChannel () {
122+ return openSearchChannelData != null ;
123+ }
124+
125+ @ Override
126+ public OpenSearchChannelData openSearchChannelData () {
127+ if (openSearchChannelData == null ) {
128+ openSearchChannelData = new OpenSearchChannelDataImpl ();
129+ }
73130 return openSearchChannelData ;
74131 }
75132
76133 @ Override
77- public PodcastChannelData getPodcastChannelData () {
134+ public boolean hasPodcastChannel () {
135+ return podcastChannelData != null ;
136+ }
137+
138+ @ Override
139+ public PodcastChannelData podcastChannelData () {
140+ if (podcastChannelData == null ) {
141+ podcastChannelData = new PodcastChannelDataImpl ();
142+ }
78143 return podcastChannelData ;
79144 }
80145
81146 @ Override
82- public SpotifyChannelData getSpotifyChannelData () {
147+ public boolean hasSpotifyChannel () {
148+ return spotifyChannelData != null ;
149+ }
150+
151+ @ Override
152+ public SpotifyChannelData spotifyChannelData () {
153+ if (spotifyChannelData == null ) {
154+ spotifyChannelData = new SpotifyChannelDataImpl ();
155+ }
83156 return spotifyChannelData ;
84157 }
85158
86159 @ Override
87- public YoutubeChannelData getYoutubeChannelData () {
160+ public boolean hasYoutubeChannel () {
161+ return youtubeChannelData != null ;
162+ }
163+
164+ @ Override
165+ public YoutubeChannelData youtubeChannelData () {
166+ if (youtubeChannelData == null ) {
167+ youtubeChannelData = new YoutubeChannelDataImpl ();
168+ }
88169 return youtubeChannelData ;
89170 }
90171
@@ -93,11 +174,11 @@ public boolean equals(Object o) {
93174 if (!(o instanceof FeedChannelImpl )) return false ;
94175 if (!super .equals (o )) return false ;
95176 FeedChannelImpl that = (FeedChannelImpl ) o ;
96- return Objects .equals (getItunesChannelData (), that .getItunesChannelData ()) && Objects .equals (getMediaRssChannelData (), that .getMediaRssChannelData ()) && Objects .equals (getOpenSearchChannelData (), that .getOpenSearchChannelData ()) && Objects .equals (getPodcastChannelData (), that .getPodcastChannelData ()) && Objects .equals (getYoutubeChannelData (), that .getYoutubeChannelData ());
177+ return Objects .equals (itunesChannelData (), that .itunesChannelData ()) && Objects .equals (mediaRssChannelData (), that .mediaRssChannelData ()) && Objects .equals (openSearchChannelData (), that .openSearchChannelData ()) && Objects .equals (podcastChannelData (), that .podcastChannelData ()) && Objects .equals (youtubeChannelData (), that .youtubeChannelData ());
97178 }
98179
99180 @ Override
100181 public int hashCode () {
101- return Objects .hash (super .hashCode (), getItunesChannelData (), getMediaRssChannelData (), getOpenSearchChannelData (), getPodcastChannelData (), getYoutubeChannelData ());
182+ return Objects .hash (super .hashCode (), itunesChannelData (), mediaRssChannelData (), openSearchChannelData (), podcastChannelData (), youtubeChannelData ());
102183 }
103184}
0 commit comments