Package aQute.bnd.component
Class AnnotationReader
- java.lang.Object
-
- aQute.bnd.osgi.ClassDataCollector
-
- aQute.bnd.component.AnnotationReader
-
public class AnnotationReader extends ClassDataCollector
Processes spec DS annotations into xml.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
AnnotationReader.ComponentPropertyTypeDataCollector
-
Field Summary
Fields Modifier and Type Field Description (package private) Analyzer
analyzer
(package private) boolean
baseclass
(package private) static java.util.regex.Pattern
BINDDESCRIPTORDS10
(package private) static java.util.regex.Pattern
BINDDESCRIPTORDS11
(package private) static java.util.regex.Pattern
BINDDESCRIPTORDS13
(package private) static java.util.regex.Pattern
BINDNAME
(package private) Descriptors.TypeRef
className
(package private) Clazz
clazz
(package private) ComponentDef
component
(package private) static java.util.regex.Pattern
DEACTIVATEDESCRIPTORDS11
(package private) static java.util.regex.Pattern
DEACTIVATEDESCRIPTORDS13
(package private) static Descriptors.TypeRef[]
EMPTY
(package private) Descriptors.TypeRef
extendsClass
(package private) XMLAttributeFinder
finder
(package private) static java.util.regex.Pattern
IDENTIFIERTOPROPERTY
(package private) Descriptors.TypeRef[]
interfaces
(package private) static java.util.regex.Pattern
LIFECYCLEARGUMENT
(package private) static java.util.regex.Pattern
LIFECYCLEDESCRIPTORDS10
(package private) static java.util.regex.Pattern
LIFECYCLEDESCRIPTORDS11
(package private) static java.util.regex.Pattern
LIFECYCLEDESCRIPTORDS13
(package private) Clazz.FieldDef
member
(package private) MultiMap<java.lang.String,Clazz.MethodDef>
methods
(package private) java.util.Map<java.lang.String,java.util.List<DeclarativeServicesAnnotationError>>
mismatchedAnnotations
(package private) java.util.EnumSet<DSAnnotations.Options>
options
(package private) static java.util.regex.Pattern
PROPERTY_PATTERN
(package private) java.util.Map<Clazz.FieldDef,ReferenceDef>
referencesByMember
static Version
V1_0
static Version
V1_1
static Version
V1_2
static Version
V1_3
static Version
V1_4
(package private) static java.util.Map<java.lang.String,java.lang.Class<?>>
wrappers
-
Constructor Summary
Constructors Constructor Description AnnotationReader(Analyzer analyzer, Clazz clazz, java.util.EnumSet<DSAnnotations.Options> options, XMLAttributeFinder finder, Version minVersion)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
annotation(Annotation annotation)
private void
checkMapReturnType(boolean hasMapReturnType, DeclarativeServicesAnnotationError details)
void
classBegin(int access, Descriptors.TypeRef name)
Are called during class parsingvoid
classEnd()
private java.lang.String
determineReferenceType(java.lang.String methodDescriptor, ReferenceDef def, java.lang.String annoService, java.lang.String signature)
protected void
doActivate()
protected void
doComponent(org.osgi.service.component.annotations.Component comp, Annotation annotation)
protected void
doDeactivate()
protected void
doDesignate(org.osgi.service.metatype.annotations.Designate a)
protected void
doModified()
private void
doProperty(java.lang.String[] properties)
Parse the propertiesprotected void
doReference(org.osgi.service.component.annotations.Reference reference, Annotation raw)
private void
doXmlAttribute(Annotation annotation, XMLAttribute xmlAttr)
void
extendsClass(Descriptors.TypeRef name)
void
field(Clazz.FieldDef field)
private ComponentDef
getDef()
static ComponentDef
getDefinition(Clazz c, Analyzer analyzer, java.util.EnumSet<DSAnnotations.Options> options, XMLAttributeFinder finder, Version minVersion)
private DeclarativeServicesAnnotationError
getDetails(ReferenceDef def, DeclarativeServicesAnnotationError.ErrorType type)
private void
handleMixedUsageError(Annotation annotation)
void
implementsInterfaces(Descriptors.TypeRef[] interfaces)
void
memberEnd()
void
method(Clazz.MethodDef method)
private boolean
noMatch(java.lang.String annoService, java.lang.String inferredService)
private void
processAnnotationArguments(java.lang.String methodDescriptor, DeclarativeServicesAnnotationError details)
look for annotation arguments and extract properties from themprotected java.lang.String
referredMethod(Analyzer analyzer, ReferenceDef rdef, java.lang.String value, java.lang.String... matches)
private boolean
sufficientGenerics(int index, int sigLength, ReferenceDef def, java.lang.String sig)
-
Methods inherited from class aQute.bnd.osgi.ClassDataCollector
addReference, annotationDefault, annotationDefault, classStart, classStart, constant, deprecated, enclosingMethod, innerClass, parameter, referenceMethod, referTo, signature, version
-
-
-
-
Field Detail
-
EMPTY
static final Descriptors.TypeRef[] EMPTY
-
PROPERTY_PATTERN
static final java.util.regex.Pattern PROPERTY_PATTERN
-
V1_0
public static final Version V1_0
-
V1_1
public static final Version V1_1
-
V1_2
public static final Version V1_2
-
V1_3
public static final Version V1_3
-
V1_4
public static final Version V1_4
-
BINDNAME
static final java.util.regex.Pattern BINDNAME
-
BINDDESCRIPTORDS10
static final java.util.regex.Pattern BINDDESCRIPTORDS10
-
BINDDESCRIPTORDS11
static final java.util.regex.Pattern BINDDESCRIPTORDS11
-
BINDDESCRIPTORDS13
static final java.util.regex.Pattern BINDDESCRIPTORDS13
-
LIFECYCLEDESCRIPTORDS10
static final java.util.regex.Pattern LIFECYCLEDESCRIPTORDS10
-
LIFECYCLEDESCRIPTORDS11
static final java.util.regex.Pattern LIFECYCLEDESCRIPTORDS11
-
LIFECYCLEDESCRIPTORDS13
static final java.util.regex.Pattern LIFECYCLEDESCRIPTORDS13
-
LIFECYCLEARGUMENT
static final java.util.regex.Pattern LIFECYCLEARGUMENT
-
IDENTIFIERTOPROPERTY
static final java.util.regex.Pattern IDENTIFIERTOPROPERTY
-
DEACTIVATEDESCRIPTORDS11
static final java.util.regex.Pattern DEACTIVATEDESCRIPTORDS11
-
DEACTIVATEDESCRIPTORDS13
static final java.util.regex.Pattern DEACTIVATEDESCRIPTORDS13
-
wrappers
static final java.util.Map<java.lang.String,java.lang.Class<?>> wrappers
-
component
ComponentDef component
-
clazz
Clazz clazz
-
interfaces
Descriptors.TypeRef[] interfaces
-
member
Clazz.FieldDef member
-
className
Descriptors.TypeRef className
-
analyzer
Analyzer analyzer
-
methods
MultiMap<java.lang.String,Clazz.MethodDef> methods
-
extendsClass
Descriptors.TypeRef extendsClass
-
baseclass
boolean baseclass
-
options
final java.util.EnumSet<DSAnnotations.Options> options
-
referencesByMember
final java.util.Map<Clazz.FieldDef,ReferenceDef> referencesByMember
-
finder
final XMLAttributeFinder finder
-
mismatchedAnnotations
java.util.Map<java.lang.String,java.util.List<DeclarativeServicesAnnotationError>> mismatchedAnnotations
-
-
Constructor Detail
-
AnnotationReader
AnnotationReader(Analyzer analyzer, Clazz clazz, java.util.EnumSet<DSAnnotations.Options> options, XMLAttributeFinder finder, Version minVersion)
-
-
Method Detail
-
getDefinition
public static ComponentDef getDefinition(Clazz c, Analyzer analyzer, java.util.EnumSet<DSAnnotations.Options> options, XMLAttributeFinder finder, Version minVersion) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getDef
private ComponentDef getDef() throws java.lang.Exception
- Throws:
java.lang.Exception
-
referredMethod
protected java.lang.String referredMethod(Analyzer analyzer, ReferenceDef rdef, java.lang.String value, java.lang.String... matches)
- Parameters:
analyzer
-rdef
-
-
classEnd
public void classEnd() throws java.lang.Exception
- Overrides:
classEnd
in classClassDataCollector
- Throws:
java.lang.Exception
-
memberEnd
public void memberEnd()
- Overrides:
memberEnd
in classClassDataCollector
-
annotation
public void annotation(Annotation annotation)
- Overrides:
annotation
in classClassDataCollector
-
handleMixedUsageError
private void handleMixedUsageError(Annotation annotation) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doXmlAttribute
private void doXmlAttribute(Annotation annotation, XMLAttribute xmlAttr)
-
doDesignate
protected void doDesignate(org.osgi.service.metatype.annotations.Designate a)
-
doActivate
protected void doActivate()
-
doDeactivate
protected void doDeactivate()
-
doModified
protected void doModified()
-
processAnnotationArguments
private void processAnnotationArguments(java.lang.String methodDescriptor, DeclarativeServicesAnnotationError details)
look for annotation arguments and extract properties from them- Parameters:
methodDescriptor
-fqn
- TODOmethod
- TODOdescriptor
- TODO
-
doReference
protected void doReference(org.osgi.service.component.annotations.Reference reference, Annotation raw) throws java.lang.Exception
- Parameters:
reference
-raw
-- Throws:
java.lang.Exception
-
getDetails
private DeclarativeServicesAnnotationError getDetails(ReferenceDef def, DeclarativeServicesAnnotationError.ErrorType type)
-
sufficientGenerics
private boolean sufficientGenerics(int index, int sigLength, ReferenceDef def, java.lang.String sig)
-
determineReferenceType
private java.lang.String determineReferenceType(java.lang.String methodDescriptor, ReferenceDef def, java.lang.String annoService, java.lang.String signature)
-
checkMapReturnType
private void checkMapReturnType(boolean hasMapReturnType, DeclarativeServicesAnnotationError details)
-
noMatch
private boolean noMatch(java.lang.String annoService, java.lang.String inferredService)
- Parameters:
annoService
-inferredService
-- Returns:
- true if the inferred service is a non-parameter object because it differs from the specified service type.
-
doComponent
protected void doComponent(org.osgi.service.component.annotations.Component comp, Annotation annotation) throws java.lang.Exception
- Parameters:
annotation
-- Throws:
java.lang.Exception
-
doProperty
private void doProperty(java.lang.String[] properties)
Parse the properties
-
classBegin
public void classBegin(int access, Descriptors.TypeRef name)
Are called during class parsing- Overrides:
classBegin
in classClassDataCollector
-
implementsInterfaces
public void implementsInterfaces(Descriptors.TypeRef[] interfaces)
- Overrides:
implementsInterfaces
in classClassDataCollector
-
method
public void method(Clazz.MethodDef method)
- Overrides:
method
in classClassDataCollector
-
field
public void field(Clazz.FieldDef field)
- Overrides:
field
in classClassDataCollector
-
extendsClass
public void extendsClass(Descriptors.TypeRef name)
- Overrides:
extendsClass
in classClassDataCollector
-
-