stio-model.1.6.5-Beta6.source-code.istio-mappings-provider.vm Maven / Gradle / Ivy
package me.snowdrop.istio.api.model;
import io.fabric8.kubernetes.api.KubernetesResourceMappingProvider;
import io.fabric8.kubernetes.api.model.KubernetesResource;
import java.util.HashMap;
import java.util.Map;
public class IstioResourceMappingsProvider implements KubernetesResourceMappingProvider {
public final Map> mappings = new HashMap<>();
public IstioResourceMappingsProvider () {
#foreach ($key in ${model.keySet()})
#set ($length = $key.length())
#set ($tindex = $length - 4)
#set ($resource = $key.substring(0, $tindex))
#set ($version = "unknown")
#set ($kind = "unknown")
#set ($annotations = $model.get($key).annotations)
#foreach ($annotation in $annotations)
#if ($annotation.getClassRef().getName().equals("IstioApiVersion"))
#set ($version = $annotation.getParameters().get("value"))
#end
#if ($annotation.getClassRef().getName().equals("IstioKind"))
#set ($kind = $annotation.getParameters().get("name"))
#end
#end
mappings.put("$version#$kind", ${resource}.class);
#end
}
public Map> getMappings() {
return mappings;
}
}