* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017 Amdocs
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.datarouter.query;
import java.util.List;
import java.util.Map;
+import javax.ws.rs.core.Response.Status;
+
import org.apache.camel.Exchange;
+import org.onap.aai.datarouter.exception.DataRouterException;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
public class ChameleonResponseBuiler {
- public static void buildEntity(Exchange exchange, String ID){
- String response = exchange.getIn().getBody().toString();
+ private static final String SOURCE = "source";
+ private static final String TARGET = "target";
+ private static final String TYPE = "type";
+
+ public static String buildEntity(String chameleonResponse, String id) throws DataRouterException{
+
JsonParser parser = new JsonParser();
- JsonObject root = parser.parse(response).getAsJsonObject();
+ JsonObject root = parser.parse(chameleonResponse).getAsJsonObject();
JsonObject champResponse = new JsonObject();
- if (!root.has("type")) {
- exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, 400);
- return ;
+ if (!root.has(TYPE)) {
+ throw new DataRouterException("Chameloen response does not have type : "+chameleonResponse , Status.BAD_REQUEST);
}
- champResponse.addProperty("key", ID);
- champResponse.addProperty("type", root.get("type").getAsString());
- if (root.has("source")) {
- champResponse.add("source", root.get("source"));
+ champResponse.addProperty("key", id);
+ champResponse.addProperty(TYPE, root.get(TYPE).getAsString());
+ if (root.has(SOURCE)) {
+ champResponse.add(SOURCE, root.get(SOURCE));
}
- if (root.has("target")) {
- champResponse.add("target", root.get("target"));
+ if (root.has(TARGET)) {
+ champResponse.add(TARGET, root.get(TARGET));
}
JsonObject props = new JsonObject();
List<Map.Entry<String, JsonElement>> entries = new ArrayList<Map.Entry<String, JsonElement>>(
root.getAsJsonObject().entrySet());
for (Map.Entry<String, JsonElement> e : entries) {
- if (!e.getKey().equals("type") && !e.getKey().equals("source") && !e.getKey().equals("target")) {
- if (e.getKey().equals("source")) {
-
- }
+ if (!TYPE.equals(e.getKey()) && !SOURCE.equals(e.getKey()) && !TARGET.equals(e.getKey())) {
props.addProperty(e.getKey(), e.getValue().getAsString());
}
champResponse.add("properties", props);
- exchange.getIn().setBody(champResponse.toString());
+ return champResponse.toString();
}
- public static void buildObjectRelationship(Exchange exchange, String ID){
+ public static String buildObjectRelationship(String chameleonResponse, String id){
//TODO: implement when chameleon supports this query
+ return "[]";
}
- public static void buildCollection(Exchange exchange){
+ public static String buildCollection(String chameleonResponse){
//TODO: implement when chameleon supports this query
+ return "[]";
+
}