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 }