/**
* Inspects the headers object of the given JS object and constructs a
* {@link Map} of its keys and values.
*/
private static Map<String, HeaderValue> createHeadersMap(DynamicJso data) {
DynamicJso headers = data.get("headers");
JsArrayString keys = headers.keys();
Map<String, HeaderValue> headersMap = Maps.newHashMapWithExpectedSize(keys.length());
for (int i = 0; i < keys.length(); i++) {
String key = keys.get(i);
String value = "";
switch (headers.typeofKey(key)) {
case STRING:
value = headers.getString(key);
break;
case BOOLEAN:
value = String.valueOf(headers.getBoolean(key));
break;
case NUMBER:
value = String.valueOf(headers.getInteger(key));
break;
case INTEGER:
value = String.valueOf(headers.getDouble(key));
break;
}
headersMap.put(key.toLowerCase(), new HeaderValue(key, value));
}