Package ghidra.framework.protocol.ghidra
Class DefaultLocalGhidraProtocolConnector
- java.lang.Object
-
- ghidra.framework.protocol.ghidra.GhidraProtocolConnector
-
- ghidra.framework.protocol.ghidra.DefaultLocalGhidraProtocolConnector
-
public class DefaultLocalGhidraProtocolConnector extends GhidraProtocolConnector
DefaultLocalGhidraProtocolConnector
provides support for the Ghidra URL protocol which specifies a local Ghidra project without extension. This connector is responsible for producing a suitableProjectLocator
for accessing the project files.
-
-
Field Summary
-
Fields inherited from class ghidra.framework.protocol.ghidra.GhidraProtocolConnector
folderItemName, folderPath, itemPath, repositoryAdapter, repositoryName, repositoryServerAdapter, responseCode, url
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
checkHostInfo()
Presence of a host specification within URL will be verifiedint
connect(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.ProjectLocator
getLocalProjectLocator()
Get the ProjectLocator associated with a local project URL.protected java.net.URL
getRepositoryRootGhidraURL()
Get the URL associated with the repository/project root folder.boolean
isReadOnly()
Determines the read-only nature of a connected resourceprotected java.lang.String
parseItemPath()
Parse item path name from URL and establish initial values for folderPath and folderItemName.protected java.lang.String
parseRepositoryName()
Parse repository name from URL-
Methods inherited from class ghidra.framework.protocol.ghidra.GhidraProtocolConnector
checkProtocol, checkUserInfo, getFolderItemName, getFolderPath, getRepositoryAdapter, getRepositoryName, getRepositoryServerAdapter, getResponseCode, resolveItemPath
-
-
-
-
Method Detail
-
checkHostInfo
protected void checkHostInfo() throws java.net.MalformedURLException
Description copied from class:GhidraProtocolConnector
Presence of a host specification within URL will be verified- Overrides:
checkHostInfo
in classGhidraProtocolConnector
- Throws:
java.net.MalformedURLException
- if URL is missing proper host specification
-
parseRepositoryName
protected java.lang.String parseRepositoryName() throws java.net.MalformedURLException
Description copied from class:GhidraProtocolConnector
Parse repository name from URL- Overrides:
parseRepositoryName
in classGhidraProtocolConnector
- Returns:
- repository name or null if not specified
- Throws:
java.net.MalformedURLException
- if URL is invalid
-
parseItemPath
protected java.lang.String parseItemPath() throws java.net.MalformedURLException
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:
java.net.MalformedURLException
- if URL is invalid
-
connect
protected void connect(RepositoryAdapter repository) throws java.io.IOException
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 response 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:
java.io.IOException
-
getLocalProjectLocator
public ProjectLocator 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
protected java.net.URL 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
public boolean isReadOnly() throws NotConnectedException
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
public int connect(boolean readOnlyAccess) throws java.io.IOException
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 response code @see
GhidraURLConnection
- Throws:
java.io.IOException
- if a connection error occurs
-
-