1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.sun.syndication.feed.atom;
18
19 import com.sun.syndication.feed.WireFeed;
20 import com.sun.syndication.feed.module.Module;
21 import com.sun.syndication.feed.module.impl.ModuleUtils;
22
23 import java.util.ArrayList;
24 import java.util.Date;
25 import java.util.List;
26
27 /***
28 * Bean for Atom feeds.
29 * <p>
30 * It handles Atom feeds version 0.3 without loosing any feed information.
31 * <p>
32 * @author Alejandro Abdelnur
33 * @author Dave Johnson (updated for Atom 1.0)
34 */
35 public class Feed extends WireFeed {
36
37 private String _xmlBase;
38 private List _categories;
39 private List _authors;
40 private List _contributors;
41 private Generator _generator;
42 private String _icon;
43 private String _id;
44 private String _logo;
45 private String _rights;
46 private Content _subtitle;
47 private Content _title;
48 private Date _updated;
49 private List _alternateLinks;
50 private List _otherLinks;
51 private List _entries;
52
53 private List _modules;
54
55 private Content _info;
56 private String _language;
57
58 /***
59 * Default constructor, for bean cloning purposes only.
60 *
61 */
62 public Feed() {
63 }
64
65 /***
66 * Feed Constructor. All properties, except the type, are set to <b>null</b>.
67 * <p>
68 * @param type the type of the Atom feed.
69 *
70 */
71 public Feed(String type) {
72 super(type);
73 }
74
75 /***
76 * Returns the feed language (Atom 0.3 only)
77 * <p>
78 * @return the feed language, <b>null</b> if none.
79 *
80 */
81 public String getLanguage() {
82 return _language;
83 }
84
85 /***
86 * Sets the feed language (Atom 0.3 only)
87 * <p>
88 * @param language the feed language to set, <b>null</b> if none.
89 *
90 */
91 public void setLanguage(String language) {
92 _language = language;
93 }
94
95 /***
96 * Returns the feed title.
97 * <p>
98 * @return the feed title, <b>null</b> if none.
99 *
100 */
101 public String getTitle() {
102 if (_title != null) return _title.getValue();
103 return null;
104 }
105
106 /***
107 * Sets the feed title.
108 * <p>
109 * @param title the feed title to set, <b>null</b> if none.
110 *
111 */
112 public void setTitle(String title) {
113 if (_title == null) _title = new Content();
114 _title.setValue(title);
115 }
116
117 /***
118 * Returns the feed title.
119 * <p>
120 * @return the feed title, <b>null</b> if none.
121 *
122 */
123 public Content getTitleEx() {
124 return _title;
125 }
126
127 /***
128 * Sets the feed title.
129 * <p>
130 * @param title the feed title to set, <b>null</b> if none.
131 *
132 */
133 public void setTitleEx(Content title) {
134 _title = title;
135 }
136
137 /***
138 * Returns the feed alternate links.
139 * <p>
140 * @return a list of Link elements with the feed alternate links,
141 * an empty list if none.
142 */
143 public List getAlternateLinks() {
144 return (_alternateLinks==null) ? (_alternateLinks=new ArrayList()) : _alternateLinks;
145 }
146
147 /***
148 * Sets the feed alternate links.
149 * <p>
150 * @param alternateLinks the list of Link elements with the feed alternate links to set,
151 * an empty list or <b>null</b> if none.
152 */
153 public void setAlternateLinks(List alternateLinks) {
154 _alternateLinks = alternateLinks;
155 }
156
157 /***
158 * Returns the feed other links (non-alternate ones).
159 * <p>
160 * @return a list of Link elements with the feed other links (non-alternate ones),
161 * an empty list if none.
162 */
163 public List getOtherLinks() {
164 return (_otherLinks==null) ? (_otherLinks=new ArrayList()) : _otherLinks;
165 }
166
167 /***
168 * Sets the feed other links (non-alternate ones).
169 * <p>
170 * @param otherLinks the list of Link elements with the feed other links (non-alternate ones) to set,
171 * an empty list or <b>null</b> if none.
172 */
173 public void setOtherLinks(List otherLinks) {
174 _otherLinks = otherLinks;
175 }
176
177 /***
178 * Returns the feed author.
179 * <p>
180 * @return the feed author, <b>null</b> if none.
181 *
182 */
183 public List getAuthors() {
184 return (_authors==null) ? (_authors=new ArrayList()) : _authors;
185 }
186
187 /***
188 * Sets the feed author.
189 * <p>
190 * @param author the feed author to set, <b>null</b> if none.
191 *
192 */
193 public void setAuthors(List authors) {
194 _authors = authors;
195 }
196
197 /***
198 * Returns the feed contributors.
199 * <p>
200 * @return a list of Person elements with the feed contributors,
201 * an empty list if none.
202 *
203 */
204 public List getContributors() {
205 return (_contributors==null) ? (_contributors=new ArrayList()) : _contributors;
206 }
207
208 /***
209 * Sets the feed contributors.
210 * <p>
211 * @param contributors the list of Person elements with the feed contributors to set,
212 * an empty list or <b>null</b> if none.
213 *
214 */
215 public void setContributors(List contributors) {
216 _contributors = contributors;
217 }
218
219 /***
220 * Returns the feed tag line (Atom 0.3, maps to {@link getSubtitle()}).
221 * <p>
222 * @return the feed tag line, <b>null</b> if none.
223 */
224 public Content getTagline() {
225 return _subtitle;
226 }
227
228 /***
229 * Sets the feed tagline (Atom 0.3, maps to {@link getSubtitle()}).
230 * <p>
231 * @param tagline the feed tagline to set, <b>null</b> if none.
232 */
233 public void setTagline(Content tagline) {
234 _subtitle = tagline;
235 }
236
237 /***
238 * Returns the feed ID.
239 * <p>
240 * @return the feed ID, <b>null</b> if none.
241 *
242 */
243 public String getId() {
244 return _id;
245 }
246
247 /***
248 * Sets the feed ID.
249 * <p>
250 * @param id the feed ID to set, <b>null</b> if none.
251 *
252 */
253 public void setId(String id) {
254 _id = id;
255 }
256
257 /***
258 * Returns the feed generator.
259 * <p>
260 * @return the feed generator, <b>null</b> if none.
261 *
262 */
263 public Generator getGenerator() {
264 return _generator;
265 }
266
267 /***
268 * Sets the feed generator.
269 * <p>
270 * @param generator the feed generator to set, <b>null</b> if none.
271 *
272 */
273 public void setGenerator(Generator generator) {
274 _generator = generator;
275 }
276
277 /***
278 * Returns the feed copyright (Atom 0.3, maps to {@link getRights()}).
279 * <p>
280 * @return the feed copyright, <b>null</b> if none.
281 */
282 public String getCopyright() {
283 return _rights;
284 }
285
286 /***
287 * Sets the feed copyright (Atom 0.3, maps to {@link setRights()}).
288 * <p>
289 * @param copyright the feed copyright to set, <b>null</b> if none.
290 */
291 public void setCopyright(String copyright) {
292 _rights = copyright;
293 }
294
295 /***
296 * Returns the feed info (Atom 0.3 only)
297 * <p>
298 * @return the feed info, <b>null</b> if none.
299 */
300 public Content getInfo() {
301 return _info;
302 }
303
304 /***
305 * Sets the feed info (Atom 0.3 only)
306 * <p>
307 * @param info the feed info to set, <b>null</b> if none.
308 */
309 public void setInfo(Content info) {
310 _info = info;
311 }
312
313 /***
314 * Returns the feed modified date (Atom 0.3, maps to {@link getUpdated()}).
315 * <p>
316 * @return the feed modified date, <b>null</b> if none.
317 */
318 public Date getModified() {
319 return _updated;
320 }
321
322 /***
323 * Sets the feed modified date (Atom 0.3, maps to {@link setUpdated()}).
324 * <p>
325 * @param modified the feed modified date to set, <b>null</b> if none.
326 */
327 public void setModified(Date modified) {
328 _updated = modified;
329 }
330
331 /***
332 * Returns the feed entries.
333 * <p>
334 * @return a list of Entry elements with the feed entries,
335 * an empty list if none.
336 *
337 */
338 public List getEntries() {
339 return (_entries==null) ? (_entries=new ArrayList()) : _entries;
340 }
341
342 /***
343 * Sets the feed entries.
344 * <p>
345 * @param entries the list of Entry elements with the feed entries to set,
346 * an empty list or <b>null</b> if none.
347 *
348 */
349 public void setEntries(List entries) {
350 _entries = entries;
351 }
352
353 /***
354 * Returns the feed modules.
355 * <p>
356 * @return a list of ModuleImpl elements with the feed modules,
357 * an empty list if none.
358 *
359 */
360 public List getModules() {
361 return (_modules==null) ? (_modules=new ArrayList()) : _modules;
362 }
363
364 /***
365 * Sets the feed moduless.
366 * <p>
367 * @param modules the list of ModuleImpl elements with the feed moduless to set,
368 * an empty list or <b>null</b> if none.
369 *
370 */
371 public void setModules(List modules) {
372 _modules = modules;
373 }
374
375 /***
376 * Returns the module identified by a given URI.
377 * <p>
378 * @param uri the URI of the ModuleImpl.
379 * @return The module with the given URI, <b>null</b> if none.
380 */
381 public Module getModule(String uri) {
382 return ModuleUtils.getModule(_modules,uri);
383 }
384
385 /***
386 * Returns the categories
387 * <p>
388 * @return Returns the categories.
389 * @since Atom 1.0
390 */
391 public List getCategories() {
392 return _categories;
393 }
394
395 /***
396 * Set the categories
397 * <p>
398 * @param categories The categories to set.
399 * @since Atom 1.0
400 */
401 public void setCategories(List categories) {
402 _categories = categories;
403 }
404
405 /***
406 * Returns the icon
407 * <p>
408 * @return Returns the icon.
409 * @since Atom 1.0
410 */
411 public String getIcon() {
412 return _icon;
413 }
414
415 /***
416 * Set the icon
417 * <p>
418 * @param icon The icon to set.
419 * @since Atom 1.0
420 */
421 public void setIcon(String icon) {
422 _icon = icon;
423 }
424
425 /***
426 * Returns the logo
427 * <p>
428 * @return Returns the logo.
429 * @since Atom 1.0
430 */
431 public String getLogo() {
432 return _logo;
433 }
434
435 /***
436 * Set the logo
437 * <p>
438 * @param logo The logo to set.
439 * @since Atom 1.0
440 */
441 public void setLogo(String logo) {
442 _logo = logo;
443 }
444
445 /***
446 * Returns the rights
447 * <p>
448 * @return Returns the rights.
449 * @since Atom 1.0
450 */
451 public String getRights() {
452 return _rights;
453 }
454
455 /***
456 * Set the rights
457 * <p>
458 * @param rights The rights to set.
459 * @since Atom 1.0
460 */
461 public void setRights(String rights) {
462 _rights = rights;
463 }
464
465 /***
466 * Returns the subtitle
467 * <p>
468 * @return Returns the subtitle.
469 * @since Atom 1.0
470 */
471 public Content getSubtitle() {
472 return _subtitle;
473 }
474
475 /***
476 * Set the subtitle
477 * <p>
478 * @param subtitle The subtitle to set.
479 * @since Atom 1.0
480 */
481 public void setSubtitle(Content subtitle) {
482 _subtitle = subtitle;
483 }
484
485 /***
486 * Returns the updated
487 * <p>
488 * @return Returns the updated.
489 * @since Atom 1.0
490 */
491 public Date getUpdated() {
492 return _updated;
493 }
494
495 /***
496 * Set the updated
497 * <p>
498 * @param updated The updated to set.
499 * @since Atom 1.0
500 */
501 public void setUpdated(Date updated) {
502 _updated = updated;
503 }
504
505 /***
506 * Returns the xmlBase
507 * <p>
508 * @return Returns the xmlBase.
509 * @since Atom 1.0
510 */
511 public String getXmlBase() {
512 return _xmlBase;
513 }
514
515 /***
516 * Set the xmlBase
517 * <p>
518 * @param xmlBase The xmlBase to set.
519 * @since Atom 1.0
520 */
521 public void setXmlBase(String xmlBase) {
522 _xmlBase = xmlBase;
523 }
524 }
525