public class ParamApplier extends Object
| Modifier and Type | Field and Description | 
|---|---|
| protected Element | elementAn Element that type represents. | 
| static int | RECEIVER_PARAM_INDEX | 
| protected AnnotatedTypeMirror | typeThe type to which we wish to apply annotations. | 
| Modifier and Type | Method and Description | 
|---|---|
| static boolean | accepts(AnnotatedTypeMirror type,
       Element element) | 
| protected com.sun.tools.javac.code.TargetType[] | annotatedTargets()Returns {TargetType.METHOD_FORMAL_PARAMETER, TargetType.METHOD_RECEIVER}. | 
| static void | apply(AnnotatedTypeMirror type,
     Element element,
     AnnotatedTypeFactory typeFactory)Apply annotations from  elementtotype. | 
| void | extractAndApply()Reads the list of annotations that apply to this element (see getRawTypeAttributes). | 
| int | getElementIndex()Returns the index of element its parent method's parameter list. | 
| static com.sun.tools.javac.code.Symbol.MethodSymbol | getParentMethod(Element methodChildElem)Return the enclosing MethodSymbol of the given element, throwing an exception of the symbol's
 enclosing element is not a MethodSymbol. | 
| protected Iterable<com.sun.tools.javac.code.Attribute.TypeCompound> | getRawTypeAttributes()Returns the TypeCompounds (annotations) of the enclosing method for this parameter. | 
| int | getTypeCompoundIndex(com.sun.tools.javac.code.Attribute.TypeCompound anno)Returns the parameter index of anno's TypeAnnotationPosition. | 
| protected void | handleInvalid(List<com.sun.tools.javac.code.Attribute.TypeCompound> invalid)This implementation reports all invalid annotations as errors. | 
| 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()Returns any annotation TargetType that can be found on a method. | 
public static final int RECEIVER_PARAM_INDEX
protected final AnnotatedTypeMirror type
protected final Element element
public static void apply(AnnotatedTypeMirror type, Element element, AnnotatedTypeFactory typeFactory) throws ElementAnnotationUtil.UnexpectedAnnotationLocationException
element to type.public static boolean accepts(AnnotatedTypeMirror type, Element element)
public int getElementIndex()
public int getTypeCompoundIndex(com.sun.tools.javac.code.Attribute.TypeCompound anno)
anno - an annotation we might wish to applyprotected 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 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
     getRawTypeAttributesprotected void handleTargeted(List<com.sun.tools.javac.code.Attribute.TypeCompound> targeted) throws ElementAnnotationUtil.UnexpectedAnnotationLocationException
targeted - type compounds with formal method parameter target types with parameter_index
     == getIndexElementAnnotationUtil.UnexpectedAnnotationLocationExceptionprotected boolean isAccepted()
public static com.sun.tools.javac.code.Symbol.MethodSymbol getParentMethod(Element methodChildElem)
methodChildElem - some element that is a child of a method typeDeclaration (e.g. a
     parameter or return type)public void extractAndApply()
                     throws ElementAnnotationUtil.UnexpectedAnnotationLocationException
This method will throw a runtime exception if isAccepted returns false.
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 handleValid