Ignore:
Timestamp:
2020-05-17T17:02:28+02:00 (6 years ago)
Author:
simon04
Message:

see #19251 - Java 8: use Stream

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateWay.java

    r14654 r16445  
    1414import java.util.Set;
    1515import java.util.stream.Collectors;
     16import java.util.stream.IntStream;
    1617
    1718import org.openstreetmap.josm.command.ChangeCommand;
     
    227228                }
    228229            }
    229             for (int i = lowestIndex; i < wNodes.size()-1; i++) {
    230                 wNodesToUse.add(wNodes.get(i));
    231             }
     230            IntStream.range(lowestIndex, wNodes.size() - 1)
     231                    .mapToObj(wNodes::get)
     232                    .forEach(wNodesToUse::add);
    232233            for (int i = 0; i < lowestIndex; i++) {
    233234                wNodesToUse.add(wNodes.get(i));
     
    238239        }
    239240        // Build the list of lat/lon
    240         List<LatLon> wLat = new ArrayList<>(wNodesToUse.size());
    241         for (Node node : wNodesToUse) {
    242             wLat.add(node.getCoor());
    243         }
    244         return wLat;
     241
     242        return wNodesToUse.stream()
     243                .map(Node::getCoor)
     244                .collect(Collectors.toList());
    245245    }
    246246
     
    250250    @Override
    251251    public Command fixError(TestError testError) {
    252         Collection<? extends OsmPrimitive> sel = testError.getPrimitives();
    253         Set<Way> wayz = new HashSet<>();
    254 
    255         for (OsmPrimitive osm : sel) {
    256             if (osm instanceof Way && !osm.isDeleted()) {
    257                 wayz.add((Way) osm);
    258             }
    259         }
     252        Set<Way> wayz = testError.primitives(Way.class)
     253                .filter(w -> !w.isDeleted())
     254                .collect(Collectors.toSet());
    260255
    261256        if (wayz.size() < 2)
     
    315310
    316311        // We fix it only if there is no more than one way that is relation member.
    317         Collection<? extends OsmPrimitive> sel = testError.getPrimitives();
    318         Set<Way> wayz = new HashSet<>();
    319 
    320         for (OsmPrimitive osm : sel) {
    321             if (osm instanceof Way) {
    322                 wayz.add((Way) osm);
    323             }
    324         }
    325 
     312        Set<Way> wayz = testError.primitives(Way.class).collect(Collectors.toSet());
    326313        if (wayz.size() < 2)
    327314            return false;
    328315
    329         int waysWithRelations = 0;
    330         for (Way w : wayz) {
    331             List<Relation> rel = w.referrers(Relation.class).collect(Collectors.toList());
    332             if (!rel.isEmpty()) {
    333                 ++waysWithRelations;
    334             }
    335         }
     316        long waysWithRelations = wayz.stream()
     317                .filter(w -> w.referrers(Relation.class).anyMatch(x -> true))
     318                .count();
    336319        return waysWithRelations <= 1;
    337320    }
Note: See TracChangeset for help on using the changeset viewer.