package mir.rss;
import java.io.InputStream;
-import java.net.URL;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Vector;
import mir.util.DateTimeFunctions;
+import mir.util.HTTPClientHelper;
import mir.util.xml.XMLParserEngine;
import mir.util.xml.XMLParserExc;
import mir.util.xml.XMLParserFailure;
private Map moduleToPrefix;
public RSSReader() {
- modules = new Vector();
+ modules = new ArrayList();
namespaceURItoModule = new HashMap();
moduleToPrefix = new HashMap();
public RSSData parseInputStream(InputStream aStream) throws RSSExc, RSSFailure {
try {
RSSData result = new RSSData();
- XMLParserEngine.getInstance().parse("xml.namespaceaware", aStream, new RootSectionHandler(result));
+ XMLParserEngine.getInstance().parse("xml", aStream, new RootSectionHandler(result));
+
+ return result;
+ }
+ catch (Throwable t) {
+ throw new RSSFailure(t);
+ }
+ }
+
+ public RSSData parseInputStream(InputStream aStream, String anEncoding) throws RSSExc, RSSFailure {
+ try {
+ RSSData result = new RSSData();
+ XMLParserEngine.getInstance().parse("xml", aStream, anEncoding, new RootSectionHandler(result));
return result;
}
public RSSData parseUrl(String anUrl) throws RSSExc, RSSFailure {
try {
- InputStream inputStream = (InputStream) new URL(anUrl).getContent(new Class[] {InputStream.class});
+ HTTPClientHelper httpClientHelper = new HTTPClientHelper();
+ InputStream inputStream = httpClientHelper.getUrl(anUrl);
+ if (inputStream==null)
+ throw new RSSExc("RSSChannel.parseUrl: Can't get url content");
+ RSSData theRSSData = parseInputStream(inputStream);
+ httpClientHelper.releaseHTTPConnection();
+ return theRSSData;
+ }
+ catch (Throwable t) {
+ throw new RSSFailure(t);
+ }
+ }
+
+ public RSSData parseUrl(String anUrl, String anEncoding) throws RSSExc, RSSFailure {
+ try {
+ HTTPClientHelper httpClientHelper = new HTTPClientHelper();
+ InputStream inputStream = httpClientHelper.getUrl(anUrl);
if (inputStream==null)
throw new RSSExc("RSSChannel.parseUrl: Can't get url content");
- return parseInputStream(inputStream);
+ RSSData theRSSData = parseInputStream(inputStream, anEncoding);
+ httpClientHelper.releaseHTTPConnection();
+ return theRSSData;
}
catch (Throwable t) {
throw new RSSFailure(t);
List value = (List) aResource.get(makeQualifiedName(aTag));
if (value==null) {
- value = new Vector();
+ value = new ArrayList();
aResource.set(makeQualifiedName(aTag), value);
}
private List items;
public RDFCollectionSectionHandler() {
- items = new Vector();
+ items = new ArrayList();
}
public mir.util.xml.SectionHandler startElement(String aTag, Map anAttributes) throws XMLParserExc {
private List items;
public RDFSequenceSectionHandler() {
- items = new Vector();
+ items = new ArrayList();
}
public mir.util.xml.SectionHandler startElement(String aTag, Map anAttributes) throws XMLParserExc {