Package ghidra.framework.protocol.ghidra
Class DefaultLocalGhidraProtocolConnector
java.lang.Object
ghidra.framework.protocol.ghidra.GhidraProtocolConnector
ghidra.framework.protocol.ghidra.DefaultLocalGhidraProtocolConnector
DefaultLocalGhidraProtocolConnector
provides support for the
Ghidra URL protocol which specifies a local Ghidra project without extension.
This connector is responsible for producing a suitable ProjectLocator
for accessing the project files.-
Field Summary
Fields inherited from class ghidra.framework.protocol.ghidra.GhidraProtocolConnector
folderItemName, folderPath, itemPath, repositoryAdapter, repositoryName, repositoryServerAdapter, statusCode, url
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
Presence of a host specification within URL will be verifiedconnect
(boolean readOnlyAccess) Connect to the resource specified by the associated URL.protected void
connect
(RepositoryAdapter repository) Utilized a cached connection via the specified repository adapter.Get the ProjectLocator associated with a local project URL.Gets the repository name associated with the URL.protected URL
Get the URL associated with the repository/project root folder.boolean
Determines the read-only nature of a connected resourceprotected String
Parse item path name from URL and establish initial values for folderPath and folderItemName.Methods inherited from class ghidra.framework.protocol.ghidra.GhidraProtocolConnector
checkProtocol, checkUserInfo, getFolderItemName, getFolderPath, getRepositoryAdapter, getRepositoryServerAdapter, getStatusCode, initFolderItemPath, resolveItemPath
-
Method Details
-
checkHostInfo
Description copied from class:GhidraProtocolConnector
Presence of a host specification within URL will be verified- Overrides:
checkHostInfo
in classGhidraProtocolConnector
- Throws:
MalformedURLException
- if URL is missing proper host specification
-
getRepositoryName
Description copied from class:GhidraProtocolConnector
Gets the repository name associated with the URL. If a local URL is used this will correspond to the project name.- Overrides:
getRepositoryName
in classGhidraProtocolConnector
- Returns:
- the repository name or null if URL does not identify a specific repository
-
parseItemPath
Description copied from class:GhidraProtocolConnector
Parse item path name from URL and establish initial values for folderPath and folderItemName.- Overrides:
parseItemPath
in classGhidraProtocolConnector
- Returns:
- original item path from URL or null if not specified
- Throws:
MalformedURLException
- if URL is invalid
-
connect
Description copied from class:GhidraProtocolConnector
Utilized a cached connection via the specified repository adapter. This method may only be invoked if not yet connected and the associated URL corresponds to a repository (getRepositoryName() != null). The connection status code should be established based upon the availability of the URL referenced repository resource (i.e., folder or file).- Overrides:
connect
in classGhidraProtocolConnector
- Parameters:
repository
- existing connected repository adapter- Throws:
IOException
- if an IO error occurs
-
getLocalProjectLocator
Get the ProjectLocator associated with a local project URL.- Returns:
- project locator object or null if URL supplies a a RepositoryAdapter and/or RepositoryServerAdapter.
-
getRepositoryRootGhidraURL
Description copied from class:GhidraProtocolConnector
Get the URL associated with the repository/project root folder. This will be used as a key to its corresponding transient project data.- Specified by:
getRepositoryRootGhidraURL
in classGhidraProtocolConnector
- Returns:
- root folder URL
-
isReadOnly
Description copied from class:GhidraProtocolConnector
Determines the read-only nature of a connected resource- Specified by:
isReadOnly
in classGhidraProtocolConnector
- Returns:
- true if read-only, false if write access allowed
- Throws:
NotConnectedException
- if connect has not yet been performed
-
connect
Description copied from class:GhidraProtocolConnector
Connect to the resource specified by the associated URL. This method should only be invoked once, a second attempt may result in an IOException.- Specified by:
connect
in classGhidraProtocolConnector
- Parameters:
readOnlyAccess
- if resource should be requested for write access.- Returns:
- connection status code
- Throws:
IOException
- if a connection error occurs
-