The language model for CDI provides a reflection-free model of the Java language. It allows inspecting the high-level structure of programs without having to load any of their classes or instantiate any of the present annotations.
The root interface {@link jakarta.enterprise.lang.model.AnnotationTarget AnnotationTarget} represents anything that can be {@linkplain jakarta.enterprise.lang.model.AnnotationInfo annotated}. Two kinds of annotation targets are distinguished:
Structure of declarations and types may be further inspected.