Class PythonEnumConstantElement
java.lang.Object
io.micronaut.inject.ast.annotation.AbstractAnnotationElement
io.micronaut.python.processing.visitor.PythonEnumConstantElement
- All Implemented Interfaces:
AnnotatedElement, AnnotationMetadata, AnnotationMetadataDelegate, AnnotationMetadataProvider, AnnotationSource, Described, Named, MutableAnnotationMetadataDelegate<Element>, Element, EnumConstantElement, FieldElement, MemberElement, TypedElement
public final class PythonEnumConstantElement
extends AbstractAnnotationElement
implements EnumConstantElement
Represents a Python enum constant as a Micronaut
EnumConstantElement.
This class wraps an AttributeDef node representing an enum constant
and provides the EnumConstantElement interface implementation.
- Since:
- 5.2.0
- Author:
- Micronaut Team
-
Field Summary
Fields inherited from class AbstractAnnotationElement
elementAnnotationMetadataFactory, presetAnnotationMetadataFields inherited from interface AnnotationMetadata
CLASS_NAME_SUFFIX, EMPTY_METADATA, VALUE_MEMBERFields inherited from interface AnnotationSource
EMPTYFields inherited from interface Element
EMPTY_ELEMENT_ARRAYFields inherited from interface EnumConstantElement
ENUM_CONSTANT_MODIFIERSFields inherited from interface MutableAnnotationMetadataDelegate
EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionPythonEnumConstantElement(AttributeDef attributeDef, PythonProcessingEnvironment environment, PythonEnumElement declaringType, PythonEnumElement owningType, ElementAnnotationMetadataFactory metadataFactory) Constructs a newPythonEnumConstantElementfrom the givenAttributeDef. -
Method Summary
Modifier and TypeMethodDescriptionprotected io.micronaut.python.processing.visitor.AbstractPythonElementcopyThis()protected voidcopyValues(io.micronaut.python.processing.visitor.AbstractPythonElement element) booleanReturns the value of this variable if this is afinalfield initialized to a compile-time constant.Returns the generic type of the element.getName()Returns the native underlying type.The owning type is the type that owns this element.getType()inthashCode()booleanisFinal()booleanbooleanisPublic()booleanisStatic()protected final io.micronaut.python.processing.visitor.AbstractPythonElementmakeCopy()withAnnotationMetadata(AnnotationMetadata annotationMetadata) Copies this element and overrides its annotations.Methods inherited from class AbstractAnnotationElement
annotate, annotate, annotate, annotate, annotate, getAnnotationMetadata, getAnnotationMetadataToWrite, getElementAnnotationMetadata, getElementAnnotationMetadataFactory, removeAnnotation, removeAnnotation, removeAnnotationIf, removeStereotype, removeStereotypeMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface AnnotatedElement
isDeclaredNonNull, isDeclaredNullable, isNonNull, isNullableMethods inherited from interface AnnotationMetadata
enumValuesSet, enumValuesSet, getValues, hasDeclaredStereotype, hasStereotypeNonRepeating, isAnnotationPresent, isDeclaredAnnotationPresentMethods inherited from interface AnnotationMetadataDelegate
booleanValue, booleanValue, booleanValue, booleanValue, classValue, classValue, classValue, classValue, classValues, classValues, classValues, classValues, copyAnnotationMetadata, doubleValue, doubleValue, doubleValue, enumValue, enumValue, enumValue, enumValue, enumValues, enumValues, enumValues, enumValues, findAnnotation, findAnnotation, findDeclaredAnnotation, findDeclaredAnnotation, findRepeatableAnnotation, findRepeatableAnnotation, getAnnotation, getAnnotation, getAnnotationNameByStereotype, getAnnotationNameByStereotype, getAnnotationNames, getAnnotationNamesByStereotype, getAnnotationNamesByStereotype, getAnnotationType, getAnnotationType, getAnnotationTypeByStereotype, getAnnotationTypeByStereotype, getAnnotationTypesByStereotype, getAnnotationTypesByStereotype, getAnnotationTypesByStereotype, getAnnotationValuesByName, getAnnotationValuesByStereotype, getAnnotationValuesByType, getDeclaredAnnotation, getDeclaredAnnotation, getDeclaredAnnotationNameByStereotype, getDeclaredAnnotationNames, getDeclaredAnnotationNamesByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationValuesByName, getDeclaredAnnotationValuesByType, getDeclaredMetadata, getDeclaredStereotypeAnnotationNames, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValues, getStereotypeAnnotationNames, getTargetAnnotationMetadata, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValues, getValues, hasAnnotation, hasAnnotation, hasDeclaredAnnotation, hasDeclaredAnnotation, hasDeclaredStereotype, hasDeclaredStereotype, hasDeclaredStereotype, hasEvaluatedExpressions, hasPropertyExpressions, hasSimpleAnnotation, hasSimpleDeclaredAnnotation, hasStereotype, hasStereotype, hasStereotype, hasStereotype, intValue, intValue, intValue, isAnnotationPresent, isDeclaredAnnotationPresent, isEmpty, isFalse, isFalse, isPresent, isPresent, isRepeatableAnnotation, isRepeatableAnnotation, isTrue, isTrue, longValue, longValue, stringValue, stringValue, stringValue, stringValue, stringValues, stringValues, stringValues, stringValues, synthesize, synthesize, synthesizeAll, synthesizeAnnotationsByType, synthesizeDeclared, synthesizeDeclared, synthesizeDeclared, synthesizeDeclaredAnnotationsByTypeMethods inherited from interface AnnotationMetadataProvider
getAnnotationMetadataMethods inherited from interface Element
annotate, annotate, annotate, annotate, annotate, getDescription, getDocumentation, getDocumentation, getName, getSimpleName, isAbstract, isPackagePrivate, isPrivate, isProtected, isPublic, isSynthetic, removeAnnotation, removeAnnotation, removeAnnotationIf, removeStereotype, removeStereotypeMethods inherited from interface FieldElement
getDescription, getGenericField, hidesMethods inherited from interface MemberElement
getModifiers, isAccessible, isAccessible, isAccessible, isReflectionRequired, isReflectionRequiredMethods inherited from interface TypedElement
getArrayDimensions, isArray, isPrimitive, isVoid
-
Constructor Details
-
PythonEnumConstantElement
public PythonEnumConstantElement(AttributeDef attributeDef, PythonProcessingEnvironment environment, PythonEnumElement declaringType, PythonEnumElement owningType, ElementAnnotationMetadataFactory metadataFactory) Constructs a newPythonEnumConstantElementfrom the givenAttributeDef.- Parameters:
attributeDef- the attribute definition representing the enum constant; must not benullenvironment- the Python processing environment; must not benulldeclaringType- the enum class that declares this constant; must not benullowningType- the enum class that owns this constant (may be a subclass); must not benullmetadataFactory- the annotation metadata factory; must not benull- Throws:
NullPointerException- if any parameter isnull
-
-
Method Details
-
getNativeType
Description copied from interface:ElementReturns the native underlying type. This API is extended by all inject language implementations. The object returned by this method will be the language native type the information is being retrieved from.- Specified by:
getNativeTypein interfaceElement- Returns:
- The native type
-
getType
- Specified by:
getTypein interfaceTypedElement- Returns:
- The type of the element
-
getGenericType
Description copied from interface:TypedElementReturns the generic type of the element. This differs fromTypedElement.getType()as it returns the actual type without erasure. WhilstTypedElement.getType()is often needed to produce the correct byte code when generating code via ASM, thegetGenericType()method is more useful for documentation and other types of code generation.- Specified by:
getGenericTypein interfaceTypedElement- Returns:
- The generic type
-
getConstantValue
Description copied from interface:FieldElementReturns the value of this variable if this is afinalfield initialized to a compile-time constant. Returnsnullotherwise. The value will be of a primitive type or aString. If the value is of a primitive type, it is wrapped in the appropriate wrapper class (such asInteger).Note that not all
finalfields will have constant values. In particular,enumconstants are not considered to be compile-time constants. To have a constant value, a field's type must be either a primitive type orString.- Specified by:
getConstantValuein interfaceFieldElement- Returns:
- the value of this variable if this is a
finalfield initialized to a compile-time constant, ornullotherwise
-
isStatic
-
isFinal
-
getDeclaringType
- Specified by:
getDeclaringTypein interfaceMemberElement- Returns:
- The declaring type of the element.
-
getOwningType
Description copied from interface:MemberElementThe owning type is the type that owns this element. This can differ fromMemberElement.getDeclaringType()in the case of inheritance since this method will return the subclass that owners the inherited member, whilstMemberElement.getDeclaringType()will return the super class that declares the type.- Specified by:
getOwningTypein interfaceMemberElement- Returns:
- The owning type.
-
copyThis
protected io.micronaut.python.processing.visitor.AbstractPythonElement copyThis()- Returns:
- copy of this element
-
withAnnotationMetadata
Description copied from interface:ElementCopies this element and overrides its annotations.- Specified by:
withAnnotationMetadatain interfaceElement- Specified by:
withAnnotationMetadatain interfaceFieldElement- Specified by:
withAnnotationMetadatain interfaceMemberElement- Parameters:
annotationMetadata- The annotation metadata- Returns:
- A new element
-
copyValues
protected void copyValues(io.micronaut.python.processing.visitor.AbstractPythonElement element) - Parameters:
element- the values to be copied to
-
makeCopy
protected final io.micronaut.python.processing.visitor.AbstractPythonElement makeCopy() -
getName
-
isProtected
public boolean isProtected()- Specified by:
isProtectedin interfaceElement- Returns:
- True if the element is protected.
-
isPublic
-
equals
-
hashCode
-