Class DirLibraryInfo

java.lang.Object
org.fife.rsta.ac.java.buildpath.LibraryInfo
org.fife.rsta.ac.java.buildpath.DirLibraryInfo
All Implemented Interfaces:
Cloneable, Comparable<LibraryInfo>

public class DirLibraryInfo extends LibraryInfo
Information about a folder containing a set of classes to add to the "build path." This type of library info could be used, for example, to add sibling projects in a workspace, not yet built into jars, to another project's build path.
Version:
1.0
See Also:
  • Field Details

    • dir

      private File dir
  • Constructor Details

    • DirLibraryInfo

      public DirLibraryInfo(File dir)
    • DirLibraryInfo

      public DirLibraryInfo(String dir)
    • DirLibraryInfo

      public DirLibraryInfo(File dir, SourceLocation sourceLoc)
    • DirLibraryInfo

      public DirLibraryInfo(String dir, SourceLocation sourceLoc)
  • Method Details

    • bulkClassFileCreationEnd

      public void bulkClassFileCreationEnd()
      Description copied from class: LibraryInfo
      Does any cleanup necessary after a call to LibraryInfo.bulkClassFileCreationStart().
      Specified by:
      bulkClassFileCreationEnd in class LibraryInfo
      See Also:
    • bulkClassFileCreationStart

      public void bulkClassFileCreationStart()
      Description copied from class: LibraryInfo
      Readies this library for many class files being fetched via LibraryInfo.createClassFileBulk(String). After calling this method, the actual class file fetching should be done in a try/finally block that ensures a call to LibraryInfo.bulkClassFileCreationEnd(); e.g.
      libInfo.bulkClassFileCreationStart();
      try {
         String entryName = ...;
         ClassFile cf = createClassFileBulk(entryName);
         ...
      } finally {
         libInfo.bulkClassFileCreationEnd();
      }
      
      Specified by:
      bulkClassFileCreationStart in class LibraryInfo
      See Also:
    • compareTo

      public int compareTo(LibraryInfo info)
      Compares this LibraryInfo to another one. Two instances of this class are only considered equal if they represent the same class file location. Source attachment is irrelevant.
      Returns:
      The sort order of these two library infos.
    • createClassFile

      public ClassFile createClassFile(String entryName) throws IOException
      Description copied from class: LibraryInfo
      Returns the class file information for the specified class. Instances of JarReader can call this method to lazily load information on individual classes and shove it into their package maps.

      If many class files will be fetched at a time, you should prefer using LibraryInfo.bulkClassFileCreationStart() and LibraryInfo.createClassFileBulk(String) over this method, for performance reasons.

      Specified by:
      createClassFile in class LibraryInfo
      Parameters:
      entryName - The fully qualified name of the class file.
      Returns:
      The class file, or null if it isn't found in this library.
      Throws:
      IOException - If an IO error occurs.
      See Also:
    • createClassFileBulk

      public ClassFile createClassFileBulk(String entryName) throws IOException
      Description copied from class: LibraryInfo
      Returns the class file information for the specified class. Instances of JarReader can call this method to lazily load information on individual classes and shove it into their package maps.

      This method should be used when multiple classes will be fetched from this library at the same time. It should only be called after a call to LibraryInfo.bulkClassFileCreationStart(). If only a single class file is being fetched, it is simpler to call LibraryInfo.createClassFile(String).

      Specified by:
      createClassFileBulk in class LibraryInfo
      Parameters:
      entryName - The fully qualified name of the class file.
      Returns:
      The class file, or null if it isn't found in this library.
      Throws:
      IOException - If an IO error occurs.
      See Also:
    • createPackageMap

      public PackageMapNode createPackageMap()
      Description copied from class: LibraryInfo
      Creates and returns a map of maps representing the hierarchical package structure in this library.
      Specified by:
      createPackageMap in class LibraryInfo
      Returns:
      The package structure in this library.
    • getLastModified

      public long getLastModified()
      Description copied from class: LibraryInfo
      Returns the time this library was last modified. For jar files, this would be the modified date of the file. For directories, this would be the time a file in the directory was most recently modified. This information is used to determine whether callers should clear their cached package map information and load it anew.

      This API may change in the future.

      Specified by:
      getLastModified in class LibraryInfo
      Returns:
      The last time this library was modified.
    • getLocationAsString

      public String getLocationAsString()
      Description copied from class: LibraryInfo
      Returns the location of this library, as a string. If this library is contained in a single jar file, this will be the full path to that jar. If it is a directory containing classes, it will be the full path of the directory. Otherwise, this value will be null.
      Specified by:
      getLocationAsString in class LibraryInfo
      Returns:
      The location of this library.
    • getPackageMapImpl

      private void getPackageMapImpl(File dir, String pkg, PackageMapNode root)
      Does the dirty-work of finding all class files in a directory tree.
      Parameters:
      dir - The directory to scan.
      pkg - The package name scanned so far, in the form "com/company/pkgname"...
    • hashCodeImpl

      public int hashCodeImpl()
      Description copied from class: LibraryInfo
      Subclasses should override this method since LibraryInfo.equals(Object) is overridden. Instances of LibraryInfo aren't typically stored in maps, so the hash value isn't necessarily important to RSTALanguageSupport.
      Specified by:
      hashCodeImpl in class LibraryInfo
      Returns:
      The hash code for this library.
    • setDirectory

      private void setDirectory(File dir)
      Sets the directory containing the classes.
      Parameters:
      dir - The directory. This cannot be null.
    • toString

      public String toString()
      Returns a string representation of this jar information. Useful for debugging.
      Overrides:
      toString in class Object
      Returns:
      A string representation of this object.