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