private DomainObjectListener createDomainObjectListener() {
		//@formatter:off
		return new DomainObjectListenerBuilder(this)
			.ignoreWhen(this::shouldIgnoreEvent)
			.any(LANGUAGE_CHANGED)
				.call(this::initializeAnalyzers)
			.any(RESTORED, PROPERTY_CHANGED)
				.call(this::resetOptions)
			.with(FunctionChangeRecord.class)
				.each(FUNCTION_CHANGED)
					.call(r -> handleFunctionChanged(r))
			.with(ProgramChangeRecord.class)
				.each(FUNCTION_ADDED, FUNCTION_BODY_CHANGED)
					.call(r -> handleFunctionAddedOrBodyChanged(r))
				.each(FUNCTION_REMOVED)
					.call( r -> functionTasks.notifyRemoved(r.getStart()))
				.each(FALLTHROUGH_CHANGED, FLOW_OVERRIDE_CHANGED, LENGTH_OVERRIDE_CHANGED)
					.call(r -> handleOverrides(r))
				.each(CODE_ADDED)
					.call(r -> handleCodeAdded(r))
//				.each(SYMBOL_ADDED, SYMBOL_RENAMED)  // TODO add symbol analyzer type
//					.call(r -> handleSymbolAddedRenamed(r)
			.build();
		//@formatter:on
	}
Tell analyzers that all the addresses in the set should be re-analyzed when analysis runs.
Invoking this method provides consistency in re-analyzing all or a subset of the existing things in a program.

NOTE: This will not kick off analysis nor wait, but it will get scheduled.

@param restrictSet - null to do the entire program, or a set of address to be re-analyzed fully
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/AutoAnalysisManager.java