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