Index: /trunk/src/org/openstreetmap/josm/data/osm/OsmUtils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/OsmUtils.java	(revision 15949)
+++ /trunk/src/org/openstreetmap/josm/data/osm/OsmUtils.java	(revision 15950)
@@ -2,10 +2,7 @@
 package org.openstreetmap.josm.data.osm;
 
-import java.util.Arrays;
 import java.util.Collection;
-import java.util.HashSet;
 import java.util.Locale;
 import java.util.Map;
-import java.util.Set;
 import java.util.regex.Pattern;
 import java.util.stream.Stream;
@@ -19,11 +16,4 @@
  */
 public final class OsmUtils {
-
-    private static final Set<String> TRUE_VALUES = new HashSet<>(Arrays
-            .asList("true", "yes", "1", "on"));
-    private static final Set<String> FALSE_VALUES = new HashSet<>(Arrays
-            .asList("false", "no", "0", "off"));
-    private static final Set<String> REVERSE_VALUES = new HashSet<>(Arrays
-            .asList("reverse", "-1"));
 
     /**
@@ -70,6 +60,6 @@
         if (value == null) return null;
         String lowerValue = value.toLowerCase(Locale.ENGLISH);
-        if (TRUE_VALUES.contains(lowerValue)) return Boolean.TRUE;
-        if (FALSE_VALUES.contains(lowerValue)) return Boolean.FALSE;
+        if (isTrue(lowerValue)) return Boolean.TRUE;
+        if (isFalse(lowerValue)) return Boolean.FALSE;
         return null;
     }
@@ -93,5 +83,11 @@
      */
     public static boolean isReversed(String value) {
-        return REVERSE_VALUES.contains(value);
+        switch (value) {
+            case "reverse":
+            case "-1":
+                return true;
+            default:
+                return false;
+        }
     }
 
@@ -102,5 +98,13 @@
      */
     public static boolean isTrue(String value) {
-        return TRUE_VALUES.contains(value);
+        switch (value) {
+            case "true":
+            case "yes":
+            case "1":
+            case "on":
+                return true;
+            default:
+                return false;
+        }
     }
 
@@ -111,5 +115,13 @@
      */
     public static boolean isFalse(String value) {
-        return FALSE_VALUES.contains(value);
+        switch (value) {
+            case "false":
+            case "no":
+            case "0":
+            case "off":
+                return true;
+            default:
+                return false;
+        }
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/OsmUtilsTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/OsmUtilsTest.java	(revision 15949)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/OsmUtilsTest.java	(revision 15950)
@@ -3,4 +3,6 @@
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
@@ -14,4 +16,7 @@
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
+/**
+ * Unit tests for class {@link OsmUtils}.
+ */
 public class OsmUtilsTest {
 
@@ -23,6 +28,9 @@
     public JOSMTestRules test = new JOSMTestRules();
 
+    /**
+     * Unit test of {@link OsmUtils#createPrimitive}
+     */
     @Test
-    public void testCreatePrimitive() throws Exception {
+    public void testCreatePrimitive() {
         final OsmPrimitive p = OsmUtils.createPrimitive("way name=Foo railway=rail");
         assertTrue(p instanceof Way);
@@ -32,16 +40,25 @@
     }
 
+    /**
+     * Unit test of {@link OsmUtils#createPrimitive}
+     */
     @Test
-    public void testArea() throws Exception {
+    public void testArea() {
         final OsmPrimitive p = OsmUtils.createPrimitive("area name=Foo railway=rail");
         assertEquals(OsmPrimitiveType.WAY, p.getType());
-        assertTrue(p.getKeys().equals(OsmUtils.createPrimitive("way name=Foo railway=rail").getKeys()));
+        assertEquals(p.getKeys(), OsmUtils.createPrimitive("way name=Foo railway=rail").getKeys());
     }
 
+    /**
+     * Unit test of {@link OsmUtils#createPrimitive}
+     */
     @Test(expected = IllegalArgumentException.class)
-    public void testCreatePrimitiveFail() throws Exception {
+    public void testCreatePrimitiveFail() {
         OsmUtils.createPrimitive("noway name=Foo");
     }
 
+    /**
+     * Unit test of {@link OsmUtils#splitMultipleValues}
+     */
     @Test
     public void testSplitMultipleValues() {
@@ -52,3 +69,17 @@
                 OsmUtils.splitMultipleValues("Tu-Fr 08:00-18:00;Mo 09:00-18:00;Sa 09:00-12:00;closed Aug").collect(Collectors.toList()));
     }
+
+    /**
+     * Unit test of {@link OsmUtils#isTrue}, {@link OsmUtils#isFalse}, {@link OsmUtils#getOsmBoolean}
+     */
+    @Test
+    public void testTrueFalse() {
+        assertTrue(OsmUtils.isTrue("yes"));
+        assertFalse(OsmUtils.isFalse("yes"));
+        assertEquals(Boolean.TRUE, OsmUtils.getOsmBoolean("yes"));
+        assertTrue(OsmUtils.isFalse("no"));
+        assertFalse(OsmUtils.isTrue("no"));
+        assertEquals(Boolean.FALSE, OsmUtils.getOsmBoolean("no"));
+        assertNull(OsmUtils.getOsmBoolean("foobar"));
+    }
 }
