package fr.paug.androidmakers.util;
import android.text.TextUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import fr.paug.androidmakers.model.Partners;
import fr.paug.androidmakers.model.SocialNetworkHandle;
public final class MapUtil {
private MapUtil() {
// no instance
}
public static int getInt(Map map, String key, int defaultValue) {
return getInt(map.get(key), defaultValue);
}
public static int getInt(Object object, int defaultValue) {
if (object instanceof Integer) {
return (Integer) object;
} else if (object instanceof Long) {
return ((Long) object).intValue();
} else {
return defaultValue;
}
}
public static String getString(Map map, String key) {
Object object = map.get(key);
if (object instanceof String) {
return (String) object;
} else {
return null;
}
}
public static List<SocialNetworkHandle> getSocialItems(Map map, String key) {
final Object object = map.get(key);
if (object instanceof List) {
List<SocialNetworkHandle> socialNetworkHandles = null;
for (Object socialItem : ((List) object)) {
if (socialItem instanceof Map) {
final String name = getString((Map) socialItem, "name");
final String link = getString((Map) socialItem, "link");
if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(link)) {
if (socialNetworkHandles == null) {
socialNetworkHandles = new ArrayList<>();
}
socialNetworkHandles.add(new SocialNetworkHandle(name, link));
}
}
}
return socialNetworkHandles;
} else {
return null;
}
}
public static List<Partners> getPartnerList(Map map, String key) {
final Object object = map.get(key);
if (object instanceof List) {
List<Partners> partnersList = null;
for (Object partner : ((List) object)) {
if (partner instanceof Map) {
final String name = getString((Map) partner, "name");
final String link = getString((Map) partner, "link");
final String imageUrl = getString((Map) partner, "imageUrl");
final String description = getString((Map) partner, "description");
if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(imageUrl)) {
if (partnersList == null) {
partnersList = new ArrayList<>();
}
partnersList.add(new Partners(name, imageUrl, link, description));
}
}
}
return partnersList;
} else {
return null;
}
}
public static int[] getIntArray(Map map, String key) {
Object object = map.get(key);
if (object instanceof List) {
List list = (List) object;
int[] result = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
int value = getInt(list.get(i), -1);
if (value < 0) {
return null;
}
result[i] = value;
}
return result;
} else {
return null;
}
}
}