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

me.snowdrop.istio.api.internal.IstioListDeserializer Maven / Gradle / Ivy

/**
 * Copyright 2018 Red Hat, Inc. and/or its affiliates.
 * 

* Licensed under the Eclipse Public License version 1.0, available at * http://www.eclipse.org/legal/epl-v10.html */ package me.snowdrop.istio.api.internal; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; import io.fabric8.kubernetes.api.model.ListMeta; import me.snowdrop.istio.api.model.IstioResource; import me.snowdrop.istio.api.model.IstioResourceList; import java.io.IOException; import java.util.ArrayList; /** * @author */ public class IstioListDeserializer extends JsonDeserializer { private static final String KIND = "kind"; @Override public IstioResourceList deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { ObjectNode node = p.readValueAsTree(); JsonNode kindNode = node.get(KIND); if (kindNode != null) { final String kind = kindNode.textValue(); final String apiVersion = node.get("apiVersion").textValue(); // deserialize metadata final JsonNode metadataNode = node.get("metadata"); final ListMeta metadata = p.getCodec().treeToValue(metadataNode, ListMeta.class); // deserialize items final JsonNode itemsNode = node.get("items"); final ArrayList items = new ArrayList(); for (final JsonNode elementNode: itemsNode) { IstioResource resource = p.getCodec().treeToValue(elementNode, IstioResource.class); items.add(resource); } return new IstioResourceList(apiVersion, items, kind, metadata); } throw new IllegalArgumentException("Cannot process resources without a 'kind' field"); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy