void setLabel(String label, SourceType source) throws InvalidInputException {
		if (label == null) {
			setName(getLibrary(), null, SourceType.DEFAULT);
		}
		else if (label.indexOf(Namespace.DELIMITER) < 0) {
			// if label does not include namespace keep current namespace
			setName(symbol.getParentNamespace(), label, source);
		}
		else {
			SymbolPath symbolPath = new SymbolPath(label);
			Namespace namespace = NamespaceUtils.createNamespaceHierarchy(
				symbolPath.getParentPath(), getLibrary(), extMgr.getProgram(), source);
			setName(namespace, symbolPath.getName(), source);
		}
	}
Set the label and optional namespace associated with an external location.
Any non-existing namespace will be created as a simple namespace within the associated
library.
@param label external location label.  The label may be qualified with a namespace
and best effort will be used to parse it (see {@link SymbolPath}).
If a namespace is not included within label, the current namespace will be preserved.
@param source the source of this external symbol:
Symbol.DEFAULT, Symbol.ANALYSIS, Symbol.IMPORTED, or Symbol.USER_DEFINED
@throws InvalidInputException if the name contains illegal characters (space for example)
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/external/ExternalLocationDB.java