Class 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 suitable ProjectLocator for accessing the project files.
    • 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 class GhidraProtocolConnector
        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 class GhidraProtocolConnector
        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 class GhidraProtocolConnector
        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 class GhidraProtocolConnector
        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 class GhidraProtocolConnector
        Returns:
        root folder URL
      • 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 class GhidraProtocolConnector
        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