@Override
	public Set<ExternalLocation> getExternalLocations(Namespace namespace, String extLabel) {
		if (namespace != null && !namespace.isExternal()) {
			return Set.of();
		}
		Set<ExternalLocation> externalLocations = new HashSet<>();
		if (namespace == null || namespace instanceof Library) {
			// Check for matching original import name
			SymbolIterator matchingSymbols =
				symbolMgr.getExternalSymbolByOriginalImportName((Library) namespace, extLabel);
			for (Symbol symbol : matchingSymbols) {
				ExternalLocation externalLocation = getExternalLocation(symbol);
				if (externalLocation != null) {
					externalLocations.add(externalLocation);
				}
			}
		}
		if (namespace != null) {
			List<Symbol> symbols = symbolMgr.getSymbols(extLabel, namespace);
			for (Symbol symbol : symbols) {
				ExternalLocation externalLocation = getExternalLocation(symbol);
				if (externalLocation != null) {
					externalLocations.add(externalLocation);
				}
			}
		}
		else {
			for (Symbol symbol : symbolMgr.getExternalSymbols(extLabel)) {
				ExternalLocation externalLocation = getExternalLocation(symbol);
				if (externalLocation != null) {
					externalLocations.add(externalLocation);
				}
			}
		}
		return Collections.unmodifiableSet(externalLocations);
	}
Get the external location which best matches the specified parameters.
Preference is given to extLabel over extAddr
@param library the library namespace containing this external location.
@param extLabel the name of the external location. Can be null.
@param extAddr the address of function in the external program.  Can be null
@return the best matching ExternalLocation or null.
@throws InvalidInputException if the extLabel name contains illegal characters (i.e. space)
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/external/ExternalManagerDB.java