diff --git a/src/net/java/sip/communicator/impl/protocol/rss/RssFeedReader.java b/src/net/java/sip/communicator/impl/protocol/rss/RssFeedReader.java index a684c1f62..a0ac1741b 100644 --- a/src/net/java/sip/communicator/impl/protocol/rss/RssFeedReader.java +++ b/src/net/java/sip/communicator/impl/protocol/rss/RssFeedReader.java @@ -15,7 +15,7 @@ import net.java.sip.communicator.service.protocol.*; /** - * The class used for using the Informa Library into the RSS protocol + * The class used for using the ROME Library into the RSS protocol. * * @author Jean-Albert Vescovo * @author Mihai Balan @@ -163,12 +163,15 @@ public synchronized String feedToString(Date latestRetrievedItemDate) .compareTo(latestRetrievedItemDate) > 0) { // Get the abstract of the news. - newsAbstract = items[i].getDescription().getValue(); + newsAbstract = getNewsAbstract(items[i]); // Forge the news to be displayed. - printedFeed.insert(0, "At " - + items[i].getPublishedDate() - + "
"+ items[i].getTitle() + "" - + " Link
"); + printedFeed.insert(0, + "" + + ""+ items[i].getTitle() + "" + + "" + + "
" + + newsAbstract + + "
"); } else { @@ -187,6 +190,43 @@ public synchronized String feedToString(Date latestRetrievedItemDate) .append ("Send anything to refresh this feed...
\n"); return printedFeed.toString(); } + + /** + * The function retrieves the abstract (textual description) of a feed item + * or an empty string otherwise. It takes care of all format specific data + * returns a format-agnostic, nicely formatted String + * + * @param syndEntry - Feed entry for which to retrieve the abstract (text) + * @return String representation of the news abstract or an empty string if + * no such data could be found. + */ + private String getNewsAbstract(SyndEntry syndEntry) + { + StringBuffer newsAbstract = new StringBuffer(); + List contents; + + contents = syndEntry.getContents(); + if (!contents.isEmpty()) + { + Iterator it = contents.iterator(); + while (it.hasNext()) + { + newsAbstract.append(((SyndContent)it.next()).getValue()); + } + } + + if (newsAbstract.toString().length() != 0) + return newsAbstract.toString(); + else + { + if (syndEntry.getDescription() != null) + { + if(syndEntry.getDescription().getValue() != null) + newsAbstract.append(syndEntry.getDescription().getValue()); + } + } + return newsAbstract.toString(); + } /** * Returns a Date that can be used to know the most recent item in a @@ -241,7 +281,7 @@ public Date getPubDate() } /** - * Returns a String used as a displayname. + * Returns a String used as a display name. * * @return a String title representing the feed/contact. */ @@ -267,13 +307,13 @@ private class SyndEntryComparator implements Comparator /** * Compares its two items for order. Returns a negative integer, * zero, or a positive integer as the first argument has a date - * which preceeds, is equal or is greater the second. + * which precedes, is equal or is greater the second. *

* @param o1 the first item to be compared. * @param o2 the second item to be compared. * @return a negative integer, zero, or a positive integer as the * first item has a date that is before is equal to or is - * after the swcond. + * after the second. * @throws ClassCastException if one of the objects is not a * SyndEntry instance. */