private Map<String, List<Symbol>> createSymMap() {

		Map<String, List<Symbol>> symbolMap = new HashMap<>();

		SymbolTable symbolTable = program.getSymbolTable();
		if (addresses == null) {
			getSymbols(symbolMap, symbolTable.getSymbolIterator());
			getSymbols(symbolMap, symbolTable.getExternalSymbols());
		}
		else {
			getSymbols(symbolMap, symbolTable.getSymbols(addresses, SymbolType.FUNCTION, true));
			getSymbols(symbolMap, symbolTable.getSymbols(addresses, SymbolType.LABEL, true));
		}
		return symbolMap;
	}
Constructs a new command to apply all function signature data types
in the given data type category (includes all subcategories).

@param sourceCategory datatype category containing the function signature data types
@param set set of addresses containing labels to match against function names.
			  The addresses must not already be included in the body of any existing function.
 		  If null, all symbols will be processed
@param source the source of this command.
@param alwaysReplace true to always replace the existing function signature with the
						function signature data type.
@param createBookmarksEnabled true to create a bookmark when a function signature
								 has been applied.
Ghidra/Features/Base/src/main/java/ghidra/app/cmd/function/ApplyFunctionDataTypesCmd.java