Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java	(revision 15193)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java	(revision 15196)
@@ -29,4 +29,6 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.search.SearchCompiler;
@@ -571,4 +573,23 @@
 
         /**
+         * Returns true if role is in relation. Returns false if not a relation or it does not have the role.
+         * @param env the environment
+         * @param roles The roles to count in the relation
+         * @return The number of relation members with the specified role
+         * @since 15196
+         */
+        public static int count_roles(final Environment env, String... roles) { // NO_UCD (unused code)
+            int rValue = 0;
+            if (env.osm instanceof Relation) {
+                List<String> roleList = Arrays.asList(roles);
+                Relation rel = (Relation) env.osm;
+                for (RelationMember member : rel.getMembers()) {
+                    if (roleList.contains(member.getRole())) rValue++;
+                }
+            }
+            return rValue;
+        }
+
+        /**
          * Returns the area of a closed way or multipolygon in square meters or {@code null}.
          * @param env the environment
