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
017    Map<String, Object> getAttributes();
018
019    Bounds getBounds();
020
021    double length();
022
023    /**
024     *
025     * @return Number of times this track has been changed. Always 0 for read-only tracks
026     */
027    int getUpdateCount();
028}