diff options
Diffstat (limited to 'src/main/java/org/onap/sdc/dcae/composition/model/deserializer/RequirementDeserializer.java')
-rw-r--r-- | src/main/java/org/onap/sdc/dcae/composition/model/deserializer/RequirementDeserializer.java | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/main/java/org/onap/sdc/dcae/composition/model/deserializer/RequirementDeserializer.java b/src/main/java/org/onap/sdc/dcae/composition/model/deserializer/RequirementDeserializer.java new file mode 100644 index 0000000..ca2deef --- /dev/null +++ b/src/main/java/org/onap/sdc/dcae/composition/model/deserializer/RequirementDeserializer.java @@ -0,0 +1,49 @@ +package org.onap.sdc.dcae.composition.model.deserializer; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.onap.sdc.dcae.composition.model.Capability; +import org.onap.sdc.dcae.composition.model.NodeFilter; +import org.onap.sdc.dcae.composition.model.Relationship; +import org.onap.sdc.dcae.composition.model.Requirement; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; + +public class RequirementDeserializer implements JsonDeserializer<Requirement>{ + + public Requirement deserialize(JsonElement je, Type type, JsonDeserializationContext jdc)throws JsonParseException{ + Gson gson = new Gson(); + + JsonObject jo = je.getAsJsonObject(); + + Requirement requirement = new Requirement(); + + requirement.setCapability(jo.get("capability")!=null ? gson.fromJson(jo.get("capability"), Capability.class) : null); + requirement.setName(jo.get("name")!=null ? jo.get("name").getAsString() : null); + requirement.setRelationship(jo.get("relationship")!=null ? gson.fromJson(jo.get("relationship"), Relationship.class) : null); + requirement.setNodeFilter(jo.get("node_filter")!=null ? gson.fromJson(jo.get("node_filter"), NodeFilter.class) : null); + requirement.setNode(jo.get("node")!=null ? jo.get("node").getAsString() : null); + + JsonArray occurrences = jo.getAsJsonArray("occurrences"); + if(occurrences!=null){ + Iterator<JsonElement> it = occurrences.iterator(); + List<String> occurrencesList = new ArrayList<String>(); + while(it.hasNext()){ + JsonElement curr = it.next(); + String occurance = curr.getAsString(); + occurrencesList.add(occurance); + } + requirement.setOccurrences(occurrencesList); + } + + return requirement; + } +} |