public void dataTypeChanged(long dataTypeID, ProgramEvent eventType, boolean isAutoChange,
			Object oldValue, Object newValue) {
		// TODO: do not need to record type changes for packed composite change which is in repsonse
		// to component size or alignment change.
		if (recordChanges && !isAutoChange) {
			((ProgramDBChangeSet) changeSet).dataTypeChanged(dataTypeID);
		}
		changed = true;
		try {
			managers[SYMBOL_MGR].invalidateCache(true); // needed for function variable/param invalidation
			managers[FUNCTION_MGR].invalidateCache(true); // needed for auto-param invalidation
			managers[CODE_MGR].invalidateCache(true); // needed for data invalidation
		}
		catch (IOException e) {
			dbError(e);
		}
		fireEvent(new ProgramChangeRecord(eventType, null, null, null, oldValue, newValue));
	}
notification the a datatype has changed
@param dataTypeID the id of the datatype that changed.
@param eventType the type of the change (moved, renamed, etc.)
@param isAutoChange true if change was an automatic change in response to 
another datatype's change (e.g., size, alignment), else false in which case this
change will be added to program change-set to aid merge conflict detection.
@param oldValue the old datatype.
@param newValue the new datatype.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramDB.java