Class ProjectLocator

java.lang.Object
ghidra.framework.model.ProjectLocator

public class ProjectLocator extends Object
Lightweight descriptor of a local Project storage location.
  • Field Details

  • Constructor Details

    • ProjectLocator

      public ProjectLocator(String path, String name) throws IllegalArgumentException
      Construct a project locator object.
      Parameters:
      path - absolute path to parent directory (may or may not exist). The user's temp directory will be used if this value is null or blank. The use of "\" characters will always be replaced with "/". A path starting with either "//" or "\\" will be treated as a Windows UNC path. WARNING: Use of a relative paths should be avoided (e.g., on a windows platform an absolute path should start with a drive letter specification such as C:\path). A path such as "/path" on windows will utilize the current default drive and will not throw an exception. If a drive letter is specified it must specify an absolute path (e.g., C:\, C:\path).
      name - name of the project (may only contain alphanumeric characters or
      Throws:
      IllegalArgumentException - if an absolute path is not specified or invalid project name
    • ProjectLocator

      protected ProjectLocator(String path, String name, URL url) throws IllegalArgumentException
      Throws:
      IllegalArgumentException
  • Method Details

    • isTransient

      public boolean isTransient()
      Returns true if this project URL corresponds to a transient project (e.g., corresponds to remote Ghidra URL).
      Returns:
      true if this project URL corresponds to a transient project (e.g., corresponds to remote Ghidra URL)
    • getURL

      public URL getURL()
      Returns the URL associated with this local project.. If using a temporary transient project location this URL will refer to the remote server repository.
      Returns:
      the URL associated with this local project.
    • getName

      public String getName()
      Returns the name of the project identified by this project info..
      Returns:
      the name of the project identified by this project info.
    • getLocation

      public String getLocation()
      Get the absolute path of the directory which contains the project marker file (getMarkerFile()) and project directory (getProjectDir()) (i.e., parent directory).

      Directory path will always use '/' as a path separator and may have one of the following forms:

      • Standard path: /a/b/
      • Windows path: /C:/a/b
      • Windows UNC path: //server/share/a/b

      Note: directory may or may not exist.

      Returns:
      project location directory
    • isWindowsOnlyLocation NEW

      public boolean isWindowsOnlyLocation()
      Returns true if this project location is only valid on a Windows platform..
      Returns:
      true if this project location is only valid on a Windows platform.
    • getProjectDir

      public File getProjectDir()
      Get the project storage directory associated with this project locator.

      NOTE: exists() or checkProjectExistence() method should be used prior to the returned file.

      Returns:
      the project directory
    • getMarkerFile

      public File getMarkerFile()
      Get the project marker file associated with this project locator.

      NOTE: exists() or checkProjectExistence() method should be used prior to the returned file.

      Returns:
      the marker file that indicates a Ghidra project.
    • getProjectLockFile

      public File getProjectLockFile()
      Returns project lock file to prevent multiple accesses to the same project at once..
      Returns:
      project lock file to prevent multiple accesses to the same project at once.
    • getProjectDirExtension

      public static String getProjectDirExtension()
      Returns the project directory file extension..
      Returns:
      the project directory file extension.
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getProjectExtension

      public static String getProjectExtension()
      Returns the file extension suitable for creating file filters for the file chooser.
      Returns:
      the file extension suitable for creating file filters for the file chooser
    • isProjectDir

      public static boolean isProjectDir(File file)
      Returns whether the given file is a project directory..
      Parameters:
      file - file to check
      Returns:
      whether the given file is a project directory.
    • exists

      public boolean exists()
      Determine if the project exists.

      IMPORTANT: This method or checkProjectExistence() method should always be used prior to using File object returned by getParentDir(), getMarkerFile() or getProjectLockFile() since OS-specific checks are performed which may not be considered when using the returned File objects.

      Returns:
      true if project storage exists.
    • checkProjectExistence NEW

      public void checkProjectExistence() throws NotFoundException
      Verify that this project exists with its required marker file and data storage directory.

      IMPORTANT: This method or exists() method should always be used prior to using File object returned by getParentDir(), getMarkerFile() or getProjectLockFile() since OS-specific checks are performed which may not be considered when using the returned File objects.

      Throws:
      NotFoundException - if project does not exist
    • checkLocationExistence NEW

      public void checkLocationExistence() throws IOException
      Verify that the specified project location directory exists in preparation for creating a new project.

      IMPORTANT: This method or exists() method should always be used prior to using File object returned by getParentDir(), getMarkerFile() or getProjectLockFile() since OS-specific checks are performed which may not be considered when using the returned File objects.

      Throws:
      IOException - if project location does not exist