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

com.alogic.kube.model.CommonObject Maven / Gradle / Ivy

package com.alogic.kube.model;

import com.anysoft.util.JsonTools;
import io.kubernetes.client.common.KubernetesObject;
import io.kubernetes.client.openapi.models.V1ObjectMeta;

import java.util.Map;
import java.util.TreeMap;

/**
 * 通用k8s对象
 */
public class CommonObject extends TreeMap implements KubernetesObject {
    public static final String SERIALIZED_NAME_API_VERSION = "apiVersion";
    public static final String SERIALIZED_NAME_KIND = "kind";
    public static final String SERIALIZED_NAME_METADATA = "metadata";
    private V1ObjectMeta metadata = null;
    @Override
    public V1ObjectMeta getMetadata() {
        if (metadata == null){
            synchronized (this){
                if (metadata == null){
                    Map meta = (Map)get(SERIALIZED_NAME_METADATA);
                    if (meta != null){
                        metadata = new V1ObjectMeta();
                        metadata.setNamespace(JsonTools.getString(meta,V1ObjectMeta.SERIALIZED_NAME_NAMESPACE,null));
                        metadata.setName(JsonTools.getString(meta,V1ObjectMeta.SERIALIZED_NAME_NAME,null));
                        metadata.setResourceVersion(JsonTools.getString(meta,V1ObjectMeta.SERIALIZED_NAME_RESOURCE_VERSION,null));
                    }
                }
            }
        }
        return metadata;
    }

    @Override
    public String getApiVersion() {
        return JsonTools.getString(this,SERIALIZED_NAME_API_VERSION,null);
    }

    @Override
    public String getKind() {
        return JsonTools.getString(this,SERIALIZED_NAME_KIND,null);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy