1 package org.wamblee.gps.track;
3 import java.io.Serializable;
6 import org.wamblee.gps.geometry.Point;
9 * Filtered track provides a filtered view on a track.
10 * Changes in the filter are also represented by the filtered track.
12 public class FilteredTrack implements Track, Serializable {
14 private TrackFilter _filter;
15 private Track _originalTrack;
16 private Track _filteredTrack;
17 private int _lastVersion;
19 public FilteredTrack(TrackFilter aFilter, Track aTrack) {
21 _originalTrack = aTrack;
22 _filteredTrack = _filter.filter(_originalTrack);
23 _lastVersion = aFilter.version();
26 private Track getTrack() {
27 if ( _lastVersion != _filter.version()) {
28 _filteredTrack = _filter.filter(_originalTrack);
29 _lastVersion = _filter.version();
31 return _filteredTrack;
35 public List<TrackSegment> getSegments() {
36 return getTrack().getSegments();
40 public String getDescription() {
41 return getTrack().getDescription();
45 public double getMaxCoordinate(int aI) {
46 return getTrack().getMaxCoordinate(aI);
50 public double getMinCoordinate(int aI) {
51 return getTrack().getMinCoordinate(aI);
55 public Point getPoint(int aIndex) {
56 return getTrack().getPoint(aIndex);
61 return getTrack().size();