@Override
	protected SourceType validateNameSource(String newName, SourceType source) {
//		if (isThunk()) {
//			return source; // unexpected - already handled
//		}
		if (newName == null || newName.length() == 0) {
			return SourceType.DEFAULT;
		}
		if (isExternal()) {
			if (SymbolUtilities.isReservedDynamicLabelName(newName,
				symbolMgr.getProgram().getAddressFactory())) {
				return SourceType.DEFAULT;
			}
		}
		else {
			String defaultName = SymbolUtilities.getDynamicName(SymbolUtilities.FUN_LEVEL, address);
			if (defaultName.equals(newName)) {
				return SourceType.DEFAULT;
			}
		}
		if (source == SourceType.DEFAULT) {
			source = SourceType.ANALYSIS;
		}
		return source;
	}
Construct a new FunctionSymbol
@param symbolMgr the symbol manager.
@param cache symbol object cache
@param address the address for this symbol.
@param record the record for this symbol.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/symbol/FunctionSymbol.java