package nl.fontys.sofa.limo.domain.component.serialization; 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; import java.lang.reflect.Type; import nl.fontys.sofa.limo.domain.component.procedure.value.RangeValue; import nl.fontys.sofa.limo.domain.component.procedure.value.SingleValue; import nl.fontys.sofa.limo.domain.component.procedure.value.Value; /** * Deserializes a Value from JSON to a Java Object. * * @author Convict42 */ public class ValueDeserializer implements JsonDeserializer<Value> { @Override public Value deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { JsonObject obj = json.getAsJsonObject(); double ele1 = obj.get("Min").getAsDouble(); double ele2 = obj.get("Max").getAsDouble(); if (ele1 == ele2) { return new SingleValue(ele1); } else { return new RangeValue(ele1, ele2); } } }