public class AnnotationFileParser extends Object
AnnotationFileParser.AnnotationFileAnnotations
passed as an argument.
The first main entry point is parseStubFile(String, InputStream, AnnotatedTypeFactory,
ProcessingEnvironment, AnnotationFileAnnotations, AnnotationFileUtil.AnnotationFileType)
, which
side-effects its last argument. It operates in two steps. First, it calls the Annotation File
Parser to parse an annotation file. Then, it walks the AST to create/collect types and
declaration annotations.
The second main entry point is parseAjavaFile(String, InputStream,
CompilationUnitTree, AnnotatedTypeFactory, ProcessingEnvironment, AnnotationFileAnnotations)
.
This behaves the same as parseStubFile(String, InputStream,
AnnotatedTypeFactory, ProcessingEnvironment, AnnotationFileAnnotations,
AnnotationFileUtil.AnnotationFileType)
, but takes an ajava file instead.
Modifier and Type | Class and Description |
---|---|
static class |
AnnotationFileParser.AnnotationFileAnnotations
The result of calling AnnotationFileParser.parse: the annotated types and declaration
annotations from the file.
|
static class |
AnnotationFileParser.AnnotationFileParserException
An exception indicating a problem while parsing an annotation file.
|
static class |
AnnotationFileParser.RecordComponentStub
Information about a record component: its type, and whether there was an accessor in the stubs
for that component.
|
static class |
AnnotationFileParser.RecordStub
Information about a record from a stub file.
|
Modifier and Type | Method and Description |
---|---|
static Map<String,TypeElement> |
annosInPackage(PackageElement packageElement)
All annotations defined in the package (but not those nested within classes in the package).
|
static Map<String,TypeElement> |
annosInType(TypeElement typeElement)
All annotations declared (directly) within a class.
|
static Map<String,TypeElement> |
createNameToAnnotationMap(List<TypeElement> typeElements)
All annotations declared within any of the given elements.
|
static void |
parseAjavaFile(String filename,
InputStream inputStream,
CompilationUnitTree root,
AnnotatedTypeFactory atypeFactory,
ProcessingEnvironment processingEnv,
AnnotationFileParser.AnnotationFileAnnotations ajavaAnnos)
The main entry point when parsing an ajava file.
|
static void |
parseJdkFileAsStub(String filename,
InputStream inputStream,
AnnotatedTypeFactory atypeFactory,
ProcessingEnvironment processingEnv,
AnnotationFileParser.AnnotationFileAnnotations stubAnnos)
Parse a stub file that is a part of the annotated JDK and side-effects the
stubAnnos
argument. |
static void |
parseStubFile(String filename,
InputStream inputStream,
AnnotatedTypeFactory atypeFactory,
ProcessingEnvironment processingEnv,
AnnotationFileParser.AnnotationFileAnnotations annotationFileAnnos,
AnnotationFileUtil.AnnotationFileType fileType)
The main entry point.
|
static <K,V> void |
putAllNew(Map<K,V> m,
Map<K,V> m2)
Just like Map.putAll, but modifies existing values using
putIfAbsent(Map, Object,
Object) . |
static <K,V> void |
putIfAbsent(Map<K,V> m,
K key,
V value)
Just like Map.put, but does not override any existing value in the map.
|
public static Map<String,TypeElement> annosInPackage(PackageElement packageElement)
packageElement
- a packagepublic static Map<String,TypeElement> annosInType(TypeElement typeElement)
typeElement
- a typepublic static Map<String,TypeElement> createNameToAnnotationMap(List<TypeElement> typeElements)
typeElements
- the elements whose annotations to retrievepublic static void parseStubFile(String filename, InputStream inputStream, AnnotatedTypeFactory atypeFactory, ProcessingEnvironment processingEnv, AnnotationFileParser.AnnotationFileAnnotations annotationFileAnnos, AnnotationFileUtil.AnnotationFileType fileType)
annotationFileAnnos
argument.filename
- name of stub file, used only for diagnostic messagesinputStream
- of stub file to parseatypeFactory
- AnnotatedTypeFactory to useprocessingEnv
- ProcessingEnvironment to useannotationFileAnnos
- annotations from the annotation file; side-effected by this methodfileType
- the annotation file type and sourcepublic static void parseAjavaFile(String filename, InputStream inputStream, CompilationUnitTree root, AnnotatedTypeFactory atypeFactory, ProcessingEnvironment processingEnv, AnnotationFileParser.AnnotationFileAnnotations ajavaAnnos)
filename
- name of ajava file, used only for diagnostic messagesinputStream
- of ajava file to parseroot
- javac tree for the file to be parsedatypeFactory
- AnnotatedTypeFactory to useprocessingEnv
- ProcessingEnvironment to useajavaAnnos
- annotations from the ajava file; side-effected by this methodpublic static void parseJdkFileAsStub(String filename, InputStream inputStream, AnnotatedTypeFactory atypeFactory, ProcessingEnvironment processingEnv, AnnotationFileParser.AnnotationFileAnnotations stubAnnos)
stubAnnos
argument.filename
- name of stub file, used only for diagnostic messagesinputStream
- of stub file to parseatypeFactory
- AnnotatedTypeFactory to useprocessingEnv
- ProcessingEnvironment to usestubAnnos
- annotations from the stub file; side-effected by this methodpublic static <K,V> void putIfAbsent(Map<K,V> m, K key, V value)
K
- the key typeV
- the value typem
- a mapkey
- a keyvalue
- the value to associate with the key, if the key isn't already in the mappublic static <K,V> void putAllNew(Map<K,V> m, Map<K,V> m2)
putIfAbsent(Map, Object,
Object)
.K
- the key type for the mapsV
- the value type for the mapsm
- the destination mapm2
- the source map