2
* Copyright (c) 2007, Sun Microsystems, Inc. All rights reserved.
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are met:
7
* * Redistributions of source code must retain the above copyright notice,
8
* this list of conditions and the following disclaimer.
10
* * Redistributions in binary form must reproduce the above copyright notice,
11
* this list of conditions and the following disclaimer in the documentation
12
* and/or other materials provided with the distribution.
14
* * Neither the name of Sun Microsystems, Inc. nor the names of its contributors
15
* may be used to endorse or promote products derived from this software without
16
* specific prior written permission.
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
28
* THE POSSIBILITY OF SUCH DAMAGE.
30
package org.myorg.feedreader;
32
import com.sun.syndication.feed.synd.SyndFeed;
33
import com.sun.syndication.fetcher.FeedFetcher;
34
import com.sun.syndication.fetcher.impl.HashMapFeedInfoCache;
35
import com.sun.syndication.fetcher.impl.HttpURLFeedFetcher;
36
import java.io.IOException;
37
import java.io.Serializable;
40
public class Feed implements Serializable {
42
private static final long serialVersionUID = 1L;
44
private static final FeedFetcher FEED_FETCHER =
45
new HttpURLFeedFetcher(HashMapFeedInfoCache.getInstance());
47
private transient SyndFeed syndFeed;
48
private final URL url;
51
public Feed(URL url) {
53
name = url.toExternalForm();
60
public SyndFeed getSyndFeed() throws IOException {
61
if (syndFeed == null) {
63
syndFeed = FEED_FETCHER.retrieveFeed(url);
64
String title = syndFeed.getTitle();
68
} catch (Exception ex) {
69
throw (IOException) new IOException(ex.toString()).initCause(ex);
75
public String toString() {