package pt.ist.internalBilling.util;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collector;
import java.util.stream.Collector.Characteristics;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class Utils {
public static <T extends JsonElement> Collector<T, JsonArray, JsonArray> toJsonArray() {
return Collector.of(JsonArray::new, (array, element) -> array.add(element), (one, other) -> {
one.addAll(other);
return one;
}, Characteristics.IDENTITY_FINISH);
}
public static Map<String, String> toMap(final String json, final String key, final String value) {
final JsonArray array = new JsonParser().parse(json).getAsJsonArray();
return toMap(array, key, value);
}
public static Map<String, String> toMap(final JsonArray array, final String key, final String value) {
final Map<String, String> map = new HashMap<String, String>();
array.forEach(e -> put(map, e, key, value));
return map;
}
private static void put(final Map<String, String> map, final JsonElement e, final String key, final String value) {
final JsonObject o = e.getAsJsonObject();
map.put(o.get(key).getAsString(), o.get(value).getAsString());
}
}