Class ExternalAnnotationProvider
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationProvider
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
class
Walker that may serve the annotations on type parameters of the current class or method. -
Field Summary
Modifier and TypeFieldDescriptionstatic final String
static final String
static final String
static final char
Represents absence of a null annotation.static final char
Representation of a 'nonnull' annotation, independent of the concrete annotation name used in Java sources.static final char
Representation of a 'nullable' annotation, independent of the concrete annotation name used in Java sources.static final String
-
Constructor Summary
ConstructorDescriptionExternalAnnotationProvider
(InputStream input, String typeName) Create and initialize. -
Method Summary
Modifier and TypeMethodDescriptionstatic void
assertClassHeader
(String line, String typeName) Assert that the given line is a class header for 'typeName' (slash-separated qualified name).static String
extractSignature
(String line) Extract the signature from a line of an external annotation file.forField
(char[] selector, char[] signature, LookupEnvironment environment) forMethod
(char[] selector, char[] signature, LookupEnvironment environment) forTypeHeader
(LookupEnvironment environment) static ITypeAnnotationWalker
synthesizeForMethod
(char[] source, LookupEnvironment env) toString()
protected static String
Lines may contain arbitrary trailing data, separated by white space.
-
Field Details
-
ANNOTATION_FILE_EXTENSION
- See Also:
-
CLASS_PREFIX
- See Also:
-
SUPER_PREFIX
- See Also:
-
NULLABLE
public static final char NULLABLERepresentation of a 'nullable' annotation, independent of the concrete annotation name used in Java sources.- See Also:
-
NONNULL
public static final char NONNULLRepresentation of a 'nonnull' annotation, independent of the concrete annotation name used in Java sources.- See Also:
-
NO_ANNOTATION
public static final char NO_ANNOTATIONRepresents absence of a null annotation. Useful for removing an existing null annotation. This character is used only internally, it is not part of the Eclipse External Annotation file format.- See Also:
-
ANNOTATION_FILE_SUFFIX
- See Also:
-
-
Constructor Details
-
ExternalAnnotationProvider
Create and initialize.- Parameters:
input
- open input stream to read the annotations from, will be closed by the constructor.typeName
- slash-separated qualified name of a type- Throws:
IOException
- various issues when accessing the annotation file
-
-
Method Details
-
assertClassHeader
Assert that the given line is a class header for 'typeName' (slash-separated qualified name).- Throws:
IOException
-
extractSignature
Extract the signature from a line of an external annotation file. Answers null if line is not in the expected format. -
trimTail
Lines may contain arbitrary trailing data, separated by white space. -
forTypeHeader
-
forMethod
public ITypeAnnotationWalker forMethod(char[] selector, char[] signature, LookupEnvironment environment) -
forField
public ITypeAnnotationWalker forField(char[] selector, char[] signature, LookupEnvironment environment) -
toString
-
synthesizeForMethod
-