Interface IClassPath

All Superinterfaces:
AutoCloseable
All Known Implementing Classes:
ClassPathImpl

public interface IClassPath extends AutoCloseable
A classpath from which resources (classes and other files) may be loaded. Essentially, this is just a list of codebases.
Author:
David Hovemeyer
  • Method Details

    • addCodeBase

      void addCodeBase(ICodeBase codeBase)
      Add a codebase. The object will be interrogated to determine whether it is an application codebase or an auxiliary codebase. Application codebases must be scannable.
      Parameters:
      codeBase - the codebase to add
    • appCodeBaseIterator

      Iterator<? extends ICodeBase> appCodeBaseIterator()
      Return an iterator over the application codebases.
      Returns:
      iterator over the application codebases
    • auxCodeBaseIterator

      Iterator<? extends ICodeBase> auxCodeBaseIterator()
      Return an iterator over the auxiliary codebases.
      Returns:
      iterator over the auxiliary codebases
    • lookupResource

      ICodeBaseEntry lookupResource(String resourceName) throws ResourceNotFoundException
      Lookup a resource by name.
      Parameters:
      resourceName - name of the resource to look up
      Returns:
      ICodeBaseEntry representing the resource
      Throws:
      ResourceNotFoundException - if the resource is not found
    • mapResourceNameToCodeBaseEntry

      void mapResourceNameToCodeBaseEntry(String resourceName, ICodeBaseEntry codeBaseEntry)
      Add a resource name to codebase entry mapping. Once this is done, future lookups of this resource will automatically resolve to the given codebase entry.
      Parameters:
      resourceName - the resource name to map
      codeBaseEntry - the codebase entry to use for this resource
    • getApplicationCodebaseEntries

      Map<String,ICodeBaseEntry> getApplicationCodebaseEntries()
      Returns all of the application code base entries that are part of this class path.
      Returns:
      map where the key is slashed (VM) class name with ".class" suffix
    • close

      void close()
      Close all of the code bases that are part of this class path. This should be done once the client is finished with the classpath.
      Specified by:
      close in interface AutoCloseable