001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.data.osm;
003
004 import java.util.ArrayList;
005 import java.util.Arrays;
006 import java.util.Locale;
007
008 public class OsmUtils {
009
010 static ArrayList<String> TRUE_VALUES = new ArrayList<String>(Arrays
011 .asList(new String[] { "true", "yes", "1", "on" }));
012 static ArrayList<String> FALSE_VALUES = new ArrayList<String>(Arrays
013 .asList(new String[] { "false", "no", "0", "off" }));
014 static ArrayList<String> REVERSE_VALUES = new ArrayList<String>(Arrays
015 .asList(new String[] { "reverse", "-1" }));
016
017 public static final String trueval = "yes";
018 public static final String falseval = "no";
019 public static final String reverseval = "-1";
020
021 public static Boolean getOsmBoolean(String value) {
022 if(value == null) return null;
023 String lowerValue = value.toLowerCase(Locale.ENGLISH);
024 if (TRUE_VALUES.contains(lowerValue)) return Boolean.TRUE;
025 if (FALSE_VALUES.contains(lowerValue)) return Boolean.FALSE;
026 return null;
027 }
028
029 public static String getNamedOsmBoolean(String value) {
030 Boolean res = getOsmBoolean(value);
031 return res == null ? value : (res ? trueval : falseval);
032 }
033
034 public static boolean isReversed(String value) {
035 return REVERSE_VALUES.contains(value);
036 }
037
038 public static boolean isTrue(String value) {
039 return TRUE_VALUES.contains(value);
040 }
041
042 public static boolean isFalse(String value) {
043 return FALSE_VALUES.contains(value);
044 }
045 }