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

com.capitalone.dashboard.model.adapter.FeatureFlagAdapter Maven / Gradle / Ivy

There is a newer version: 4.0.2
Show newest version
package com.capitalone.dashboard.model.adapter;

import com.capitalone.dashboard.model.FeatureFlag;
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.Map;
import java.util.Set;
import java.util.TreeMap;

public class FeatureFlagAdapter implements JsonDeserializer {


    @Override
    public FeatureFlag deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
        FeatureFlag featureFlag = new FeatureFlag();
        JsonObject jsonObject = jsonElement.getAsJsonObject();
        if (jsonObject == null) return null;
        Map b = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
        JsonObject flags = jsonObject.getAsJsonObject("flags");
        Set> entries = flags.entrySet();
        for (Map.Entry entry: entries) {
          b.put(entry.getKey(),getBoolean(flags, entry.getKey()));
        }
        featureFlag.setFlags(b);
        featureFlag.setName(getStringValue(jsonObject,"name"));
        featureFlag.setDescription(getStringValue(jsonObject,"description"));
        return featureFlag;
    }

    private boolean getBoolean(JsonObject jsonObject, String key) {
        if (jsonObject == null || jsonObject.get(key) == null) return false;
        return jsonObject.get(key).getAsBoolean();
    }
    private String getStringValue(JsonObject jsonObject, String key) {
        if (jsonObject == null || jsonObject.get(key) == null) return null;
        return jsonObject.get(key).getAsString();
    }


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy