An annotation that may occur multiple times at a given program element, and only on certain program elemenets.

A sequenced annotation is declared simply by having the annotation class satisfy SequencedAnnotation instead of Annotation. For example the following would only be allowed on class declarations, functions or methods:

alias ExecutableDeclaration 
       => ClassOrInterfaceDeclaration|FunctionDeclaration;
"Documents a pattern in which the annotated element 
 particpates."
shared final annotation class Pattern(String name) 
        satisfies SequencedAnnotation<Pattern, ExecutableDeclaration> {}

At runtime a Declaration instance can be queried for its SequencedAnnotations of a certain type using annotations() or sequencedAnnotations().

See also Annotation

no type hierarchy

Inherited Attributes
Attributes inherited from: Object
Inherited Methods
Methods inherited from: Object
Methods inherited from: ConstrainedAnnotation<Value,Values,ProgramElement>