Ticket #17845: 17845.patch

File 17845.patch, 1.7 KB (added by taylor.smock, 7 years ago)

Add has_role function to mapcss

  • src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java

     
    2828import org.openstreetmap.josm.data.osm.IPrimitive;
    2929import org.openstreetmap.josm.data.osm.Node;
    3030import org.openstreetmap.josm.data.osm.OsmPrimitive;
     31import org.openstreetmap.josm.data.osm.Relation;
     32import org.openstreetmap.josm.data.osm.RelationMember;
    3133import org.openstreetmap.josm.data.osm.Way;
    3234import org.openstreetmap.josm.data.osm.search.SearchCompiler;
    3335import org.openstreetmap.josm.data.osm.search.SearchCompiler.Match;
     
    570572        }
    571573
    572574        /**
     575         * Returns true if role is in relation. Returns false if not a relation or it does not have the role.
     576         * @param env the environment
     577         * @param role The role that the relation should have
     578         * @return true if the role is in the relation
     579         * @since xxx
     580         */
     581        public static boolean has_role(final Environment env, String role) { // NO_UCD (unused code)
     582            if (env.osm instanceof Relation) {
     583                Relation rel = (Relation) env.osm;
     584                for (RelationMember member : rel.getMembers()) {
     585                    if (role.equals(member.getRole())) return true;
     586                }
     587            }
     588            return false;
     589        }
     590
     591        /**
    573592         * Returns the area of a closed way or multipolygon in square meters or {@code null}.
    574593         * @param env the environment
    575594         * @return the area of a closed way or multipolygon in square meters or {@code null}