Package ghidra.framework.model
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 Summary
Modifier and TypeMethodDescriptionaddProjectView
(URL projectURL, boolean visible) Add the given project URL to this project's list project views.void
addProjectViewListener
(ProjectViewListener listener) Add a listener to be notified when a visible project view is added or removed.void
close()
Close the project.Return the local tool chest for the user logged in.getName()
Convenience method to get the name of this project.Get list of domain files that are open.Get the root domain data folder in the project.getProjectData
(ProjectLocator projectLocator) Returns the Project Data for the given Project locator.Get the project locator for this project.Returns the project manager of this project.Return the list of visible project views in this project.Get the repository that this project is associated with.getSaveableData
(String key) The analog forsetSaveableData(String, SaveState)
.Return the tool manager for this project.Return the tool services for this project.getToolTemplate
(String tag) Get the tool template with the given tag.Get the project data for visible viewed projects that are managed by this project.boolean
Return whether the project configuration has changed.boolean
isClosed()
Returns whether this project instance has been closedvoid
releaseFiles
(Object consumer) Releases all DomainObjects used by the given consumervoid
removeProjectView
(URL projectURL) Remove the project view from this project.void
removeProjectViewListener
(ProjectViewListener listener) Remove a project view listener previously added.void
restore()
Restore this project's state.void
save()
Save the project and the list of project views.boolean
Saves any tools that are associated with the opened project when the project is closed.void
saveToolTemplate
(String tag, ToolTemplate template) Save the given tool template as part of the project.void
setSaveableData
(String key, SaveState saveState) Allows the user to store data related to the project.
-
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
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
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
Save the given tool template as part of the project.- Parameters:
tag
- ID or name for the tool templatetemplate
- template to save
-
getToolTemplate
Get the tool template with the given tag.- Parameters:
tag
- ID or name for the tool template to get- Returns:
- tool template
-
setSaveableData
Allows the user to store data related to the project.- Parameters:
key
- A value used to store and lookup saved datasaveState
- a container of data that will be written out when persisted
-
getSaveableData
The analog forsetSaveableData(String, SaveState)
. -
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
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
Releases all DomainObjects used by the given consumer- Parameters:
consumer
- object no longer using any DomainObjects.
-
addProjectViewListener
Add a listener to be notified when a visible project view is added or removed.- Parameters:
listener
- project view listener
-
removeProjectViewListener
Remove a project view listener previously added.- Parameters:
listener
- project view listener
-