class DefaultJobTable implements JobTable {

	@Override
	public <E extends Exception> Job getOrCreateJob(JobID jobId, SupplierWithException<? extends JobTable.JobServices, E> jobServicesSupplier) throws E {
		JobOrConnection job = jobs.get(jobId);

		if (job == null) {
			job = new JobOrConnection(jobId, jobServicesSupplier.get());
			jobs.put(jobId, job);
		}

		return job;
	}

	private  DefaultJobTable();

}