@Override
	public synchronized boolean canSave() {
		DomainFile df = getDomainFile();
		if (df instanceof GhidraFile) {
			return df.isInWritableProject() && dbh.canUpdate() && !df.isReadOnly();
		}
		return dbh.canUpdate();
	}
Indicates that this domain object has been restored to a completely different state due
to a transaction undo/redo/rollback or a database merge operation.
Ghidra/Framework/Project/src/main/java/ghidra/framework/data/DomainObjectAdapterDB.java