An annotation constrained to appear only on certain program elements, and only with certain values.

This interface should never be satisfied directly by any annotation type. Instead, either OptionalAnnotation or SequencedAnnotation should be satisfied by the annotation type.

The type parameters encode information about the annotation type and its constraints:

  • Value represents the type of the annotation itself,
  • ProgramElement represents a constraint on the
    reference expression type of the annotated program element, for example, ClassDeclaration or Module, where Annotated means there is no constraint, and
  • Type is a constraint on the metamodel type of the annotated program element, for example, Function<Float,[Float,Float]> (ceylon.language.meta.model::Function), where Anything means there is no constraint, and that the program element need not have a metamodel type.

no type hierarchy

Inherited Attributes
Attributes inherited from: Object
Inherited Methods
Methods inherited from: Object