private static boolean isUniqueSymbolName(SymbolTable symbolTable, Namespace namespace,
			String name, Address address, SymbolType type) {

		if (address.isExternalAddress()) {
			return false;
		}

		if (symbolTable.getSymbol(name, address, namespace) != null) {
			return false;
		}
		if (type.allowsDuplicates()) {
			return true;
		}
		List<Symbol> symbols = symbolTable.getSymbols(name, namespace);
		for (Symbol symbol : symbols) {
			if (!symbol.getSymbolType().allowsDuplicates()) {
				return false;
			}
		}
		return true;
	}
Tests if a symbol can successfully be created.  This is useful when creating symbol
types that require unique names such as Namespaces, Libraries, and Classes.
@param namespace the namespace where the new symbol would be created.
@param name the name of the symbol to test.
@param address the address of the symbol to test. (Can be null)
@param type the symbol type of the symbol to test.
@return true if the symbol with the given properties could be created without causing
a duplicate name exception.
Ghidra/Features/Base/src/main/java/ghidra/program/util/ProgramMerge.java