All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.launchdarkly.sdk.android.FlagsResponseSerialization Maven / Gradle / Ivy

package com.launchdarkly.sdk.android;

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 java.util.ArrayList;
import java.util.Map;

class FlagsResponseSerialization implements JsonDeserializer {
    @Override
    public FlagsResponse deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
        JsonObject o = json.getAsJsonObject();
        if (o == null) {
            return null;
        }
        ArrayList flags = new ArrayList<>();
        for (Map.Entry flagJson : o.entrySet()) {
            String flagKey = flagJson.getKey();
            JsonElement flagBody = flagJson.getValue();
            JsonObject flagBodyObject = flagBody.getAsJsonObject();
            if (flagBodyObject != null) {
                flagBodyObject.addProperty("key", flagKey);
            }
            Flag flag = context.deserialize(flagBodyObject, Flag.class);
            if (flag != null) {
                flags.add(flag);
            }
        }

        return new FlagsResponse(flags);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy