Progress.Lang.Annotation class
- Last Updated: July 24, 2026
- 1 minute read
- OpenEdge
- Version 13.1
- Documentation
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
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
ANNOTATIONstatement implicitly inherits fromProgress.Lang.Annotation. This inheritance cannot be declared explicitly using anINHERITSphrase. - 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 onProgress.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