X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fproducer%2FRSSProducerNode.java;h=d61c96ef2495672ab811bbfef537a0adb49323f0;hb=29da699109ce8842d02b60abcdb0dfdc4aa4f0db;hp=05c77e64a80d3bf839e128a8a362af4f08b6d9eb;hpb=a459f111d85598df56c6ab711cec11632676b39c;p=mir.git diff --git a/source/mir/producer/RSSProducerNode.java b/source/mir/producer/RSSProducerNode.java index 05c77e64..d61c96ef 100755 --- a/source/mir/producer/RSSProducerNode.java +++ b/source/mir/producer/RSSProducerNode.java @@ -18,13 +18,13 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * In addition, as a special exception, The Mir-coders gives permission to link - * the code of this program with any library licensed under the Apache Software License, - * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library - * (or with modified versions of the above that use the same license as the above), - * and distribute linked combinations including the two. You must obey the - * GNU General Public License in all respects for all of the code used other than - * the above mentioned libraries. If you modify this file, you may extend this - * exception to your version of the file, but you are not obligated to do so. + * the code of this program with any library licensed under the Apache Software License, + * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library + * (or with modified versions of the above that use the same license as the above), + * and distribute linked combinations including the two. You must obey the + * GNU General Public License in all respects for all of the code used other than + * the above mentioned libraries. If you modify this file, you may extend this + * exception to your version of the file, but you are not obligated to do so. * If you do not wish to do so, delete this exception statement from your version. */ package mir.producer; @@ -32,30 +32,41 @@ package mir.producer; import java.util.Map; import mir.log.LoggerWrapper; +import mir.rss.RSS091Reader; import mir.rss.RSSData; import mir.rss.RSSReader; -import mir.rss.RSSToMapConverter; import mir.util.ExceptionFunctions; import mir.util.ParameterExpander; public class RSSProducerNode implements ProducerNode { private String key; private String url; + private String version; - public RSSProducerNode(String aKey, String anURL) { + public RSSProducerNode(String aKey, String anURL, String aVersion) { key = aKey; url = anURL; + version = aVersion; } public void produce(Map aValueMap, String aVerb, LoggerWrapper aLogger) throws ProducerFailure { try { + RSSData rssData = null; String expandedKey = ParameterExpander.expandExpression( aValueMap, key ); String expandedUrl = ParameterExpander.expandExpression( aValueMap, url ); + String expandedVersion = ParameterExpander.expandExpression( aValueMap, version ); ParameterExpander.setValueForKey(aValueMap, expandedKey, null); - RSSReader reader = new RSSReader(); - RSSData rssData = reader.parseUrl(expandedUrl); - ParameterExpander.setValueForKey(aValueMap, expandedKey, RSSToMapConverter.convertRSSData(rssData)); + + if (version.equals("1.0")) { + RSSReader reader = new RSSReader(); + rssData = reader.parseUrl(expandedUrl); + } + else if (version.equals("0.91")) { + RSS091Reader reader = new RSS091Reader(); + rssData = reader.parseUrl(expandedUrl); + } + ParameterExpander.setValueForKey(aValueMap, expandedKey, rssData); } catch (Throwable t) { Throwable s = ExceptionFunctions.traceCauseException(t);