📄 romeremotefeeddao.java
字号:
package com.google.code.rsser.dao.rome;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import org.springframework.stereotype.Repository;import com.google.code.rsser.dao.RemoteFeedDAO;import com.google.code.rsser.exception.InvalidFeedException;import com.google.code.rsser.model.RemoteEntry;import com.google.code.rsser.model.RemoteFeed;import com.sun.syndication.feed.synd.SyndContent;import com.sun.syndication.feed.synd.SyndEntry;import com.sun.syndication.feed.synd.SyndFeed;import com.sun.syndication.fetcher.FeedFetcher;import com.sun.syndication.fetcher.FetcherException;import com.sun.syndication.fetcher.impl.HttpURLFeedFetcher;import com.sun.syndication.io.FeedException;@Repository("remoteFeedDAO")public class RomeRemoteFeedDAO implements RemoteFeedDAO { private String parseContent(SyndContent content) { if (content != null) { return content.getValue(); } return null; } public RemoteFeed fetch(String url) throws InvalidFeedException { FeedFetcher feedFetcher = new HttpURLFeedFetcher(); feedFetcher.setUsingDeltaEncoding(true); RemoteFeed remoteFeed = new RemoteFeed(); try { SyndFeed feed = feedFetcher.retrieveFeed(new URL(url)); remoteFeed.setUrl(feed.getLink()); remoteFeed.setTitle(feed.getTitle()); remoteFeed.setDescription(feed.getDescription()); remoteFeed.setEntries(new ArrayList<RemoteEntry>()); for (Object o : feed.getEntries()) { SyndEntry entry = (SyndEntry) o; RemoteEntry remoteEntry = new RemoteEntry(); remoteEntry.setDate(entry.getPublishedDate()); remoteEntry.setDescription(parseContent(entry.getDescription())); remoteEntry.setTitle(entry.getTitle()); remoteEntry.setUrl(entry.getLink()); remoteFeed.getEntries().add(remoteEntry); } return remoteFeed; } catch (MalformedURLException e) { throw new InvalidFeedException("Wrong URL", e); } catch (IOException e) { throw new InvalidFeedException("Cannot retrieve", e); } catch (FeedException e) { throw new InvalidFeedException("Cannot prepare feed", e); } catch (FetcherException e) { throw new InvalidFeedException("Cannot fetch", e); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -