The Progress.Lang.Annotation class is the abstract base class for all strongly typed annotation classes defined using the ANNOTATION statement. It represents metadata associated with classes, interfaces, enums, and supported class members, and provides a common type for accessing annotations through the ABL reflection API.

All user-defined annotation classes implicitly inherit from Progress.Lang.Annotation. Annotation objects are not instantiated directly by application code. Instead, the ABL runtime creates annotation instances when they are requested through reflection. These instances expose the annotation’s property values as read-only data.

Serializable:

No

Constructor(s)

This class does not contain a constructor.

Super Class

Progress.Lang.Object class

Interfaces

This class does not implement interfaces.

Public Properties

This class does not contain any properties.

Public Methods

This class does not contain any methods.

Public Events

This class does not contain events.

Notes

  • Every annotation class defined with the ANNOTATION statement implicitly inherits from Progress.Lang.Annotation. This inheritance cannot be declared explicitly using an INHERITS phrase.
  • An element may have multiple annotations of different user‑defined types. Because all annotation classes inherit from Progress.Lang.Annotation, the reflection API can return these annotations using a common base type.
  • You can determine whether a class is an annotation class by using the IsAnnotation() method on Progress.Lang.Class.
  • Annotation instances returned by reflection are read-only. Property values cannot be modified at runtime.
  • Annotation objects exist only as runtime metadata and do not directly affect program execution unless explicitly inspected by application logic or frameworks.

See also

ANNOTATION statement, [ ] Strongly typed annotation, IsAnnotation( ) method, GetAnnotation( ) method, GetAnnotations( ) method, HasAnnotation( ) method