Interface Project

All Known Implementing Classes:
DefaultProject

public interface Project
Interface to define methods to manage data and tools for users working on a particular effort. Project represents the container object for users, data, and tools to work together.
  • Method Details

    • getName

      String getName()
      Convenience method to get the name of this project.
    • getProjectLocator

      ProjectLocator getProjectLocator()
      Get the project locator for this project.
    • getProjectManager

      ProjectManager getProjectManager()
      Returns the project manager of this project.
      Returns:
      the project manager of this project.
    • getToolManager

      ToolManager getToolManager()
      Return the tool manager for this project.
    • getToolServices

      ToolServices getToolServices()
      Return the tool services for this project.
    • hasChanged

      boolean hasChanged()
      Return whether the project configuration has changed.
    • isClosed

      boolean isClosed()
      Returns whether this project instance has been closed
    • getLocalToolChest

      ToolChest getLocalToolChest()
      Return the local tool chest for the user logged in.
    • getRepository

      RepositoryAdapter getRepository()
      Get the repository that this project is associated with.
      Returns:
      null if the project is not associated with a remote repository
    • addProjectView

      ProjectData addProjectView(URL projectURL, boolean visible) throws IOException
      Add the given project URL to this project's list project views. The project view allows users to look at data files from another project.
      Parameters:
      projectURL - identifier for the project view (ghidra protocol only).
      visible - true if project may be made visible or false if hidden. Hidden viewed projects are used when only life-cycle management is required (e.g., close view project when this project is closed).
      Returns:
      project data for this view
      Throws:
      IOException - if I/O error occurs or if project/repository not found
    • removeProjectView

      void removeProjectView(URL projectURL)
      Remove the project view from this project.
      Parameters:
      projectURL - identifier for the project
    • getProjectViews

      ProjectLocator[] getProjectViews()
      Return the list of visible project views in this project.
    • close

      void close()
      Close the project.
    • save

      void save()
      Save the project and the list of project views.
    • saveSessionTools

      boolean saveSessionTools()
      Saves any tools that are associated with the opened project when the project is closed.
      Returns:
      True if the save was not cancelled.
    • restore

      void restore()
      Restore this project's state.
    • saveToolTemplate

      void saveToolTemplate(String tag, ToolTemplate template)
      Save the given tool template as part of the project.
      Parameters:
      tag - ID or name for the tool template
      template - template to save
    • getToolTemplate

      ToolTemplate getToolTemplate(String tag)
      Get the tool template with the given tag.
      Parameters:
      tag - ID or name for the tool template to get
      Returns:
      tool template
    • setSaveableData

      void setSaveableData(String key, SaveState saveState)
      Allows the user to store data related to the project.
      Parameters:
      key - A value used to store and lookup saved data
      saveState - a container of data that will be written out when persisted
    • getSaveableData

      SaveState getSaveableData(String key)
    • getOpenData

      List<DomainFile> getOpenData()
      Get list of domain files that are open.
      Returns:
      the files; empty if no files
    • getProjectData

      ProjectData getProjectData()
      Get the root domain data folder in the project.
    • getProjectData

      ProjectData getProjectData(ProjectLocator projectLocator)
      Returns the Project Data for the given Project locator. The Project locator must be either the current active project or an currently open project view.
    • getViewedProjectData

      ProjectData[] getViewedProjectData()
      Get the project data for visible viewed projects that are managed by this project.
      Returns:
      zero length array if there are no visible viewed projects open
    • releaseFiles

      void releaseFiles(Object consumer)
      Releases all DomainObjects used by the given consumer
      Parameters:
      consumer - object no longer using any DomainObjects.
    • addProjectViewListener

      void addProjectViewListener(ProjectViewListener listener)
      Add a listener to be notified when a visible project view is added or removed.
      Parameters:
      listener - project view listener
    • removeProjectViewListener

      void removeProjectViewListener(ProjectViewListener listener)
      Remove a project view listener previously added.
      Parameters:
      listener - project view listener