Interface ExternalManager

  • All Known Implementing Classes:
    ExternalManagerDB

    public interface ExternalManager
    External manager interface. Defines methods for dealing with external programs and locations within those programs.
    • Method Detail

      • getExternalLibraryNames

        java.lang.String[] getExternalLibraryNames()
        Returns an array of all external names for which locations have been defined.
        Returns:
        array of external names
      • getExternalLibrary

        Library getExternalLibrary​(java.lang.String libraryName)
        Get the Library which corresponds to the specified name
        Parameters:
        libraryName - name of library
        Returns:
        library or null if not found
      • removeExternalLibrary

        boolean removeExternalLibrary​(java.lang.String libraryName)
        Removes external name if no associated ExternalLocation's exist
        Parameters:
        libraryName - external library name
        Returns:
        true if removed, false if unable to due to associated locations/references
      • getExternalLibraryPath

        java.lang.String getExternalLibraryPath​(java.lang.String libraryName)
        Returns the file pathname associated with an external name. Null is returned if either the external name does not exist or a pathname has not been set.
        Parameters:
        libraryName - external name
        Returns:
        project file pathname or null
      • setExternalPath

        void setExternalPath​(java.lang.String libraryName,
                             java.lang.String pathname,
                             boolean userDefined)
                      throws InvalidInputException
        Sets the file pathname associated with an existing external name.
        Parameters:
        libraryName - the name of the library to associate with a file.
        pathname - the path to the program to be associated with the library name.
        userDefined - true if the external path is being specified by the user
        Throws:
        InvalidInputException
      • updateExternalLibraryName

        void updateExternalLibraryName​(java.lang.String oldName,
                                       java.lang.String newName,
                                       SourceType source)
                                throws DuplicateNameException,
                                       InvalidInputException
        Change the name of an existing external name.
        Parameters:
        oldName - the old name of the external library name.
        newName - the new name of the external library name.
        source - the source of this external library
        Throws:
        DuplicateNameException - if another namespace has the same name
        InvalidInputException
      • getExternalLocations

        ExternalLocationIterator getExternalLocations​(java.lang.String libraryName)
        Get an iterator over all external locations associated with the specified externalName.
        Parameters:
        libraryName - the name of the library to get locations for
        Returns:
        external location iterator
      • getExternalLocations

        ExternalLocationIterator getExternalLocations​(Address memoryAddress)
        Get an iterator over all external locations which have been associated to the specified memory address
        Parameters:
        memoryAddress - memory address
        Returns:
        external location iterator
      • getExternalLocations

        java.util.List<ExternalLocation> getExternalLocations​(java.lang.String libraryName,
                                                              java.lang.String label)
        Returns a list of External Locations matching the given label name in the given Library.
        Parameters:
        libraryName - the name of the library
        label - the name of the label
        Returns:
        a list of External Locations matching the given label name in the given Library.
      • getExternalLocations

        java.util.List<ExternalLocation> getExternalLocations​(Namespace namespace,
                                                              java.lang.String label)
        Returns a list of External Locations matching the given label name in the given Namespace.
        Parameters:
        namespace - the Namespace to search
        label - the name of the labels to search for.
        Returns:
        a list of External Locations matching the given label name in the given Namespace.
      • getUniqueExternalLocation

        ExternalLocation getUniqueExternalLocation​(java.lang.String libraryName,
                                                   java.lang.String label)
        Returns the unique external location associated with the given library name and label
        Parameters:
        libraryName - the library name
        label - the label of the external location
        Returns:
        the unique external location or null
      • getUniqueExternalLocation

        ExternalLocation getUniqueExternalLocation​(Namespace namespace,
                                                   java.lang.String label)
        Returns the unique external location associated with the given namespace and label
        Parameters:
        namespace - the namespace
        label - the label of the external location
        Returns:
        the unique external location or null
      • getExternalLocation

        ExternalLocation getExternalLocation​(Symbol symbol)
        Returns the external location associated with the given external symbol
        Parameters:
        symbol - the external symbol.
        Returns:
        the external location or null
      • contains

        boolean contains​(java.lang.String libraryName)
        Determines if the indicated external library name is being managed (exists).
        Parameters:
        libraryName - the external library name
        Returns:
        true if the name is defined (whether it has a path or not).
      • addExtLocation

        ExternalLocation addExtLocation​(java.lang.String libraryName,
                                        java.lang.String extLabel,
                                        Address extAddr,
                                        SourceType sourceType)
                                 throws InvalidInputException,
                                        DuplicateNameException
        Get or create an external location associated with an library/file named extName and the label within that file specified by extLabel
        Parameters:
        libraryName - the external library name
        extLabel - the external label
        extAddr - the external address
        sourceType - the source type of this external library's symbol
        Returns:
        external location
        Throws:
        InvalidInputException
        DuplicateNameException - if another non-Library namespace has the same name
      • addExtLocation

        ExternalLocation addExtLocation​(Namespace extNamespace,
                                        java.lang.String extLabel,
                                        Address extAddr,
                                        SourceType sourceType)
                                 throws InvalidInputException
        Get or create an external location in the indicated parent namespace with the specified name.
        Parameters:
        extNamespace - the external namespace
        extLabel - the external label
        extAddr - the external address
        sourceType - the source type of this external library's symbol
        Returns:
        external location
        Throws:
        InvalidInputException
      • addExtLocation

        ExternalLocation addExtLocation​(Namespace extNamespace,
                                        java.lang.String extLabel,
                                        Address extAddr,
                                        SourceType sourceType,
                                        boolean reuseExisting)
                                 throws InvalidInputException
        Get or create an external location in the indicated parent namespace with the specified name.
        Parameters:
        extNamespace - the external namespace
        extLabel - the external label
        extAddr - the external address
        sourceType - the source type of this external library's symbol
        reuseExisting - if true, this will return an existing matching external location instead of creating a new one.
        Returns:
        external location
        Throws:
        InvalidInputException
      • addExtFunction

        ExternalLocation addExtFunction​(java.lang.String libraryName,
                                        java.lang.String extLabel,
                                        Address extAddr,
                                        SourceType sourceType)
                                 throws InvalidInputException,
                                        DuplicateNameException
        Get or create an external location associated with an library/file named extName and the label within that file specified by extLabel
        Parameters:
        libraryName - the external library name
        extLabel - the external label
        extAddr - the external address
        sourceType - the source type of this external library's symbol
        Returns:
        external location
        Throws:
        InvalidInputException
        DuplicateNameException - if another non-Library namespace has the same name
      • addExtFunction

        ExternalLocation addExtFunction​(Namespace extNamespace,
                                        java.lang.String extLabel,
                                        Address extAddr,
                                        SourceType sourceType)
                                 throws InvalidInputException
        Get or create an external function location associated with an library/file named extName and the label within that file specified by extLabel
        Parameters:
        extNamespace - the external namespace
        extLabel - the external label
        extAddr - the external address
        sourceType - the source type of this external library's symbol
        Returns:
        external location
        Throws:
        InvalidInputException
      • addExtFunction

        ExternalLocation addExtFunction​(Namespace extNamespace,
                                        java.lang.String extLabel,
                                        Address extAddr,
                                        SourceType sourceType,
                                        boolean reuseExisting)
                                 throws InvalidInputException
        Get or create an external function location associated with an library/file named extName and the label within that file specified by extLabel
        Parameters:
        extNamespace - the external namespace
        extLabel - the external label
        sourceType - the source type of this external library's symbol
        reuseExisting - if true, will return any existing matching location instead of creating a new one. If false, will prefer to create a new one as long as the specified address is not null and not used in an existing location.
        Returns:
        external location
        Throws:
        InvalidInputException