Package org.checkerframework.afu.scenelib.el
package org.checkerframework.afu.scenelib.el
annotations.el provides classes that associate annotations with Java elements. AElements represent Java elements of the scene that can
carry annotations. There is a multi-level class hierarchy for elements that exploits certain
commonalities: for example, all and only declarations contain an insertTypecasts field. A “scene” (AScene) contains many elements and represents all the
annotations on a set of classes and packages.
One related utility class that is important to understand is VivifyingMap, a Map implementation that allows empty
entries (for some user-defined meaning of empty) and provides a prune method to eliminate these
entries. The only way to create any element is to invoke getVivify() on a
VivifyingMap static member of the appropriate
AElement superclass.
-
ClassDescriptionABlock has local variables in scope.An annotated class.A declaration, as opposed to an expression.An
AElementrepresents a Java element and the annotations it carries.Manages all annotations within expressions, that is, annotations on typecasts, instanceofs, and object creations.A field or method formal parameter.An annotated method; contains bounds, return, parameters, receiver, and throws.An annotation type definition, consisting of the annotation name, its meta-annotations, and its field names and types.AnAScene(annotated scene) represents the annotations on a set of Java classes and packages along with the definitions of some or all of the annotation types used.AnAElementthat represents a type might have annotations on inner types ("generic/array" annotations in the design document).AnATypeElementthat also stores an un-annotated type.ABoundLocationholds location information for a bound of a type parameter of a class or method: parameter index and bound index.A DefCollector supplies a visitor for the annotation definitions in an AScene.Thrown byDefCollectorif the scene contains two different definitions of the same annotation type that cannot be unified.ElementVisitor<R,T> ALocalLocationholds information about a local variable.ARelativeLocationholds location information for a instanceof, cast, or new: either the bytecode offset or the source code index.ATypeASTMappertraverses a client-maintained abstract syntax tree representing a type in parallel with anATypeElementfrom the annotation scene library, indicating corresponding pairs of AST nodes andAElements to the client so the client can process them in some fashion.Gives an index into a class's set of supertypes (-1 = superclass, non-negative integers for implemented interfaces) or into a method's set of thrown exceptions.A TypePathEntry is a way to get from one node in aTypePathto another.