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 Channel channel = (Channel) feed;
44 syndFeed.setTitle(channel.getTitle());
45 syndFeed.setLink(channel.getLink());
46 syndFeed.setDescription(channel.getDescription());
47 syndFeed.setPublishedDate(channel.getPubDate());
48
49 Image image = channel.getImage();
50 if (image!=null) {
51 syndFeed.setImage(createSyndImage(image));
52 }
53
54 List items = channel.getItems();
55 if (items!=null) {
56 syndFeed.setEntries(createSyndEntries(items));
57 }
58 }
59
60 protected SyndImageI createSyndImage(Image rssImage) {
61 SyndImageI syndImage = new SyndImage();
62 syndImage.setTitle(rssImage.getTitle());
63 syndImage.setUrl(rssImage.getUrl());
64 syndImage.setLink(rssImage.getLink());
65 return syndImage;
66 }
67
68 protected List createSyndEntries(List rssItems) {
69 List syndEntries = new ArrayList();
70 for (int i=0;i<rssItems.size();i++) {
71 syndEntries.add(createSyndEntry((Item) rssItems.get(i)));
72 }
73 return syndEntries;
74 }
75
76 protected SyndEntryI createSyndEntry(Item item) {
77 SyndEntryI syndEntry = new SyndEntry();
78 syndEntry.setTitle(item.getTitle());
79 syndEntry.setLink(item.getLink());
80 return syndEntry;
81 }
82
83 public WireFeed createRealFeed(SyndFeedI syndFeed) {
84 return createRealFeed(getType(),syndFeed);
85 }
86
87 protected WireFeed createRealFeed(String type,SyndFeedI syndFeed) {
88 Channel channel = new Channel(type);
89
90 channel.setTitle(syndFeed.getTitle());
91 channel.setLink(syndFeed.getLink());
92 channel.setDescription(syndFeed.getDescription());
93
94 SyndImageI sImage = syndFeed.getImage();
95 if (sImage!=null) {
96 channel.setImage(createRSSImage(sImage));
97 }
98
99 List sEntries = syndFeed.getEntries();
100 if (sEntries!=null) {
101 channel.setItems(createRSSItems(sEntries));
102 }
103 return channel;
104 }
105
106 protected Image createRSSImage(SyndImageI sImage) {
107 Image image = new Image();
108 image.setTitle(sImage.getTitle());
109 image.setUrl(sImage.getUrl());
110 image.setLink(sImage.getLink());
111 return image;
112 }
113
114 protected List createRSSItems(List sEntries) {
115 List list = new ArrayList();
116 for (int i=0;i<sEntries.size();i++) {
117 list.add(createRSSItem((SyndEntryI)sEntries.get(i)));
118 }
119 return list;
120 }
121
122 protected Item createRSSItem(SyndEntryI sEntry) {
123 Item item = new Item();
124 item.setTitle(sEntry.getTitle());
125 item.setLink(sEntry.getLink());
126 return item;
127 }
128
129 }