X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fmodelloader%2Fgizmo%2FGizmoVertexOperation.java;fp=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fmodelloader%2Fgizmo%2FGizmoVertexOperation.java;h=3adc284bdfa119c4a684baf31d82ead265a90d8e;hb=270656abb1ed24930b2f9e57f5bef659494f5e8e;hp=0000000000000000000000000000000000000000;hpb=5209f42102348d19a389017c1717f0edc3733b36;p=aai%2Fmodel-loader.git diff --git a/src/main/java/org/onap/aai/modelloader/gizmo/GizmoVertexOperation.java b/src/main/java/org/onap/aai/modelloader/gizmo/GizmoVertexOperation.java new file mode 100644 index 0000000..3adc284 --- /dev/null +++ b/src/main/java/org/onap/aai/modelloader/gizmo/GizmoVertexOperation.java @@ -0,0 +1,94 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-2018 European Software Marketing Ltd. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.aai.modelloader.gizmo; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +public class GizmoVertexOperation { + private String operation; + private String internalId; + private GizmoVertex vertex; + + public GizmoVertexOperation(String op, String id, GizmoVertex vertex) { + this.operation = op; + this.internalId = id; + this.vertex = vertex; + } + + public JsonElement toJsonElement() { + JsonObject opObj = new JsonObject(); + JsonParser parser = new JsonParser(); + JsonObject vertexObj = parser.parse(vertex.toJson()).getAsJsonObject(); + + opObj.addProperty(GizmoBulkPayload.OP_KEY, getOperation()); + opObj.add(internalId, vertexObj); + + return opObj; + } + + public static GizmoVertexOperation fromJsonElement(JsonElement element) { + List> entries = + new ArrayList>(element.getAsJsonObject().entrySet()); + + String op = null; + String id = null; + GizmoVertex vertex = null; + + for (Map.Entry entry : entries) { + if (entry.getKey().equalsIgnoreCase(GizmoBulkPayload.OP_KEY)) { + op = entry.getValue().getAsString(); + } + else { + id = entry.getKey(); + vertex = GizmoVertex.fromJson(entry.getValue().getAsJsonObject().toString()); + } + } + + if (op == null) { + // Use default + op = GizmoBulkPayload.EXISTS_OP; + } + + return new GizmoVertexOperation(op, id, vertex); + } + + public String getOperation() { + return operation; + } + + public void setOperation(String op) { + operation = op; + } + + public String getInternalId() { + return internalId; + } + + public GizmoVertex getVertex() { + return vertex; + } +}