package kr.wisestone.owl.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; import java.util.*; public class MapUtil { static final Logger log = LoggerFactory.getLogger(MapUtil.class); public static Long getLong(Map map, String attr) { Object value = getObject(map, attr); if (StringUtils.isEmpty(value)) { return null; } return Long.valueOf(value.toString()); } @SuppressWarnings("rawtypes") public static List getLongs(Map map, String attr) { List values = new ArrayList(); Object value = getObject(map, attr); if (value == null) { return null; } if (!(value instanceof List)) { return null; } for (Object obj : (List) value) { values.add(Long.valueOf(obj.toString())); } return values; } public static Double getDouble(Map map, String attr) { Object value = getObject(map, attr); if (StringUtils.isEmpty(value)) { return null; } return Double.valueOf(value.toString()); } public static List getDoubles(Map map, String attr) { List values = new ArrayList(); Object value = getObject(map, attr); if (value == null) { return null; } if (!(value instanceof List)) { return null; } for (Object obj : (List) value) { values.add(Double.valueOf(obj.toString())); } return values; } @SuppressWarnings("rawtypes") public static List getStrings(Map map, String attr) { List values = new ArrayList(); Object value = getObject(map, attr); if (value == null) { return null; } if (!(value instanceof List)) { return null; } for (Object obj : (List) value) { values.add(obj.toString()); } return values; } public static Integer getInteger(Map map, String attr) { Object value = getObject(map, attr); if (StringUtils.isEmpty(value)) { return null; } return Integer.valueOf(value.toString()); } /** * 값이 null 또는 ""이면 null을 반환한다. * * @param map * @param attr * @return */ public static String getString(Map map, String attr) { Object value = getObject(map, attr); if (StringUtils.isEmpty(value)) { return null; } return value.toString(); } public static String getString(Map map, String attr, String defaultValue) { Object value = getObject(map, attr); if (StringUtils.isEmpty(value)) { return defaultValue; } return value.toString(); } /** * @param map * @param attr * @return */ public static Object getObject(Map map, String attr) { if (map == null) { return null; } return map.get(attr); } public static Boolean getBoolean(Map map, String attr) { if (map != null) { Object value = map.get(attr); if (value != null) { if (value instanceof String) { if ("".equals(value)) { return null; } if ("Y".equals(value)) { return Boolean.TRUE; } else { return Boolean.FALSE; } } else { return Boolean.valueOf(value.toString()); } } } return null; } @SuppressWarnings("rawtypes") public static Map getMap(Map map, String attr) { if (map == null) { return null; } Object value = map.get(attr); if (value == null) { return null; } if (!(value instanceof Map)) { return null; } Map retval = new HashMap(); for (Iterator iter = ((Map) value).keySet().iterator(); iter.hasNext();) { Object key = iter.next(); if (retval.containsKey(key)) { log.error("맵에 중복된 Key가 존재합니다."); return null; } retval.put(Long.valueOf(key.toString()), ((Map) value).get(key).toString()); } return retval; } }