public synchronized void setFinalJob(GraphJob job) {

		trace("setFinalJob() - " + job);

		if (job.isFinished()) {
			throw new IllegalArgumentException("cannot schedule a finished job!");
		}

		// simply overwrite any pending final job, as we can only have one 
		finalJob = Objects.requireNonNull(job, "Graph job cannot be null");
		swing(this::maybeRunNextJob);
	}
Sets a job to run after all currently running and queued jobs.  If a final job was already
set, then that job will be replaced with the given job.

@param job the job to run
Ghidra/Framework/Graph/src/main/java/ghidra/graph/job/GraphJobRunner.java