# Declaration class abstract

Represents any top-level or member declaration in Dart code, such as a class, method, field, enum, typedef, etc., and exposes its metadata for reflection.

This interface provides access to:

- The declaration's name
- The library it belongs to
- Attached annotations
- Optional source location (e.g., filename or URI)

It forms the base interface for all reflectable declarations like ClassDeclaration, MethodDeclaration, and FieldDeclaration.

### Example

    final clazz = reflector.reflectType(MyClass).asClassType();
    final methods = clazz?.getMethods();

    for (final method in methods!) {
      print(method.getName());
      print(method.getSourceLocation());
    }

## Example Usage

    Declaration getDeclaration(dynamic element) {
      return ClassDeclaration(element.runtimeType, element.runtimeType.toString());
    }

    final classDecl = getDeclaration(MyClass());
    print(classDecl.getName()); // "MyClass"
    print(classDecl.getType()); // MyClass

{@endtemplate}

## Constructors

Declaration.new()
  Represents any top-level or member declaration in Dart code, such as a class, method, field, enum, typedef, etc., and exposes its metadata for reflection.
  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

getIsPublic() → bool
  Checks if this declaration is a public declaration.
getIsSynthetic() → bool
  Checks if a declaration is a synthetic declaration.
getName() → String
  Gets the name of the declared element.
getType() → Type
  Gets the runtime type of the declared element.
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.
toString() → String
  A string representation of this object.
  override

## Operators

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