001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.gpx;
003
004import java.util.Collection;
005import java.util.Map;
006
007import org.openstreetmap.josm.data.Bounds;
008
009/**
010 * Read-only gpx track. Implementations doesn't have to be immutable, but should always be thread safe.
011 *
012 */
013public interface GpxTrack extends IWithAttributes {
014
015    Collection<GpxTrackSegment> getSegments();
016    Map<String, Object> getAttributes();
017    Bounds getBounds();
018    double length();
019    
020    /**
021     *
022     * @return Number of times this track has been changed. Always 0 for read-only tracks
023     */
024    int getUpdateCount();
025}