public class VariableApplier extends Object
Modifier and Type | Field and Description |
---|---|
protected Element |
element
An Element that type represents.
|
protected AnnotatedTypeMirror |
type
The type to which we wish to apply annotations.
|
Modifier and Type | Method and Description |
---|---|
static boolean |
accepts(AnnotatedTypeMirror typeMirror,
Element element) |
protected com.sun.tools.javac.code.TargetType[] |
annotatedTargets() |
static void |
apply(AnnotatedTypeMirror type,
Element element) |
void |
extractAndApply()
Reads the list of annotations that apply to this element (see getRawTypeAttributes).
|
protected Iterable<com.sun.tools.javac.code.Attribute.TypeCompound> |
getRawTypeAttributes()
Annotations on elements are represented as Attribute.TypeCompounds ( a subtype of AnnotationMirror) that
are usually accessed through a getRawTypeAttributes method on the element.
|
protected void |
handleInvalid(List<com.sun.tools.javac.code.Attribute.TypeCompound> invalid) |
protected void |
handleTargeted(List<com.sun.tools.javac.code.Attribute.TypeCompound> targeted)
This method should apply all annotations that are handled by this object.
|
protected void |
handleValid(List<com.sun.tools.javac.code.Attribute.TypeCompound> valid)
The default implementation of this method does nothing.
|
protected boolean |
isAccepted()
Tests element/type fields to ensure that this TargetedElementAnnotationApplier is valid for
this element/type pair.
|
protected Map<org.checkerframework.framework.util.element.TargetedElementAnnotationApplier.TargetClass,List<com.sun.tools.javac.code.Attribute.TypeCompound>> |
sift(Iterable<com.sun.tools.javac.code.Attribute.TypeCompound> typeCompounds)
Separate the input annotations into a Map of TargetClass (TARGETED, VALID, INVALID) to the annotations
that fall into each of those categories.
|
protected com.sun.tools.javac.code.TargetType[] |
validTargets() |
protected final AnnotatedTypeMirror type
protected final Element element
public static void apply(AnnotatedTypeMirror type, Element element)
public static boolean accepts(AnnotatedTypeMirror typeMirror, Element element)
protected com.sun.tools.javac.code.TargetType[] annotatedTargets()
protected com.sun.tools.javac.code.TargetType[] validTargets()
protected Iterable<com.sun.tools.javac.code.Attribute.TypeCompound> getRawTypeAttributes()
protected boolean isAccepted()
protected void handleTargeted(List<com.sun.tools.javac.code.Attribute.TypeCompound> targeted)
targeted
- The list of annotations that were returned by getRawTypeAttributes and had a TargetType
contained by annotatedTargetspublic void extractAndApply()
protected void handleValid(List<com.sun.tools.javac.code.Attribute.TypeCompound> valid)
valid
- The list of annotations that were returned by getRawTypeAttributes and had a TargetType
contained by valid and NOT annotatedTargetsprotected void handleInvalid(List<com.sun.tools.javac.code.Attribute.TypeCompound> invalid)
invalid
- The list of annotations that were returned by getRawTypeAttributes and were not
handled by handleTargeted or handleValidprotected Map<org.checkerframework.framework.util.element.TargetedElementAnnotationApplier.TargetClass,List<com.sun.tools.javac.code.Attribute.TypeCompound>> sift(Iterable<com.sun.tools.javac.code.Attribute.TypeCompound> typeCompounds)
typeCompounds
- Annotations to sift through, should be those returned by getRawTypeAttributes