package org.opennms.features.gwt.combobox.client.rest;
import java.util.ArrayList;
import java.util.List;
import org.opennms.features.gwt.combobox.client.view.NodeDetail;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
public class NodeRestResponseMapper {
public static List<NodeDetail> mapNodeJSONtoNodeDetail(String jsonString){
List<NodeDetail> nodeDetails = new ArrayList<NodeDetail>();
JSONObject jsonObject = JSONParser.parseStrict(jsonString).isObject();
if(jsonObject != null && jsonObject.containsKey("node")) {
if(jsonObject.get("node").isObject() != null) {
JSONObject jso = jsonObject.get("node").isObject();
nodeDetails.add(createNodeDetailsOverlay(jso.getJavaScriptObject()));
}else if(jsonObject.get("node").isArray() != null) {
JSONArray jArray = jsonObject.get("node").isArray();
JsArray<NodeDetail> nodedetails = createNodeDetailsArray(jArray.getJavaScriptObject());
for(int i = 0; i < nodedetails.length(); i++) {
if(!nodedetails.get(i).getNodeType().equals("D")) {
nodeDetails.add(nodedetails.get(i));
}
}
}
}
return nodeDetails;
}
private static native NodeDetail createNodeDetailsOverlay(JavaScriptObject jso) /*-{
return jso;
}-*/;
private static native JsArray<NodeDetail> createNodeDetailsArray(JavaScriptObject jso) /*-{
return jso;
}-*/;
}