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 Details

    • getExternalLibraryNames

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

      Library getExternalLibrary(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(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

      String getExternalLibraryPath(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(String libraryName, 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(String oldName, 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(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
    • getExternalLocation

      @Deprecated ExternalLocation getExternalLocation(String libraryName, String label)
      Deprecated.
      Get an external location.
      Parameters:
      libraryName - the name of the library for which to get an external location
      label - the name of the external location.
      Returns:
      first matching external location
    • getExternalLocation

      @Deprecated ExternalLocation getExternalLocation(Namespace namespace, String label)
      Get an external location.
      Parameters:
      namespace - the namespace containing the external label.
      label - the name of the external location.
      Returns:
      first matching external location
    • getExternalLocations

      List<ExternalLocation> getExternalLocations(String libraryName, 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

      List<ExternalLocation> getExternalLocations(Namespace namespace, 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(String libraryName, 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, 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(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).
    • addExternalLibraryName

      Library addExternalLibraryName(String libraryName, SourceType source) throws InvalidInputException, DuplicateNameException
      Adds a new external library name
      Parameters:
      libraryName - the new external library name to add.
      source - the source of this external library
      Returns:
      library
      Throws:
      InvalidInputException
      DuplicateNameException - if another non-Library namespace has the same name
    • addExtLocation

      ExternalLocation addExtLocation(String libraryName, 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, 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, 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(String libraryName, 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, 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, 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