Class TypeAnnotationMover
- java.lang.Object
-
- com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
-
- org.checkerframework.framework.ajava.TypeAnnotationMover
-
- All Implemented Interfaces:
com.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
public class TypeAnnotationMover extends com.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
Moves annotations in a JavaParser AST from declaration position onto the types they correspond to.When parsing a method or field such as
@Tainted String myField
, JavaParser puts all annotations on the declaration.For each non-declaration annotation on a method or field declaration, this class moves it to the type position. A non-declaration annotation is one with a
TYPE_USE
target but no declaration target.
-
-
Constructor Summary
Constructors Constructor Description TypeAnnotationMover(java.util.Map<java.lang.String,javax.lang.model.element.TypeElement> allAnnotations, javax.lang.model.util.Elements elements)
Constructs aTypeAnnotationMover
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
visit(com.github.javaparser.ast.body.FieldDeclaration node, java.lang.Void p)
void
visit(com.github.javaparser.ast.body.MethodDeclaration node, java.lang.Void p)
-
Methods inherited from class com.github.javaparser.ast.visitor.VoidVisitorAdapter
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
-
-
-
Constructor Detail
-
TypeAnnotationMover
public TypeAnnotationMover(java.util.Map<java.lang.String,javax.lang.model.element.TypeElement> allAnnotations, javax.lang.model.util.Elements elements)
Constructs aTypeAnnotationMover
.- Parameters:
allAnnotations
- the annotations imported by the file, as a mapping from annotation name to TypeElement. There should be two entries for each annotation: the annotation's simple name and its fully-qualified name both mapped to its TypeElement.elements
- the Element utilities
-
-
Method Detail
-
visit
public void visit(com.github.javaparser.ast.body.FieldDeclaration node, java.lang.Void p)
- Specified by:
visit
in interfacecom.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
- Overrides:
visit
in classcom.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
-
visit
public void visit(com.github.javaparser.ast.body.MethodDeclaration node, java.lang.Void p)
- Specified by:
visit
in interfacecom.github.javaparser.ast.visitor.VoidVisitor<java.lang.Void>
- Overrides:
visit
in classcom.github.javaparser.ast.visitor.VoidVisitorAdapter<java.lang.Void>
-
-