+++ /dev/null
-package tim.prune.load;
-
-import java.util.ArrayList;
-
-/**
- * Class to hold and manage a list of track names
- * from a gpx file, and report back which points
- * belong to which track
- */
-public class TrackNameList
-{
- /** Current point number */
- private int _pointNum = -1;
- /** Current track number */
- private int _trackNum = -1;
- /** List of unique track names */
- private ArrayList<String> _trackNames = new ArrayList<String>();
- /** List of point numbers at the start of each track */
- private ArrayList<Integer> _startIndices = new ArrayList<Integer>();
-
-
- /**
- * Inform list of a new point
- * @param inTrackNum number of track, starting at zero
- * @param inTrackName name of track, if any
- * @param inIsTrackpoint true if point is a trackpoint
- */
- public void addPoint(int inTrackNum, String inTrackName, boolean inIsTrackpoint)
- {
- _pointNum++;
- if (inIsTrackpoint)
- {
- if (inTrackNum != _trackNum) {
- _trackNames.add(inTrackName);
- _startIndices.add(Integer.valueOf(_pointNum));
- }
- }
- _trackNum = inTrackNum;
- }
-
- /**
- * @return number of tracks found in file
- */
- public int getNumTracks()
- {
- return _trackNames.size();
- }
-
- /**
- * @param inTrackNum index of track, starting from zero
- * @return name of specified track (or null if none given)
- */
- public String getTrackName(int inTrackNum)
- {
- if (inTrackNum < 0 || inTrackNum >= getNumTracks()) {return "";}
- String name = _trackNames.get(inTrackNum);
- return name;
- }
-
- /**
- * @param inTrackNum index of track, starting from zero
- * @return number of points in the specified track
- */
- public int getNumPointsInTrack(int inTrackNum)
- {
- if (inTrackNum < 0 || inTrackNum >= getNumTracks()) {return 0;}
- if (inTrackNum == (getNumTracks()-1)) {
- // last track, use total points
- return _pointNum - _startIndices.get(inTrackNum) + 1;
- }
- return _startIndices.get(inTrackNum+1) - _startIndices.get(inTrackNum);
- }
-
- /**
- * @param inTrackNum index of track, starting from zero
- * @return start index of the specified track
- */
- public int getStartIndex(int inTrackNum)
- {
- if (inTrackNum < 0 || inTrackNum >= getNumTracks()) {return 0;}
- return _startIndices.get(inTrackNum);
- }
-}