Changeset 14654 in josm for trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
- Timestamp:
- 2019-01-06T20:22:48+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
r14466 r14654 24 24 import org.openstreetmap.josm.data.osm.OsmUtils; 25 25 import org.openstreetmap.josm.data.osm.Relation; 26 import org.openstreetmap.josm.data.osm.Way; 26 27 import org.openstreetmap.josm.data.osm.visitor.PrimitiveVisitor; 27 28 import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache; … … 33 34 import org.openstreetmap.josm.tools.Logging; 34 35 import org.openstreetmap.josm.tools.Pair; 35 import org.openstreetmap.josm.tools.SubclassFilteredCollection;36 36 import org.openstreetmap.josm.tools.Utils; 37 37 … … 354 354 // if right selector also matches relations and if matched primitive is a way which is part of a multipolygon, 355 355 // use the multipolygon for further analysis 356 if (!(e.osm instanceof IWay)356 if (!(e.osm instanceof Way) 357 357 || (right instanceof OptimizedGeneralSelector 358 358 && !((OptimizedGeneralSelector) right).matchesBase(OsmPrimitiveType.RELATION))) { 359 359 throw new NoSuchElementException(); 360 360 } 361 final Collection<Relation> multipolygons = Utils.filteredCollection(SubclassFilteredCollection.filter(362 e.osm.getReferrers(), p -> p.hasTag("type", "multipolygon")), Relation.class);363 final Relation multipolygon = multipolygons.iterator().next();364 if (multipolygon == null) throw new NoSuchElementException();361 final Relation multipolygon = ((Way) e.osm).referrers(Relation.class) 362 .filter(p -> p.hasTag("type", "multipolygon")) 363 .findFirst() 364 .orElseThrow(NoSuchElementException::new); 365 365 final Set<OsmPrimitive> members = multipolygon.getMemberPrimitives(); 366 366 containsFinder = new ContainsFinder(new Environment(multipolygon)) {
Note:
See TracChangeset
for help on using the changeset viewer.