# EnumDeclaration class abstract

Represents a reflected Dart `enum` type, providing access to its enum entry names, metadata, and declared members (fields, methods).

This interface combines both SourceDeclaration and TypeDeclaration, and allows you to inspect enums dynamically at runtime.

### Example

    final type = reflector.reflectType(MyEnum).asEnumType();

    print(type?.getName()); // MyEnum
    print(type?.getValues()); // [active, inactive, unknown]

    for (final member in type!.getMembers()) {
      print(member.getName());
    }

Inheritance
  - Object
  - Declaration
  - EntityDeclaration
  - TypeDeclaration
  - EnumDeclaration
Implemented types
  - SourceDeclaration
Available extensions
  - TypeDeclarationExtension

## Constructors

EnumDeclaration.new()
  Represents a reflected Dart `enum` type, providing access to its enum entry names, metadata, and declared members (fields, methods).
  const

## Properties

hashCode → int
  The hash code for this object.
  no setter inherited
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited

## Methods

asClass() → ClassDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to ClassDeclaration if possible.
asEnum() → EnumDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to EnumDeclaration if possible.
asMixin() → MixinDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to MixinDeclaration if possible.
asRecord() → RecordDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to RecordDeclaration if possible.
asTypedef() → TypedefDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to TypedefDeclaration if possible.
asTypeVariable() → TypeVariableDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to TypeVariableDeclaration if possible.
getAnnotations() → List<AnnotationDeclaration>
  Returns all annotations applied to this declaration.
  inherited
getDartType() → DartType?
  The analyzer DartType of the entity for enhanced type operations.
  inherited
getDebugIdentifier() → String
  The debug identifier for the entity.
  inherited
getDeclaration() → SourceDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Resolves the most specific declaration type.
getElement() → Element?
  The analyzer element associated with this declaration.
  inherited
getInterfaces() → List<LinkDeclaration>
  Returns the list of interfaces this type implements.
  inherited
getIsNullable() → bool
  Returns `true` if the type is nullable, such as `'String?'` or `'int?'`.
  inherited
getIsPublic() → bool
  Checks if this declaration is a public declaration.
  inherited
getIsSynthetic() → bool
  Checks if a declaration is a synthetic declaration.
  inherited
getKind() → TypeKind
  Returns the TypeKind of this type, indicating whether it is a class, enum, mixin, etc.
  inherited
getMembers() → List<MemberDeclaration>
  Returns all members (fields and methods) declared in this enum.
getMixins() → List<LinkDeclaration>
  Returns the list of mixin identities that are applied to this type.
  inherited
getName() → String
  Gets the name of the declared element.
  inherited
getPackageUri() → String
  Returns the package URI where this type is declared.
  inherited
getParentLibrary() → LibraryDeclaration
  Returns the LibraryDeclaration in which this declaration is defined.
  inherited
getQualifiedName() → String
  Returns the fully qualified name of this type.
  inherited
getSimpleName() → String
  Returns the simple name of the type without the package or library URI.
  inherited
getSourceLocation() → Uri?
  Returns the source code location (e.g., file path or URI) where this declaration is defined, or `null` if not available in the current reflection context.
  inherited
getSuperClass() → LinkDeclaration?
  Returns the direct superclass of this type.
  inherited
getType() → Type
  Gets the runtime type of the declared element.
  inherited
getTypeArguments() → List<LinkDeclaration>
  Returns the list of type arguments for generic types.
  inherited
getValues() → List<EnumFieldDeclaration>
  Returns the list of enum value names declared in this enum.
hasAnalyzerSupport() → bool
  Returns true if this declaration has analyzer information available.
  inherited
isAssignableFrom(TypeDeclaration other) → bool
  Type Assignability Table:
  inherited
isAssignableTo(TypeDeclaration target) → bool
  Type Assignability Table:
  inherited
isGeneric() → bool
  Check if this is a generic type.
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
toJson() → Map<String, Object>
  Returns a JSON representation of this entity.
  inherited
toString() → String
  A string representation of this object.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited