public class io.fabric.crd.generator.CRDGenerator extends java.lang.Object
{
private static final org.slf4j.Logger LOGGER;
private final io.fabric.crd.generator.Resources resources;
private final java.util.Map handlers;
private io.fabric.crd.generator.CRDGenerator$CRDOutput output;
private java.util.Set infos;
private static final com.fasterxml.jackson.databind.ObjectMapper YAML_MAPPER;
public void <init>()
{
io.fabric.crd.generator.CRDGenerator v;
java.util.HashMap v;
io.fabric.crd.generator.Resources v;
v := @this: io.fabric.crd.generator.CRDGenerator;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>(int)>(2);
v.<io.fabric.crd.generator.CRDGenerator: java.util.Map handlers> = v;
v = new io.fabric.crd.generator.Resources;
specialinvoke v.<io.fabric.crd.generator.Resources: void <init>()>();
v.<io.fabric.crd.generator.CRDGenerator: io.fabric.crd.generator.Resources resources> = v;
return;
}
public io.fabric.crd.generator.CRDGenerator inOutputDir(java.io.File)
{
io.fabric.crd.generator.CRDGenerator v;
io.fabric.crd.generator.CRDGenerator$DirCRDOutput v;
java.io.File v;
v := @this: io.fabric.crd.generator.CRDGenerator;
v := @parameter: java.io.File;
v = new io.fabric.crd.generator.CRDGenerator$DirCRDOutput;
specialinvoke v.<io.fabric.crd.generator.CRDGenerator$DirCRDOutput: void <init>(java.io.File)>(v);
v.<io.fabric.crd.generator.CRDGenerator: io.fabric.crd.generator.CRDGenerator$CRDOutput output> = v;
return v;
}
public io.fabric.crd.generator.CRDGenerator withOutput(io.fabric.crd.generator.CRDGenerator$CRDOutput)
{
io.fabric.crd.generator.CRDGenerator v;
io.fabric.crd.generator.CRDGenerator$CRDOutput v;
v := @this: io.fabric.crd.generator.CRDGenerator;
v := @parameter: io.fabric.crd.generator.CRDGenerator$CRDOutput;
v.<io.fabric.crd.generator.CRDGenerator: io.fabric.crd.generator.CRDGenerator$CRDOutput output> = v;
return v;
}
public io.fabric.crd.generator.CRDGenerator forCRDVersions(java.util.List)
{
io.fabric.crd.generator.CRDGenerator v, v;
java.util.List v;
java.lang.Object[] v;
java.lang.String[] v;
boolean v;
v := @this: io.fabric.crd.generator.CRDGenerator;
v := @parameter: java.util.List;
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = newarray (java.lang.String)[0];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = virtualinvoke v.<io.fabric.crd.generator.CRDGenerator: io.fabric.crd.generator.CRDGenerator forCRDVersions(java.lang.String[])>(v);
goto label;
label:
v = v;
label:
return v;
}
public transient io.fabric.crd.generator.CRDGenerator forCRDVersions(java.lang.String[])
{
org.slf4j.Logger v;
java.lang.String[] v;
java.util.function.Function v, v;
io.fabric.crd.generator.CRDGenerator v;
byte v;
java.util.Map v, v;
int v, v, v;
java.lang.String v;
boolean v, v;
v := @this: io.fabric.crd.generator.CRDGenerator;
v := @parameter: java.lang.String[];
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v == null goto label;
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -1152291162: goto label;
case 3707: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("v1");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("v1beta1");
if v == 0 goto label;
v = 1;
label:
lookupswitch(v)
{
case 0: goto label;
case 1: goto label;
default: goto label;
};
label:
v = v.<io.fabric.crd.generator.CRDGenerator: java.util.Map handlers>;
v = staticinvoke <io.fabric.crd.generator.CRDGenerator$lambda_forCRDVersions_0__15: java.util.function.Function bootstrap$(io.fabric.crd.generator.CRDGenerator)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>("v1", v);
goto label;
label:
v = v.<io.fabric.crd.generator.CRDGenerator: java.util.Map handlers>;
v = staticinvoke <io.fabric.crd.generator.CRDGenerator$lambda_forCRDVersions_1__14: java.util.function.Function bootstrap$(io.fabric.crd.generator.CRDGenerator)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>("v1beta1", v);
goto label;
label:
v = <io.fabric.crd.generator.CRDGenerator: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Ignoring unsupported CRD version: {}", v);
label:
v = v + 1;
goto label;
label:
return v;
}
java.util.Map getHandlers()
{
io.fabric.crd.generator.CRDGenerator v;
java.util.Map v;
v := @this: io.fabric.crd.generator.CRDGenerator;
v = v.<io.fabric.crd.generator.CRDGenerator: java.util.Map handlers>;
return v;
}
public transient io.fabric.crd.generator.CRDGenerator customResourceClasses(java.lang.Class[])
{
java.lang.Object[] v;
java.lang.Class[] v;
java.util.function.Function v;
io.fabric.crd.generator.CRDGenerator v, v;
java.util.stream.Stream v, v;
java.util.function.IntFunction v;
v := @this: io.fabric.crd.generator.CRDGenerator;
v := @parameter: java.lang.Class[];
v = staticinvoke <java.util.stream.Stream: java.util.stream.Stream of(java.lang.Object[])>(v);
v = staticinvoke <io.fabric.crd.generator.CRDGenerator$fromClass__16: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <io.fabric.crd.generator.CRDGenerator$lambda_customResourceClasses_2__17: java.util.function.IntFunction bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object[] toArray(java.util.function.IntFunction)>(v);
v = virtualinvoke v.<io.fabric.crd.generator.CRDGenerator: io.fabric.crd.generator.CRDGenerator customResources(io.fabric.crd.generator.CustomResourceInfo[])>(v);
return v;
}
public transient io.fabric.crd.generator.CRDGenerator customResources(io.fabric.crd.generator.CustomResourceInfo[])
{
java.util.function.Predicate v;
java.util.Set v, v;
io.fabric.crd.generator.CRDGenerator v;
java.util.HashSet v;
java.util.stream.Stream v, v;
java.lang.Object v;
io.fabric.crd.generator.CustomResourceInfo[] v;
java.util.stream.Collector v;
v := @this: io.fabric.crd.generator.CRDGenerator;
v := @parameter: io.fabric.crd.generator.CustomResourceInfo[];
if v == null goto label;
v = staticinvoke <java.util.Arrays: java.util.stream.Stream stream(java.lang.Object[])>(v);
v = staticinvoke <io.fabric.crd.generator.CRDGenerator$nonNull__18: java.util.function.Predicate bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toList()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v = v.<io.fabric.crd.generator.CRDGenerator: java.util.Set infos>;
if v != null goto label;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
v.<io.fabric.crd.generator.CRDGenerator: java.util.Set infos> = v;
goto label;
label:
v = v.<io.fabric.crd.generator.CRDGenerator: java.util.Set infos>;
interfaceinvoke v.<java.util.Set: boolean addAll(java.util.Collection)>(v);
label:
return v;
}
java.util.Set getCustomResourceInfos()
{
io.fabric.crd.generator.CRDGenerator v;
java.util.Set v, v;
v := @this: io.fabric.crd.generator.CRDGenerator;
v = v.<io.fabric.crd.generator.CRDGenerator: java.util.Set infos>;
if v != null goto label;
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
goto label;
label:
v = v.<io.fabric.crd.generator.CRDGenerator: java.util.Set infos>;
label:
return v;
}
public int generate()
{
byte[] v;
io.fabric.crd.generator.CRDGenerator v;
java.util.Map v, v;
java.net.URI v;
boolean v, v, v, v, v;
java.util.Collection v;
java.util.Set v, v, v;
java.util.List v;
io.fabric.kubernetes.api.model.ObjectMeta v;
java.lang.StringBuilder v, v, v, v, v, v;
java.lang.Throwable v;
java.lang.String[] v;
java.util.HashMap v;
io.fabric.crd.generator.Resources v;
int v, v;
io.fabric.crd.generator.CRDGenerator$CRDOutput v, v, v;
java.lang.String v, v, v, v, v, v, v;
java.io.OutputStream v;
io.fabric.kubernetes.api.model.KubernetesList v;
org.slf4j.Logger v, v, v;
java.util.Iterator v, v;
com.fasterxml.jackson.databind.ObjectMapper v;
java.io.IOException v;
java.lang.RuntimeException v;
java.util.function.Consumer v;
java.lang.Object v, v, v;
v := @this: io.fabric.crd.generator.CRDGenerator;
v = virtualinvoke v.<io.fabric.crd.generator.CRDGenerator: java.util.Set getCustomResourceInfos()>();
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
v = <io.fabric.crd.generator.CRDGenerator: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("No resources were registered with the \'customResources\' method to be generated");
return 0;
label:
v = v.<io.fabric.crd.generator.CRDGenerator: io.fabric.crd.generator.CRDGenerator$CRDOutput output>;
if v != null goto label;
v = <io.fabric.crd.generator.CRDGenerator: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("No output option was selected either using \'inOutputDir\' or \'withOutput\' methods. Skipping generation.");
return 0;
label:
v = v.<io.fabric.crd.generator.CRDGenerator: java.util.Map handlers>;
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v == 0 goto label;
v = newarray (java.lang.String)[2];
v[0] = "v1";
v[1] = "v1beta1";
virtualinvoke v.<io.fabric.crd.generator.CRDGenerator: io.fabric.crd.generator.CRDGenerator forCRDVersions(java.lang.String[])>(v);
label:
v = new java.util.HashMap;
v = v.<io.fabric.crd.generator.CRDGenerator: java.util.Set infos>;
v = interfaceinvoke v.<java.util.Set: int size()>();
specialinvoke v.<java.util.HashMap: void <init>(int)>(v);
v = v.<io.fabric.crd.generator.CRDGenerator: java.util.Set infos>;
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
if v == null goto label;
v = v.<io.fabric.crd.generator.CRDGenerator: java.util.Map handlers>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = staticinvoke <io.fabric.crd.generator.CRDGenerator$lambda_generate_3__19: java.util.function.Consumer bootstrap$(io.fabric.crd.generator.CRDGenerator,java.util.Map,io.fabric.crd.generator.CustomResourceInfo)>(v, v, v);
interfaceinvoke v.<java.util.Collection: void forEach(java.util.function.Consumer)>(v);
goto label;
label:
v = null;
v = 0;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = v.<io.fabric.crd.generator.CRDGenerator: io.fabric.crd.generator.Resources resources>;
v = virtualinvoke v.<io.fabric.crd.generator.Resources: io.fabric.kubernetes.api.model.KubernetesList generate()>();
v = virtualinvoke v.<io.fabric.kubernetes.api.model.KubernetesList: java.util.List getItems()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.HasMetadata: java.lang.String getApiVersion()>();
v = staticinvoke <io.fabric.kubernetes.client.utils.ApiVersionUtil: java.lang.String trimVersion(java.lang.String)>(v);
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.HasMetadata: io.fabric.kubernetes.api.model.ObjectMeta getMetadata()>();
v = virtualinvoke v.<io.fabric.kubernetes.api.model.ObjectMeta: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n");
label:
v = staticinvoke <io.fabric.crd.generator.CRDGenerator: java.lang.String getOutputName(java.lang.String,java.lang.String)>(v, v);
v = v.<io.fabric.crd.generator.CRDGenerator: io.fabric.crd.generator.CRDGenerator$CRDOutput output>;
v = interfaceinvoke v.<io.fabric.crd.generator.CRDGenerator$CRDOutput: java.io.OutputStream outputFor(java.lang.String)>(v);
label:
v = "# Generated by Fabric CRDGenerator, manual edits might get overwritten!\n";
v = virtualinvoke v.<java.lang.String: byte[] getBytes()>();
virtualinvoke v.<java.io.OutputStream: void write(byte[])>(v);
v = <io.fabric.crd.generator.CRDGenerator: com.fasterxml.jackson.databind.ObjectMapper YAML_MAPPER>;
virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: void writeValue(java.io.OutputStream,java.lang.Object)>(v, v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\t- ");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" CRD -> ");
v = v.<io.fabric.crd.generator.CRDGenerator: io.fabric.crd.generator.CRDGenerator$CRDOutput output>;
v = interfaceinvoke v.<io.fabric.crd.generator.CRDGenerator$CRDOutput: java.net.URI crdURI(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n");
label:
virtualinvoke v.<java.io.OutputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = v;
v = v + 1;
goto label;
label:
v = <io.fabric.crd.generator.CRDGenerator: org.slf4j.Logger LOGGER>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
return v;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
}
private void createInfoMessage(java.util.Map, io.fabric.crd.generator.CustomResourceInfo)
{
java.lang.Object[] v;
io.fabric.crd.generator.CRDGenerator v;
io.fabric.crd.generator.CustomResourceInfo v;
java.util.Map v;
java.util.Optional v, v;
java.lang.Object v, v;
java.lang.String v, v, v, v;
v := @this: io.fabric.crd.generator.CRDGenerator;
v := @parameter: java.util.Map;
v := @parameter: io.fabric.crd.generator.CustomResourceInfo;
v = virtualinvoke v.<io.fabric.crd.generator.CustomResourceInfo: java.lang.String crdName()>();
v = newarray (java.lang.Object)[5];
v[0] = v;
v = virtualinvoke v.<io.fabric.crd.generator.CustomResourceInfo: java.lang.String version()>();
v[1] = v;
v = virtualinvoke v.<io.fabric.crd.generator.CustomResourceInfo: java.lang.String crClassName()>();
v[2] = v;
v = virtualinvoke v.<io.fabric.crd.generator.CustomResourceInfo: java.util.Optional specClassName()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>("undetermined");
v[3] = v;
v = virtualinvoke v.<io.fabric.crd.generator.CustomResourceInfo: java.util.Optional statusClassName()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>("undetermined");
v[4] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Created \'%s\' version \'%s\' with %s (spec: %s / status %s):", v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return;
}
public static java.lang.String getOutputName(java.lang.String, java.lang.String)
{
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001-\u0001");
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
com.fasterxml.jackson.databind.ObjectMapper v, v, v, v;
com.fasterxml.jackson.dataformat.yaml.YAMLFactory v, v, v, v;
com.fasterxml.jackson.databind.SerializationFeature v, v, v;
com.fasterxml.jackson.dataformat.yaml.YAMLGenerator$Feature v, v, v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lio/fabric8/crd/generator/CRDGenerator;");
<io.fabric.crd.generator.CRDGenerator: org.slf4j.Logger LOGGER> = v;
v = new com.fasterxml.jackson.databind.ObjectMapper;
v = new com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
specialinvoke v.<com.fasterxml.jackson.dataformat.yaml.YAMLFactory: void <init>()>();
v = <com.fasterxml.jackson.dataformat.yaml.YAMLGenerator$Feature: com.fasterxml.jackson.dataformat.yaml.YAMLGenerator$Feature MINIMIZE_QUOTES>;
v = virtualinvoke v.<com.fasterxml.jackson.dataformat.yaml.YAMLFactory: com.fasterxml.jackson.dataformat.yaml.YAMLFactory enable(com.fasterxml.jackson.dataformat.yaml.YAMLGenerator$Feature)>(v);
v = <com.fasterxml.jackson.dataformat.yaml.YAMLGenerator$Feature: com.fasterxml.jackson.dataformat.yaml.YAMLGenerator$Feature ALWAYS_QUOTE_NUMBERS_AS_STRINGS>;
v = virtualinvoke v.<com.fasterxml.jackson.dataformat.yaml.YAMLFactory: com.fasterxml.jackson.dataformat.yaml.YAMLFactory enable(com.fasterxml.jackson.dataformat.yaml.YAMLGenerator$Feature)>(v);
v = <com.fasterxml.jackson.dataformat.yaml.YAMLGenerator$Feature: com.fasterxml.jackson.dataformat.yaml.YAMLGenerator$Feature WRITE_DOC_START_MARKER>;
v = virtualinvoke v.<com.fasterxml.jackson.dataformat.yaml.YAMLFactory: com.fasterxml.jackson.dataformat.yaml.YAMLFactory disable(com.fasterxml.jackson.dataformat.yaml.YAMLGenerator$Feature)>(v);
specialinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: void <init>(com.fasterxml.jackson.core.JsonFactory)>(v);
<io.fabric.crd.generator.CRDGenerator: com.fasterxml.jackson.databind.ObjectMapper YAML_MAPPER> = v;
v = <io.fabric.crd.generator.CRDGenerator: com.fasterxml.jackson.databind.ObjectMapper YAML_MAPPER>;
v = <com.fasterxml.jackson.databind.SerializationFeature: com.fasterxml.jackson.databind.SerializationFeature INDENT_OUTPUT>;
virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.ObjectMapper configure(com.fasterxml.jackson.databind.SerializationFeature,boolean)>(v, 1);
v = <io.fabric.crd.generator.CRDGenerator: com.fasterxml.jackson.databind.ObjectMapper YAML_MAPPER>;
v = <com.fasterxml.jackson.databind.SerializationFeature: com.fasterxml.jackson.databind.SerializationFeature WRITE_NULL_MAP_VALUES>;
virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.ObjectMapper configure(com.fasterxml.jackson.databind.SerializationFeature,boolean)>(v, 0);
v = <io.fabric.crd.generator.CRDGenerator: com.fasterxml.jackson.databind.ObjectMapper YAML_MAPPER>;
v = <com.fasterxml.jackson.databind.SerializationFeature: com.fasterxml.jackson.databind.SerializationFeature WRITE_EMPTY_JSON_ARRAYS>;
virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.ObjectMapper configure(com.fasterxml.jackson.databind.SerializationFeature,boolean)>(v, 0);
return;
}
}