private Symbol createResultSymbol(Symbol originalSymbol, Address address, Namespace namespace)
			throws DuplicateNameException, InvalidInputException {
		Symbol resultSymbol = null;
		SymbolType symType = originalSymbol.getSymbolType();
		String symbolName = originalSymbol.getName();
		SourceType source = originalSymbol.getSource();
		if (symType == SymbolType.LABEL) {
			if (originalSymbol.isExternal()) {
				ExternalManager resultExternalManager = resultPgm.getExternalManager();
				ExternalLocation resultExtLocation =
					resultExternalManager.addExtLocation(namespace, symbolName, address, source);
				resultSymbol = resultExtLocation.getSymbol();
			}
			else {
				resultSymbol = resultSymTab.createLabel(address, symbolName, namespace, source);
			}
		}
		else if (symType == SymbolType.CLASS) {
			GhidraClass newGhidraClass = resultSymTab.createClass(namespace, symbolName, source);
			resultSymbol = newGhidraClass.getSymbol();
		}
		else if (symType == SymbolType.LIBRARY) {
			resultSymTab.createExternalLibrary(symbolName, source);
		}
		else if (symType == SymbolType.NAMESPACE) {
			Namespace newNamespace = resultSymTab.createNameSpace(namespace, symbolName, source);
			resultSymbol = newNamespace.getSymbol();
		}
		return resultSymbol;
	}
Gets an array of strings indicating what the full path  would be if a symbol with
the indicated name were in the specified namespace.
@param name the symbol name
@param namespace the namespace
@return the path as an array
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/SymbolMerger.java