summaryrefslogtreecommitdiffstats
path: root/dcaedt_be/src/main/java/org/onap/sdc/dcae/ves/VesJsonDeserializer.java
diff options
context:
space:
mode:
Diffstat (limited to 'dcaedt_be/src/main/java/org/onap/sdc/dcae/ves/VesJsonDeserializer.java')
-rw-r--r--dcaedt_be/src/main/java/org/onap/sdc/dcae/ves/VesJsonDeserializer.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/dcaedt_be/src/main/java/org/onap/sdc/dcae/ves/VesJsonDeserializer.java b/dcaedt_be/src/main/java/org/onap/sdc/dcae/ves/VesJsonDeserializer.java
new file mode 100644
index 0000000..f5cfd2a
--- /dev/null
+++ b/dcaedt_be/src/main/java/org/onap/sdc/dcae/ves/VesJsonDeserializer.java
@@ -0,0 +1,20 @@
+package org.onap.sdc.dcae.ves;
+
+import com.google.gson.*;
+
+import java.lang.reflect.Type;
+
+// json 'items' value can be either a single object or an array. customized POJO will always be an array
+public class VesJsonDeserializer implements JsonDeserializer<VesDataItemsDefinition> {
+ @Override
+ public VesDataItemsDefinition deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
+
+ if(json instanceof JsonArray){
+ return new Gson().fromJson(json, VesDataItemsDefinition.class);
+ }
+
+ VesDataItemsDefinition items = new VesDataItemsDefinition();
+ items.add(new Gson().fromJson(json, VesDataTypeDefinition.class));
+ return items;
+ }
+}