1 19 package org.myorg.feedreader; 20 21 import com.sun.syndication.feed.synd.SyndFeed; 22 import com.sun.syndication.fetcher.FeedFetcher; 23 import com.sun.syndication.fetcher.impl.HashMapFeedInfoCache; 24 import com.sun.syndication.fetcher.impl.HttpURLFeedFetcher; 25 import java.io.IOException ; 26 import java.io.Serializable ; 27 import java.net.URL ; 28 29 public class Feed implements Serializable { 30 31 private static final long serialVersionUID = 1L; 32 33 private static final FeedFetcher FEED_FETCHER = 34 new HttpURLFeedFetcher(HashMapFeedInfoCache.getInstance()); 35 36 private transient SyndFeed syndFeed; 37 private final URL url; 38 private String name; 39 40 public Feed(URL url) { 41 this.url = url; 42 name = url.toExternalForm(); 43 } 44 45 public URL getURL() { 46 return url; 47 } 48 49 public SyndFeed getSyndFeed() throws IOException { 50 if (syndFeed == null) { 51 try { 52 syndFeed = FEED_FETCHER.retrieveFeed(url); 53 String title = syndFeed.getTitle(); 54 if (title != null) { 55 name = title; 56 } 57 } catch (Exception ex) { 58 throw (IOException ) new IOException (ex.toString()).initCause(ex); 59 } 60 } 61 return syndFeed; 62 } 63 64 public String toString() { 65 return name; 66 } 67 68 } 69 | Popular Tags |