1 package tim.prune.function.gpsies;
3 import java.util.ArrayList;
5 import org.xml.sax.Attributes;
6 import org.xml.sax.SAXException;
7 import org.xml.sax.helpers.DefaultHandler;
10 * XML handler for dealing with XML returned from gpsies.com
12 public class GpsiesXmlHandler extends DefaultHandler
14 private String _value = null;
15 private ArrayList<GpsiesTrack> _trackList = null;
16 private GpsiesTrack _track = null;
20 * React to the start of an XML tag
22 public void startElement(String inUri, String inLocalName, String inTagName,
23 Attributes inAttributes) throws SAXException
25 if (inTagName.equals("tracks")) {
26 _trackList = new ArrayList<GpsiesTrack>();
28 else if (inTagName.equals("track")) {
29 _track = new GpsiesTrack();
32 super.startElement(inUri, inLocalName, inTagName, inAttributes);
36 * React to the end of an XML tag
38 public void endElement(String inUri, String inLocalName, String inTagName)
41 if (inTagName.equals("track")) {
42 _trackList.add(_track);
44 else if (inTagName.equals("title")) {
45 _track.setTrackName(_value);
47 else if (inTagName.equals("description")) {
48 _track.setDescription(_value);
50 else if (inTagName.equals("fileId")) {
51 _track.setWebUrl("http://gpsies.com/map.do?fileId=" + _value);
53 else if (inTagName.equals("trackLengthM")) {
55 _track.setLength(Double.parseDouble(_value));
57 catch (NumberFormatException nfe) {}
59 else if (inTagName.equals("downloadLink")) {
60 _track.setDownloadLink(_value);
62 super.endElement(inUri, inLocalName, inTagName);
66 * React to characters received inside tags
68 public void characters(char[] inCh, int inStart, int inLength)
71 String value = new String(inCh, inStart, inLength);
72 _value = (_value==null?value:_value+value);
73 super.characters(inCh, inStart, inLength);
77 * @return the list of tracks
79 public ArrayList<GpsiesTrack> getTrackList()