X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Ffunction%2FGetWikipediaXmlHandler.java;fp=tim%2Fprune%2Ffunction%2FGetWikipediaXmlHandler.java;h=0000000000000000000000000000000000000000;hp=b5cb3f920f7533de8474dbf7e4466c1a78b4ba82;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465 diff --git a/tim/prune/function/GetWikipediaXmlHandler.java b/tim/prune/function/GetWikipediaXmlHandler.java deleted file mode 100644 index b5cb3f9..0000000 --- a/tim/prune/function/GetWikipediaXmlHandler.java +++ /dev/null @@ -1,101 +0,0 @@ -package tim.prune.function; - -import java.util.ArrayList; - -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - -import tim.prune.function.search.SearchResult; - -/** - * XML handler for dealing with XML returned from the geonames api, - * both from the search by name and search by location - */ -public class GetWikipediaXmlHandler extends DefaultHandler -{ - private String _value = null; - private ArrayList _trackList = null; - private SearchResult _track = null; - private String _errorMessage = null; - - - /** - * React to the start of an XML tag - */ - public void startElement(String inUri, String inLocalName, String inTagName, - Attributes inAttributes) throws SAXException - { - if (inTagName.equals("geonames")) { - _trackList = new ArrayList(); - } - else if (inTagName.equals("entry")) { - _track = new SearchResult(); - } - else if (inTagName.equals("status")) { - _errorMessage = inAttributes.getValue("message"); - } - else _value = null; - super.startElement(inUri, inLocalName, inTagName, inAttributes); - } - - /** - * React to the end of an XML tag - */ - public void endElement(String inUri, String inLocalName, String inTagName) - throws SAXException - { - if (inTagName.equals("entry")) { - // end of the entry - _trackList.add(_track); - } - else if (inTagName.equals("title")) { - _track.setTrackName(_value); - } - else if (inTagName.equals("summary")) { - _track.setDescription(_value); - } - else if (inTagName.equals("lat")) { - _track.setLatitude(_value); - } - else if (inTagName.equals("lng")) { - _track.setLongitude(_value); - } - else if (inTagName.equals("distance")) { - try { - _track.setLength(Double.parseDouble(_value) * 1000.0); // convert from km to m - } - catch (NumberFormatException nfe) {} - } - else if (inTagName.equals("wikipediaUrl")) { - _track.setWebUrl(_value.replaceFirst("http://", "https://")); - } - super.endElement(inUri, inLocalName, inTagName); - } - - /** - * React to characters received inside tags - */ - public void characters(char[] inCh, int inStart, int inLength) - throws SAXException - { - String value = new String(inCh, inStart, inLength); - _value = (_value==null?value:_value+value); - super.characters(inCh, inStart, inLength); - } - - /** - * @return the list of tracks - */ - public ArrayList getTrackList() - { - return _trackList; - } - - /** - * @return error message, if any - */ - public String getErrorMessage() { - return _errorMessage; - } -}