public class io.vertx.codegen.EnumModel extends java.lang.Object implements io.vertx.codegen.Model
{
private final io.vertx.codegen.doc.Doc$Factory docFactory;
protected final javax.lang.model.util.Elements elementUtils;
protected final javax.lang.model.util.Types typeUtils;
protected final javax.lang.model.element.TypeElement modelElt;
protected final io.vertx.codegen.type.TypeMirrorFactory typeMirrorFactory;
protected io.vertx.codegen.type.EnumTypeInfo type;
private final io.vertx.codegen.type.AnnotationValueInfoFactory annotationValueInfoFactory;
private io.vertx.codegen.doc.Doc doc;
private java.util.List values;
private java.util.List annotations;
private boolean processed;
private boolean deprecated;
private io.vertx.codegen.doc.Text deprecatedDesc;
public void <init>(javax.'annotation'.processing.ProcessingEnvironment, javax.lang.model.element.TypeElement)
{
io.vertx.codegen.EnumModel v;
javax.lang.model.element.TypeElement v;
javax.lang.model.util.Elements v, v, v;
io.vertx.codegen.type.AnnotationValueInfoFactory v;
io.vertx.codegen.doc.Doc$Factory v;
javax.'annotation'.processing.Messager v;
boolean v;
io.vertx.codegen.type.TypeMirrorFactory v, v, v;
javax.lang.model.util.Types v, v, v;
java.lang.'annotation'.Annotation v;
javax.'annotation'.processing.ProcessingEnvironment v;
v := @this: io.vertx.codegen.EnumModel;
v := @parameter: javax.'annotation'.processing.ProcessingEnvironment;
v := @parameter: javax.lang.model.element.TypeElement;
specialinvoke v.<java.lang.Object: void <init>()>();
v = interfaceinvoke v.<javax.'annotation'.processing.ProcessingEnvironment: javax.lang.model.util.Types getTypeUtils()>();
v.<io.vertx.codegen.EnumModel: javax.lang.model.util.Types typeUtils> = v;
v = interfaceinvoke v.<javax.'annotation'.processing.ProcessingEnvironment: javax.lang.model.util.Elements getElementUtils()>();
v.<io.vertx.codegen.EnumModel: javax.lang.model.util.Elements elementUtils> = v;
v = new io.vertx.codegen.type.TypeMirrorFactory;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.util.Elements elementUtils>;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.util.Types typeUtils>;
specialinvoke v.<io.vertx.codegen.type.TypeMirrorFactory: void <init>(javax.lang.model.util.Elements,javax.lang.model.util.Types)>(v, v);
v.<io.vertx.codegen.EnumModel: io.vertx.codegen.type.TypeMirrorFactory typeMirrorFactory> = v;
v = new io.vertx.codegen.doc.Doc$Factory;
v = interfaceinvoke v.<javax.'annotation'.processing.ProcessingEnvironment: javax.'annotation'.processing.Messager getMessager()>();
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.util.Elements elementUtils>;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.util.Types typeUtils>;
v = v.<io.vertx.codegen.EnumModel: io.vertx.codegen.type.TypeMirrorFactory typeMirrorFactory>;
specialinvoke v.<io.vertx.codegen.doc.Doc$Factory: void <init>(javax.'annotation'.processing.Messager,javax.lang.model.util.Elements,javax.lang.model.util.Types,io.vertx.codegen.type.TypeMirrorFactory,javax.lang.model.element.TypeElement)>(v, v, v, v, v);
v.<io.vertx.codegen.EnumModel: io.vertx.codegen.doc.Doc$Factory docFactory> = v;
v.<io.vertx.codegen.EnumModel: javax.lang.model.element.TypeElement modelElt> = v;
v = new io.vertx.codegen.type.AnnotationValueInfoFactory;
v = v.<io.vertx.codegen.EnumModel: io.vertx.codegen.type.TypeMirrorFactory typeMirrorFactory>;
specialinvoke v.<io.vertx.codegen.type.AnnotationValueInfoFactory: void <init>(io.vertx.codegen.type.TypeMirrorFactory)>(v);
v.<io.vertx.codegen.EnumModel: io.vertx.codegen.type.AnnotationValueInfoFactory annotationValueInfoFactory> = v;
v = interfaceinvoke v.<javax.lang.model.element.TypeElement: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Ljava/lang/Deprecated;");
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<io.vertx.codegen.EnumModel: boolean deprecated> = v;
return;
}
public boolean process()
{
javax.lang.model.element.TypeElement v, v, v, v, v, v, v;
javax.lang.model.util.Elements v;
java.util.stream.Collector v;
boolean v, v;
io.vertx.codegen.type.TypeMirrorFactory v;
java.util.function.Predicate v, v;
io.vertx.codegen.type.TypeInfo v;
java.util.List v, v, v;
java.util.stream.Stream v, v, v, v, v, v;
io.vertx.codegen.doc.Doc v, v, v;
java.util.Optional v;
io.vertx.codegen.EnumModel v;
java.util.function.Function v, v;
io.vertx.codegen.GenException v, v;
java.lang.String v, v;
io.vertx.codegen.doc.Doc$Factory v;
javax.lang.model.element.ElementKind v, v;
java.util.function.Consumer v;
javax.lang.model.type.TypeMirror v, v;
java.lang.Object v;
v := @this: io.vertx.codegen.EnumModel;
v = v.<io.vertx.codegen.EnumModel: boolean processed>;
if v != 0 goto label;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.element.TypeElement modelElt>;
v = interfaceinvoke v.<javax.lang.model.element.TypeElement: javax.lang.model.element.ElementKind getKind()>();
v = <javax.lang.model.element.ElementKind: javax.lang.model.element.ElementKind ENUM>;
if v == v goto label;
v = new io.vertx.codegen.GenException;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.element.TypeElement modelElt>;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.element.TypeElement modelElt>;
v = interfaceinvoke v.<javax.lang.model.element.TypeElement: javax.lang.model.type.TypeMirror asType()>();
v = interfaceinvoke v.<javax.lang.model.type.TypeMirror: java.lang.String toString()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("@VertxGen can only be used with interfaces or enums\u0001");
specialinvoke v.<io.vertx.codegen.GenException: void <init>(javax.lang.model.element.Element,java.lang.String)>(v, v);
throw v;
label:
v = v.<io.vertx.codegen.EnumModel: io.vertx.codegen.doc.Doc$Factory docFactory>;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.element.TypeElement modelElt>;
v = virtualinvoke v.<io.vertx.codegen.doc.Doc$Factory: io.vertx.codegen.doc.Doc createDoc(javax.lang.model.element.Element)>(v);
v.<io.vertx.codegen.EnumModel: io.vertx.codegen.doc.Doc doc> = v;
v = v.<io.vertx.codegen.EnumModel: io.vertx.codegen.doc.Doc doc>;
if v == null goto label;
v = v.<io.vertx.codegen.EnumModel: io.vertx.codegen.doc.Doc doc>;
v = virtualinvoke v.<io.vertx.codegen.doc.Doc: java.util.List getBlockTags()>();
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <io.vertx.codegen.EnumModel$lambda_process_0__2458: java.util.function.Predicate bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.Optional findFirst()>();
v = staticinvoke <io.vertx.codegen.EnumModel$lambda_process_1__2459: java.util.function.Consumer bootstrap$(io.vertx.codegen.EnumModel)>(v);
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
label:
v = v.<io.vertx.codegen.EnumModel: io.vertx.codegen.type.TypeMirrorFactory typeMirrorFactory>;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.element.TypeElement modelElt>;
v = interfaceinvoke v.<javax.lang.model.element.TypeElement: javax.lang.model.type.TypeMirror asType()>();
v = virtualinvoke v.<io.vertx.codegen.type.TypeMirrorFactory: io.vertx.codegen.type.TypeInfo create(javax.lang.model.type.TypeMirror)>(v);
v.<io.vertx.codegen.EnumModel: io.vertx.codegen.type.EnumTypeInfo type> = v;
staticinvoke <io.vertx.codegen.Helper: void checkUnderModule(io.vertx.codegen.Model,java.lang.String)>(v, "@VertxGen");
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.util.Elements elementUtils>;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.element.TypeElement modelElt>;
v = interfaceinvoke v.<javax.lang.model.util.Elements: java.util.List getAllMembers(javax.lang.model.element.TypeElement)>(v);
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <io.vertx.codegen.EnumModel$lambda_process_2__2456: java.util.function.Predicate bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <io.vertx.codegen.Helper: java.util.function.Function cast(java.lang.Class)>(class "Ljavax/lang/model/element/VariableElement;");
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream flatMap(java.util.function.Function)>(v);
v = staticinvoke <io.vertx.codegen.EnumModel$lambda_process_4__2457: java.util.function.Function bootstrap$(io.vertx.codegen.EnumModel)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(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.<io.vertx.codegen.EnumModel: java.util.List values> = v;
v = v.<io.vertx.codegen.EnumModel: java.util.List values>;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = new io.vertx.codegen.GenException;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.element.TypeElement modelElt>;
specialinvoke v.<io.vertx.codegen.GenException: void <init>(javax.lang.model.element.Element,java.lang.String)>(v, "No empty enums");
throw v;
label:
v.<io.vertx.codegen.EnumModel: boolean processed> = 1;
return 1;
label:
return 0;
}
private void processTypeAnnotations()
{
io.vertx.codegen.EnumModel v;
javax.lang.model.element.TypeElement v;
java.util.function.Function v;
javax.lang.model.util.Elements v;
java.util.List v;
java.util.stream.Stream v, v;
io.vertx.codegen.type.AnnotationValueInfoFactory v;
java.lang.Object v;
java.util.stream.Collector v;
v := @this: io.vertx.codegen.EnumModel;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.util.Elements elementUtils>;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.element.TypeElement modelElt>;
v = interfaceinvoke v.<javax.lang.model.util.Elements: java.util.List getAllAnnotationMirrors(javax.lang.model.element.Element)>(v);
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = v.<io.vertx.codegen.EnumModel: io.vertx.codegen.type.AnnotationValueInfoFactory annotationValueInfoFactory>;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <io.vertx.codegen.EnumModel$processAnnotation__2460: java.util.function.Function bootstrap$(io.vertx.codegen.type.AnnotationValueInfoFactory)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(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.<io.vertx.codegen.EnumModel: java.util.List annotations> = v;
return;
}
public io.vertx.codegen.type.EnumTypeInfo getType()
{
io.vertx.codegen.EnumModel v;
io.vertx.codegen.type.EnumTypeInfo v;
v := @this: io.vertx.codegen.EnumModel;
v = v.<io.vertx.codegen.EnumModel: io.vertx.codegen.type.EnumTypeInfo type>;
return v;
}
public java.util.List getValues()
{
java.util.List v;
io.vertx.codegen.EnumModel v;
v := @this: io.vertx.codegen.EnumModel;
v = v.<io.vertx.codegen.EnumModel: java.util.List values>;
return v;
}
public io.vertx.codegen.doc.Doc getDoc()
{
io.vertx.codegen.EnumModel v;
io.vertx.codegen.doc.Doc v;
v := @this: io.vertx.codegen.EnumModel;
v = v.<io.vertx.codegen.EnumModel: io.vertx.codegen.doc.Doc doc>;
return v;
}
public java.lang.String getKind()
{
io.vertx.codegen.EnumModel v;
v := @this: io.vertx.codegen.EnumModel;
return "enum";
}
public javax.lang.model.element.Element getElement()
{
javax.lang.model.element.TypeElement v;
io.vertx.codegen.EnumModel v;
v := @this: io.vertx.codegen.EnumModel;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.element.TypeElement modelElt>;
return v;
}
public java.lang.String getFqn()
{
io.vertx.codegen.EnumModel v;
javax.lang.model.element.TypeElement v;
java.lang.String v;
javax.lang.model.element.Name v;
v := @this: io.vertx.codegen.EnumModel;
v = v.<io.vertx.codegen.EnumModel: javax.lang.model.element.TypeElement modelElt>;
v = interfaceinvoke v.<javax.lang.model.element.TypeElement: javax.lang.model.element.Name getQualifiedName()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
return v;
}
public boolean isDeprecated()
{
io.vertx.codegen.EnumModel v;
boolean v;
v := @this: io.vertx.codegen.EnumModel;
v = v.<io.vertx.codegen.EnumModel: boolean deprecated>;
return v;
}
public io.vertx.codegen.doc.Text getDeprecatedDesc()
{
io.vertx.codegen.EnumModel v;
io.vertx.codegen.doc.Text v;
v := @this: io.vertx.codegen.EnumModel;
v = v.<io.vertx.codegen.EnumModel: io.vertx.codegen.doc.Text deprecatedDesc>;
return v;
}
public java.util.Map getVars()
{
io.vertx.codegen.EnumModel v;
io.vertx.codegen.type.EnumTypeInfo v;
java.util.List v;
io.vertx.codegen.doc.Doc v;
io.vertx.codegen.doc.Text v;
java.util.Map v;
java.lang.Boolean v;
boolean v;
v := @this: io.vertx.codegen.EnumModel;
v = specialinvoke v.<io.vertx.codegen.Model: java.util.Map getVars()>();
v = virtualinvoke v.<io.vertx.codegen.EnumModel: io.vertx.codegen.type.EnumTypeInfo getType()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("type", v);
v = v.<io.vertx.codegen.EnumModel: io.vertx.codegen.doc.Doc doc>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("doc", v);
v = v.<io.vertx.codegen.EnumModel: java.util.List values>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("values", v);
v = v.<io.vertx.codegen.EnumModel: boolean deprecated>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("deprecated", v);
v = virtualinvoke v.<io.vertx.codegen.EnumModel: io.vertx.codegen.doc.Text getDeprecatedDesc()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("deprecatedDesc", v);
return v;
}
public io.vertx.codegen.ModuleInfo getModule()
{
io.vertx.codegen.ModuleInfo v;
io.vertx.codegen.EnumModel v;
io.vertx.codegen.type.EnumTypeInfo v;
v := @this: io.vertx.codegen.EnumModel;
v = v.<io.vertx.codegen.EnumModel: io.vertx.codegen.type.EnumTypeInfo type>;
v = virtualinvoke v.<io.vertx.codegen.type.EnumTypeInfo: io.vertx.codegen.ModuleInfo getModule()>();
return v;
}
}