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.WireFeed;
20 import com.sun.syndication.feed.module.impl.ModuleUtils;
21 import com.sun.syndication.feed.rss.Channel;
22 import com.sun.syndication.feed.rss.Image;
23 import com.sun.syndication.feed.rss.Item;
24 import com.sun.syndication.feed.synd.SyndFeed;
25 import com.sun.syndication.feed.synd.Converter;
26 import com.sun.syndication.feed.synd.SyndEntry;
27 import com.sun.syndication.feed.synd.SyndImage;
28 import com.sun.syndication.feed.synd.SyndImageImpl;
29 import com.sun.syndication.feed.synd.SyndEntryImpl;
30
31 import java.util.ArrayList;
32 import java.util.List;
33
34
35
36 public class ConverterForRSS090 implements Converter {
37 private String _type;
38
39 public ConverterForRSS090() {
40 this("rss_0.9");
41 }
42
43 protected ConverterForRSS090(String type) {
44 _type = type;
45 }
46
47 public String getType() {
48 return _type;
49 }
50
51 public void copyInto(WireFeed feed,SyndFeed syndFeed) {
52 syndFeed.setModules(ModuleUtils.cloneModules(feed.getModules()));
53 if (((List)feed.getForeignMarkup()).size() > 0) {
54 syndFeed.setForeignMarkup(feed.getForeignMarkup());
55 }
56 syndFeed.setEncoding(feed.getEncoding());
57 Channel channel = (Channel) feed;
58 syndFeed.setTitle(channel.getTitle());
59 syndFeed.setLink(channel.getLink());
60 syndFeed.setDescription(channel.getDescription());
61
62 Image image = channel.getImage();
63 if (image!=null) {
64 syndFeed.setImage(createSyndImage(image));
65 }
66
67 List items = channel.getItems();
68 if (items!=null) {
69 syndFeed.setEntries(createSyndEntries(items));
70 }
71 }
72
73 protected SyndImage createSyndImage(Image rssImage) {
74 SyndImage syndImage = new SyndImageImpl();
75 syndImage.setTitle(rssImage.getTitle());
76 syndImage.setUrl(rssImage.getUrl());
77 syndImage.setLink(rssImage.getLink());
78 return syndImage;
79 }
80
81 protected List createSyndEntries(List rssItems) {
82 List syndEntries = new ArrayList();
83 for (int i=0;i<rssItems.size();i++) {
84 syndEntries.add(createSyndEntry((Item) rssItems.get(i)));
85 }
86 return syndEntries;
87 }
88
89 protected SyndEntry createSyndEntry(Item item) {
90 SyndEntry syndEntry = new SyndEntryImpl();
91
92 syndEntry.setModules(ModuleUtils.cloneModules(item.getModules()));
93
94 if (((List)item.getForeignMarkup()).size() > 0) {
95 syndEntry.setForeignMarkup(item.getForeignMarkup());
96 }
97
98 syndEntry.setUri(item.getUri());
99 syndEntry.setLink(item.getLink());
100 syndEntry.setTitle(item.getTitle());
101 syndEntry.setLink(item.getLink());
102 return syndEntry;
103 }
104
105 public WireFeed createRealFeed(SyndFeed syndFeed) {
106 return createRealFeed(getType(),syndFeed);
107 }
108
109 protected WireFeed createRealFeed(String type,SyndFeed syndFeed) {
110 Channel channel = new Channel(type);
111 channel.setModules(ModuleUtils.cloneModules(syndFeed.getModules()));
112
113 channel.setEncoding(syndFeed.getEncoding());
114
115 channel.setTitle(syndFeed.getTitle());
116 channel.setLink(syndFeed.getLink());
117 channel.setDescription(syndFeed.getDescription());
118 SyndImage sImage = syndFeed.getImage();
119 if (sImage!=null) {
120 channel.setImage(createRSSImage(sImage));
121 }
122
123 List sEntries = syndFeed.getEntries();
124 if (sEntries!=null) {
125 channel.setItems(createRSSItems(sEntries));
126 }
127 return channel;
128 }
129
130 protected Image createRSSImage(SyndImage sImage) {
131 Image image = new Image();
132 image.setTitle(sImage.getTitle());
133 image.setUrl(sImage.getUrl());
134 image.setLink(sImage.getLink());
135 return image;
136 }
137
138 protected List createRSSItems(List sEntries) {
139 List list = new ArrayList();
140 for (int i=0;i<sEntries.size();i++) {
141 list.add(createRSSItem((SyndEntry)sEntries.get(i)));
142 }
143 return list;
144 }
145
146 protected Item createRSSItem(SyndEntry sEntry) {
147 Item item = new Item();
148 item.setModules(ModuleUtils.cloneModules(sEntry.getModules()));
149 item.setTitle(sEntry.getTitle());
150 item.setLink(sEntry.getLink());
151 return item;
152 }
153
154 }