2 Copyright (C) 2001, 2006 United States Government
3 as represented by the Administrator of the
4 National Aeronautics and Space Administration.
7 package gov
.nasa
.worldwind
.formats
.gpx
;
9 import gov
.nasa
.worldwind
.tracks
.*;
10 import gov
.nasa
.worldwind
.util
.Logging
;
14 * @version $Id: GpxTrack.java 2471 2007-07-31 21:50:57Z tgaskins $
16 public class GpxTrack
extends gov
.nasa
.worldwind
.formats
.gpx
.ElementParser
implements Track
19 private int numPoints
= -1;
20 private java
.util
.List
<TrackSegment
> segments
=
21 new java
.util
.ArrayList
<TrackSegment
>();
23 @SuppressWarnings({"UNUSED_SYMBOL", "UnusedDeclaration"})
24 public GpxTrack(String uri
, String lname
, String qname
, org
.xml
.sax
.Attributes attributes
)
27 // don't validate uri, lname, qname or attributes - they aren't used.
30 public java
.util
.List
<TrackSegment
> getSegments()
35 public String
getName()
40 public int getNumPoints()
42 if (this.segments
== null)
45 if (this.numPoints
>= 0)
46 return this.numPoints
;
49 for (TrackSegment segment
: this.segments
)
51 //noinspection UNUSED_SYMBOL,UnusedDeclaration
52 for (TrackPoint point
: segment
.getPoints())
58 return this.numPoints
;
66 * @throws IllegalArgumentException if <code>lname</code> is null
67 * @throws org.xml.sax.SAXException
70 public void doStartElement(String uri
, String lname
, String qname
, org
.xml
.sax
.Attributes attributes
)
71 throws org
.xml
.sax
.SAXException
73 // don't validate uri, qname or attributes - they aren't used
76 String msg
= Logging
.getMessage("nullValue.LNameIsNull");
77 Logging
.logger().severe(msg
);
78 throw new IllegalArgumentException(msg
);
82 String msg
= Logging
.getMessage("nullValue.QNameIsNull");
83 Logging
.logger().severe(msg
);
84 throw new IllegalArgumentException(msg
);
88 String msg
= Logging
.getMessage("nullValue.URIIsNull");
89 Logging
.logger().severe(msg
);
90 throw new IllegalArgumentException(msg
);
92 if (attributes
== null)
94 String msg
= Logging
.getMessage("nullValue.AttributesIsNull");
95 Logging
.logger().severe(msg
);
96 throw new IllegalArgumentException(msg
);
99 if (lname
.equalsIgnoreCase("trkSeg"))
101 this.currentElement
= new GpxTrackSegment(uri
, lname
, qname
, attributes
);
102 this.segments
.add((GpxTrackSegment
) this.currentElement
);
110 * @throws IllegalArgumentException if <code>lname</code> is null
111 * @throws org.xml.sax.SAXException
114 public void doEndElement(String uri
, String lname
, String qname
) throws org
.xml
.sax
.SAXException
116 // don't validate uri or qname - they aren't used
119 String msg
= Logging
.getMessage("nullValue.LNameIsNull");
120 Logging
.logger().severe(msg
);
121 throw new IllegalArgumentException(msg
);
123 if (lname
.equalsIgnoreCase("name"))
125 this.name
= this.currentCharacters
;