1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.sun.syndication.feed.synd.impl;
18
19 import com.sun.syndication.feed.rss.Category;
20 import com.sun.syndication.feed.rss.Item;
21 import com.sun.syndication.feed.rss.Enclosure;
22 import com.sun.syndication.feed.synd.*;
23
24 import java.util.ArrayList;
25 import java.util.List;
26 import java.util.Set;
27 import java.util.HashSet;
28
29 /***
30 */
31 public class ConverterForRSS092 extends ConverterForRSS091Userland {
32
33 public ConverterForRSS092() {
34 this("rss_0.92");
35 }
36
37 protected ConverterForRSS092(String type) {
38 super(type);
39 }
40
41 protected SyndEntry createSyndEntry(Item item) {
42 SyndEntry syndEntry = super.createSyndEntry(item);
43 List cats = item.getCategories();
44 if (cats.size()>0) {
45 Set s = new HashSet();
46 s.addAll(createSyndCategories(cats));
47 s.addAll(syndEntry.getCategories());
48 syndEntry.setCategories(new ArrayList(s));
49 }
50 List enclosures = item.getEnclosures();
51 if (enclosures.size()>0) {
52 syndEntry.setEnclosures(createSyndEnclosures(enclosures));
53 }
54 return syndEntry;
55 }
56
57 protected List createSyndCategories(List rssCats) {
58 List syndCats = new ArrayList();
59 for (int i=0;i<rssCats.size();i++) {
60 Category rssCat = (Category) rssCats.get(i);
61 SyndCategory sCat = new SyndCategoryImpl();
62 sCat.setTaxonomyUri(rssCat.getDomain());
63 sCat.setName(rssCat.getValue());
64 syndCats.add(sCat);
65 }
66 return syndCats;
67 }
68
69 protected List createSyndEnclosures(List enclosures) {
70 List sEnclosures = new ArrayList();
71 for (int i=0;i<enclosures.size();i++) {
72 Enclosure enc = (Enclosure) enclosures.get(i);
73 SyndEnclosure sEnc = new SyndEnclosureImpl();
74 sEnc.setUrl(enc.getUrl());
75 sEnc.setType(enc.getType());
76 sEnc.setLength(enc.getLength());
77 sEnclosures.add(sEnc);
78 }
79 return sEnclosures;
80 }
81
82 protected Item createRSSItem(SyndEntry sEntry) {
83 Item item = super.createRSSItem(sEntry);
84
85 List sCats = sEntry.getCategories();
86 if (sCats.size()>0) {
87 item.setCategories(createRSSCategories(sCats));
88 }
89 List sEnclosures = sEntry.getEnclosures();
90 if (sEnclosures.size()>0) {
91 item.setEnclosures(createEnclosures(sEnclosures));
92 }
93 return item;
94 }
95
96 protected List createRSSCategories(List sCats) {
97 List cats = new ArrayList();
98 for (int i=0;i<sCats.size();i++) {
99 SyndCategory sCat = (SyndCategory) sCats.get(i);
100 Category cat = new Category();
101 cat.setDomain(sCat.getTaxonomyUri());
102 cat.setValue(sCat.getName());
103 cats.add(cat);
104 }
105 return cats;
106 }
107
108 protected List createEnclosures(List sEnclosures) {
109 List enclosures = new ArrayList();
110 for (int i=0;i<sEnclosures.size();i++) {
111 SyndEnclosure sEnc = (SyndEnclosure) sEnclosures.get(i);
112 Enclosure enc = new Enclosure();
113 enc.setUrl(sEnc.getUrl());
114 enc.setType(sEnc.getType());
115 enc.setLength(sEnc.getLength());
116 enclosures.add(enc);
117 }
118 return enclosures;
119 }
120
121 }