Ignore:
Timestamp:
2020-05-17T14:18:22+02:00 (4 years ago)
Author:
simon04
Message:

see #19251 - Java 8: use Stream

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java

    r15848 r16438  
    7171import org.openstreetmap.josm.data.gpx.GpxData;
    7272import org.openstreetmap.josm.data.gpx.GpxImageCorrelation;
     73import org.openstreetmap.josm.data.gpx.GpxImageEntry;
    7374import org.openstreetmap.josm.data.gpx.GpxTimeOffset;
    7475import org.openstreetmap.josm.data.gpx.GpxTimezone;
    75 import org.openstreetmap.josm.data.gpx.IGpxTrack;
    76 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;
    7776import org.openstreetmap.josm.data.gpx.WayPoint;
    7877import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
     
    12631262        long firstExifDate = imgs.get(0).getExifTime().getTime();
    12641263
    1265         long firstGPXDate = -1;
    12661264        // Finds first GPX point
    1267         outer: for (IGpxTrack trk : gpx.tracks) {
    1268             for (IGpxTrackSegment segment : trk.getSegments()) {
    1269                 for (WayPoint curWp : segment.getWayPoints()) {
    1270                     if (curWp.hasDate()) {
    1271                         firstGPXDate = curWp.getTimeInMillis();
    1272                         break outer;
    1273                     }
    1274                 }
    1275             }
    1276         }
    1277 
    1278         if (firstGPXDate < 0) {
    1279             throw new NoGpxTimestamps();
    1280         }
     1265        long firstGPXDate = gpx.tracks.stream()
     1266                .flatMap(trk -> trk.getSegments().stream())
     1267                .flatMap(segment -> segment.getWayPoints().stream())
     1268                .filter(WayPoint::hasDate)
     1269                .map(WayPoint::getTimeInMillis)
     1270                .findFirst()
     1271                .orElseThrow(NoGpxTimestamps::new);
    12811272
    12821273        return GpxTimeOffset.milliseconds(firstExifDate - firstGPXDate).splitOutTimezone();
     
    13391330     */
    13401331    private List<ImageEntry> getSortedImgList(boolean exif, boolean tagged) {
    1341         List<ImageEntry> dateImgLst = new ArrayList<>(yLayer.getImageData().getImages().size());
    1342         for (ImageEntry e : yLayer.getImageData().getImages()) {
    1343             if (!e.hasExifTime()) {
    1344                 continue;
    1345             }
    1346 
    1347             if (e.getExifCoor() != null && !exif) {
    1348                 continue;
    1349             }
    1350 
    1351             if (!tagged && e.isTagged() && e.getExifCoor() == null) {
    1352                 continue;
    1353             }
    1354 
    1355             dateImgLst.add(e);
    1356         }
    1357 
    1358         dateImgLst.sort(Comparator.comparing(ImageEntry::getExifTime));
    1359 
    1360         return dateImgLst;
     1332        return yLayer.getImageData().getImages().stream()
     1333                .filter(GpxImageEntry::hasExifTime)
     1334                .filter(e -> e.getExifCoor() == null || exif)
     1335                .filter(e -> tagged || !e.isTagged() || e.getExifCoor() != null)
     1336                .sorted(Comparator.comparing(ImageEntry::getExifTime))
     1337                .collect(Collectors.toList());
    13611338    }
    13621339
Note: See TracChangeset for help on using the changeset viewer.