blob: c6e72dc5b7c205ddf541f92aa4d6b26c9687371b [file] [log] [blame]
package org.wordpress.android.util;
import java.util.Date;
import java.util.Map;
/**
* wrappers for extracting values from a Map object
*/
public class MapUtils {
/*
* returns a String value for the passed key in the passed map
* always returns "" instead of null
*/
public static String getMapStr(final Map<?, ?> map, final String key) {
if (map == null || key == null || !map.containsKey(key) || map.get(key) == null) {
return "";
}
return map.get(key).toString();
}
/*
* returns an int value for the passed key in the passed map
* defaultValue is returned if key doesn't exist or isn't a number
*/
public static int getMapInt(final Map<?, ?> map, final String key) {
return getMapInt(map, key, 0);
}
public static int getMapInt(final Map<?, ?> map, final String key, int defaultValue) {
try {
return Integer.parseInt(getMapStr(map, key));
} catch (NumberFormatException e) {
return defaultValue;
}
}
/*
* long version of above
*/
public static long getMapLong(final Map<?, ?> map, final String key) {
return getMapLong(map, key, 0);
}
public static long getMapLong(final Map<?, ?> map, final String key, long defaultValue) {
try {
return Long.parseLong(getMapStr(map, key));
} catch (NumberFormatException e) {
return defaultValue;
}
}
/*
* float version of above
*/
public static float getMapFloat(final Map<?, ?> map, final String key) {
return getMapFloat(map, key, 0);
}
public static float getMapFloat(final Map<?, ?> map, final String key, float defaultValue) {
try {
return Float.parseFloat(getMapStr(map, key));
} catch (NumberFormatException e) {
return defaultValue;
}
}
/*
* double version of above
*/
public static double getMapDouble(final Map<?, ?> map, final String key) {
return getMapDouble(map, key, 0);
}
public static double getMapDouble(final Map<?, ?> map, final String key, double defaultValue) {
try {
return Double.parseDouble(getMapStr(map, key));
} catch (NumberFormatException e) {
return defaultValue;
}
}
/*
* returns a date object from the passed key in the passed map
* returns null if key doesn't exist or isn't a date
*/
public static Date getMapDate(final Map<?, ?> map, final String key) {
if (map == null || key == null || !map.containsKey(key))
return null;
try {
return (Date) map.get(key);
} catch (ClassCastException e) {
return null;
}
}
/*
* returns a boolean value from the passed key in the passed map
* returns true unless key doesn't exist, or the value is "0" or "false"
*/
public static boolean getMapBool(final Map<?, ?> map, final String key) {
String value = getMapStr(map, key);
if (value.isEmpty())
return false;
if (value.startsWith("0")) // handles "0" and "0.0"
return false;
if (value.equalsIgnoreCase("false"))
return false;
// all other values are assume to be true
return true;
}
}