001/*- 002 * #%L 003 * HAPI FHIR JPA Server - Batch2 Task Processor 004 * %% 005 * Copyright (C) 2014 - 2024 Smile CDR, Inc. 006 * %% 007 * Licensed under the Apache License, Version 2.0 (the "License"); 008 * you may not use this file except in compliance with the License. 009 * You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 * #L% 019 */ 020package ca.uhn.fhir.batch2.api; 021 022import ca.uhn.fhir.batch2.model.JobInstance; 023import ca.uhn.fhir.model.api.IModelJson; 024import jakarta.annotation.Nonnull; 025import org.apache.commons.lang3.Validate; 026 027public class JobCompletionDetails<PT extends IModelJson> { 028 029 private final PT myParameters; 030 private final IJobInstance myInstance; 031 032 public JobCompletionDetails(@Nonnull PT theParameters, @Nonnull JobInstance theInstance) { 033 Validate.notNull(theParameters); 034 myParameters = theParameters; 035 // Make a copy of the instance. Even though the interface is read-only, we don't want to risk users of this API 036 // casting the instance and changing values inside it. 037 myInstance = new JobInstance(theInstance); 038 } 039 040 /** 041 * Returns the parameters associated with this job instance. Note that parameters 042 * are set when the job instance is created and can not be modified after that. 043 */ 044 @Nonnull 045 public PT getParameters() { 046 return myParameters; 047 } 048 049 /** 050 * Returns the job instance ID being executed 051 */ 052 @Nonnull 053 public IJobInstance getInstance() { 054 return myInstance; 055 } 056}