Package org.eclipse.sisu.space
Class QualifierCache
- java.lang.Object
-
- org.eclipse.sisu.space.QualifierCache
-
- All Implemented Interfaces:
ClassVisitor
final class QualifierCache extends java.lang.Object implements ClassVisitor
CachingClassVisitor
that maintains a map of knownQualifier
annotations.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Map<java.lang.String,java.lang.Boolean>
cachedResults
private boolean
isQualified
private static java.lang.String
NAMED_DESC
private static java.lang.String
QUALIFIER_DESC
-
Fields inherited from interface org.eclipse.sisu.space.ClassVisitor
NON_INSTANTIABLE
-
-
Constructor Summary
Constructors Constructor Description QualifierCache()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
enterClass(int modifiers, java.lang.String name, java.lang.String _extends, java.lang.String[] _implements)
Enters the class definition.void
leaveClass()
Leaves the class definition.(package private) boolean
qualify(ClassSpace space, java.lang.String desc)
Scans the given annotation type to see if it is marked withQualifier
.AnnotationVisitor
visitAnnotation(java.lang.String desc)
Visits an annotation declared on the class.
-
-
-
Field Detail
-
QUALIFIER_DESC
private static final java.lang.String QUALIFIER_DESC
- See Also:
- Constant Field Values
-
NAMED_DESC
private static final java.lang.String NAMED_DESC
- See Also:
- Constant Field Values
-
cachedResults
private static final java.util.Map<java.lang.String,java.lang.Boolean> cachedResults
-
isQualified
private boolean isQualified
-
-
Method Detail
-
enterClass
public void enterClass(int modifiers, java.lang.String name, java.lang.String _extends, java.lang.String[] _implements)
Description copied from interface:ClassVisitor
Enters the class definition.- Specified by:
enterClass
in interfaceClassVisitor
- Parameters:
modifiers
- The access modifiersname
- The internal name, such as "javax/inject/Provider"_extends
- Extends this superclass_implements
- Implements these interfaces
-
visitAnnotation
public AnnotationVisitor visitAnnotation(java.lang.String desc)
Description copied from interface:ClassVisitor
Visits an annotation declared on the class.- Specified by:
visitAnnotation
in interfaceClassVisitor
- Parameters:
desc
- The JVM descriptor for the annotation class, such as "Ljavax/inject/Qualifier;"- Returns:
- Annotation visitor;
null
if it is not interested in visiting the annotation - See Also:
SpaceScanner.jvmDescriptor(Class)
-
leaveClass
public void leaveClass()
Description copied from interface:ClassVisitor
Leaves the class definition.- Specified by:
leaveClass
in interfaceClassVisitor
-
qualify
boolean qualify(ClassSpace space, java.lang.String desc)
Scans the given annotation type to see if it is marked withQualifier
.- Parameters:
space
- The class spacedesc
- The annotation descriptor- Returns:
true
if the annotation is a qualifier; otherwisefalse
-
-