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 Object implements TypeResolver
Abstract base implementation of a type resolver.
  • Constructor Details

    • AbstractTypeResolver

      protected AbstractTypeResolver()
      Constructor.
  • Method Details

    • create

      public <T extends ClassFileDescriptor> TypeCache.CachedType<T> create(String fullQualifiedName, com.buschmais.jqassistant.plugin.common.api.model.FileDescriptor fileDescriptor, Class<T> descriptorType, com.buschmais.jqassistant.core.scanner.api.ScannerContext context)
      Description copied from interface: TypeResolver
      Resolve 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:
      create in interface TypeResolver
      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(String fullQualifiedName, com.buschmais.jqassistant.core.scanner.api.ScannerContext context)
      Description copied from interface: TypeResolver
      Resolve or create the descriptor for Java type name to be used as dependency.
      Specified by:
      resolve in interface TypeResolver
      Parameters:
      fullQualifiedName - The fully qualified type name, e.g. "java.lang.Object".
      context - The scanner context.
    • getContainedFileName

      protected abstract String getContainedFileName(String requiredFileName)
    • findInArtifact

      protected abstract TypeDescriptor findInArtifact(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(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(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(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(String fqn, T typeDescriptor)
      Mark a type descriptor as no longer required by the current scope.
      Parameters:
      fqn - The name.
      typeDescriptor - The descriptor.