Index: /trunk/src/org/openstreetmap/josm/data/osm/RelationMember.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/RelationMember.java	(revision 6304)
+++ /trunk/src/org/openstreetmap/josm/data/osm/RelationMember.java	(revision 6305)
@@ -1,4 +1,6 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.data.osm;
+
+import java.util.Arrays;
 
 /**
@@ -21,5 +23,5 @@
 
     /**
-     *
+     * Returns the role of this relation member.
      * @return Role name or "". Never returns null
      * @since 1930
@@ -30,5 +32,5 @@
 
     /**
-     *
+     * Determines if this relation member has a role.
      * @return True if role is set
      * @since 1930
@@ -39,5 +41,15 @@
 
     /**
-     *
+     * Determines if this relation member's role is in the given list.
+     * @param roles The roles to look after
+     * @return True if role is in the given list
+     * @since 6305
+     */
+    public boolean hasRole(String ... roles) {
+        return Arrays.asList(roles).contains(role);
+    }
+
+    /**
+     * Determines if this relation member is a relation.
      * @return True if member is relation
      * @since 1937
@@ -48,5 +60,5 @@
 
     /**
-     *
+     * Determines if this relation member is a way.
      * @return True if member is way
      * @since 1937
@@ -66,5 +78,5 @@
 
     /**
-     *
+     * Determines if this relation member is a node.
      * @return True if member is node
      * @since 1937
@@ -75,5 +87,5 @@
 
     /**
-     *
+     * Returns the relation member as a relation.
      * @return Member as relation
      * @since 1937
@@ -84,5 +96,5 @@
 
     /**
-     *
+     * Returns the relation member as a way.
      * @return Member as way
      * @since 1937
@@ -93,5 +105,5 @@
 
     /**
-     *
+     * Returns the relation member as a node.
      * @return Member as node
      * @since 1937
@@ -102,5 +114,5 @@
 
     /**
-     *
+     * Returns the relation member.
      * @return Member. Returned value is never null.
      * @since 1937
@@ -111,5 +123,5 @@
 
     /**
-     *
+     * Constructs a new {@code RelationMember}.
      * @param role Can be null, in this case it's save as ""
      * @param member Cannot be null
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java	(revision 6304)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java	(revision 6305)
@@ -248,10 +248,11 @@
         for (RelationMember rm : r.getMembers()) {
             if (rm.isWay()) {
-                if (!("inner".equals(rm.getRole()) || "outer".equals(rm.getRole()) || !rm.hasRole())) {
+                if (!(rm.hasRole("inner", "outer") || !rm.hasRole())) {
                     addError(r, new TestError(this, Severity.WARNING, tr("No useful role for multipolygon member"), WRONG_MEMBER_ROLE, rm.getMember()));
                 }
             } else {
-                if(!"admin_centre".equals(rm.getRole()) && !"label".equals(rm.getRole()))
+                if (!rm.hasRole("admin_centre", "label", "subarea", "land_area")) {
                     addError(r, new TestError(this, Severity.WARNING, tr("Non-Way in multipolygon"), WRONG_MEMBER_TYPE, rm.getMember()));
+                }
             }
         }
