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 voidPresence of a host specification within URL will be verifiedconnect(boolean readOnlyAccess) Connect to the resource specified by the associated URL.protected voidconnect(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 URLGet the URL associated with the repository/project root folder.booleanDetermines the read-only nature of a connected resourceprotected StringParse 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:GhidraProtocolConnectorPresence of a host specification within URL will be verified- Overrides:
checkHostInfoin classGhidraProtocolConnector- Throws:
MalformedURLException- if URL is missing proper host specification
-
getRepositoryName
Description copied from class:GhidraProtocolConnectorGets the repository name associated with the URL. If a local URL is used this will correspond to the project name.- Overrides:
getRepositoryNamein classGhidraProtocolConnector- Returns:
- the repository name or null if URL does not identify a specific repository
-
parseItemPath
Description copied from class:GhidraProtocolConnectorParse item path name from URL and establish initial values for folderPath and folderItemName.- Overrides:
parseItemPathin classGhidraProtocolConnector- Returns:
- original item path from URL or null if not specified
- Throws:
MalformedURLException- if URL is invalid
-
connect
Description copied from class:GhidraProtocolConnectorUtilized 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:
connectin 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:GhidraProtocolConnectorGet the URL associated with the repository/project root folder. This will be used as a key to its corresponding transient project data.- Specified by:
getRepositoryRootGhidraURLin classGhidraProtocolConnector- Returns:
- root folder URL
-
isReadOnly
Description copied from class:GhidraProtocolConnectorDetermines the read-only nature of a connected resource- Specified by:
isReadOnlyin 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:GhidraProtocolConnectorConnect 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:
connectin classGhidraProtocolConnector- Parameters:
readOnlyAccess- if resource should be requested for write access.- Returns:
- connection status code
- Throws:
IOException- if a connection error occurs
-