Interface FileResolver

All Known Implementing Classes:
AbstractFileResolver, ContainerFileResolver, LocalFileSystemFileResolver

public interface FileResolver
Defines a strategy for resolving a file.
  • Method Details

    • require

      <D extends FileDescriptor> D require(String requiredPath, String containedPath, Class<D> type, ScannerContext context)
      Resolve an existing file descriptor for the given paths.

      This is usually done by evaluating the given path, e.g. if a path "com/buschmais/Test.class" is given a class file resolver might return an existing class descriptor with the fully qualified name "com.buschmais.Test" which has been created before as a referenced class.

      Parameters:
      requiredPath - The path of the file to require, e.g. /com/acme/Example.class
      containedPath - The internal path (e.g. within the the same artifact if applicable), e.g. /WEB-INF/classes/com/acme/Example.class
      type - The file descriptor type.
      context - The scanner context.
      Returns:
      The resolved file descriptor.
    • require

      <D extends FileDescriptor> D require(String requiredPath, Class<D> type, ScannerContext context)
      Resolve an existing descriptor from the given information.

      This is a convenience method delegating to require(String, Class, ScannerContext) using the value of path also as mappedPath.

      Type Parameters:
      D - The expected file descriptor type.
      Parameters:
      requiredPath - The path of the file to require, e.g. /com/acme/Example.class
      type - The file descriptor type.
      context - The scanner context.
      Returns:
      The resolved file descriptor.
    • match

      <D extends FileDescriptor> D match(String containedPath, Class<D> type, ScannerContext context)
      Match an existing descriptor in the store and return it with as the given type if it exists.

      Example: A Java class might exist with a fully qualified name in the database. The implementation of this method should check if the given path can be transformed into a class name (i.e. replacing '/' with '.') that already exists as descriptor (i.e. node) and return it.

      Type Parameters:
      D - The expected type.
      Parameters:
      containedPath - The path.
      type - The expected type.
      context - The scanner context.
      Returns:
      The matching descriptor.