Class AbstractTypeResolver
- java.lang.Object
-
- com.buschmais.jqassistant.plugin.java.api.scanner.AbstractTypeResolver
-
- All Implemented Interfaces:
TypeResolver
- Direct Known Subclasses:
AbstractArtifactScopedTypeResolver
public abstract class AbstractTypeResolver extends java.lang.Object implements TypeResolver
Abstract base implementation of a type resolver.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractTypeResolver()Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract voidaddContainedType(java.lang.String fqn, TypeDescriptor typeDescriptor)Mark a type descriptor as contained by the current scope.protected abstract voidaddRequiredType(java.lang.String fqn, TypeDescriptor typeDescriptor)Mark a type descriptor as required by the current scope.<T extends ClassFileDescriptor>
TypeCache.CachedType<T>create(java.lang.String fullQualifiedName, com.buschmais.jqassistant.plugin.common.api.model.FileDescriptor fileDescriptor, java.lang.Class<T> descriptorType, com.buschmais.jqassistant.core.scanner.api.ScannerContext context)Resolve or create the descriptor for a Java type name.protected abstract TypeDescriptorfindInArtifact(java.lang.String fullQualifiedName, com.buschmais.jqassistant.core.scanner.api.ScannerContext context)Find a type descriptor in the current scope (e.g. the containing artifact).protected abstract TypeDescriptorfindInDependencies(java.lang.String fullQualifiedName, com.buschmais.jqassistant.core.scanner.api.ScannerContext context)Find a type descriptor outside the current scope (e.g. the known dependencies).protected abstract java.lang.StringgetContainedFileName(java.lang.String requiredFileName)protected abstract <T extends TypeDescriptor>
voidremoveRequiredType(java.lang.String fqn, T typeDescriptor)Mark a type descriptor as no longer required by the current scope.TypeCache.CachedType<TypeDescriptor>resolve(java.lang.String fullQualifiedName, com.buschmais.jqassistant.core.scanner.api.ScannerContext context)Resolve or create the descriptor for Java type name to be used as dependency.
-
-
-
Method Detail
-
create
public <T extends ClassFileDescriptor> TypeCache.CachedType<T> create(java.lang.String fullQualifiedName, com.buschmais.jqassistant.plugin.common.api.model.FileDescriptor fileDescriptor, java.lang.Class<T> descriptorType, com.buschmais.jqassistant.core.scanner.api.ScannerContext context)
Description copied from interface:TypeResolverResolve or create the descriptor for a Java type name.If a the descriptor already exists it will be used and migrated to the given type.
- Specified by:
createin interfaceTypeResolver- Type Parameters:
T- The expected type of the descriptor.- Parameters:
fullQualifiedName- The fully qualified type name, e.g. "java.lang.Object".fileDescriptor- The file descriptor.descriptorType- The expected type of the descriptor.context- The scanner context. @return The type descriptor.
-
resolve
public TypeCache.CachedType<TypeDescriptor> resolve(java.lang.String fullQualifiedName, com.buschmais.jqassistant.core.scanner.api.ScannerContext context)
Description copied from interface:TypeResolverResolve or create the descriptor for Java type name to be used as dependency.- Specified by:
resolvein interfaceTypeResolver- Parameters:
fullQualifiedName- The fully qualified type name, e.g. "java.lang.Object".context- The scanner context.
-
getContainedFileName
protected abstract java.lang.String getContainedFileName(java.lang.String requiredFileName)
-
findInArtifact
protected abstract TypeDescriptor findInArtifact(java.lang.String fullQualifiedName, com.buschmais.jqassistant.core.scanner.api.ScannerContext context)
Find a type descriptor in the current scope (e.g. the containing artifact).- Parameters:
fullQualifiedName- The name.context- The scanner context.- Returns:
- The type descriptor.
-
findInDependencies
protected abstract TypeDescriptor findInDependencies(java.lang.String fullQualifiedName, com.buschmais.jqassistant.core.scanner.api.ScannerContext context)
Find a type descriptor outside the current scope (e.g. the known dependencies).- Parameters:
fullQualifiedName- The name.context- The scanner context.- Returns:
- The type descriptor.
-
addRequiredType
protected abstract void addRequiredType(java.lang.String fqn, TypeDescriptor typeDescriptor)Mark a type descriptor as required by the current scope.- Parameters:
fqn- The name.typeDescriptor- The descriptor.
-
addContainedType
protected abstract void addContainedType(java.lang.String fqn, TypeDescriptor typeDescriptor)Mark a type descriptor as contained by the current scope.- Parameters:
fqn- The name.typeDescriptor- The descriptor.
-
removeRequiredType
protected abstract <T extends TypeDescriptor> void removeRequiredType(java.lang.String fqn, T typeDescriptor)
Mark a type descriptor as no longer required by the current scope.- Parameters:
fqn- The name.typeDescriptor- The descriptor.
-
-