001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017package ca.uhn.fhir.model.dstu2.resource;
018
019import java.math.BigDecimal;
020import java.net.URI;
021import java.util.*;
022import ca.uhn.fhir.model.api.*;
023import ca.uhn.fhir.model.api.annotation.*;
024import ca.uhn.fhir.rest.gclient.*;
025
026import ca.uhn.fhir.model.dstu2.valueset.AccountStatusEnum;
027import ca.uhn.fhir.model.dstu2.valueset.ActionListEnum;
028import ca.uhn.fhir.model.dstu2.composite.AddressDt;
029import ca.uhn.fhir.model.dstu2.valueset.AdjudicationCodesEnum;
030import ca.uhn.fhir.model.dstu2.valueset.AdjudicationErrorCodesEnum;
031import ca.uhn.fhir.model.dstu2.valueset.AdjustmentReasonCodesEnum;
032import ca.uhn.fhir.model.dstu2.valueset.AdministrativeGenderEnum;
033import ca.uhn.fhir.model.dstu2.valueset.AdmitSourceEnum;
034import ca.uhn.fhir.model.dstu2.resource.AllergyIntolerance;
035import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCategoryEnum;
036import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCertaintyEnum;
037import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCriticalityEnum;
038import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceSeverityEnum;
039import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceStatusEnum;
040import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceTypeEnum;
041import ca.uhn.fhir.model.dstu2.valueset.AnimalSpeciesEnum;
042import ca.uhn.fhir.model.dstu2.composite.AnnotationDt;
043import ca.uhn.fhir.model.dstu2.valueset.AnswerFormatEnum;
044import ca.uhn.fhir.model.dstu2.resource.Appointment;
045import ca.uhn.fhir.model.dstu2.valueset.AppointmentStatusEnum;
046import ca.uhn.fhir.model.dstu2.valueset.AssertionDirectionTypeEnum;
047import ca.uhn.fhir.model.dstu2.valueset.AssertionOperatorTypeEnum;
048import ca.uhn.fhir.model.dstu2.valueset.AssertionResponseTypesEnum;
049import ca.uhn.fhir.model.dstu2.composite.AttachmentDt;
050import ca.uhn.fhir.model.dstu2.valueset.AuditEventActionEnum;
051import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectLifecycleEnum;
052import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectRoleEnum;
053import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectTypeEnum;
054import ca.uhn.fhir.model.dstu2.valueset.AuditEventOutcomeEnum;
055import ca.uhn.fhir.model.dstu2.valueset.AuditEventParticipantNetworkTypeEnum;
056import ca.uhn.fhir.model.dstu2.valueset.AuditEventSourceTypeEnum;
057import ca.uhn.fhir.model.dstu2.valueset.BindingStrengthEnum;
058import ca.uhn.fhir.model.dstu2.resource.BodySite;
059import ca.uhn.fhir.model.dstu2.valueset.BundleTypeEnum;
060import ca.uhn.fhir.model.dstu2.resource.CarePlan;
061import ca.uhn.fhir.model.dstu2.valueset.CarePlanActivityCategoryEnum;
062import ca.uhn.fhir.model.dstu2.valueset.CarePlanActivityStatusEnum;
063import ca.uhn.fhir.model.dstu2.valueset.CarePlanRelationshipEnum;
064import ca.uhn.fhir.model.dstu2.valueset.CarePlanStatusEnum;
065import ca.uhn.fhir.model.dstu2.resource.Claim;
066import ca.uhn.fhir.model.dstu2.resource.ClaimResponse;
067import ca.uhn.fhir.model.dstu2.valueset.ClaimTypeEnum;
068import ca.uhn.fhir.model.dstu2.resource.ClinicalImpression;
069import ca.uhn.fhir.model.dstu2.valueset.ClinicalImpressionStatusEnum;
070import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
071import ca.uhn.fhir.model.dstu2.composite.CodingDt;
072import ca.uhn.fhir.model.dstu2.resource.CommunicationRequest;
073import ca.uhn.fhir.model.dstu2.valueset.CommunicationRequestStatusEnum;
074import ca.uhn.fhir.model.dstu2.valueset.CommunicationStatusEnum;
075import ca.uhn.fhir.model.dstu2.resource.Composition;
076import ca.uhn.fhir.model.dstu2.valueset.CompositionAttestationModeEnum;
077import ca.uhn.fhir.model.dstu2.valueset.CompositionStatusEnum;
078import ca.uhn.fhir.model.dstu2.valueset.ConceptMapEquivalenceEnum;
079import ca.uhn.fhir.model.dstu2.resource.Condition;
080import ca.uhn.fhir.model.dstu2.valueset.ConditionCategoryCodesEnum;
081import ca.uhn.fhir.model.dstu2.valueset.ConditionClinicalStatusCodesEnum;
082import ca.uhn.fhir.model.dstu2.valueset.ConditionVerificationStatusEnum;
083import ca.uhn.fhir.model.dstu2.valueset.ConditionalDeleteStatusEnum;
084import ca.uhn.fhir.model.dstu2.valueset.ConditionsCodesEnum;
085import ca.uhn.fhir.model.dstu2.resource.Conformance;
086import ca.uhn.fhir.model.dstu2.valueset.ConformanceEventModeEnum;
087import ca.uhn.fhir.model.dstu2.valueset.ConformanceResourceStatusEnum;
088import ca.uhn.fhir.model.dstu2.valueset.ConformanceStatementKindEnum;
089import ca.uhn.fhir.model.dstu2.composite.ContactPointDt;
090import ca.uhn.fhir.model.dstu2.valueset.ContentTypeEnum;
091import ca.uhn.fhir.model.dstu2.resource.Contract;
092import ca.uhn.fhir.model.dstu2.valueset.ContractActionCodesEnum;
093import ca.uhn.fhir.model.dstu2.valueset.ContractActorRoleCodesEnum;
094import ca.uhn.fhir.model.dstu2.valueset.ContractSubtypeCodesEnum;
095import ca.uhn.fhir.model.dstu2.valueset.ContractTermTypeCodesEnum;
096import ca.uhn.fhir.model.dstu2.valueset.ContractTypeCodesEnum;
097import ca.uhn.fhir.model.dstu2.resource.Coverage;
098import ca.uhn.fhir.model.dstu2.valueset.DataElementStringencyEnum;
099import ca.uhn.fhir.model.dstu2.valueset.DaysOfWeekEnum;
100import ca.uhn.fhir.model.dstu2.valueset.DetectedIssueSeverityEnum;
101import ca.uhn.fhir.model.dstu2.resource.Device;
102import ca.uhn.fhir.model.dstu2.resource.DeviceComponent;
103import ca.uhn.fhir.model.dstu2.resource.DeviceMetric;
104import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationStateEnum;
105import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationTypeEnum;
106import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCategoryEnum;
107import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricColorEnum;
108import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricOperationalStatusEnum;
109import ca.uhn.fhir.model.dstu2.valueset.DeviceStatusEnum;
110import ca.uhn.fhir.model.dstu2.resource.DeviceUseRequest;
111import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestPriorityEnum;
112import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestStatusEnum;
113import ca.uhn.fhir.model.dstu2.resource.DiagnosticOrder;
114import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderPriorityEnum;
115import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderStatusEnum;
116import ca.uhn.fhir.model.dstu2.resource.DiagnosticReport;
117import ca.uhn.fhir.model.dstu2.valueset.DiagnosticReportStatusEnum;
118import ca.uhn.fhir.model.dstu2.valueset.DigitalMediaTypeEnum;
119import ca.uhn.fhir.model.dstu2.valueset.DocumentModeEnum;
120import ca.uhn.fhir.model.dstu2.resource.DocumentReference;
121import ca.uhn.fhir.model.dstu2.valueset.DocumentReferenceStatusEnum;
122import ca.uhn.fhir.model.dstu2.valueset.DocumentRelationshipTypeEnum;
123import ca.uhn.fhir.model.dstu2.composite.ElementDefinitionDt;
124import ca.uhn.fhir.model.dstu2.resource.EligibilityRequest;
125import ca.uhn.fhir.model.dstu2.resource.Encounter;
126import ca.uhn.fhir.model.dstu2.valueset.EncounterClassEnum;
127import ca.uhn.fhir.model.dstu2.valueset.EncounterLocationStatusEnum;
128import ca.uhn.fhir.model.dstu2.valueset.EncounterStateEnum;
129import ca.uhn.fhir.model.dstu2.valueset.EncounterTypeEnum;
130import ca.uhn.fhir.model.dstu2.resource.EnrollmentRequest;
131import ca.uhn.fhir.model.dstu2.valueset.EnteralFormulaTypeCodesEnum;
132import ca.uhn.fhir.model.dstu2.resource.EpisodeOfCare;
133import ca.uhn.fhir.model.dstu2.valueset.EpisodeOfCareStatusEnum;
134import ca.uhn.fhir.model.dstu2.valueset.ExceptionCodesEnum;
135import ca.uhn.fhir.model.dstu2.valueset.ExtensionContextEnum;
136import ca.uhn.fhir.model.dstu2.valueset.FamilyHistoryStatusEnum;
137import ca.uhn.fhir.model.dstu2.resource.FamilyMemberHistory;
138import ca.uhn.fhir.model.dstu2.valueset.FilterOperatorEnum;
139import ca.uhn.fhir.model.dstu2.valueset.FlagCategoryCodesEnum;
140import ca.uhn.fhir.model.dstu2.valueset.FlagStatusEnum;
141import ca.uhn.fhir.model.dstu2.valueset.FluidConsistencyTypeCodesEnum;
142import ca.uhn.fhir.model.dstu2.resource.Goal;
143import ca.uhn.fhir.model.dstu2.valueset.GoalCategoryEnum;
144import ca.uhn.fhir.model.dstu2.valueset.GoalPriorityEnum;
145import ca.uhn.fhir.model.dstu2.valueset.GoalStartEventEnum;
146import ca.uhn.fhir.model.dstu2.valueset.GoalStatusEnum;
147import ca.uhn.fhir.model.dstu2.valueset.GoalStatusReasonEnum;
148import ca.uhn.fhir.model.dstu2.resource.Group;
149import ca.uhn.fhir.model.dstu2.valueset.GroupTypeEnum;
150import ca.uhn.fhir.model.dstu2.valueset.GuideDependencyTypeEnum;
151import ca.uhn.fhir.model.dstu2.valueset.GuidePageKindEnum;
152import ca.uhn.fhir.model.dstu2.valueset.GuideResourcePurposeEnum;
153import ca.uhn.fhir.model.dstu2.valueset.HTTPVerbEnum;
154import ca.uhn.fhir.model.dstu2.resource.HealthcareService;
155import ca.uhn.fhir.model.dstu2.composite.HumanNameDt;
156import ca.uhn.fhir.model.dstu2.composite.IdentifierDt;
157import ca.uhn.fhir.model.dstu2.valueset.IdentifierTypeCodesEnum;
158import ca.uhn.fhir.model.dstu2.valueset.IdentityAssuranceLevelEnum;
159import ca.uhn.fhir.model.dstu2.resource.ImagingObjectSelection;
160import ca.uhn.fhir.model.dstu2.resource.ImagingStudy;
161import ca.uhn.fhir.model.dstu2.resource.Immunization;
162import ca.uhn.fhir.model.dstu2.valueset.ImmunizationReasonCodesEnum;
163import ca.uhn.fhir.model.dstu2.valueset.ImmunizationRecommendationDateCriterionCodesEnum;
164import ca.uhn.fhir.model.dstu2.valueset.ImmunizationRecommendationStatusCodesEnum;
165import ca.uhn.fhir.model.dstu2.valueset.ImmunizationRouteCodesEnum;
166import ca.uhn.fhir.model.dstu2.valueset.InstanceAvailabilityEnum;
167import ca.uhn.fhir.model.dstu2.valueset.InterventionCodesEnum;
168import ca.uhn.fhir.model.dstu2.valueset.IssueSeverityEnum;
169import ca.uhn.fhir.model.dstu2.valueset.IssueTypeEnum;
170import ca.uhn.fhir.model.dstu2.valueset.KOStitleEnum;
171import ca.uhn.fhir.model.dstu2.valueset.LateralityEnum;
172import ca.uhn.fhir.model.dstu2.valueset.LinkTypeEnum;
173import ca.uhn.fhir.model.dstu2.valueset.ListModeEnum;
174import ca.uhn.fhir.model.dstu2.valueset.ListOrderCodesEnum;
175import ca.uhn.fhir.model.dstu2.valueset.ListStatusEnum;
176import ca.uhn.fhir.model.dstu2.resource.Location;
177import ca.uhn.fhir.model.dstu2.valueset.LocationModeEnum;
178import ca.uhn.fhir.model.dstu2.valueset.LocationStatusEnum;
179import ca.uhn.fhir.model.dstu2.valueset.LocationTypeEnum;
180import ca.uhn.fhir.model.dstu2.valueset.MaritalStatusCodesEnum;
181import ca.uhn.fhir.model.dstu2.valueset.MeasmntPrincipleEnum;
182import ca.uhn.fhir.model.dstu2.resource.Media;
183import ca.uhn.fhir.model.dstu2.resource.Medication;
184import ca.uhn.fhir.model.dstu2.valueset.MedicationAdministrationStatusEnum;
185import ca.uhn.fhir.model.dstu2.valueset.MedicationDispenseStatusEnum;
186import ca.uhn.fhir.model.dstu2.resource.MedicationOrder;
187import ca.uhn.fhir.model.dstu2.valueset.MedicationOrderStatusEnum;
188import ca.uhn.fhir.model.dstu2.resource.MedicationStatement;
189import ca.uhn.fhir.model.dstu2.valueset.MedicationStatementStatusEnum;
190import ca.uhn.fhir.model.dstu2.valueset.MessageEventEnum;
191import ca.uhn.fhir.model.dstu2.valueset.MessageSignificanceCategoryEnum;
192import ca.uhn.fhir.model.dstu2.valueset.MessageTransportEnum;
193import ca.uhn.fhir.model.dstu2.resource.NamingSystem;
194import ca.uhn.fhir.model.dstu2.valueset.NamingSystemIdentifierTypeEnum;
195import ca.uhn.fhir.model.dstu2.valueset.NamingSystemTypeEnum;
196import ca.uhn.fhir.model.dstu2.valueset.NoteTypeEnum;
197import ca.uhn.fhir.model.dstu2.valueset.NutrientModifierCodesEnum;
198import ca.uhn.fhir.model.dstu2.resource.NutritionOrder;
199import ca.uhn.fhir.model.dstu2.valueset.NutritionOrderStatusEnum;
200import ca.uhn.fhir.model.dstu2.resource.Observation;
201import ca.uhn.fhir.model.dstu2.valueset.ObservationCategoryCodesEnum;
202import ca.uhn.fhir.model.dstu2.valueset.ObservationRelationshipTypeEnum;
203import ca.uhn.fhir.model.dstu2.valueset.ObservationStatusEnum;
204import ca.uhn.fhir.model.dstu2.resource.OperationDefinition;
205import ca.uhn.fhir.model.dstu2.valueset.OperationKindEnum;
206import ca.uhn.fhir.model.dstu2.resource.OperationOutcome;
207import ca.uhn.fhir.model.dstu2.valueset.OperationParameterUseEnum;
208import ca.uhn.fhir.model.dstu2.resource.Order;
209import ca.uhn.fhir.model.dstu2.valueset.OrderStatusEnum;
210import ca.uhn.fhir.model.dstu2.resource.Organization;
211import ca.uhn.fhir.model.dstu2.valueset.OrganizationTypeEnum;
212import ca.uhn.fhir.model.dstu2.valueset.ParticipantRequiredEnum;
213import ca.uhn.fhir.model.dstu2.valueset.ParticipantStatusEnum;
214import ca.uhn.fhir.model.dstu2.valueset.ParticipantTypeEnum;
215import ca.uhn.fhir.model.dstu2.valueset.ParticipationStatusEnum;
216import ca.uhn.fhir.model.dstu2.resource.Patient;
217import ca.uhn.fhir.model.dstu2.valueset.PayeeTypeCodesEnum;
218import ca.uhn.fhir.model.dstu2.valueset.PaymentStatusCodesEnum;
219import ca.uhn.fhir.model.dstu2.valueset.PaymentTypeCodesEnum;
220import ca.uhn.fhir.model.dstu2.composite.PeriodDt;
221import ca.uhn.fhir.model.dstu2.resource.Person;
222import ca.uhn.fhir.model.dstu2.resource.Practitioner;
223import ca.uhn.fhir.model.dstu2.valueset.PractitionerRoleEnum;
224import ca.uhn.fhir.model.dstu2.valueset.PractitionerSpecialtyEnum;
225import ca.uhn.fhir.model.dstu2.valueset.PriorityCodesEnum;
226import ca.uhn.fhir.model.dstu2.resource.Procedure;
227import ca.uhn.fhir.model.dstu2.resource.ProcedureRequest;
228import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestPriorityEnum;
229import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestStatusEnum;
230import ca.uhn.fhir.model.dstu2.valueset.ProcedureStatusEnum;
231import ca.uhn.fhir.model.dstu2.resource.ProcessRequest;
232import ca.uhn.fhir.model.dstu2.valueset.ProvenanceEntityRoleEnum;
233import ca.uhn.fhir.model.dstu2.composite.QuantityDt;
234import ca.uhn.fhir.model.dstu2.resource.Questionnaire;
235import ca.uhn.fhir.model.dstu2.resource.QuestionnaireResponse;
236import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireResponseStatusEnum;
237import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireStatusEnum;
238import ca.uhn.fhir.model.dstu2.composite.RangeDt;
239import ca.uhn.fhir.model.dstu2.composite.RatioDt;
240import ca.uhn.fhir.model.dstu2.valueset.ReferralMethodEnum;
241import ca.uhn.fhir.model.dstu2.resource.ReferralRequest;
242import ca.uhn.fhir.model.dstu2.valueset.ReferralStatusEnum;
243import ca.uhn.fhir.model.dstu2.resource.RelatedPerson;
244import ca.uhn.fhir.model.dstu2.valueset.RemittanceOutcomeEnum;
245import ca.uhn.fhir.model.dstu2.valueset.ResourceTypeEnum;
246import ca.uhn.fhir.model.dstu2.valueset.ResourceVersionPolicyEnum;
247import ca.uhn.fhir.model.dstu2.valueset.ResponseTypeEnum;
248import ca.uhn.fhir.model.dstu2.valueset.RestfulConformanceModeEnum;
249import ca.uhn.fhir.model.dstu2.valueset.RestfulSecurityServiceEnum;
250import ca.uhn.fhir.model.dstu2.resource.RiskAssessment;
251import ca.uhn.fhir.model.dstu2.valueset.RulesetCodesEnum;
252import ca.uhn.fhir.model.dstu2.composite.SampledDataDt;
253import ca.uhn.fhir.model.dstu2.resource.Schedule;
254import ca.uhn.fhir.model.dstu2.valueset.SearchEntryModeEnum;
255import ca.uhn.fhir.model.dstu2.valueset.SearchModifierCodeEnum;
256import ca.uhn.fhir.model.dstu2.valueset.SearchParamTypeEnum;
257import ca.uhn.fhir.model.dstu2.valueset.ServiceProvisionConditionsEnum;
258import ca.uhn.fhir.model.dstu2.composite.SignatureDt;
259import ca.uhn.fhir.model.dstu2.resource.Slot;
260import ca.uhn.fhir.model.dstu2.valueset.SlotStatusEnum;
261import ca.uhn.fhir.model.dstu2.resource.Specimen;
262import ca.uhn.fhir.model.dstu2.valueset.SpecimenCollectionMethodEnum;
263import ca.uhn.fhir.model.dstu2.valueset.SpecimenStatusEnum;
264import ca.uhn.fhir.model.dstu2.resource.StructureDefinition;
265import ca.uhn.fhir.model.dstu2.valueset.StructureDefinitionKindEnum;
266import ca.uhn.fhir.model.dstu2.valueset.SubscriptionChannelTypeEnum;
267import ca.uhn.fhir.model.dstu2.valueset.SubscriptionStatusEnum;
268import ca.uhn.fhir.model.dstu2.valueset.SubscriptionTagEnum;
269import ca.uhn.fhir.model.dstu2.resource.Substance;
270import ca.uhn.fhir.model.dstu2.valueset.SubstanceCategoryCodesEnum;
271import ca.uhn.fhir.model.dstu2.valueset.SupplementTypeCodesEnum;
272import ca.uhn.fhir.model.dstu2.valueset.SupplyDeliveryStatusEnum;
273import ca.uhn.fhir.model.dstu2.resource.SupplyRequest;
274import ca.uhn.fhir.model.dstu2.valueset.SupplyRequestReasonEnum;
275import ca.uhn.fhir.model.dstu2.valueset.SupplyRequestStatusEnum;
276import ca.uhn.fhir.model.dstu2.valueset.SurfaceCodesEnum;
277import ca.uhn.fhir.model.dstu2.valueset.SystemRestfulInteractionEnum;
278import ca.uhn.fhir.model.api.TemporalPrecisionEnum;
279import ca.uhn.fhir.model.dstu2.valueset.TextureModifiedFoodTypeCodesEnum;
280import ca.uhn.fhir.model.dstu2.valueset.TextureModifierCodesEnum;
281import ca.uhn.fhir.model.dstu2.composite.TimingDt;
282import ca.uhn.fhir.model.dstu2.valueset.TransactionModeEnum;
283import ca.uhn.fhir.model.dstu2.valueset.TypeRestfulInteractionEnum;
284import ca.uhn.fhir.model.dstu2.valueset.UDICodesEnum;
285import ca.uhn.fhir.model.dstu2.valueset.UnknownContentCodeEnum;
286import ca.uhn.fhir.model.dstu2.valueset.UseEnum;
287import ca.uhn.fhir.model.dstu2.resource.ValueSet;
288import ca.uhn.fhir.model.dstu2.valueset.VisionBaseEnum;
289import ca.uhn.fhir.model.dstu2.valueset.VisionEyesEnum;
290import ca.uhn.fhir.model.dstu2.resource.VisionPrescription;
291import ca.uhn.fhir.model.dstu2.valueset.XPathUsageTypeEnum;
292import ca.uhn.fhir.model.api.IResource;
293import ca.uhn.fhir.model.dstu2.composite.AgeDt;
294import ca.uhn.fhir.model.dstu2.composite.BoundCodeableConceptDt;
295import ca.uhn.fhir.model.dstu2.composite.DurationDt;
296import ca.uhn.fhir.model.dstu2.composite.MoneyDt;
297import ca.uhn.fhir.model.dstu2.composite.NarrativeDt;
298import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt;
299import ca.uhn.fhir.model.dstu2.composite.SimpleQuantityDt;
300import ca.uhn.fhir.model.primitive.Base64BinaryDt;
301import ca.uhn.fhir.model.primitive.BooleanDt;
302import ca.uhn.fhir.model.primitive.BoundCodeDt;
303import ca.uhn.fhir.model.primitive.CodeDt;
304import ca.uhn.fhir.model.primitive.DateDt;
305import ca.uhn.fhir.model.primitive.DateTimeDt;
306import ca.uhn.fhir.model.primitive.DecimalDt;
307import ca.uhn.fhir.model.primitive.IdDt;
308import ca.uhn.fhir.model.primitive.InstantDt;
309import ca.uhn.fhir.model.primitive.IntegerDt;
310import ca.uhn.fhir.model.primitive.OidDt;
311import ca.uhn.fhir.model.primitive.PositiveIntDt;
312import ca.uhn.fhir.model.primitive.StringDt;
313import ca.uhn.fhir.model.primitive.TimeDt;
314import ca.uhn.fhir.model.primitive.UnsignedIntDt;
315import ca.uhn.fhir.model.primitive.UriDt;
316
317
318/**
319 * HAPI/FHIR <b>TestScript</b> Resource
320 * ()
321 *
322 * <p>
323 * <b>Definition:</b>
324 * TestScript is a resource that specifies a suite of tests against a FHIR server implementation to determine compliance against the FHIR specification.
325 * </p> 
326 *
327 * <p>
328 * <b>Requirements:</b>
329 * 
330 * </p> 
331 *
332 * <p>
333 * <b>Profile Definition:</b>
334 * <a href="http://hl7.org/fhir/profiles/TestScript">http://hl7.org/fhir/profiles/TestScript</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="TestScript", profile="http://hl7.org/fhir/profiles/TestScript", id="testscript")
339public class TestScript extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>url</b>
344         * <p>
345         * Description: <b></b><br>
346         * Type: <b>uri</b><br>
347         * Path: <b>TestScript.url</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="url", path="TestScript.url", description="", type="uri"  )
351        public static final String SP_URL = "url";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>url</b>
355         * <p>
356         * Description: <b></b><br>
357         * Type: <b>uri</b><br>
358         * Path: <b>TestScript.url</b><br>
359         * </p>
360         */
361        public static final UriClientParam URL = new UriClientParam(SP_URL);
362
363        /**
364         * Search parameter constant for <b>identifier</b>
365         * <p>
366         * Description: <b></b><br>
367         * Type: <b>token</b><br>
368         * Path: <b>TestScript.identifier</b><br>
369         * </p>
370         */
371        @SearchParamDefinition(name="identifier", path="TestScript.identifier", description="", type="token"  )
372        public static final String SP_IDENTIFIER = "identifier";
373
374        /**
375         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
376         * <p>
377         * Description: <b></b><br>
378         * Type: <b>token</b><br>
379         * Path: <b>TestScript.identifier</b><br>
380         * </p>
381         */
382        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
383
384        /**
385         * Search parameter constant for <b>name</b>
386         * <p>
387         * Description: <b></b><br>
388         * Type: <b>string</b><br>
389         * Path: <b>TestScript.name</b><br>
390         * </p>
391         */
392        @SearchParamDefinition(name="name", path="TestScript.name", description="", type="string"  )
393        public static final String SP_NAME = "name";
394
395        /**
396         * <b>Fluent Client</b> search parameter constant for <b>name</b>
397         * <p>
398         * Description: <b></b><br>
399         * Type: <b>string</b><br>
400         * Path: <b>TestScript.name</b><br>
401         * </p>
402         */
403        public static final StringClientParam NAME = new StringClientParam(SP_NAME);
404
405        /**
406         * Search parameter constant for <b>description</b>
407         * <p>
408         * Description: <b></b><br>
409         * Type: <b>string</b><br>
410         * Path: <b>TestScript.description</b><br>
411         * </p>
412         */
413        @SearchParamDefinition(name="description", path="TestScript.description", description="", type="string"  )
414        public static final String SP_DESCRIPTION = "description";
415
416        /**
417         * <b>Fluent Client</b> search parameter constant for <b>description</b>
418         * <p>
419         * Description: <b></b><br>
420         * Type: <b>string</b><br>
421         * Path: <b>TestScript.description</b><br>
422         * </p>
423         */
424        public static final StringClientParam DESCRIPTION = new StringClientParam(SP_DESCRIPTION);
425
426        /**
427         * Search parameter constant for <b>testscript-capability</b>
428         * <p>
429         * Description: <b>TestScript required and validated capability</b><br>
430         * Type: <b>string</b><br>
431         * Path: <b>TestScript.metadata.capability.description</b><br>
432         * </p>
433         */
434        @SearchParamDefinition(name="testscript-capability", path="TestScript.metadata.capability.description", description="TestScript required and validated capability", type="string"  )
435        public static final String SP_TESTSCRIPT_CAPABILITY = "testscript-capability";
436
437        /**
438         * <b>Fluent Client</b> search parameter constant for <b>testscript-capability</b>
439         * <p>
440         * Description: <b>TestScript required and validated capability</b><br>
441         * Type: <b>string</b><br>
442         * Path: <b>TestScript.metadata.capability.description</b><br>
443         * </p>
444         */
445        public static final StringClientParam TESTSCRIPT_CAPABILITY = new StringClientParam(SP_TESTSCRIPT_CAPABILITY);
446
447        /**
448         * Search parameter constant for <b>testscript-setup-capability</b>
449         * <p>
450         * Description: <b>TestScript setup required and validated capability</b><br>
451         * Type: <b>string</b><br>
452         * Path: <b>TestScript.setup.metadata.capability.description</b><br>
453         * </p>
454         */
455        @SearchParamDefinition(name="testscript-setup-capability", path="TestScript.setup.metadata.capability.description", description="TestScript setup required and validated capability", type="string"  )
456        public static final String SP_TESTSCRIPT_SETUP_CAPABILITY = "testscript-setup-capability";
457
458        /**
459         * <b>Fluent Client</b> search parameter constant for <b>testscript-setup-capability</b>
460         * <p>
461         * Description: <b>TestScript setup required and validated capability</b><br>
462         * Type: <b>string</b><br>
463         * Path: <b>TestScript.setup.metadata.capability.description</b><br>
464         * </p>
465         */
466        public static final StringClientParam TESTSCRIPT_SETUP_CAPABILITY = new StringClientParam(SP_TESTSCRIPT_SETUP_CAPABILITY);
467
468        /**
469         * Search parameter constant for <b>testscript-test-capability</b>
470         * <p>
471         * Description: <b>TestScript test required and validated capability</b><br>
472         * Type: <b>string</b><br>
473         * Path: <b>TestScript.test.metadata.capability.description</b><br>
474         * </p>
475         */
476        @SearchParamDefinition(name="testscript-test-capability", path="TestScript.test.metadata.capability.description", description="TestScript test required and validated capability", type="string"  )
477        public static final String SP_TESTSCRIPT_TEST_CAPABILITY = "testscript-test-capability";
478
479        /**
480         * <b>Fluent Client</b> search parameter constant for <b>testscript-test-capability</b>
481         * <p>
482         * Description: <b>TestScript test required and validated capability</b><br>
483         * Type: <b>string</b><br>
484         * Path: <b>TestScript.test.metadata.capability.description</b><br>
485         * </p>
486         */
487        public static final StringClientParam TESTSCRIPT_TEST_CAPABILITY = new StringClientParam(SP_TESTSCRIPT_TEST_CAPABILITY);
488
489
490
491        @Child(name="url", type=UriDt.class, order=0, min=1, max=1, summary=true, modifier=false)       
492        @Description(
493                shortDefinition="",
494                formalDefinition="An absolute URL that is used to identify this Test Script. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this Test Script is (or will be) published"
495        )
496        private UriDt myUrl;
497        
498        @Child(name="version", type=StringDt.class, order=1, min=0, max=1, summary=true, modifier=false)        
499        @Description(
500                shortDefinition="",
501                formalDefinition="The identifier that is used to identify this version of the TestScript. This is an arbitrary value managed by the TestScript author manually"
502        )
503        private StringDt myVersion;
504        
505        @Child(name="name", type=StringDt.class, order=2, min=1, max=1, summary=true, modifier=false)   
506        @Description(
507                shortDefinition="",
508                formalDefinition="A free text natural language name identifying the TestScript"
509        )
510        private StringDt myName;
511        
512        @Child(name="status", type=CodeDt.class, order=3, min=1, max=1, summary=true, modifier=false)   
513        @Description(
514                shortDefinition="",
515                formalDefinition="The status of the TestScript"
516        )
517        private BoundCodeDt<ConformanceResourceStatusEnum> myStatus;
518        
519        @Child(name="identifier", type=IdentifierDt.class, order=4, min=0, max=1, summary=true, modifier=false) 
520        @Description(
521                shortDefinition="",
522                formalDefinition="Identifier for the TestScript assigned for external purposes outside the context of FHIR."
523        )
524        private IdentifierDt myIdentifier;
525        
526        @Child(name="experimental", type=BooleanDt.class, order=5, min=0, max=1, summary=true, modifier=false)  
527        @Description(
528                shortDefinition="",
529                formalDefinition="This TestScript was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage"
530        )
531        private BooleanDt myExperimental;
532        
533        @Child(name="publisher", type=StringDt.class, order=6, min=0, max=1, summary=true, modifier=false)      
534        @Description(
535                shortDefinition="",
536                formalDefinition="The name of the individual or organization that published the Test Script"
537        )
538        private StringDt myPublisher;
539        
540        @Child(name="contact", order=7, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)   
541        @Description(
542                shortDefinition="",
543                formalDefinition="Contacts to assist a user in finding and communicating with the publisher"
544        )
545        private java.util.List<Contact> myContact;
546        
547        @Child(name="date", type=DateTimeDt.class, order=8, min=0, max=1, summary=true, modifier=false) 
548        @Description(
549                shortDefinition="",
550                formalDefinition="The date this version of the test tcript was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the test cases change"
551        )
552        private DateTimeDt myDate;
553        
554        @Child(name="description", type=StringDt.class, order=9, min=0, max=1, summary=true, modifier=false)    
555        @Description(
556                shortDefinition="",
557                formalDefinition="A free text natural language description of the TestScript and its use"
558        )
559        private StringDt myDescription;
560        
561        @Child(name="useContext", type=CodeableConceptDt.class, order=10, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false) 
562        @Description(
563                shortDefinition="",
564                formalDefinition="The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of Test Scripts."
565        )
566        private java.util.List<CodeableConceptDt> myUseContext;
567        
568        @Child(name="requirements", type=StringDt.class, order=11, min=0, max=1, summary=false, modifier=false) 
569        @Description(
570                shortDefinition="",
571                formalDefinition="Explains why this Test Script is needed and why it's been constrained as it has"
572        )
573        private StringDt myRequirements;
574        
575        @Child(name="copyright", type=StringDt.class, order=12, min=0, max=1, summary=false, modifier=false)    
576        @Description(
577                shortDefinition="",
578                formalDefinition="A copyright statement relating to the Test Script and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings"
579        )
580        private StringDt myCopyright;
581        
582        @Child(name="metadata", order=13, min=0, max=1, summary=false, modifier=false)  
583        @Description(
584                shortDefinition="",
585                formalDefinition="The required capability must exist and are assumed to function correctly on the FHIR server being tested."
586        )
587        private Metadata myMetadata;
588        
589        @Child(name="multiserver", type=BooleanDt.class, order=14, min=0, max=1, summary=false, modifier=false) 
590        @Description(
591                shortDefinition="",
592                formalDefinition="If the tests apply to more than one FHIR server (e.g. cross-server interoperability tests) then multiserver=true. Defaults to false if value is unspecified."
593        )
594        private BooleanDt myMultiserver;
595        
596        @Child(name="fixture", order=15, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false) 
597        @Description(
598                shortDefinition="",
599                formalDefinition="Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute."
600        )
601        private java.util.List<Fixture> myFixture;
602        
603        @Child(name="profile", order=16, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
604                IResource.class })
605        @Description(
606                shortDefinition="",
607                formalDefinition="Reference to the profile to be used for validation."
608        )
609        private java.util.List<ResourceReferenceDt> myProfile;
610        
611        @Child(name="variable", order=17, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
612        @Description(
613                shortDefinition="",
614                formalDefinition="Variable is set based either on element value in response body or on header field value in the response headers."
615        )
616        private java.util.List<Variable> myVariable;
617        
618        @Child(name="setup", order=18, min=0, max=1, summary=false, modifier=false)     
619        @Description(
620                shortDefinition="",
621                formalDefinition="A series of required setup operations before tests are executed."
622        )
623        private Setup mySetup;
624        
625        @Child(name="test", order=19, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
626        @Description(
627                shortDefinition="",
628                formalDefinition="A test in this script."
629        )
630        private java.util.List<Test> myTest;
631        
632        @Child(name="teardown", order=20, min=0, max=1, summary=false, modifier=false)  
633        @Description(
634                shortDefinition="",
635                formalDefinition="A series of operations required to clean up after the all the tests are executed (successfully or otherwise)."
636        )
637        private Teardown myTeardown;
638        
639
640        @Override
641        public boolean isEmpty() {
642                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myUrl,  myVersion,  myName,  myStatus,  myIdentifier,  myExperimental,  myPublisher,  myContact,  myDate,  myDescription,  myUseContext,  myRequirements,  myCopyright,  myMetadata,  myMultiserver,  myFixture,  myProfile,  myVariable,  mySetup,  myTest,  myTeardown);
643        }
644        
645        @Override
646        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
647                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myUrl, myVersion, myName, myStatus, myIdentifier, myExperimental, myPublisher, myContact, myDate, myDescription, myUseContext, myRequirements, myCopyright, myMetadata, myMultiserver, myFixture, myProfile, myVariable, mySetup, myTest, myTeardown);
648        }
649
650        /**
651         * Gets the value(s) for <b>url</b> ().
652         * creating it if it does
653         * not exist. Will not return <code>null</code>.
654         *
655     * <p>
656     * <b>Definition:</b>
657     * An absolute URL that is used to identify this Test Script. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this Test Script is (or will be) published
658     * </p> 
659         */
660        public UriDt getUrlElement() {  
661                if (myUrl == null) {
662                        myUrl = new UriDt();
663                }
664                return myUrl;
665        }
666
667        
668        /**
669         * Gets the value(s) for <b>url</b> ().
670         * creating it if it does
671         * not exist. Will not return <code>null</code>.
672         *
673     * <p>
674     * <b>Definition:</b>
675     * An absolute URL that is used to identify this Test Script. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this Test Script is (or will be) published
676     * </p> 
677         */
678        public String getUrl() {  
679                return getUrlElement().getValue();
680        }
681
682        /**
683         * Sets the value(s) for <b>url</b> ()
684         *
685     * <p>
686     * <b>Definition:</b>
687     * An absolute URL that is used to identify this Test Script. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this Test Script is (or will be) published
688     * </p> 
689         */
690        public TestScript setUrl(UriDt theValue) {
691                myUrl = theValue;
692                return this;
693        }
694        
695        
696
697        /**
698         * Sets the value for <b>url</b> ()
699         *
700     * <p>
701     * <b>Definition:</b>
702     * An absolute URL that is used to identify this Test Script. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this Test Script is (or will be) published
703     * </p> 
704         */
705        public TestScript setUrl( String theUri) {
706                myUrl = new UriDt(theUri); 
707                return this; 
708        }
709
710 
711        /**
712         * Gets the value(s) for <b>version</b> ().
713         * creating it if it does
714         * not exist. Will not return <code>null</code>.
715         *
716     * <p>
717     * <b>Definition:</b>
718     * The identifier that is used to identify this version of the TestScript. This is an arbitrary value managed by the TestScript author manually
719     * </p> 
720         */
721        public StringDt getVersionElement() {  
722                if (myVersion == null) {
723                        myVersion = new StringDt();
724                }
725                return myVersion;
726        }
727
728        
729        /**
730         * Gets the value(s) for <b>version</b> ().
731         * creating it if it does
732         * not exist. Will not return <code>null</code>.
733         *
734     * <p>
735     * <b>Definition:</b>
736     * The identifier that is used to identify this version of the TestScript. This is an arbitrary value managed by the TestScript author manually
737     * </p> 
738         */
739        public String getVersion() {  
740                return getVersionElement().getValue();
741        }
742
743        /**
744         * Sets the value(s) for <b>version</b> ()
745         *
746     * <p>
747     * <b>Definition:</b>
748     * The identifier that is used to identify this version of the TestScript. This is an arbitrary value managed by the TestScript author manually
749     * </p> 
750         */
751        public TestScript setVersion(StringDt theValue) {
752                myVersion = theValue;
753                return this;
754        }
755        
756        
757
758        /**
759         * Sets the value for <b>version</b> ()
760         *
761     * <p>
762     * <b>Definition:</b>
763     * The identifier that is used to identify this version of the TestScript. This is an arbitrary value managed by the TestScript author manually
764     * </p> 
765         */
766        public TestScript setVersion( String theString) {
767                myVersion = new StringDt(theString); 
768                return this; 
769        }
770
771 
772        /**
773         * Gets the value(s) for <b>name</b> ().
774         * creating it if it does
775         * not exist. Will not return <code>null</code>.
776         *
777     * <p>
778     * <b>Definition:</b>
779     * A free text natural language name identifying the TestScript
780     * </p> 
781         */
782        public StringDt getNameElement() {  
783                if (myName == null) {
784                        myName = new StringDt();
785                }
786                return myName;
787        }
788
789        
790        /**
791         * Gets the value(s) for <b>name</b> ().
792         * creating it if it does
793         * not exist. Will not return <code>null</code>.
794         *
795     * <p>
796     * <b>Definition:</b>
797     * A free text natural language name identifying the TestScript
798     * </p> 
799         */
800        public String getName() {  
801                return getNameElement().getValue();
802        }
803
804        /**
805         * Sets the value(s) for <b>name</b> ()
806         *
807     * <p>
808     * <b>Definition:</b>
809     * A free text natural language name identifying the TestScript
810     * </p> 
811         */
812        public TestScript setName(StringDt theValue) {
813                myName = theValue;
814                return this;
815        }
816        
817        
818
819        /**
820         * Sets the value for <b>name</b> ()
821         *
822     * <p>
823     * <b>Definition:</b>
824     * A free text natural language name identifying the TestScript
825     * </p> 
826         */
827        public TestScript setName( String theString) {
828                myName = new StringDt(theString); 
829                return this; 
830        }
831
832 
833        /**
834         * Gets the value(s) for <b>status</b> ().
835         * creating it if it does
836         * not exist. Will not return <code>null</code>.
837         *
838     * <p>
839     * <b>Definition:</b>
840     * The status of the TestScript
841     * </p> 
842         */
843        public BoundCodeDt<ConformanceResourceStatusEnum> getStatusElement() {  
844                if (myStatus == null) {
845                        myStatus = new BoundCodeDt<ConformanceResourceStatusEnum>(ConformanceResourceStatusEnum.VALUESET_BINDER);
846                }
847                return myStatus;
848        }
849
850        
851        /**
852         * Gets the value(s) for <b>status</b> ().
853         * creating it if it does
854         * not exist. Will not return <code>null</code>.
855         *
856     * <p>
857     * <b>Definition:</b>
858     * The status of the TestScript
859     * </p> 
860         */
861        public String getStatus() {  
862                return getStatusElement().getValue();
863        }
864
865        /**
866         * Sets the value(s) for <b>status</b> ()
867         *
868     * <p>
869     * <b>Definition:</b>
870     * The status of the TestScript
871     * </p> 
872         */
873        public TestScript setStatus(BoundCodeDt<ConformanceResourceStatusEnum> theValue) {
874                myStatus = theValue;
875                return this;
876        }
877        
878        
879
880        /**
881         * Sets the value(s) for <b>status</b> ()
882         *
883     * <p>
884     * <b>Definition:</b>
885     * The status of the TestScript
886     * </p> 
887         */
888        public TestScript setStatus(ConformanceResourceStatusEnum theValue) {
889                setStatus(new BoundCodeDt<ConformanceResourceStatusEnum>(ConformanceResourceStatusEnum.VALUESET_BINDER, theValue));
890                
891/*
892                getStatusElement().setValueAsEnum(theValue);
893*/
894                return this;
895        }
896
897  
898        /**
899         * Gets the value(s) for <b>identifier</b> ().
900         * creating it if it does
901         * not exist. Will not return <code>null</code>.
902         *
903     * <p>
904     * <b>Definition:</b>
905     * Identifier for the TestScript assigned for external purposes outside the context of FHIR.
906     * </p> 
907         */
908        public IdentifierDt getIdentifier() {  
909                if (myIdentifier == null) {
910                        myIdentifier = new IdentifierDt();
911                }
912                return myIdentifier;
913        }
914
915        /**
916         * Sets the value(s) for <b>identifier</b> ()
917         *
918     * <p>
919     * <b>Definition:</b>
920     * Identifier for the TestScript assigned for external purposes outside the context of FHIR.
921     * </p> 
922         */
923        public TestScript setIdentifier(IdentifierDt theValue) {
924                myIdentifier = theValue;
925                return this;
926        }
927        
928        
929
930  
931        /**
932         * Gets the value(s) for <b>experimental</b> ().
933         * creating it if it does
934         * not exist. Will not return <code>null</code>.
935         *
936     * <p>
937     * <b>Definition:</b>
938     * This TestScript was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage
939     * </p> 
940         */
941        public BooleanDt getExperimentalElement() {  
942                if (myExperimental == null) {
943                        myExperimental = new BooleanDt();
944                }
945                return myExperimental;
946        }
947
948        
949        /**
950         * Gets the value(s) for <b>experimental</b> ().
951         * creating it if it does
952         * not exist. Will not return <code>null</code>.
953         *
954     * <p>
955     * <b>Definition:</b>
956     * This TestScript was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage
957     * </p> 
958         */
959        public Boolean getExperimental() {  
960                return getExperimentalElement().getValue();
961        }
962
963        /**
964         * Sets the value(s) for <b>experimental</b> ()
965         *
966     * <p>
967     * <b>Definition:</b>
968     * This TestScript was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage
969     * </p> 
970         */
971        public TestScript setExperimental(BooleanDt theValue) {
972                myExperimental = theValue;
973                return this;
974        }
975        
976        
977
978        /**
979         * Sets the value for <b>experimental</b> ()
980         *
981     * <p>
982     * <b>Definition:</b>
983     * This TestScript was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage
984     * </p> 
985         */
986        public TestScript setExperimental( boolean theBoolean) {
987                myExperimental = new BooleanDt(theBoolean); 
988                return this; 
989        }
990
991 
992        /**
993         * Gets the value(s) for <b>publisher</b> ().
994         * creating it if it does
995         * not exist. Will not return <code>null</code>.
996         *
997     * <p>
998     * <b>Definition:</b>
999     * The name of the individual or organization that published the Test Script
1000     * </p> 
1001         */
1002        public StringDt getPublisherElement() {  
1003                if (myPublisher == null) {
1004                        myPublisher = new StringDt();
1005                }
1006                return myPublisher;
1007        }
1008
1009        
1010        /**
1011         * Gets the value(s) for <b>publisher</b> ().
1012         * creating it if it does
1013         * not exist. Will not return <code>null</code>.
1014         *
1015     * <p>
1016     * <b>Definition:</b>
1017     * The name of the individual or organization that published the Test Script
1018     * </p> 
1019         */
1020        public String getPublisher() {  
1021                return getPublisherElement().getValue();
1022        }
1023
1024        /**
1025         * Sets the value(s) for <b>publisher</b> ()
1026         *
1027     * <p>
1028     * <b>Definition:</b>
1029     * The name of the individual or organization that published the Test Script
1030     * </p> 
1031         */
1032        public TestScript setPublisher(StringDt theValue) {
1033                myPublisher = theValue;
1034                return this;
1035        }
1036        
1037        
1038
1039        /**
1040         * Sets the value for <b>publisher</b> ()
1041         *
1042     * <p>
1043     * <b>Definition:</b>
1044     * The name of the individual or organization that published the Test Script
1045     * </p> 
1046         */
1047        public TestScript setPublisher( String theString) {
1048                myPublisher = new StringDt(theString); 
1049                return this; 
1050        }
1051
1052 
1053        /**
1054         * Gets the value(s) for <b>contact</b> ().
1055         * creating it if it does
1056         * not exist. Will not return <code>null</code>.
1057         *
1058     * <p>
1059     * <b>Definition:</b>
1060     * Contacts to assist a user in finding and communicating with the publisher
1061     * </p> 
1062         */
1063        public java.util.List<Contact> getContact() {  
1064                if (myContact == null) {
1065                        myContact = new java.util.ArrayList<Contact>();
1066                }
1067                return myContact;
1068        }
1069
1070        /**
1071         * Sets the value(s) for <b>contact</b> ()
1072         *
1073     * <p>
1074     * <b>Definition:</b>
1075     * Contacts to assist a user in finding and communicating with the publisher
1076     * </p> 
1077         */
1078        public TestScript setContact(java.util.List<Contact> theValue) {
1079                myContact = theValue;
1080                return this;
1081        }
1082        
1083        
1084
1085        /**
1086         * Adds and returns a new value for <b>contact</b> ()
1087         *
1088     * <p>
1089     * <b>Definition:</b>
1090     * Contacts to assist a user in finding and communicating with the publisher
1091     * </p> 
1092         */
1093        public Contact addContact() {
1094                Contact newType = new Contact();
1095                getContact().add(newType);
1096                return newType; 
1097        }
1098
1099        /**
1100         * Adds a given new value for <b>contact</b> ()
1101         *
1102         * <p>
1103         * <b>Definition:</b>
1104         * Contacts to assist a user in finding and communicating with the publisher
1105         * </p>
1106         * @param theValue The contact to add (must not be <code>null</code>)
1107         */
1108        public TestScript addContact(Contact theValue) {
1109                if (theValue == null) {
1110                        throw new NullPointerException("theValue must not be null");
1111                }
1112                getContact().add(theValue);
1113                return this;
1114        }
1115
1116        /**
1117         * Gets the first repetition for <b>contact</b> (),
1118         * creating it if it does not already exist.
1119         *
1120     * <p>
1121     * <b>Definition:</b>
1122     * Contacts to assist a user in finding and communicating with the publisher
1123     * </p> 
1124         */
1125        public Contact getContactFirstRep() {
1126                if (getContact().isEmpty()) {
1127                        return addContact();
1128                }
1129                return getContact().get(0); 
1130        }
1131  
1132        /**
1133         * Gets the value(s) for <b>date</b> ().
1134         * creating it if it does
1135         * not exist. Will not return <code>null</code>.
1136         *
1137     * <p>
1138     * <b>Definition:</b>
1139     * The date this version of the test tcript was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the test cases change
1140     * </p> 
1141         */
1142        public DateTimeDt getDateElement() {  
1143                if (myDate == null) {
1144                        myDate = new DateTimeDt();
1145                }
1146                return myDate;
1147        }
1148
1149        
1150        /**
1151         * Gets the value(s) for <b>date</b> ().
1152         * creating it if it does
1153         * not exist. Will not return <code>null</code>.
1154         *
1155     * <p>
1156     * <b>Definition:</b>
1157     * The date this version of the test tcript was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the test cases change
1158     * </p> 
1159         */
1160        public Date getDate() {  
1161                return getDateElement().getValue();
1162        }
1163
1164        /**
1165         * Sets the value(s) for <b>date</b> ()
1166         *
1167     * <p>
1168     * <b>Definition:</b>
1169     * The date this version of the test tcript was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the test cases change
1170     * </p> 
1171         */
1172        public TestScript setDate(DateTimeDt theValue) {
1173                myDate = theValue;
1174                return this;
1175        }
1176        
1177        
1178
1179        /**
1180         * Sets the value for <b>date</b> ()
1181         *
1182     * <p>
1183     * <b>Definition:</b>
1184     * The date this version of the test tcript was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the test cases change
1185     * </p> 
1186         */
1187        public TestScript setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1188                myDate = new DateTimeDt(theDate, thePrecision); 
1189                return this; 
1190        }
1191
1192        /**
1193         * Sets the value for <b>date</b> ()
1194         *
1195     * <p>
1196     * <b>Definition:</b>
1197     * The date this version of the test tcript was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the test cases change
1198     * </p> 
1199         */
1200        public TestScript setDateWithSecondsPrecision( Date theDate) {
1201                myDate = new DateTimeDt(theDate); 
1202                return this; 
1203        }
1204
1205 
1206        /**
1207         * Gets the value(s) for <b>description</b> ().
1208         * creating it if it does
1209         * not exist. Will not return <code>null</code>.
1210         *
1211     * <p>
1212     * <b>Definition:</b>
1213     * A free text natural language description of the TestScript and its use
1214     * </p> 
1215         */
1216        public StringDt getDescriptionElement() {  
1217                if (myDescription == null) {
1218                        myDescription = new StringDt();
1219                }
1220                return myDescription;
1221        }
1222
1223        
1224        /**
1225         * Gets the value(s) for <b>description</b> ().
1226         * creating it if it does
1227         * not exist. Will not return <code>null</code>.
1228         *
1229     * <p>
1230     * <b>Definition:</b>
1231     * A free text natural language description of the TestScript and its use
1232     * </p> 
1233         */
1234        public String getDescription() {  
1235                return getDescriptionElement().getValue();
1236        }
1237
1238        /**
1239         * Sets the value(s) for <b>description</b> ()
1240         *
1241     * <p>
1242     * <b>Definition:</b>
1243     * A free text natural language description of the TestScript and its use
1244     * </p> 
1245         */
1246        public TestScript setDescription(StringDt theValue) {
1247                myDescription = theValue;
1248                return this;
1249        }
1250        
1251        
1252
1253        /**
1254         * Sets the value for <b>description</b> ()
1255         *
1256     * <p>
1257     * <b>Definition:</b>
1258     * A free text natural language description of the TestScript and its use
1259     * </p> 
1260         */
1261        public TestScript setDescription( String theString) {
1262                myDescription = new StringDt(theString); 
1263                return this; 
1264        }
1265
1266 
1267        /**
1268         * Gets the value(s) for <b>useContext</b> ().
1269         * creating it if it does
1270         * not exist. Will not return <code>null</code>.
1271         *
1272     * <p>
1273     * <b>Definition:</b>
1274     * The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of Test Scripts.
1275     * </p> 
1276         */
1277        public java.util.List<CodeableConceptDt> getUseContext() {  
1278                if (myUseContext == null) {
1279                        myUseContext = new java.util.ArrayList<CodeableConceptDt>();
1280                }
1281                return myUseContext;
1282        }
1283
1284        /**
1285         * Sets the value(s) for <b>useContext</b> ()
1286         *
1287     * <p>
1288     * <b>Definition:</b>
1289     * The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of Test Scripts.
1290     * </p> 
1291         */
1292        public TestScript setUseContext(java.util.List<CodeableConceptDt> theValue) {
1293                myUseContext = theValue;
1294                return this;
1295        }
1296        
1297        
1298
1299        /**
1300         * Adds and returns a new value for <b>useContext</b> ()
1301         *
1302     * <p>
1303     * <b>Definition:</b>
1304     * The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of Test Scripts.
1305     * </p> 
1306         */
1307        public CodeableConceptDt addUseContext() {
1308                CodeableConceptDt newType = new CodeableConceptDt();
1309                getUseContext().add(newType);
1310                return newType; 
1311        }
1312
1313        /**
1314         * Adds a given new value for <b>useContext</b> ()
1315         *
1316         * <p>
1317         * <b>Definition:</b>
1318         * The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of Test Scripts.
1319         * </p>
1320         * @param theValue The useContext to add (must not be <code>null</code>)
1321         */
1322        public TestScript addUseContext(CodeableConceptDt theValue) {
1323                if (theValue == null) {
1324                        throw new NullPointerException("theValue must not be null");
1325                }
1326                getUseContext().add(theValue);
1327                return this;
1328        }
1329
1330        /**
1331         * Gets the first repetition for <b>useContext</b> (),
1332         * creating it if it does not already exist.
1333         *
1334     * <p>
1335     * <b>Definition:</b>
1336     * The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of Test Scripts.
1337     * </p> 
1338         */
1339        public CodeableConceptDt getUseContextFirstRep() {
1340                if (getUseContext().isEmpty()) {
1341                        return addUseContext();
1342                }
1343                return getUseContext().get(0); 
1344        }
1345  
1346        /**
1347         * Gets the value(s) for <b>requirements</b> ().
1348         * creating it if it does
1349         * not exist. Will not return <code>null</code>.
1350         *
1351     * <p>
1352     * <b>Definition:</b>
1353     * Explains why this Test Script is needed and why it's been constrained as it has
1354     * </p> 
1355         */
1356        public StringDt getRequirementsElement() {  
1357                if (myRequirements == null) {
1358                        myRequirements = new StringDt();
1359                }
1360                return myRequirements;
1361        }
1362
1363        
1364        /**
1365         * Gets the value(s) for <b>requirements</b> ().
1366         * creating it if it does
1367         * not exist. Will not return <code>null</code>.
1368         *
1369     * <p>
1370     * <b>Definition:</b>
1371     * Explains why this Test Script is needed and why it's been constrained as it has
1372     * </p> 
1373         */
1374        public String getRequirements() {  
1375                return getRequirementsElement().getValue();
1376        }
1377
1378        /**
1379         * Sets the value(s) for <b>requirements</b> ()
1380         *
1381     * <p>
1382     * <b>Definition:</b>
1383     * Explains why this Test Script is needed and why it's been constrained as it has
1384     * </p> 
1385         */
1386        public TestScript setRequirements(StringDt theValue) {
1387                myRequirements = theValue;
1388                return this;
1389        }
1390        
1391        
1392
1393        /**
1394         * Sets the value for <b>requirements</b> ()
1395         *
1396     * <p>
1397     * <b>Definition:</b>
1398     * Explains why this Test Script is needed and why it's been constrained as it has
1399     * </p> 
1400         */
1401        public TestScript setRequirements( String theString) {
1402                myRequirements = new StringDt(theString); 
1403                return this; 
1404        }
1405
1406 
1407        /**
1408         * Gets the value(s) for <b>copyright</b> ().
1409         * creating it if it does
1410         * not exist. Will not return <code>null</code>.
1411         *
1412     * <p>
1413     * <b>Definition:</b>
1414     * A copyright statement relating to the Test Script and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings
1415     * </p> 
1416         */
1417        public StringDt getCopyrightElement() {  
1418                if (myCopyright == null) {
1419                        myCopyright = new StringDt();
1420                }
1421                return myCopyright;
1422        }
1423
1424        
1425        /**
1426         * Gets the value(s) for <b>copyright</b> ().
1427         * creating it if it does
1428         * not exist. Will not return <code>null</code>.
1429         *
1430     * <p>
1431     * <b>Definition:</b>
1432     * A copyright statement relating to the Test Script and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings
1433     * </p> 
1434         */
1435        public String getCopyright() {  
1436                return getCopyrightElement().getValue();
1437        }
1438
1439        /**
1440         * Sets the value(s) for <b>copyright</b> ()
1441         *
1442     * <p>
1443     * <b>Definition:</b>
1444     * A copyright statement relating to the Test Script and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings
1445     * </p> 
1446         */
1447        public TestScript setCopyright(StringDt theValue) {
1448                myCopyright = theValue;
1449                return this;
1450        }
1451        
1452        
1453
1454        /**
1455         * Sets the value for <b>copyright</b> ()
1456         *
1457     * <p>
1458     * <b>Definition:</b>
1459     * A copyright statement relating to the Test Script and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings
1460     * </p> 
1461         */
1462        public TestScript setCopyright( String theString) {
1463                myCopyright = new StringDt(theString); 
1464                return this; 
1465        }
1466
1467 
1468        /**
1469         * Gets the value(s) for <b>metadata</b> ().
1470         * creating it if it does
1471         * not exist. Will not return <code>null</code>.
1472         *
1473     * <p>
1474     * <b>Definition:</b>
1475     * The required capability must exist and are assumed to function correctly on the FHIR server being tested.
1476     * </p> 
1477         */
1478        public Metadata getMetadata() {  
1479                if (myMetadata == null) {
1480                        myMetadata = new Metadata();
1481                }
1482                return myMetadata;
1483        }
1484
1485        /**
1486         * Sets the value(s) for <b>metadata</b> ()
1487         *
1488     * <p>
1489     * <b>Definition:</b>
1490     * The required capability must exist and are assumed to function correctly on the FHIR server being tested.
1491     * </p> 
1492         */
1493        public TestScript setMetadata(Metadata theValue) {
1494                myMetadata = theValue;
1495                return this;
1496        }
1497        
1498        
1499
1500  
1501        /**
1502         * Gets the value(s) for <b>multiserver</b> ().
1503         * creating it if it does
1504         * not exist. Will not return <code>null</code>.
1505         *
1506     * <p>
1507     * <b>Definition:</b>
1508     * If the tests apply to more than one FHIR server (e.g. cross-server interoperability tests) then multiserver=true. Defaults to false if value is unspecified.
1509     * </p> 
1510         */
1511        public BooleanDt getMultiserverElement() {  
1512                if (myMultiserver == null) {
1513                        myMultiserver = new BooleanDt();
1514                }
1515                return myMultiserver;
1516        }
1517
1518        
1519        /**
1520         * Gets the value(s) for <b>multiserver</b> ().
1521         * creating it if it does
1522         * not exist. Will not return <code>null</code>.
1523         *
1524     * <p>
1525     * <b>Definition:</b>
1526     * If the tests apply to more than one FHIR server (e.g. cross-server interoperability tests) then multiserver=true. Defaults to false if value is unspecified.
1527     * </p> 
1528         */
1529        public Boolean getMultiserver() {  
1530                return getMultiserverElement().getValue();
1531        }
1532
1533        /**
1534         * Sets the value(s) for <b>multiserver</b> ()
1535         *
1536     * <p>
1537     * <b>Definition:</b>
1538     * If the tests apply to more than one FHIR server (e.g. cross-server interoperability tests) then multiserver=true. Defaults to false if value is unspecified.
1539     * </p> 
1540         */
1541        public TestScript setMultiserver(BooleanDt theValue) {
1542                myMultiserver = theValue;
1543                return this;
1544        }
1545        
1546        
1547
1548        /**
1549         * Sets the value for <b>multiserver</b> ()
1550         *
1551     * <p>
1552     * <b>Definition:</b>
1553     * If the tests apply to more than one FHIR server (e.g. cross-server interoperability tests) then multiserver=true. Defaults to false if value is unspecified.
1554     * </p> 
1555         */
1556        public TestScript setMultiserver( boolean theBoolean) {
1557                myMultiserver = new BooleanDt(theBoolean); 
1558                return this; 
1559        }
1560
1561 
1562        /**
1563         * Gets the value(s) for <b>fixture</b> ().
1564         * creating it if it does
1565         * not exist. Will not return <code>null</code>.
1566         *
1567     * <p>
1568     * <b>Definition:</b>
1569     * Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute.
1570     * </p> 
1571         */
1572        public java.util.List<Fixture> getFixture() {  
1573                if (myFixture == null) {
1574                        myFixture = new java.util.ArrayList<Fixture>();
1575                }
1576                return myFixture;
1577        }
1578
1579        /**
1580         * Sets the value(s) for <b>fixture</b> ()
1581         *
1582     * <p>
1583     * <b>Definition:</b>
1584     * Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute.
1585     * </p> 
1586         */
1587        public TestScript setFixture(java.util.List<Fixture> theValue) {
1588                myFixture = theValue;
1589                return this;
1590        }
1591        
1592        
1593
1594        /**
1595         * Adds and returns a new value for <b>fixture</b> ()
1596         *
1597     * <p>
1598     * <b>Definition:</b>
1599     * Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute.
1600     * </p> 
1601         */
1602        public Fixture addFixture() {
1603                Fixture newType = new Fixture();
1604                getFixture().add(newType);
1605                return newType; 
1606        }
1607
1608        /**
1609         * Adds a given new value for <b>fixture</b> ()
1610         *
1611         * <p>
1612         * <b>Definition:</b>
1613         * Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute.
1614         * </p>
1615         * @param theValue The fixture to add (must not be <code>null</code>)
1616         */
1617        public TestScript addFixture(Fixture theValue) {
1618                if (theValue == null) {
1619                        throw new NullPointerException("theValue must not be null");
1620                }
1621                getFixture().add(theValue);
1622                return this;
1623        }
1624
1625        /**
1626         * Gets the first repetition for <b>fixture</b> (),
1627         * creating it if it does not already exist.
1628         *
1629     * <p>
1630     * <b>Definition:</b>
1631     * Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute.
1632     * </p> 
1633         */
1634        public Fixture getFixtureFirstRep() {
1635                if (getFixture().isEmpty()) {
1636                        return addFixture();
1637                }
1638                return getFixture().get(0); 
1639        }
1640  
1641        /**
1642         * Gets the value(s) for <b>profile</b> ().
1643         * creating it if it does
1644         * not exist. Will not return <code>null</code>.
1645         *
1646     * <p>
1647     * <b>Definition:</b>
1648     * Reference to the profile to be used for validation.
1649     * </p> 
1650         */
1651        public java.util.List<ResourceReferenceDt> getProfile() {  
1652                if (myProfile == null) {
1653                        myProfile = new java.util.ArrayList<ResourceReferenceDt>();
1654                }
1655                return myProfile;
1656        }
1657
1658        /**
1659         * Sets the value(s) for <b>profile</b> ()
1660         *
1661     * <p>
1662     * <b>Definition:</b>
1663     * Reference to the profile to be used for validation.
1664     * </p> 
1665         */
1666        public TestScript setProfile(java.util.List<ResourceReferenceDt> theValue) {
1667                myProfile = theValue;
1668                return this;
1669        }
1670        
1671        
1672
1673        /**
1674         * Adds and returns a new value for <b>profile</b> ()
1675         *
1676     * <p>
1677     * <b>Definition:</b>
1678     * Reference to the profile to be used for validation.
1679     * </p> 
1680         */
1681        public ResourceReferenceDt addProfile() {
1682                ResourceReferenceDt newType = new ResourceReferenceDt();
1683                getProfile().add(newType);
1684                return newType; 
1685        }
1686  
1687        /**
1688         * Gets the value(s) for <b>variable</b> ().
1689         * creating it if it does
1690         * not exist. Will not return <code>null</code>.
1691         *
1692     * <p>
1693     * <b>Definition:</b>
1694     * Variable is set based either on element value in response body or on header field value in the response headers.
1695     * </p> 
1696         */
1697        public java.util.List<Variable> getVariable() {  
1698                if (myVariable == null) {
1699                        myVariable = new java.util.ArrayList<Variable>();
1700                }
1701                return myVariable;
1702        }
1703
1704        /**
1705         * Sets the value(s) for <b>variable</b> ()
1706         *
1707     * <p>
1708     * <b>Definition:</b>
1709     * Variable is set based either on element value in response body or on header field value in the response headers.
1710     * </p> 
1711         */
1712        public TestScript setVariable(java.util.List<Variable> theValue) {
1713                myVariable = theValue;
1714                return this;
1715        }
1716        
1717        
1718
1719        /**
1720         * Adds and returns a new value for <b>variable</b> ()
1721         *
1722     * <p>
1723     * <b>Definition:</b>
1724     * Variable is set based either on element value in response body or on header field value in the response headers.
1725     * </p> 
1726         */
1727        public Variable addVariable() {
1728                Variable newType = new Variable();
1729                getVariable().add(newType);
1730                return newType; 
1731        }
1732
1733        /**
1734         * Adds a given new value for <b>variable</b> ()
1735         *
1736         * <p>
1737         * <b>Definition:</b>
1738         * Variable is set based either on element value in response body or on header field value in the response headers.
1739         * </p>
1740         * @param theValue The variable to add (must not be <code>null</code>)
1741         */
1742        public TestScript addVariable(Variable theValue) {
1743                if (theValue == null) {
1744                        throw new NullPointerException("theValue must not be null");
1745                }
1746                getVariable().add(theValue);
1747                return this;
1748        }
1749
1750        /**
1751         * Gets the first repetition for <b>variable</b> (),
1752         * creating it if it does not already exist.
1753         *
1754     * <p>
1755     * <b>Definition:</b>
1756     * Variable is set based either on element value in response body or on header field value in the response headers.
1757     * </p> 
1758         */
1759        public Variable getVariableFirstRep() {
1760                if (getVariable().isEmpty()) {
1761                        return addVariable();
1762                }
1763                return getVariable().get(0); 
1764        }
1765  
1766        /**
1767         * Gets the value(s) for <b>setup</b> ().
1768         * creating it if it does
1769         * not exist. Will not return <code>null</code>.
1770         *
1771     * <p>
1772     * <b>Definition:</b>
1773     * A series of required setup operations before tests are executed.
1774     * </p> 
1775         */
1776        public Setup getSetup() {  
1777                if (mySetup == null) {
1778                        mySetup = new Setup();
1779                }
1780                return mySetup;
1781        }
1782
1783        /**
1784         * Sets the value(s) for <b>setup</b> ()
1785         *
1786     * <p>
1787     * <b>Definition:</b>
1788     * A series of required setup operations before tests are executed.
1789     * </p> 
1790         */
1791        public TestScript setSetup(Setup theValue) {
1792                mySetup = theValue;
1793                return this;
1794        }
1795        
1796        
1797
1798  
1799        /**
1800         * Gets the value(s) for <b>test</b> ().
1801         * creating it if it does
1802         * not exist. Will not return <code>null</code>.
1803         *
1804     * <p>
1805     * <b>Definition:</b>
1806     * A test in this script.
1807     * </p> 
1808         */
1809        public java.util.List<Test> getTest() {  
1810                if (myTest == null) {
1811                        myTest = new java.util.ArrayList<Test>();
1812                }
1813                return myTest;
1814        }
1815
1816        /**
1817         * Sets the value(s) for <b>test</b> ()
1818         *
1819     * <p>
1820     * <b>Definition:</b>
1821     * A test in this script.
1822     * </p> 
1823         */
1824        public TestScript setTest(java.util.List<Test> theValue) {
1825                myTest = theValue;
1826                return this;
1827        }
1828        
1829        
1830
1831        /**
1832         * Adds and returns a new value for <b>test</b> ()
1833         *
1834     * <p>
1835     * <b>Definition:</b>
1836     * A test in this script.
1837     * </p> 
1838         */
1839        public Test addTest() {
1840                Test newType = new Test();
1841                getTest().add(newType);
1842                return newType; 
1843        }
1844
1845        /**
1846         * Adds a given new value for <b>test</b> ()
1847         *
1848         * <p>
1849         * <b>Definition:</b>
1850         * A test in this script.
1851         * </p>
1852         * @param theValue The test to add (must not be <code>null</code>)
1853         */
1854        public TestScript addTest(Test theValue) {
1855                if (theValue == null) {
1856                        throw new NullPointerException("theValue must not be null");
1857                }
1858                getTest().add(theValue);
1859                return this;
1860        }
1861
1862        /**
1863         * Gets the first repetition for <b>test</b> (),
1864         * creating it if it does not already exist.
1865         *
1866     * <p>
1867     * <b>Definition:</b>
1868     * A test in this script.
1869     * </p> 
1870         */
1871        public Test getTestFirstRep() {
1872                if (getTest().isEmpty()) {
1873                        return addTest();
1874                }
1875                return getTest().get(0); 
1876        }
1877  
1878        /**
1879         * Gets the value(s) for <b>teardown</b> ().
1880         * creating it if it does
1881         * not exist. Will not return <code>null</code>.
1882         *
1883     * <p>
1884     * <b>Definition:</b>
1885     * A series of operations required to clean up after the all the tests are executed (successfully or otherwise).
1886     * </p> 
1887         */
1888        public Teardown getTeardown() {  
1889                if (myTeardown == null) {
1890                        myTeardown = new Teardown();
1891                }
1892                return myTeardown;
1893        }
1894
1895        /**
1896         * Sets the value(s) for <b>teardown</b> ()
1897         *
1898     * <p>
1899     * <b>Definition:</b>
1900     * A series of operations required to clean up after the all the tests are executed (successfully or otherwise).
1901     * </p> 
1902         */
1903        public TestScript setTeardown(Teardown theValue) {
1904                myTeardown = theValue;
1905                return this;
1906        }
1907        
1908        
1909
1910  
1911        /**
1912         * Block class for child element: <b>TestScript.contact</b> ()
1913         *
1914     * <p>
1915     * <b>Definition:</b>
1916     * Contacts to assist a user in finding and communicating with the publisher
1917     * </p> 
1918         */
1919        @Block()        
1920        public static class Contact 
1921            extends  BaseIdentifiableElement        implements IResourceBlock {
1922        
1923        @Child(name="name", type=StringDt.class, order=0, min=0, max=1, summary=true, modifier=false)   
1924        @Description(
1925                shortDefinition="",
1926                formalDefinition="The name of an individual to contact regarding the Test Script"
1927        )
1928        private StringDt myName;
1929        
1930        @Child(name="telecom", type=ContactPointDt.class, order=1, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)        
1931        @Description(
1932                shortDefinition="",
1933                formalDefinition="Contact details for individual (if a name was provided) or the publisher"
1934        )
1935        private java.util.List<ContactPointDt> myTelecom;
1936        
1937
1938        @Override
1939        public boolean isEmpty() {
1940                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myName,  myTelecom);
1941        }
1942        
1943        @Override
1944        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1945                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myName, myTelecom);
1946        }
1947
1948        /**
1949         * Gets the value(s) for <b>name</b> ().
1950         * creating it if it does
1951         * not exist. Will not return <code>null</code>.
1952         *
1953     * <p>
1954     * <b>Definition:</b>
1955     * The name of an individual to contact regarding the Test Script
1956     * </p> 
1957         */
1958        public StringDt getNameElement() {  
1959                if (myName == null) {
1960                        myName = new StringDt();
1961                }
1962                return myName;
1963        }
1964
1965        
1966        /**
1967         * Gets the value(s) for <b>name</b> ().
1968         * creating it if it does
1969         * not exist. Will not return <code>null</code>.
1970         *
1971     * <p>
1972     * <b>Definition:</b>
1973     * The name of an individual to contact regarding the Test Script
1974     * </p> 
1975         */
1976        public String getName() {  
1977                return getNameElement().getValue();
1978        }
1979
1980        /**
1981         * Sets the value(s) for <b>name</b> ()
1982         *
1983     * <p>
1984     * <b>Definition:</b>
1985     * The name of an individual to contact regarding the Test Script
1986     * </p> 
1987         */
1988        public Contact setName(StringDt theValue) {
1989                myName = theValue;
1990                return this;
1991        }
1992        
1993        
1994
1995        /**
1996         * Sets the value for <b>name</b> ()
1997         *
1998     * <p>
1999     * <b>Definition:</b>
2000     * The name of an individual to contact regarding the Test Script
2001     * </p> 
2002         */
2003        public Contact setName( String theString) {
2004                myName = new StringDt(theString); 
2005                return this; 
2006        }
2007
2008 
2009        /**
2010         * Gets the value(s) for <b>telecom</b> ().
2011         * creating it if it does
2012         * not exist. Will not return <code>null</code>.
2013         *
2014     * <p>
2015     * <b>Definition:</b>
2016     * Contact details for individual (if a name was provided) or the publisher
2017     * </p> 
2018         */
2019        public java.util.List<ContactPointDt> getTelecom() {  
2020                if (myTelecom == null) {
2021                        myTelecom = new java.util.ArrayList<ContactPointDt>();
2022                }
2023                return myTelecom;
2024        }
2025
2026        /**
2027         * Sets the value(s) for <b>telecom</b> ()
2028         *
2029     * <p>
2030     * <b>Definition:</b>
2031     * Contact details for individual (if a name was provided) or the publisher
2032     * </p> 
2033         */
2034        public Contact setTelecom(java.util.List<ContactPointDt> theValue) {
2035                myTelecom = theValue;
2036                return this;
2037        }
2038        
2039        
2040
2041        /**
2042         * Adds and returns a new value for <b>telecom</b> ()
2043         *
2044     * <p>
2045     * <b>Definition:</b>
2046     * Contact details for individual (if a name was provided) or the publisher
2047     * </p> 
2048         */
2049        public ContactPointDt addTelecom() {
2050                ContactPointDt newType = new ContactPointDt();
2051                getTelecom().add(newType);
2052                return newType; 
2053        }
2054
2055        /**
2056         * Adds a given new value for <b>telecom</b> ()
2057         *
2058         * <p>
2059         * <b>Definition:</b>
2060         * Contact details for individual (if a name was provided) or the publisher
2061         * </p>
2062         * @param theValue The telecom to add (must not be <code>null</code>)
2063         */
2064        public Contact addTelecom(ContactPointDt theValue) {
2065                if (theValue == null) {
2066                        throw new NullPointerException("theValue must not be null");
2067                }
2068                getTelecom().add(theValue);
2069                return this;
2070        }
2071
2072        /**
2073         * Gets the first repetition for <b>telecom</b> (),
2074         * creating it if it does not already exist.
2075         *
2076     * <p>
2077     * <b>Definition:</b>
2078     * Contact details for individual (if a name was provided) or the publisher
2079     * </p> 
2080         */
2081        public ContactPointDt getTelecomFirstRep() {
2082                if (getTelecom().isEmpty()) {
2083                        return addTelecom();
2084                }
2085                return getTelecom().get(0); 
2086        }
2087  
2088
2089
2090        }
2091
2092
2093        /**
2094         * Block class for child element: <b>TestScript.metadata</b> ()
2095         *
2096     * <p>
2097     * <b>Definition:</b>
2098     * The required capability must exist and are assumed to function correctly on the FHIR server being tested.
2099     * </p> 
2100         */
2101        @Block()        
2102        public static class Metadata 
2103            extends  BaseIdentifiableElement        implements IResourceBlock {
2104        
2105        @Child(name="link", order=0, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)     
2106        @Description(
2107                shortDefinition="",
2108                formalDefinition="A link to the FHIR specification that this test is covering."
2109        )
2110        private java.util.List<MetadataLink> myLink;
2111        
2112        @Child(name="capability", order=1, min=1, max=Child.MAX_UNLIMITED, summary=false, modifier=false)       
2113        @Description(
2114                shortDefinition="",
2115                formalDefinition="Capabilities that must exist and are assumed to function correctly on the FHIR server being tested."
2116        )
2117        private java.util.List<MetadataCapability> myCapability;
2118        
2119
2120        @Override
2121        public boolean isEmpty() {
2122                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myLink,  myCapability);
2123        }
2124        
2125        @Override
2126        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2127                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myLink, myCapability);
2128        }
2129
2130        /**
2131         * Gets the value(s) for <b>link</b> ().
2132         * creating it if it does
2133         * not exist. Will not return <code>null</code>.
2134         *
2135     * <p>
2136     * <b>Definition:</b>
2137     * A link to the FHIR specification that this test is covering.
2138     * </p> 
2139         */
2140        public java.util.List<MetadataLink> getLink() {  
2141                if (myLink == null) {
2142                        myLink = new java.util.ArrayList<MetadataLink>();
2143                }
2144                return myLink;
2145        }
2146
2147        /**
2148         * Sets the value(s) for <b>link</b> ()
2149         *
2150     * <p>
2151     * <b>Definition:</b>
2152     * A link to the FHIR specification that this test is covering.
2153     * </p> 
2154         */
2155        public Metadata setLink(java.util.List<MetadataLink> theValue) {
2156                myLink = theValue;
2157                return this;
2158        }
2159        
2160        
2161
2162        /**
2163         * Adds and returns a new value for <b>link</b> ()
2164         *
2165     * <p>
2166     * <b>Definition:</b>
2167     * A link to the FHIR specification that this test is covering.
2168     * </p> 
2169         */
2170        public MetadataLink addLink() {
2171                MetadataLink newType = new MetadataLink();
2172                getLink().add(newType);
2173                return newType; 
2174        }
2175
2176        /**
2177         * Adds a given new value for <b>link</b> ()
2178         *
2179         * <p>
2180         * <b>Definition:</b>
2181         * A link to the FHIR specification that this test is covering.
2182         * </p>
2183         * @param theValue The link to add (must not be <code>null</code>)
2184         */
2185        public Metadata addLink(MetadataLink theValue) {
2186                if (theValue == null) {
2187                        throw new NullPointerException("theValue must not be null");
2188                }
2189                getLink().add(theValue);
2190                return this;
2191        }
2192
2193        /**
2194         * Gets the first repetition for <b>link</b> (),
2195         * creating it if it does not already exist.
2196         *
2197     * <p>
2198     * <b>Definition:</b>
2199     * A link to the FHIR specification that this test is covering.
2200     * </p> 
2201         */
2202        public MetadataLink getLinkFirstRep() {
2203                if (getLink().isEmpty()) {
2204                        return addLink();
2205                }
2206                return getLink().get(0); 
2207        }
2208  
2209        /**
2210         * Gets the value(s) for <b>capability</b> ().
2211         * creating it if it does
2212         * not exist. Will not return <code>null</code>.
2213         *
2214     * <p>
2215     * <b>Definition:</b>
2216     * Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.
2217     * </p> 
2218         */
2219        public java.util.List<MetadataCapability> getCapability() {  
2220                if (myCapability == null) {
2221                        myCapability = new java.util.ArrayList<MetadataCapability>();
2222                }
2223                return myCapability;
2224        }
2225
2226        /**
2227         * Sets the value(s) for <b>capability</b> ()
2228         *
2229     * <p>
2230     * <b>Definition:</b>
2231     * Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.
2232     * </p> 
2233         */
2234        public Metadata setCapability(java.util.List<MetadataCapability> theValue) {
2235                myCapability = theValue;
2236                return this;
2237        }
2238        
2239        
2240
2241        /**
2242         * Adds and returns a new value for <b>capability</b> ()
2243         *
2244     * <p>
2245     * <b>Definition:</b>
2246     * Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.
2247     * </p> 
2248         */
2249        public MetadataCapability addCapability() {
2250                MetadataCapability newType = new MetadataCapability();
2251                getCapability().add(newType);
2252                return newType; 
2253        }
2254
2255        /**
2256         * Adds a given new value for <b>capability</b> ()
2257         *
2258         * <p>
2259         * <b>Definition:</b>
2260         * Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.
2261         * </p>
2262         * @param theValue The capability to add (must not be <code>null</code>)
2263         */
2264        public Metadata addCapability(MetadataCapability theValue) {
2265                if (theValue == null) {
2266                        throw new NullPointerException("theValue must not be null");
2267                }
2268                getCapability().add(theValue);
2269                return this;
2270        }
2271
2272        /**
2273         * Gets the first repetition for <b>capability</b> (),
2274         * creating it if it does not already exist.
2275         *
2276     * <p>
2277     * <b>Definition:</b>
2278     * Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.
2279     * </p> 
2280         */
2281        public MetadataCapability getCapabilityFirstRep() {
2282                if (getCapability().isEmpty()) {
2283                        return addCapability();
2284                }
2285                return getCapability().get(0); 
2286        }
2287  
2288
2289
2290        }
2291
2292        /**
2293         * Block class for child element: <b>TestScript.metadata.link</b> ()
2294         *
2295     * <p>
2296     * <b>Definition:</b>
2297     * A link to the FHIR specification that this test is covering.
2298     * </p> 
2299         */
2300        @Block()        
2301        public static class MetadataLink 
2302            extends  BaseIdentifiableElement        implements IResourceBlock {
2303        
2304        @Child(name="url", type=UriDt.class, order=0, min=1, max=1, summary=false, modifier=false)      
2305        @Description(
2306                shortDefinition="",
2307                formalDefinition="URL to a particular requirement or feature within the FHIR specification."
2308        )
2309        private UriDt myUrl;
2310        
2311        @Child(name="description", type=StringDt.class, order=1, min=0, max=1, summary=false, modifier=false)   
2312        @Description(
2313                shortDefinition="",
2314                formalDefinition="Short description of the link."
2315        )
2316        private StringDt myDescription;
2317        
2318
2319        @Override
2320        public boolean isEmpty() {
2321                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myUrl,  myDescription);
2322        }
2323        
2324        @Override
2325        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2326                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myUrl, myDescription);
2327        }
2328
2329        /**
2330         * Gets the value(s) for <b>url</b> ().
2331         * creating it if it does
2332         * not exist. Will not return <code>null</code>.
2333         *
2334     * <p>
2335     * <b>Definition:</b>
2336     * URL to a particular requirement or feature within the FHIR specification.
2337     * </p> 
2338         */
2339        public UriDt getUrlElement() {  
2340                if (myUrl == null) {
2341                        myUrl = new UriDt();
2342                }
2343                return myUrl;
2344        }
2345
2346        
2347        /**
2348         * Gets the value(s) for <b>url</b> ().
2349         * creating it if it does
2350         * not exist. Will not return <code>null</code>.
2351         *
2352     * <p>
2353     * <b>Definition:</b>
2354     * URL to a particular requirement or feature within the FHIR specification.
2355     * </p> 
2356         */
2357        public String getUrl() {  
2358                return getUrlElement().getValue();
2359        }
2360
2361        /**
2362         * Sets the value(s) for <b>url</b> ()
2363         *
2364     * <p>
2365     * <b>Definition:</b>
2366     * URL to a particular requirement or feature within the FHIR specification.
2367     * </p> 
2368         */
2369        public MetadataLink setUrl(UriDt theValue) {
2370                myUrl = theValue;
2371                return this;
2372        }
2373        
2374        
2375
2376        /**
2377         * Sets the value for <b>url</b> ()
2378         *
2379     * <p>
2380     * <b>Definition:</b>
2381     * URL to a particular requirement or feature within the FHIR specification.
2382     * </p> 
2383         */
2384        public MetadataLink setUrl( String theUri) {
2385                myUrl = new UriDt(theUri); 
2386                return this; 
2387        }
2388
2389 
2390        /**
2391         * Gets the value(s) for <b>description</b> ().
2392         * creating it if it does
2393         * not exist. Will not return <code>null</code>.
2394         *
2395     * <p>
2396     * <b>Definition:</b>
2397     * Short description of the link.
2398     * </p> 
2399         */
2400        public StringDt getDescriptionElement() {  
2401                if (myDescription == null) {
2402                        myDescription = new StringDt();
2403                }
2404                return myDescription;
2405        }
2406
2407        
2408        /**
2409         * Gets the value(s) for <b>description</b> ().
2410         * creating it if it does
2411         * not exist. Will not return <code>null</code>.
2412         *
2413     * <p>
2414     * <b>Definition:</b>
2415     * Short description of the link.
2416     * </p> 
2417         */
2418        public String getDescription() {  
2419                return getDescriptionElement().getValue();
2420        }
2421
2422        /**
2423         * Sets the value(s) for <b>description</b> ()
2424         *
2425     * <p>
2426     * <b>Definition:</b>
2427     * Short description of the link.
2428     * </p> 
2429         */
2430        public MetadataLink setDescription(StringDt theValue) {
2431                myDescription = theValue;
2432                return this;
2433        }
2434        
2435        
2436
2437        /**
2438         * Sets the value for <b>description</b> ()
2439         *
2440     * <p>
2441     * <b>Definition:</b>
2442     * Short description of the link.
2443     * </p> 
2444         */
2445        public MetadataLink setDescription( String theString) {
2446                myDescription = new StringDt(theString); 
2447                return this; 
2448        }
2449
2450 
2451
2452
2453        }
2454
2455
2456        /**
2457         * Block class for child element: <b>TestScript.metadata.capability</b> ()
2458         *
2459     * <p>
2460     * <b>Definition:</b>
2461     * Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.
2462     * </p> 
2463         */
2464        @Block()        
2465        public static class MetadataCapability 
2466            extends  BaseIdentifiableElement        implements IResourceBlock {
2467        
2468        @Child(name="required", type=BooleanDt.class, order=0, min=0, max=1, summary=false, modifier=false)     
2469        @Description(
2470                shortDefinition="",
2471                formalDefinition="Whether or not the test execution will require the given capabilities of the server in order for this test script to execute."
2472        )
2473        private BooleanDt myRequired;
2474        
2475        @Child(name="validated", type=BooleanDt.class, order=1, min=0, max=1, summary=false, modifier=false)    
2476        @Description(
2477                shortDefinition="",
2478                formalDefinition="Whether or not the test execution will validate the given capabilities of the server in order for this test script to execute."
2479        )
2480        private BooleanDt myValidated;
2481        
2482        @Child(name="description", type=StringDt.class, order=2, min=0, max=1, summary=false, modifier=false)   
2483        @Description(
2484                shortDefinition="",
2485                formalDefinition="Description of the capabilities that this test script is requiring the server to support."
2486        )
2487        private StringDt myDescription;
2488        
2489        @Child(name="destination", type=IntegerDt.class, order=3, min=0, max=1, summary=false, modifier=false)  
2490        @Description(
2491                shortDefinition="",
2492                formalDefinition="Which server these requirements apply to."
2493        )
2494        private IntegerDt myDestination;
2495        
2496        @Child(name="link", type=UriDt.class, order=4, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)   
2497        @Description(
2498                shortDefinition="",
2499                formalDefinition="Links to the FHIR specification that describes this interaction and the resources involved in more detail."
2500        )
2501        private java.util.List<UriDt> myLink;
2502        
2503        @Child(name="conformance", order=5, min=1, max=1, summary=false, modifier=false, type={
2504                ca.uhn.fhir.model.dstu2.resource.Conformance.class      })
2505        @Description(
2506                shortDefinition="",
2507                formalDefinition="Minimum conformance required of server for test script to execute successfully.   If server does not meet at a minimum the reference conformance definition, then all tests in this script are skipped."
2508        )
2509        private ResourceReferenceDt myConformance;
2510        
2511
2512        @Override
2513        public boolean isEmpty() {
2514                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myRequired,  myValidated,  myDescription,  myDestination,  myLink,  myConformance);
2515        }
2516        
2517        @Override
2518        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2519                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myRequired, myValidated, myDescription, myDestination, myLink, myConformance);
2520        }
2521
2522        /**
2523         * Gets the value(s) for <b>required</b> ().
2524         * creating it if it does
2525         * not exist. Will not return <code>null</code>.
2526         *
2527     * <p>
2528     * <b>Definition:</b>
2529     * Whether or not the test execution will require the given capabilities of the server in order for this test script to execute.
2530     * </p> 
2531         */
2532        public BooleanDt getRequiredElement() {  
2533                if (myRequired == null) {
2534                        myRequired = new BooleanDt();
2535                }
2536                return myRequired;
2537        }
2538
2539        
2540        /**
2541         * Gets the value(s) for <b>required</b> ().
2542         * creating it if it does
2543         * not exist. Will not return <code>null</code>.
2544         *
2545     * <p>
2546     * <b>Definition:</b>
2547     * Whether or not the test execution will require the given capabilities of the server in order for this test script to execute.
2548     * </p> 
2549         */
2550        public Boolean getRequired() {  
2551                return getRequiredElement().getValue();
2552        }
2553
2554        /**
2555         * Sets the value(s) for <b>required</b> ()
2556         *
2557     * <p>
2558     * <b>Definition:</b>
2559     * Whether or not the test execution will require the given capabilities of the server in order for this test script to execute.
2560     * </p> 
2561         */
2562        public MetadataCapability setRequired(BooleanDt theValue) {
2563                myRequired = theValue;
2564                return this;
2565        }
2566        
2567        
2568
2569        /**
2570         * Sets the value for <b>required</b> ()
2571         *
2572     * <p>
2573     * <b>Definition:</b>
2574     * Whether or not the test execution will require the given capabilities of the server in order for this test script to execute.
2575     * </p> 
2576         */
2577        public MetadataCapability setRequired( boolean theBoolean) {
2578                myRequired = new BooleanDt(theBoolean); 
2579                return this; 
2580        }
2581
2582 
2583        /**
2584         * Gets the value(s) for <b>validated</b> ().
2585         * creating it if it does
2586         * not exist. Will not return <code>null</code>.
2587         *
2588     * <p>
2589     * <b>Definition:</b>
2590     * Whether or not the test execution will validate the given capabilities of the server in order for this test script to execute.
2591     * </p> 
2592         */
2593        public BooleanDt getValidatedElement() {  
2594                if (myValidated == null) {
2595                        myValidated = new BooleanDt();
2596                }
2597                return myValidated;
2598        }
2599
2600        
2601        /**
2602         * Gets the value(s) for <b>validated</b> ().
2603         * creating it if it does
2604         * not exist. Will not return <code>null</code>.
2605         *
2606     * <p>
2607     * <b>Definition:</b>
2608     * Whether or not the test execution will validate the given capabilities of the server in order for this test script to execute.
2609     * </p> 
2610         */
2611        public Boolean getValidated() {  
2612                return getValidatedElement().getValue();
2613        }
2614
2615        /**
2616         * Sets the value(s) for <b>validated</b> ()
2617         *
2618     * <p>
2619     * <b>Definition:</b>
2620     * Whether or not the test execution will validate the given capabilities of the server in order for this test script to execute.
2621     * </p> 
2622         */
2623        public MetadataCapability setValidated(BooleanDt theValue) {
2624                myValidated = theValue;
2625                return this;
2626        }
2627        
2628        
2629
2630        /**
2631         * Sets the value for <b>validated</b> ()
2632         *
2633     * <p>
2634     * <b>Definition:</b>
2635     * Whether or not the test execution will validate the given capabilities of the server in order for this test script to execute.
2636     * </p> 
2637         */
2638        public MetadataCapability setValidated( boolean theBoolean) {
2639                myValidated = new BooleanDt(theBoolean); 
2640                return this; 
2641        }
2642
2643 
2644        /**
2645         * Gets the value(s) for <b>description</b> ().
2646         * creating it if it does
2647         * not exist. Will not return <code>null</code>.
2648         *
2649     * <p>
2650     * <b>Definition:</b>
2651     * Description of the capabilities that this test script is requiring the server to support.
2652     * </p> 
2653         */
2654        public StringDt getDescriptionElement() {  
2655                if (myDescription == null) {
2656                        myDescription = new StringDt();
2657                }
2658                return myDescription;
2659        }
2660
2661        
2662        /**
2663         * Gets the value(s) for <b>description</b> ().
2664         * creating it if it does
2665         * not exist. Will not return <code>null</code>.
2666         *
2667     * <p>
2668     * <b>Definition:</b>
2669     * Description of the capabilities that this test script is requiring the server to support.
2670     * </p> 
2671         */
2672        public String getDescription() {  
2673                return getDescriptionElement().getValue();
2674        }
2675
2676        /**
2677         * Sets the value(s) for <b>description</b> ()
2678         *
2679     * <p>
2680     * <b>Definition:</b>
2681     * Description of the capabilities that this test script is requiring the server to support.
2682     * </p> 
2683         */
2684        public MetadataCapability setDescription(StringDt theValue) {
2685                myDescription = theValue;
2686                return this;
2687        }
2688        
2689        
2690
2691        /**
2692         * Sets the value for <b>description</b> ()
2693         *
2694     * <p>
2695     * <b>Definition:</b>
2696     * Description of the capabilities that this test script is requiring the server to support.
2697     * </p> 
2698         */
2699        public MetadataCapability setDescription( String theString) {
2700                myDescription = new StringDt(theString); 
2701                return this; 
2702        }
2703
2704 
2705        /**
2706         * Gets the value(s) for <b>destination</b> ().
2707         * creating it if it does
2708         * not exist. Will not return <code>null</code>.
2709         *
2710     * <p>
2711     * <b>Definition:</b>
2712     * Which server these requirements apply to.
2713     * </p> 
2714         */
2715        public IntegerDt getDestinationElement() {  
2716                if (myDestination == null) {
2717                        myDestination = new IntegerDt();
2718                }
2719                return myDestination;
2720        }
2721
2722        
2723        /**
2724         * Gets the value(s) for <b>destination</b> ().
2725         * creating it if it does
2726         * not exist. Will not return <code>null</code>.
2727         *
2728     * <p>
2729     * <b>Definition:</b>
2730     * Which server these requirements apply to.
2731     * </p> 
2732         */
2733        public Integer getDestination() {  
2734                return getDestinationElement().getValue();
2735        }
2736
2737        /**
2738         * Sets the value(s) for <b>destination</b> ()
2739         *
2740     * <p>
2741     * <b>Definition:</b>
2742     * Which server these requirements apply to.
2743     * </p> 
2744         */
2745        public MetadataCapability setDestination(IntegerDt theValue) {
2746                myDestination = theValue;
2747                return this;
2748        }
2749        
2750        
2751
2752        /**
2753         * Sets the value for <b>destination</b> ()
2754         *
2755     * <p>
2756     * <b>Definition:</b>
2757     * Which server these requirements apply to.
2758     * </p> 
2759         */
2760        public MetadataCapability setDestination( int theInteger) {
2761                myDestination = new IntegerDt(theInteger); 
2762                return this; 
2763        }
2764
2765 
2766        /**
2767         * Gets the value(s) for <b>link</b> ().
2768         * creating it if it does
2769         * not exist. Will not return <code>null</code>.
2770         *
2771     * <p>
2772     * <b>Definition:</b>
2773     * Links to the FHIR specification that describes this interaction and the resources involved in more detail.
2774     * </p> 
2775         */
2776        public java.util.List<UriDt> getLink() {  
2777                if (myLink == null) {
2778                        myLink = new java.util.ArrayList<UriDt>();
2779                }
2780                return myLink;
2781        }
2782
2783        /**
2784         * Sets the value(s) for <b>link</b> ()
2785         *
2786     * <p>
2787     * <b>Definition:</b>
2788     * Links to the FHIR specification that describes this interaction and the resources involved in more detail.
2789     * </p> 
2790         */
2791        public MetadataCapability setLink(java.util.List<UriDt> theValue) {
2792                myLink = theValue;
2793                return this;
2794        }
2795        
2796        
2797
2798        /**
2799         * Adds and returns a new value for <b>link</b> ()
2800         *
2801     * <p>
2802     * <b>Definition:</b>
2803     * Links to the FHIR specification that describes this interaction and the resources involved in more detail.
2804     * </p> 
2805         */
2806        public UriDt addLink() {
2807                UriDt newType = new UriDt();
2808                getLink().add(newType);
2809                return newType; 
2810        }
2811
2812        /**
2813         * Adds a given new value for <b>link</b> ()
2814         *
2815         * <p>
2816         * <b>Definition:</b>
2817         * Links to the FHIR specification that describes this interaction and the resources involved in more detail.
2818         * </p>
2819         * @param theValue The link to add (must not be <code>null</code>)
2820         */
2821        public MetadataCapability addLink(UriDt theValue) {
2822                if (theValue == null) {
2823                        throw new NullPointerException("theValue must not be null");
2824                }
2825                getLink().add(theValue);
2826                return this;
2827        }
2828
2829        /**
2830         * Gets the first repetition for <b>link</b> (),
2831         * creating it if it does not already exist.
2832         *
2833     * <p>
2834     * <b>Definition:</b>
2835     * Links to the FHIR specification that describes this interaction and the resources involved in more detail.
2836     * </p> 
2837         */
2838        public UriDt getLinkFirstRep() {
2839                if (getLink().isEmpty()) {
2840                        return addLink();
2841                }
2842                return getLink().get(0); 
2843        }
2844        /**
2845         * Adds a new value for <b>link</b> ()
2846         *
2847     * <p>
2848     * <b>Definition:</b>
2849     * Links to the FHIR specification that describes this interaction and the resources involved in more detail.
2850     * </p> 
2851     *
2852     * @return Returns a reference to this object, to allow for simple chaining.
2853         */
2854        public MetadataCapability addLink( String theUri) {
2855                if (myLink == null) {
2856                        myLink = new java.util.ArrayList<UriDt>();
2857                }
2858                myLink.add(new UriDt(theUri));
2859                return this; 
2860        }
2861
2862 
2863        /**
2864         * Gets the value(s) for <b>conformance</b> ().
2865         * creating it if it does
2866         * not exist. Will not return <code>null</code>.
2867         *
2868     * <p>
2869     * <b>Definition:</b>
2870     * Minimum conformance required of server for test script to execute successfully.   If server does not meet at a minimum the reference conformance definition, then all tests in this script are skipped.
2871     * </p> 
2872         */
2873        public ResourceReferenceDt getConformance() {  
2874                if (myConformance == null) {
2875                        myConformance = new ResourceReferenceDt();
2876                }
2877                return myConformance;
2878        }
2879
2880        /**
2881         * Sets the value(s) for <b>conformance</b> ()
2882         *
2883     * <p>
2884     * <b>Definition:</b>
2885     * Minimum conformance required of server for test script to execute successfully.   If server does not meet at a minimum the reference conformance definition, then all tests in this script are skipped.
2886     * </p> 
2887         */
2888        public MetadataCapability setConformance(ResourceReferenceDt theValue) {
2889                myConformance = theValue;
2890                return this;
2891        }
2892        
2893        
2894
2895  
2896
2897
2898        }
2899
2900
2901
2902        /**
2903         * Block class for child element: <b>TestScript.fixture</b> ()
2904         *
2905     * <p>
2906     * <b>Definition:</b>
2907     * Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute.
2908     * </p> 
2909         */
2910        @Block()        
2911        public static class Fixture 
2912            extends  BaseIdentifiableElement        implements IResourceBlock {
2913        
2914        @Child(name="autocreate", type=BooleanDt.class, order=0, min=0, max=1, summary=false, modifier=false)   
2915        @Description(
2916                shortDefinition="",
2917                formalDefinition="Whether or not to implicitly create the fixture during setup. If true, the fixture is automatically created on each server being tested during setup, therefore no create operation is required for this fixture in the TestScript.setup section."
2918        )
2919        private BooleanDt myAutocreate;
2920        
2921        @Child(name="autodelete", type=BooleanDt.class, order=1, min=0, max=1, summary=false, modifier=false)   
2922        @Description(
2923                shortDefinition="",
2924                formalDefinition="Whether or not to implicitly delete the fixture during teardown If true, the fixture is automatically deleted on each server being tested during teardown, therefore no delete operation is required for this fixture in the TestScript.teardown section."
2925        )
2926        private BooleanDt myAutodelete;
2927        
2928        @Child(name="resource", order=2, min=0, max=1, summary=false, modifier=false, type={
2929                IResource.class })
2930        @Description(
2931                shortDefinition="",
2932                formalDefinition="Reference to the resource (containing the contents of the resource needed for operations)"
2933        )
2934        private ResourceReferenceDt myResource;
2935        
2936
2937        @Override
2938        public boolean isEmpty() {
2939                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myAutocreate,  myAutodelete,  myResource);
2940        }
2941        
2942        @Override
2943        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2944                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myAutocreate, myAutodelete, myResource);
2945        }
2946
2947        /**
2948         * Gets the value(s) for <b>autocreate</b> ().
2949         * creating it if it does
2950         * not exist. Will not return <code>null</code>.
2951         *
2952     * <p>
2953     * <b>Definition:</b>
2954     * Whether or not to implicitly create the fixture during setup. If true, the fixture is automatically created on each server being tested during setup, therefore no create operation is required for this fixture in the TestScript.setup section.
2955     * </p> 
2956         */
2957        public BooleanDt getAutocreateElement() {  
2958                if (myAutocreate == null) {
2959                        myAutocreate = new BooleanDt();
2960                }
2961                return myAutocreate;
2962        }
2963
2964        
2965        /**
2966         * Gets the value(s) for <b>autocreate</b> ().
2967         * creating it if it does
2968         * not exist. Will not return <code>null</code>.
2969         *
2970     * <p>
2971     * <b>Definition:</b>
2972     * Whether or not to implicitly create the fixture during setup. If true, the fixture is automatically created on each server being tested during setup, therefore no create operation is required for this fixture in the TestScript.setup section.
2973     * </p> 
2974         */
2975        public Boolean getAutocreate() {  
2976                return getAutocreateElement().getValue();
2977        }
2978
2979        /**
2980         * Sets the value(s) for <b>autocreate</b> ()
2981         *
2982     * <p>
2983     * <b>Definition:</b>
2984     * Whether or not to implicitly create the fixture during setup. If true, the fixture is automatically created on each server being tested during setup, therefore no create operation is required for this fixture in the TestScript.setup section.
2985     * </p> 
2986         */
2987        public Fixture setAutocreate(BooleanDt theValue) {
2988                myAutocreate = theValue;
2989                return this;
2990        }
2991        
2992        
2993
2994        /**
2995         * Sets the value for <b>autocreate</b> ()
2996         *
2997     * <p>
2998     * <b>Definition:</b>
2999     * Whether or not to implicitly create the fixture during setup. If true, the fixture is automatically created on each server being tested during setup, therefore no create operation is required for this fixture in the TestScript.setup section.
3000     * </p> 
3001         */
3002        public Fixture setAutocreate( boolean theBoolean) {
3003                myAutocreate = new BooleanDt(theBoolean); 
3004                return this; 
3005        }
3006
3007 
3008        /**
3009         * Gets the value(s) for <b>autodelete</b> ().
3010         * creating it if it does
3011         * not exist. Will not return <code>null</code>.
3012         *
3013     * <p>
3014     * <b>Definition:</b>
3015     * Whether or not to implicitly delete the fixture during teardown If true, the fixture is automatically deleted on each server being tested during teardown, therefore no delete operation is required for this fixture in the TestScript.teardown section.
3016     * </p> 
3017         */
3018        public BooleanDt getAutodeleteElement() {  
3019                if (myAutodelete == null) {
3020                        myAutodelete = new BooleanDt();
3021                }
3022                return myAutodelete;
3023        }
3024
3025        
3026        /**
3027         * Gets the value(s) for <b>autodelete</b> ().
3028         * creating it if it does
3029         * not exist. Will not return <code>null</code>.
3030         *
3031     * <p>
3032     * <b>Definition:</b>
3033     * Whether or not to implicitly delete the fixture during teardown If true, the fixture is automatically deleted on each server being tested during teardown, therefore no delete operation is required for this fixture in the TestScript.teardown section.
3034     * </p> 
3035         */
3036        public Boolean getAutodelete() {  
3037                return getAutodeleteElement().getValue();
3038        }
3039
3040        /**
3041         * Sets the value(s) for <b>autodelete</b> ()
3042         *
3043     * <p>
3044     * <b>Definition:</b>
3045     * Whether or not to implicitly delete the fixture during teardown If true, the fixture is automatically deleted on each server being tested during teardown, therefore no delete operation is required for this fixture in the TestScript.teardown section.
3046     * </p> 
3047         */
3048        public Fixture setAutodelete(BooleanDt theValue) {
3049                myAutodelete = theValue;
3050                return this;
3051        }
3052        
3053        
3054
3055        /**
3056         * Sets the value for <b>autodelete</b> ()
3057         *
3058     * <p>
3059     * <b>Definition:</b>
3060     * Whether or not to implicitly delete the fixture during teardown If true, the fixture is automatically deleted on each server being tested during teardown, therefore no delete operation is required for this fixture in the TestScript.teardown section.
3061     * </p> 
3062         */
3063        public Fixture setAutodelete( boolean theBoolean) {
3064                myAutodelete = new BooleanDt(theBoolean); 
3065                return this; 
3066        }
3067
3068 
3069        /**
3070         * Gets the value(s) for <b>resource</b> ().
3071         * creating it if it does
3072         * not exist. Will not return <code>null</code>.
3073         *
3074     * <p>
3075     * <b>Definition:</b>
3076     * Reference to the resource (containing the contents of the resource needed for operations)
3077     * </p> 
3078         */
3079        public ResourceReferenceDt getResource() {  
3080                if (myResource == null) {
3081                        myResource = new ResourceReferenceDt();
3082                }
3083                return myResource;
3084        }
3085
3086        /**
3087         * Sets the value(s) for <b>resource</b> ()
3088         *
3089     * <p>
3090     * <b>Definition:</b>
3091     * Reference to the resource (containing the contents of the resource needed for operations)
3092     * </p> 
3093         */
3094        public Fixture setResource(ResourceReferenceDt theValue) {
3095                myResource = theValue;
3096                return this;
3097        }
3098        
3099        
3100
3101  
3102
3103
3104        }
3105
3106
3107        /**
3108         * Block class for child element: <b>TestScript.variable</b> ()
3109         *
3110     * <p>
3111     * <b>Definition:</b>
3112     * Variable is set based either on element value in response body or on header field value in the response headers.
3113     * </p> 
3114         */
3115        @Block()        
3116        public static class Variable 
3117            extends  BaseIdentifiableElement        implements IResourceBlock {
3118        
3119        @Child(name="name", type=StringDt.class, order=0, min=1, max=1, summary=false, modifier=false)  
3120        @Description(
3121                shortDefinition="",
3122                formalDefinition="Descriptive name for this variable"
3123        )
3124        private StringDt myName;
3125        
3126        @Child(name="headerField", type=StringDt.class, order=1, min=0, max=1, summary=false, modifier=false)   
3127        @Description(
3128                shortDefinition="",
3129                formalDefinition="Will be used to grab the HTTP header field value from the headers that sourceId is pointing to."
3130        )
3131        private StringDt myHeaderField;
3132        
3133        @Child(name="path", type=StringDt.class, order=2, min=0, max=1, summary=false, modifier=false)  
3134        @Description(
3135                shortDefinition="",
3136                formalDefinition="XPath or JSONPath against the fixture body.  When variables are defined, either headerField must be specified or path, but not both."
3137        )
3138        private StringDt myPath;
3139        
3140        @Child(name="sourceId", type=IdDt.class, order=3, min=0, max=1, summary=false, modifier=false)  
3141        @Description(
3142                shortDefinition="",
3143                formalDefinition="Fixture to evaluate the XPath/JSONPath expression or the headerField  against within this variable."
3144        )
3145        private IdDt mySourceId;
3146        
3147
3148        @Override
3149        public boolean isEmpty() {
3150                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myName,  myHeaderField,  myPath,  mySourceId);
3151        }
3152        
3153        @Override
3154        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
3155                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myName, myHeaderField, myPath, mySourceId);
3156        }
3157
3158        /**
3159         * Gets the value(s) for <b>name</b> ().
3160         * creating it if it does
3161         * not exist. Will not return <code>null</code>.
3162         *
3163     * <p>
3164     * <b>Definition:</b>
3165     * Descriptive name for this variable
3166     * </p> 
3167         */
3168        public StringDt getNameElement() {  
3169                if (myName == null) {
3170                        myName = new StringDt();
3171                }
3172                return myName;
3173        }
3174
3175        
3176        /**
3177         * Gets the value(s) for <b>name</b> ().
3178         * creating it if it does
3179         * not exist. Will not return <code>null</code>.
3180         *
3181     * <p>
3182     * <b>Definition:</b>
3183     * Descriptive name for this variable
3184     * </p> 
3185         */
3186        public String getName() {  
3187                return getNameElement().getValue();
3188        }
3189
3190        /**
3191         * Sets the value(s) for <b>name</b> ()
3192         *
3193     * <p>
3194     * <b>Definition:</b>
3195     * Descriptive name for this variable
3196     * </p> 
3197         */
3198        public Variable setName(StringDt theValue) {
3199                myName = theValue;
3200                return this;
3201        }
3202        
3203        
3204
3205        /**
3206         * Sets the value for <b>name</b> ()
3207         *
3208     * <p>
3209     * <b>Definition:</b>
3210     * Descriptive name for this variable
3211     * </p> 
3212         */
3213        public Variable setName( String theString) {
3214                myName = new StringDt(theString); 
3215                return this; 
3216        }
3217
3218 
3219        /**
3220         * Gets the value(s) for <b>headerField</b> ().
3221         * creating it if it does
3222         * not exist. Will not return <code>null</code>.
3223         *
3224     * <p>
3225     * <b>Definition:</b>
3226     * Will be used to grab the HTTP header field value from the headers that sourceId is pointing to.
3227     * </p> 
3228         */
3229        public StringDt getHeaderFieldElement() {  
3230                if (myHeaderField == null) {
3231                        myHeaderField = new StringDt();
3232                }
3233                return myHeaderField;
3234        }
3235
3236        
3237        /**
3238         * Gets the value(s) for <b>headerField</b> ().
3239         * creating it if it does
3240         * not exist. Will not return <code>null</code>.
3241         *
3242     * <p>
3243     * <b>Definition:</b>
3244     * Will be used to grab the HTTP header field value from the headers that sourceId is pointing to.
3245     * </p> 
3246         */
3247        public String getHeaderField() {  
3248                return getHeaderFieldElement().getValue();
3249        }
3250
3251        /**
3252         * Sets the value(s) for <b>headerField</b> ()
3253         *
3254     * <p>
3255     * <b>Definition:</b>
3256     * Will be used to grab the HTTP header field value from the headers that sourceId is pointing to.
3257     * </p> 
3258         */
3259        public Variable setHeaderField(StringDt theValue) {
3260                myHeaderField = theValue;
3261                return this;
3262        }
3263        
3264        
3265
3266        /**
3267         * Sets the value for <b>headerField</b> ()
3268         *
3269     * <p>
3270     * <b>Definition:</b>
3271     * Will be used to grab the HTTP header field value from the headers that sourceId is pointing to.
3272     * </p> 
3273         */
3274        public Variable setHeaderField( String theString) {
3275                myHeaderField = new StringDt(theString); 
3276                return this; 
3277        }
3278
3279 
3280        /**
3281         * Gets the value(s) for <b>path</b> ().
3282         * creating it if it does
3283         * not exist. Will not return <code>null</code>.
3284         *
3285     * <p>
3286     * <b>Definition:</b>
3287     * XPath or JSONPath against the fixture body.  When variables are defined, either headerField must be specified or path, but not both.
3288     * </p> 
3289         */
3290        public StringDt getPathElement() {  
3291                if (myPath == null) {
3292                        myPath = new StringDt();
3293                }
3294                return myPath;
3295        }
3296
3297        
3298        /**
3299         * Gets the value(s) for <b>path</b> ().
3300         * creating it if it does
3301         * not exist. Will not return <code>null</code>.
3302         *
3303     * <p>
3304     * <b>Definition:</b>
3305     * XPath or JSONPath against the fixture body.  When variables are defined, either headerField must be specified or path, but not both.
3306     * </p> 
3307         */
3308        public String getPath() {  
3309                return getPathElement().getValue();
3310        }
3311
3312        /**
3313         * Sets the value(s) for <b>path</b> ()
3314         *
3315     * <p>
3316     * <b>Definition:</b>
3317     * XPath or JSONPath against the fixture body.  When variables are defined, either headerField must be specified or path, but not both.
3318     * </p> 
3319         */
3320        public Variable setPath(StringDt theValue) {
3321                myPath = theValue;
3322                return this;
3323        }
3324        
3325        
3326
3327        /**
3328         * Sets the value for <b>path</b> ()
3329         *
3330     * <p>
3331     * <b>Definition:</b>
3332     * XPath or JSONPath against the fixture body.  When variables are defined, either headerField must be specified or path, but not both.
3333     * </p> 
3334         */
3335        public Variable setPath( String theString) {
3336                myPath = new StringDt(theString); 
3337                return this; 
3338        }
3339
3340 
3341        /**
3342         * Gets the value(s) for <b>sourceId</b> ().
3343         * creating it if it does
3344         * not exist. Will not return <code>null</code>.
3345         *
3346     * <p>
3347     * <b>Definition:</b>
3348     * Fixture to evaluate the XPath/JSONPath expression or the headerField  against within this variable.
3349     * </p> 
3350         */
3351        public IdDt getSourceIdElement() {  
3352                if (mySourceId == null) {
3353                        mySourceId = new IdDt();
3354                }
3355                return mySourceId;
3356        }
3357
3358        
3359        /**
3360         * Gets the value(s) for <b>sourceId</b> ().
3361         * creating it if it does
3362         * not exist. Will not return <code>null</code>.
3363         *
3364     * <p>
3365     * <b>Definition:</b>
3366     * Fixture to evaluate the XPath/JSONPath expression or the headerField  against within this variable.
3367     * </p> 
3368         */
3369        public String getSourceId() {  
3370                return getSourceIdElement().getValue();
3371        }
3372
3373        /**
3374         * Sets the value(s) for <b>sourceId</b> ()
3375         *
3376     * <p>
3377     * <b>Definition:</b>
3378     * Fixture to evaluate the XPath/JSONPath expression or the headerField  against within this variable.
3379     * </p> 
3380         */
3381        public Variable setSourceId(IdDt theValue) {
3382                mySourceId = theValue;
3383                return this;
3384        }
3385        
3386        
3387
3388        /**
3389         * Sets the value for <b>sourceId</b> ()
3390         *
3391     * <p>
3392     * <b>Definition:</b>
3393     * Fixture to evaluate the XPath/JSONPath expression or the headerField  against within this variable.
3394     * </p> 
3395         */
3396        public Variable setSourceId( String theId) {
3397                mySourceId = new IdDt(theId); 
3398                return this; 
3399        }
3400
3401 
3402
3403
3404        }
3405
3406
3407        /**
3408         * Block class for child element: <b>TestScript.setup</b> ()
3409         *
3410     * <p>
3411     * <b>Definition:</b>
3412     * A series of required setup operations before tests are executed.
3413     * </p> 
3414         */
3415        @Block()        
3416        public static class Setup 
3417            extends  BaseIdentifiableElement        implements IResourceBlock {
3418        
3419        @Child(name="metadata", type=Metadata.class, order=0, min=0, max=1, summary=false, modifier=false)      
3420        @Description(
3421                shortDefinition="",
3422                formalDefinition="Capabilities that must exist and are assumed to function correctly on the FHIR server being tested."
3423        )
3424        private Metadata myMetadata;
3425        
3426        @Child(name="action", order=1, min=1, max=Child.MAX_UNLIMITED, summary=false, modifier=false)   
3427        @Description(
3428                shortDefinition="",
3429                formalDefinition="Action would contain either an operation or an assertion."
3430        )
3431        private java.util.List<SetupAction> myAction;
3432        
3433
3434        @Override
3435        public boolean isEmpty() {
3436                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myMetadata,  myAction);
3437        }
3438        
3439        @Override
3440        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
3441                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myMetadata, myAction);
3442        }
3443
3444        /**
3445         * Gets the value(s) for <b>metadata</b> ().
3446         * creating it if it does
3447         * not exist. Will not return <code>null</code>.
3448         *
3449     * <p>
3450     * <b>Definition:</b>
3451     * Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.
3452     * </p> 
3453         */
3454        public Metadata getMetadata() {  
3455                if (myMetadata == null) {
3456                        myMetadata = new Metadata();
3457                }
3458                return myMetadata;
3459        }
3460
3461        /**
3462         * Sets the value(s) for <b>metadata</b> ()
3463         *
3464     * <p>
3465     * <b>Definition:</b>
3466     * Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.
3467     * </p> 
3468         */
3469        public Setup setMetadata(Metadata theValue) {
3470                myMetadata = theValue;
3471                return this;
3472        }
3473        
3474        
3475
3476  
3477        /**
3478         * Gets the value(s) for <b>action</b> ().
3479         * creating it if it does
3480         * not exist. Will not return <code>null</code>.
3481         *
3482     * <p>
3483     * <b>Definition:</b>
3484     * Action would contain either an operation or an assertion.
3485     * </p> 
3486         */
3487        public java.util.List<SetupAction> getAction() {  
3488                if (myAction == null) {
3489                        myAction = new java.util.ArrayList<SetupAction>();
3490                }
3491                return myAction;
3492        }
3493
3494        /**
3495         * Sets the value(s) for <b>action</b> ()
3496         *
3497     * <p>
3498     * <b>Definition:</b>
3499     * Action would contain either an operation or an assertion.
3500     * </p> 
3501         */
3502        public Setup setAction(java.util.List<SetupAction> theValue) {
3503                myAction = theValue;
3504                return this;
3505        }
3506        
3507        
3508
3509        /**
3510         * Adds and returns a new value for <b>action</b> ()
3511         *
3512     * <p>
3513     * <b>Definition:</b>
3514     * Action would contain either an operation or an assertion.
3515     * </p> 
3516         */
3517        public SetupAction addAction() {
3518                SetupAction newType = new SetupAction();
3519                getAction().add(newType);
3520                return newType; 
3521        }
3522
3523        /**
3524         * Adds a given new value for <b>action</b> ()
3525         *
3526         * <p>
3527         * <b>Definition:</b>
3528         * Action would contain either an operation or an assertion.
3529         * </p>
3530         * @param theValue The action to add (must not be <code>null</code>)
3531         */
3532        public Setup addAction(SetupAction theValue) {
3533                if (theValue == null) {
3534                        throw new NullPointerException("theValue must not be null");
3535                }
3536                getAction().add(theValue);
3537                return this;
3538        }
3539
3540        /**
3541         * Gets the first repetition for <b>action</b> (),
3542         * creating it if it does not already exist.
3543         *
3544     * <p>
3545     * <b>Definition:</b>
3546     * Action would contain either an operation or an assertion.
3547     * </p> 
3548         */
3549        public SetupAction getActionFirstRep() {
3550                if (getAction().isEmpty()) {
3551                        return addAction();
3552                }
3553                return getAction().get(0); 
3554        }
3555  
3556
3557
3558        }
3559
3560        /**
3561         * Block class for child element: <b>TestScript.setup.action</b> ()
3562         *
3563     * <p>
3564     * <b>Definition:</b>
3565     * Action would contain either an operation or an assertion.
3566     * </p> 
3567         */
3568        @Block()        
3569        public static class SetupAction 
3570            extends  BaseIdentifiableElement        implements IResourceBlock {
3571        
3572        @Child(name="operation", order=0, min=0, max=1, summary=false, modifier=false)  
3573        @Description(
3574                shortDefinition="",
3575                formalDefinition="The operation to perform"
3576        )
3577        private SetupActionOperation myOperation;
3578        
3579        @Child(name="assert", order=1, min=0, max=1, summary=false, modifier=false)     
3580        @Description(
3581                shortDefinition="",
3582                formalDefinition="Evaluates the results of previous operations to determine if the server under test behaves appropriately."
3583        )
3584        private SetupActionAssert myAssert;
3585        
3586
3587        @Override
3588        public boolean isEmpty() {
3589                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myOperation,  myAssert);
3590        }
3591        
3592        @Override
3593        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
3594                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myOperation, myAssert);
3595        }
3596
3597        /**
3598         * Gets the value(s) for <b>operation</b> ().
3599         * creating it if it does
3600         * not exist. Will not return <code>null</code>.
3601         *
3602     * <p>
3603     * <b>Definition:</b>
3604     * The operation to perform
3605     * </p> 
3606         */
3607        public SetupActionOperation getOperation() {  
3608                if (myOperation == null) {
3609                        myOperation = new SetupActionOperation();
3610                }
3611                return myOperation;
3612        }
3613
3614        /**
3615         * Sets the value(s) for <b>operation</b> ()
3616         *
3617     * <p>
3618     * <b>Definition:</b>
3619     * The operation to perform
3620     * </p> 
3621         */
3622        public SetupAction setOperation(SetupActionOperation theValue) {
3623                myOperation = theValue;
3624                return this;
3625        }
3626        
3627        
3628
3629  
3630        /**
3631         * Gets the value(s) for <b>assert</b> ().
3632         * creating it if it does
3633         * not exist. Will not return <code>null</code>.
3634         *
3635     * <p>
3636     * <b>Definition:</b>
3637     * Evaluates the results of previous operations to determine if the server under test behaves appropriately.
3638     * </p> 
3639         */
3640        public SetupActionAssert getAssert() {  
3641                if (myAssert == null) {
3642                        myAssert = new SetupActionAssert();
3643                }
3644                return myAssert;
3645        }
3646
3647        /**
3648         * Sets the value(s) for <b>assert</b> ()
3649         *
3650     * <p>
3651     * <b>Definition:</b>
3652     * Evaluates the results of previous operations to determine if the server under test behaves appropriately.
3653     * </p> 
3654         */
3655        public SetupAction setAssert(SetupActionAssert theValue) {
3656                myAssert = theValue;
3657                return this;
3658        }
3659        
3660        
3661
3662  
3663
3664
3665        }
3666
3667        /**
3668         * Block class for child element: <b>TestScript.setup.action.operation</b> ()
3669         *
3670     * <p>
3671     * <b>Definition:</b>
3672     * The operation to perform
3673     * </p> 
3674         */
3675        @Block()        
3676        public static class SetupActionOperation 
3677            extends  BaseIdentifiableElement        implements IResourceBlock {
3678        
3679        @Child(name="type", type=CodingDt.class, order=0, min=0, max=1, summary=false, modifier=false)  
3680        @Description(
3681                shortDefinition="",
3682                formalDefinition="Server interaction or operation type"
3683        )
3684        private CodingDt myType;
3685        
3686        @Child(name="resource", type=CodeDt.class, order=1, min=0, max=1, summary=false, modifier=false)        
3687        @Description(
3688                shortDefinition="",
3689                formalDefinition="The type of the resource.  See http://hl7-fhir.github.io/resourcelist.html."
3690        )
3691        private CodeDt myResource;
3692        
3693        @Child(name="label", type=StringDt.class, order=2, min=0, max=1, summary=false, modifier=false) 
3694        @Description(
3695                shortDefinition="",
3696                formalDefinition="The label would be used for tracking/logging purposes by test engines."
3697        )
3698        private StringDt myLabel;
3699        
3700        @Child(name="description", type=StringDt.class, order=3, min=0, max=1, summary=false, modifier=false)   
3701        @Description(
3702                shortDefinition="",
3703                formalDefinition="The description would be used by test engines for tracking and reporting purposes."
3704        )
3705        private StringDt myDescription;
3706        
3707        @Child(name="accept", type=CodeDt.class, order=4, min=0, max=1, summary=false, modifier=false)  
3708        @Description(
3709                shortDefinition="",
3710                formalDefinition="The content-type or mime-type to use for RESTful operation in the 'Accept' header."
3711        )
3712        private BoundCodeDt<ContentTypeEnum> myAccept;
3713        
3714        @Child(name="contentType", type=CodeDt.class, order=5, min=0, max=1, summary=false, modifier=false)     
3715        @Description(
3716                shortDefinition="",
3717                formalDefinition="The content-type or mime-type to use for RESTful operation in the 'Content-Type' header."
3718        )
3719        private BoundCodeDt<ContentTypeEnum> myContentType;
3720        
3721        @Child(name="destination", type=IntegerDt.class, order=6, min=0, max=1, summary=false, modifier=false)  
3722        @Description(
3723                shortDefinition="",
3724                formalDefinition="Which server to perform the operation on."
3725        )
3726        private IntegerDt myDestination;
3727        
3728        @Child(name="encodeRequestUrl", type=BooleanDt.class, order=7, min=0, max=1, summary=false, modifier=false)     
3729        @Description(
3730                shortDefinition="",
3731                formalDefinition="Whether or not to implicitly send the request url in encoded format. The default is true to match the standard RESTful client behavior. Set to false when communicating with a server that does not support encoded url paths."
3732        )
3733        private BooleanDt myEncodeRequestUrl;
3734        
3735        @Child(name="params", type=StringDt.class, order=8, min=0, max=1, summary=false, modifier=false)        
3736        @Description(
3737                shortDefinition="",
3738                formalDefinition="Path plus parameters after [type].  Used to set parts of the request URL explicitly."
3739        )
3740        private StringDt myParams;
3741        
3742        @Child(name="requestHeader", order=9, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
3743        @Description(
3744                shortDefinition="",
3745                formalDefinition="Header elements would be used to set HTTP headers."
3746        )
3747        private java.util.List<SetupActionOperationRequestHeader> myRequestHeader;
3748        
3749        @Child(name="responseId", type=IdDt.class, order=10, min=0, max=1, summary=false, modifier=false)       
3750        @Description(
3751                shortDefinition="",
3752                formalDefinition="The fixture id (maybe new) to map to the response."
3753        )
3754        private IdDt myResponseId;
3755        
3756        @Child(name="sourceId", type=IdDt.class, order=11, min=0, max=1, summary=false, modifier=false) 
3757        @Description(
3758                shortDefinition="",
3759                formalDefinition="The id of the fixture used as the body of a PUT or POST request."
3760        )
3761        private IdDt mySourceId;
3762        
3763        @Child(name="targetId", type=IdDt.class, order=12, min=0, max=1, summary=false, modifier=false) 
3764        @Description(
3765                shortDefinition="",
3766                formalDefinition="Id of fixture used for extracting the [id],  [type], and [vid] for GET requests"
3767        )
3768        private IdDt myTargetId;
3769        
3770        @Child(name="url", type=StringDt.class, order=13, min=0, max=1, summary=false, modifier=false)  
3771        @Description(
3772                shortDefinition="",
3773                formalDefinition="Complete request URL."
3774        )
3775        private StringDt myUrl;
3776        
3777
3778        @Override
3779        public boolean isEmpty() {
3780                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  myResource,  myLabel,  myDescription,  myAccept,  myContentType,  myDestination,  myEncodeRequestUrl,  myParams,  myRequestHeader,  myResponseId,  mySourceId,  myTargetId,  myUrl);
3781        }
3782        
3783        @Override
3784        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
3785                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, myResource, myLabel, myDescription, myAccept, myContentType, myDestination, myEncodeRequestUrl, myParams, myRequestHeader, myResponseId, mySourceId, myTargetId, myUrl);
3786        }
3787
3788        /**
3789         * Gets the value(s) for <b>type</b> ().
3790         * creating it if it does
3791         * not exist. Will not return <code>null</code>.
3792         *
3793     * <p>
3794     * <b>Definition:</b>
3795     * Server interaction or operation type
3796     * </p> 
3797         */
3798        public CodingDt getType() {  
3799                if (myType == null) {
3800                        myType = new CodingDt();
3801                }
3802                return myType;
3803        }
3804
3805        /**
3806         * Sets the value(s) for <b>type</b> ()
3807         *
3808     * <p>
3809     * <b>Definition:</b>
3810     * Server interaction or operation type
3811     * </p> 
3812         */
3813        public SetupActionOperation setType(CodingDt theValue) {
3814                myType = theValue;
3815                return this;
3816        }
3817        
3818        
3819
3820  
3821        /**
3822         * Gets the value(s) for <b>resource</b> ().
3823         * creating it if it does
3824         * not exist. Will not return <code>null</code>.
3825         *
3826     * <p>
3827     * <b>Definition:</b>
3828     * The type of the resource.  See http://hl7-fhir.github.io/resourcelist.html.
3829     * </p> 
3830         */
3831        public CodeDt getResourceElement() {  
3832                if (myResource == null) {
3833                        myResource = new CodeDt();
3834                }
3835                return myResource;
3836        }
3837
3838        
3839        /**
3840         * Gets the value(s) for <b>resource</b> ().
3841         * creating it if it does
3842         * not exist. Will not return <code>null</code>.
3843         *
3844     * <p>
3845     * <b>Definition:</b>
3846     * The type of the resource.  See http://hl7-fhir.github.io/resourcelist.html.
3847     * </p> 
3848         */
3849        public String getResource() {  
3850                return getResourceElement().getValue();
3851        }
3852
3853        /**
3854         * Sets the value(s) for <b>resource</b> ()
3855         *
3856     * <p>
3857     * <b>Definition:</b>
3858     * The type of the resource.  See http://hl7-fhir.github.io/resourcelist.html.
3859     * </p> 
3860         */
3861        public SetupActionOperation setResource(CodeDt theValue) {
3862                myResource = theValue;
3863                return this;
3864        }
3865        
3866        
3867
3868        /**
3869         * Sets the value for <b>resource</b> ()
3870         *
3871     * <p>
3872     * <b>Definition:</b>
3873     * The type of the resource.  See http://hl7-fhir.github.io/resourcelist.html.
3874     * </p> 
3875         */
3876        public SetupActionOperation setResource( String theCode) {
3877                myResource = new CodeDt(theCode); 
3878                return this; 
3879        }
3880
3881 
3882        /**
3883         * Gets the value(s) for <b>label</b> ().
3884         * creating it if it does
3885         * not exist. Will not return <code>null</code>.
3886         *
3887     * <p>
3888     * <b>Definition:</b>
3889     * The label would be used for tracking/logging purposes by test engines.
3890     * </p> 
3891         */
3892        public StringDt getLabelElement() {  
3893                if (myLabel == null) {
3894                        myLabel = new StringDt();
3895                }
3896                return myLabel;
3897        }
3898
3899        
3900        /**
3901         * Gets the value(s) for <b>label</b> ().
3902         * creating it if it does
3903         * not exist. Will not return <code>null</code>.
3904         *
3905     * <p>
3906     * <b>Definition:</b>
3907     * The label would be used for tracking/logging purposes by test engines.
3908     * </p> 
3909         */
3910        public String getLabel() {  
3911                return getLabelElement().getValue();
3912        }
3913
3914        /**
3915         * Sets the value(s) for <b>label</b> ()
3916         *
3917     * <p>
3918     * <b>Definition:</b>
3919     * The label would be used for tracking/logging purposes by test engines.
3920     * </p> 
3921         */
3922        public SetupActionOperation setLabel(StringDt theValue) {
3923                myLabel = theValue;
3924                return this;
3925        }
3926        
3927        
3928
3929        /**
3930         * Sets the value for <b>label</b> ()
3931         *
3932     * <p>
3933     * <b>Definition:</b>
3934     * The label would be used for tracking/logging purposes by test engines.
3935     * </p> 
3936         */
3937        public SetupActionOperation setLabel( String theString) {
3938                myLabel = new StringDt(theString); 
3939                return this; 
3940        }
3941
3942 
3943        /**
3944         * Gets the value(s) for <b>description</b> ().
3945         * creating it if it does
3946         * not exist. Will not return <code>null</code>.
3947         *
3948     * <p>
3949     * <b>Definition:</b>
3950     * The description would be used by test engines for tracking and reporting purposes.
3951     * </p> 
3952         */
3953        public StringDt getDescriptionElement() {  
3954                if (myDescription == null) {
3955                        myDescription = new StringDt();
3956                }
3957                return myDescription;
3958        }
3959
3960        
3961        /**
3962         * Gets the value(s) for <b>description</b> ().
3963         * creating it if it does
3964         * not exist. Will not return <code>null</code>.
3965         *
3966     * <p>
3967     * <b>Definition:</b>
3968     * The description would be used by test engines for tracking and reporting purposes.
3969     * </p> 
3970         */
3971        public String getDescription() {  
3972                return getDescriptionElement().getValue();
3973        }
3974
3975        /**
3976         * Sets the value(s) for <b>description</b> ()
3977         *
3978     * <p>
3979     * <b>Definition:</b>
3980     * The description would be used by test engines for tracking and reporting purposes.
3981     * </p> 
3982         */
3983        public SetupActionOperation setDescription(StringDt theValue) {
3984                myDescription = theValue;
3985                return this;
3986        }
3987        
3988        
3989
3990        /**
3991         * Sets the value for <b>description</b> ()
3992         *
3993     * <p>
3994     * <b>Definition:</b>
3995     * The description would be used by test engines for tracking and reporting purposes.
3996     * </p> 
3997         */
3998        public SetupActionOperation setDescription( String theString) {
3999                myDescription = new StringDt(theString); 
4000                return this; 
4001        }
4002
4003 
4004        /**
4005         * Gets the value(s) for <b>accept</b> ().
4006         * creating it if it does
4007         * not exist. Will not return <code>null</code>.
4008         *
4009     * <p>
4010     * <b>Definition:</b>
4011     * The content-type or mime-type to use for RESTful operation in the 'Accept' header.
4012     * </p> 
4013         */
4014        public BoundCodeDt<ContentTypeEnum> getAcceptElement() {  
4015                if (myAccept == null) {
4016                        myAccept = new BoundCodeDt<ContentTypeEnum>(ContentTypeEnum.VALUESET_BINDER);
4017                }
4018                return myAccept;
4019        }
4020
4021        
4022        /**
4023         * Gets the value(s) for <b>accept</b> ().
4024         * creating it if it does
4025         * not exist. Will not return <code>null</code>.
4026         *
4027     * <p>
4028     * <b>Definition:</b>
4029     * The content-type or mime-type to use for RESTful operation in the 'Accept' header.
4030     * </p> 
4031         */
4032        public String getAccept() {  
4033                return getAcceptElement().getValue();
4034        }
4035
4036        /**
4037         * Sets the value(s) for <b>accept</b> ()
4038         *
4039     * <p>
4040     * <b>Definition:</b>
4041     * The content-type or mime-type to use for RESTful operation in the 'Accept' header.
4042     * </p> 
4043         */
4044        public SetupActionOperation setAccept(BoundCodeDt<ContentTypeEnum> theValue) {
4045                myAccept = theValue;
4046                return this;
4047        }
4048        
4049        
4050
4051        /**
4052         * Sets the value(s) for <b>accept</b> ()
4053         *
4054     * <p>
4055     * <b>Definition:</b>
4056     * The content-type or mime-type to use for RESTful operation in the 'Accept' header.
4057     * </p> 
4058         */
4059        public SetupActionOperation setAccept(ContentTypeEnum theValue) {
4060                setAccept(new BoundCodeDt<ContentTypeEnum>(ContentTypeEnum.VALUESET_BINDER, theValue));
4061                
4062/*
4063                getAcceptElement().setValueAsEnum(theValue);
4064*/
4065                return this;
4066        }
4067
4068  
4069        /**
4070         * Gets the value(s) for <b>contentType</b> ().
4071         * creating it if it does
4072         * not exist. Will not return <code>null</code>.
4073         *
4074     * <p>
4075     * <b>Definition:</b>
4076     * The content-type or mime-type to use for RESTful operation in the 'Content-Type' header.
4077     * </p> 
4078         */
4079        public BoundCodeDt<ContentTypeEnum> getContentTypeElement() {  
4080                if (myContentType == null) {
4081                        myContentType = new BoundCodeDt<ContentTypeEnum>(ContentTypeEnum.VALUESET_BINDER);
4082                }
4083                return myContentType;
4084        }
4085
4086        
4087        /**
4088         * Gets the value(s) for <b>contentType</b> ().
4089         * creating it if it does
4090         * not exist. Will not return <code>null</code>.
4091         *
4092     * <p>
4093     * <b>Definition:</b>
4094     * The content-type or mime-type to use for RESTful operation in the 'Content-Type' header.
4095     * </p> 
4096         */
4097        public String getContentType() {  
4098                return getContentTypeElement().getValue();
4099        }
4100
4101        /**
4102         * Sets the value(s) for <b>contentType</b> ()
4103         *
4104     * <p>
4105     * <b>Definition:</b>
4106     * The content-type or mime-type to use for RESTful operation in the 'Content-Type' header.
4107     * </p> 
4108         */
4109        public SetupActionOperation setContentType(BoundCodeDt<ContentTypeEnum> theValue) {
4110                myContentType = theValue;
4111                return this;
4112        }
4113        
4114        
4115
4116        /**
4117         * Sets the value(s) for <b>contentType</b> ()
4118         *
4119     * <p>
4120     * <b>Definition:</b>
4121     * The content-type or mime-type to use for RESTful operation in the 'Content-Type' header.
4122     * </p> 
4123         */
4124        public SetupActionOperation setContentType(ContentTypeEnum theValue) {
4125                setContentType(new BoundCodeDt<ContentTypeEnum>(ContentTypeEnum.VALUESET_BINDER, theValue));
4126                
4127/*
4128                getContentTypeElement().setValueAsEnum(theValue);
4129*/
4130                return this;
4131        }
4132
4133  
4134        /**
4135         * Gets the value(s) for <b>destination</b> ().
4136         * creating it if it does
4137         * not exist. Will not return <code>null</code>.
4138         *
4139     * <p>
4140     * <b>Definition:</b>
4141     * Which server to perform the operation on.
4142     * </p> 
4143         */
4144        public IntegerDt getDestinationElement() {  
4145                if (myDestination == null) {
4146                        myDestination = new IntegerDt();
4147                }
4148                return myDestination;
4149        }
4150
4151        
4152        /**
4153         * Gets the value(s) for <b>destination</b> ().
4154         * creating it if it does
4155         * not exist. Will not return <code>null</code>.
4156         *
4157     * <p>
4158     * <b>Definition:</b>
4159     * Which server to perform the operation on.
4160     * </p> 
4161         */
4162        public Integer getDestination() {  
4163                return getDestinationElement().getValue();
4164        }
4165
4166        /**
4167         * Sets the value(s) for <b>destination</b> ()
4168         *
4169     * <p>
4170     * <b>Definition:</b>
4171     * Which server to perform the operation on.
4172     * </p> 
4173         */
4174        public SetupActionOperation setDestination(IntegerDt theValue) {
4175                myDestination = theValue;
4176                return this;
4177        }
4178        
4179        
4180
4181        /**
4182         * Sets the value for <b>destination</b> ()
4183         *
4184     * <p>
4185     * <b>Definition:</b>
4186     * Which server to perform the operation on.
4187     * </p> 
4188         */
4189        public SetupActionOperation setDestination( int theInteger) {
4190                myDestination = new IntegerDt(theInteger); 
4191                return this; 
4192        }
4193
4194 
4195        /**
4196         * Gets the value(s) for <b>encodeRequestUrl</b> ().
4197         * creating it if it does
4198         * not exist. Will not return <code>null</code>.
4199         *
4200     * <p>
4201     * <b>Definition:</b>
4202     * Whether or not to implicitly send the request url in encoded format. The default is true to match the standard RESTful client behavior. Set to false when communicating with a server that does not support encoded url paths.
4203     * </p> 
4204         */
4205        public BooleanDt getEncodeRequestUrlElement() {  
4206                if (myEncodeRequestUrl == null) {
4207                        myEncodeRequestUrl = new BooleanDt();
4208                }
4209                return myEncodeRequestUrl;
4210        }
4211
4212        
4213        /**
4214         * Gets the value(s) for <b>encodeRequestUrl</b> ().
4215         * creating it if it does
4216         * not exist. Will not return <code>null</code>.
4217         *
4218     * <p>
4219     * <b>Definition:</b>
4220     * Whether or not to implicitly send the request url in encoded format. The default is true to match the standard RESTful client behavior. Set to false when communicating with a server that does not support encoded url paths.
4221     * </p> 
4222         */
4223        public Boolean getEncodeRequestUrl() {  
4224                return getEncodeRequestUrlElement().getValue();
4225        }
4226
4227        /**
4228         * Sets the value(s) for <b>encodeRequestUrl</b> ()
4229         *
4230     * <p>
4231     * <b>Definition:</b>
4232     * Whether or not to implicitly send the request url in encoded format. The default is true to match the standard RESTful client behavior. Set to false when communicating with a server that does not support encoded url paths.
4233     * </p> 
4234         */
4235        public SetupActionOperation setEncodeRequestUrl(BooleanDt theValue) {
4236                myEncodeRequestUrl = theValue;
4237                return this;
4238        }
4239        
4240        
4241
4242        /**
4243         * Sets the value for <b>encodeRequestUrl</b> ()
4244         *
4245     * <p>
4246     * <b>Definition:</b>
4247     * Whether or not to implicitly send the request url in encoded format. The default is true to match the standard RESTful client behavior. Set to false when communicating with a server that does not support encoded url paths.
4248     * </p> 
4249         */
4250        public SetupActionOperation setEncodeRequestUrl( boolean theBoolean) {
4251                myEncodeRequestUrl = new BooleanDt(theBoolean); 
4252                return this; 
4253        }
4254
4255 
4256        /**
4257         * Gets the value(s) for <b>params</b> ().
4258         * creating it if it does
4259         * not exist. Will not return <code>null</code>.
4260         *
4261     * <p>
4262     * <b>Definition:</b>
4263     * Path plus parameters after [type].  Used to set parts of the request URL explicitly.
4264     * </p> 
4265         */
4266        public StringDt getParamsElement() {  
4267                if (myParams == null) {
4268                        myParams = new StringDt();
4269                }
4270                return myParams;
4271        }
4272
4273        
4274        /**
4275         * Gets the value(s) for <b>params</b> ().
4276         * creating it if it does
4277         * not exist. Will not return <code>null</code>.
4278         *
4279     * <p>
4280     * <b>Definition:</b>
4281     * Path plus parameters after [type].  Used to set parts of the request URL explicitly.
4282     * </p> 
4283         */
4284        public String getParams() {  
4285                return getParamsElement().getValue();
4286        }
4287
4288        /**
4289         * Sets the value(s) for <b>params</b> ()
4290         *
4291     * <p>
4292     * <b>Definition:</b>
4293     * Path plus parameters after [type].  Used to set parts of the request URL explicitly.
4294     * </p> 
4295         */
4296        public SetupActionOperation setParams(StringDt theValue) {
4297                myParams = theValue;
4298                return this;
4299        }
4300        
4301        
4302
4303        /**
4304         * Sets the value for <b>params</b> ()
4305         *
4306     * <p>
4307     * <b>Definition:</b>
4308     * Path plus parameters after [type].  Used to set parts of the request URL explicitly.
4309     * </p> 
4310         */
4311        public SetupActionOperation setParams( String theString) {
4312                myParams = new StringDt(theString); 
4313                return this; 
4314        }
4315
4316 
4317        /**
4318         * Gets the value(s) for <b>requestHeader</b> ().
4319         * creating it if it does
4320         * not exist. Will not return <code>null</code>.
4321         *
4322     * <p>
4323     * <b>Definition:</b>
4324     * Header elements would be used to set HTTP headers.
4325     * </p> 
4326         */
4327        public java.util.List<SetupActionOperationRequestHeader> getRequestHeader() {  
4328                if (myRequestHeader == null) {
4329                        myRequestHeader = new java.util.ArrayList<SetupActionOperationRequestHeader>();
4330                }
4331                return myRequestHeader;
4332        }
4333
4334        /**
4335         * Sets the value(s) for <b>requestHeader</b> ()
4336         *
4337     * <p>
4338     * <b>Definition:</b>
4339     * Header elements would be used to set HTTP headers.
4340     * </p> 
4341         */
4342        public SetupActionOperation setRequestHeader(java.util.List<SetupActionOperationRequestHeader> theValue) {
4343                myRequestHeader = theValue;
4344                return this;
4345        }
4346        
4347        
4348
4349        /**
4350         * Adds and returns a new value for <b>requestHeader</b> ()
4351         *
4352     * <p>
4353     * <b>Definition:</b>
4354     * Header elements would be used to set HTTP headers.
4355     * </p> 
4356         */
4357        public SetupActionOperationRequestHeader addRequestHeader() {
4358                SetupActionOperationRequestHeader newType = new SetupActionOperationRequestHeader();
4359                getRequestHeader().add(newType);
4360                return newType; 
4361        }
4362
4363        /**
4364         * Adds a given new value for <b>requestHeader</b> ()
4365         *
4366         * <p>
4367         * <b>Definition:</b>
4368         * Header elements would be used to set HTTP headers.
4369         * </p>
4370         * @param theValue The requestHeader to add (must not be <code>null</code>)
4371         */
4372        public SetupActionOperation addRequestHeader(SetupActionOperationRequestHeader theValue) {
4373                if (theValue == null) {
4374                        throw new NullPointerException("theValue must not be null");
4375                }
4376                getRequestHeader().add(theValue);
4377                return this;
4378        }
4379
4380        /**
4381         * Gets the first repetition for <b>requestHeader</b> (),
4382         * creating it if it does not already exist.
4383         *
4384     * <p>
4385     * <b>Definition:</b>
4386     * Header elements would be used to set HTTP headers.
4387     * </p> 
4388         */
4389        public SetupActionOperationRequestHeader getRequestHeaderFirstRep() {
4390                if (getRequestHeader().isEmpty()) {
4391                        return addRequestHeader();
4392                }
4393                return getRequestHeader().get(0); 
4394        }
4395  
4396        /**
4397         * Gets the value(s) for <b>responseId</b> ().
4398         * creating it if it does
4399         * not exist. Will not return <code>null</code>.
4400         *
4401     * <p>
4402     * <b>Definition:</b>
4403     * The fixture id (maybe new) to map to the response.
4404     * </p> 
4405         */
4406        public IdDt getResponseIdElement() {  
4407                if (myResponseId == null) {
4408                        myResponseId = new IdDt();
4409                }
4410                return myResponseId;
4411        }
4412
4413        
4414        /**
4415         * Gets the value(s) for <b>responseId</b> ().
4416         * creating it if it does
4417         * not exist. Will not return <code>null</code>.
4418         *
4419     * <p>
4420     * <b>Definition:</b>
4421     * The fixture id (maybe new) to map to the response.
4422     * </p> 
4423         */
4424        public String getResponseId() {  
4425                return getResponseIdElement().getValue();
4426        }
4427
4428        /**
4429         * Sets the value(s) for <b>responseId</b> ()
4430         *
4431     * <p>
4432     * <b>Definition:</b>
4433     * The fixture id (maybe new) to map to the response.
4434     * </p> 
4435         */
4436        public SetupActionOperation setResponseId(IdDt theValue) {
4437                myResponseId = theValue;
4438                return this;
4439        }
4440        
4441        
4442
4443        /**
4444         * Sets the value for <b>responseId</b> ()
4445         *
4446     * <p>
4447     * <b>Definition:</b>
4448     * The fixture id (maybe new) to map to the response.
4449     * </p> 
4450         */
4451        public SetupActionOperation setResponseId( String theId) {
4452                myResponseId = new IdDt(theId); 
4453                return this; 
4454        }
4455
4456 
4457        /**
4458         * Gets the value(s) for <b>sourceId</b> ().
4459         * creating it if it does
4460         * not exist. Will not return <code>null</code>.
4461         *
4462     * <p>
4463     * <b>Definition:</b>
4464     * The id of the fixture used as the body of a PUT or POST request.
4465     * </p> 
4466         */
4467        public IdDt getSourceIdElement() {  
4468                if (mySourceId == null) {
4469                        mySourceId = new IdDt();
4470                }
4471                return mySourceId;
4472        }
4473
4474        
4475        /**
4476         * Gets the value(s) for <b>sourceId</b> ().
4477         * creating it if it does
4478         * not exist. Will not return <code>null</code>.
4479         *
4480     * <p>
4481     * <b>Definition:</b>
4482     * The id of the fixture used as the body of a PUT or POST request.
4483     * </p> 
4484         */
4485        public String getSourceId() {  
4486                return getSourceIdElement().getValue();
4487        }
4488
4489        /**
4490         * Sets the value(s) for <b>sourceId</b> ()
4491         *
4492     * <p>
4493     * <b>Definition:</b>
4494     * The id of the fixture used as the body of a PUT or POST request.
4495     * </p> 
4496         */
4497        public SetupActionOperation setSourceId(IdDt theValue) {
4498                mySourceId = theValue;
4499                return this;
4500        }
4501        
4502        
4503
4504        /**
4505         * Sets the value for <b>sourceId</b> ()
4506         *
4507     * <p>
4508     * <b>Definition:</b>
4509     * The id of the fixture used as the body of a PUT or POST request.
4510     * </p> 
4511         */
4512        public SetupActionOperation setSourceId( String theId) {
4513                mySourceId = new IdDt(theId); 
4514                return this; 
4515        }
4516
4517 
4518        /**
4519         * Gets the value(s) for <b>targetId</b> ().
4520         * creating it if it does
4521         * not exist. Will not return <code>null</code>.
4522         *
4523     * <p>
4524     * <b>Definition:</b>
4525     * Id of fixture used for extracting the [id],  [type], and [vid] for GET requests
4526     * </p> 
4527         */
4528        public IdDt getTargetIdElement() {  
4529                if (myTargetId == null) {
4530                        myTargetId = new IdDt();
4531                }
4532                return myTargetId;
4533        }
4534
4535        
4536        /**
4537         * Gets the value(s) for <b>targetId</b> ().
4538         * creating it if it does
4539         * not exist. Will not return <code>null</code>.
4540         *
4541     * <p>
4542     * <b>Definition:</b>
4543     * Id of fixture used for extracting the [id],  [type], and [vid] for GET requests
4544     * </p> 
4545         */
4546        public String getTargetId() {  
4547                return getTargetIdElement().getValue();
4548        }
4549
4550        /**
4551         * Sets the value(s) for <b>targetId</b> ()
4552         *
4553     * <p>
4554     * <b>Definition:</b>
4555     * Id of fixture used for extracting the [id],  [type], and [vid] for GET requests
4556     * </p> 
4557         */
4558        public SetupActionOperation setTargetId(IdDt theValue) {
4559                myTargetId = theValue;
4560                return this;
4561        }
4562        
4563        
4564
4565        /**
4566         * Sets the value for <b>targetId</b> ()
4567         *
4568     * <p>
4569     * <b>Definition:</b>
4570     * Id of fixture used for extracting the [id],  [type], and [vid] for GET requests
4571     * </p> 
4572         */
4573        public SetupActionOperation setTargetId( String theId) {
4574                myTargetId = new IdDt(theId); 
4575                return this; 
4576        }
4577
4578 
4579        /**
4580         * Gets the value(s) for <b>url</b> ().
4581         * creating it if it does
4582         * not exist. Will not return <code>null</code>.
4583         *
4584     * <p>
4585     * <b>Definition:</b>
4586     * Complete request URL.
4587     * </p> 
4588         */
4589        public StringDt getUrlElement() {  
4590                if (myUrl == null) {
4591                        myUrl = new StringDt();
4592                }
4593                return myUrl;
4594        }
4595
4596        
4597        /**
4598         * Gets the value(s) for <b>url</b> ().
4599         * creating it if it does
4600         * not exist. Will not return <code>null</code>.
4601         *
4602     * <p>
4603     * <b>Definition:</b>
4604     * Complete request URL.
4605     * </p> 
4606         */
4607        public String getUrl() {  
4608                return getUrlElement().getValue();
4609        }
4610
4611        /**
4612         * Sets the value(s) for <b>url</b> ()
4613         *
4614     * <p>
4615     * <b>Definition:</b>
4616     * Complete request URL.
4617     * </p> 
4618         */
4619        public SetupActionOperation setUrl(StringDt theValue) {
4620                myUrl = theValue;
4621                return this;
4622        }
4623        
4624        
4625
4626        /**
4627         * Sets the value for <b>url</b> ()
4628         *
4629     * <p>
4630     * <b>Definition:</b>
4631     * Complete request URL.
4632     * </p> 
4633         */
4634        public SetupActionOperation setUrl( String theString) {
4635                myUrl = new StringDt(theString); 
4636                return this; 
4637        }
4638
4639 
4640
4641
4642        }
4643
4644        /**
4645         * Block class for child element: <b>TestScript.setup.action.operation.requestHeader</b> ()
4646         *
4647     * <p>
4648     * <b>Definition:</b>
4649     * Header elements would be used to set HTTP headers.
4650     * </p> 
4651         */
4652        @Block()        
4653        public static class SetupActionOperationRequestHeader 
4654            extends  BaseIdentifiableElement        implements IResourceBlock {
4655        
4656        @Child(name="field", type=StringDt.class, order=0, min=1, max=1, summary=false, modifier=false) 
4657        @Description(
4658                shortDefinition="",
4659                formalDefinition="The HTTP header field e.g. \"Accept\""
4660        )
4661        private StringDt myField;
4662        
4663        @Child(name="value", type=StringDt.class, order=1, min=1, max=1, summary=false, modifier=false) 
4664        @Description(
4665                shortDefinition="",
4666                formalDefinition="The value of the header e.g. \"application/xml\""
4667        )
4668        private StringDt myValue;
4669        
4670
4671        @Override
4672        public boolean isEmpty() {
4673                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myField,  myValue);
4674        }
4675        
4676        @Override
4677        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
4678                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myField, myValue);
4679        }
4680
4681        /**
4682         * Gets the value(s) for <b>field</b> ().
4683         * creating it if it does
4684         * not exist. Will not return <code>null</code>.
4685         *
4686     * <p>
4687     * <b>Definition:</b>
4688     * The HTTP header field e.g. \&quot;Accept\&quot;
4689     * </p> 
4690         */
4691        public StringDt getFieldElement() {  
4692                if (myField == null) {
4693                        myField = new StringDt();
4694                }
4695                return myField;
4696        }
4697
4698        
4699        /**
4700         * Gets the value(s) for <b>field</b> ().
4701         * creating it if it does
4702         * not exist. Will not return <code>null</code>.
4703         *
4704     * <p>
4705     * <b>Definition:</b>
4706     * The HTTP header field e.g. \&quot;Accept\&quot;
4707     * </p> 
4708         */
4709        public String getField() {  
4710                return getFieldElement().getValue();
4711        }
4712
4713        /**
4714         * Sets the value(s) for <b>field</b> ()
4715         *
4716     * <p>
4717     * <b>Definition:</b>
4718     * The HTTP header field e.g. \&quot;Accept\&quot;
4719     * </p> 
4720         */
4721        public SetupActionOperationRequestHeader setField(StringDt theValue) {
4722                myField = theValue;
4723                return this;
4724        }
4725        
4726        
4727
4728        /**
4729         * Sets the value for <b>field</b> ()
4730         *
4731     * <p>
4732     * <b>Definition:</b>
4733     * The HTTP header field e.g. \&quot;Accept\&quot;
4734     * </p> 
4735         */
4736        public SetupActionOperationRequestHeader setField( String theString) {
4737                myField = new StringDt(theString); 
4738                return this; 
4739        }
4740
4741 
4742        /**
4743         * Gets the value(s) for <b>value</b> ().
4744         * creating it if it does
4745         * not exist. Will not return <code>null</code>.
4746         *
4747     * <p>
4748     * <b>Definition:</b>
4749     * The value of the header e.g. \&quot;application/xml\&quot;
4750     * </p> 
4751         */
4752        public StringDt getValueElement() {  
4753                if (myValue == null) {
4754                        myValue = new StringDt();
4755                }
4756                return myValue;
4757        }
4758
4759        
4760        /**
4761         * Gets the value(s) for <b>value</b> ().
4762         * creating it if it does
4763         * not exist. Will not return <code>null</code>.
4764         *
4765     * <p>
4766     * <b>Definition:</b>
4767     * The value of the header e.g. \&quot;application/xml\&quot;
4768     * </p> 
4769         */
4770        public String getValue() {  
4771                return getValueElement().getValue();
4772        }
4773
4774        /**
4775         * Sets the value(s) for <b>value</b> ()
4776         *
4777     * <p>
4778     * <b>Definition:</b>
4779     * The value of the header e.g. \&quot;application/xml\&quot;
4780     * </p> 
4781         */
4782        public SetupActionOperationRequestHeader setValue(StringDt theValue) {
4783                myValue = theValue;
4784                return this;
4785        }
4786        
4787        
4788
4789        /**
4790         * Sets the value for <b>value</b> ()
4791         *
4792     * <p>
4793     * <b>Definition:</b>
4794     * The value of the header e.g. \&quot;application/xml\&quot;
4795     * </p> 
4796         */
4797        public SetupActionOperationRequestHeader setValue( String theString) {
4798                myValue = new StringDt(theString); 
4799                return this; 
4800        }
4801
4802 
4803
4804
4805        }
4806
4807
4808
4809        /**
4810         * Block class for child element: <b>TestScript.setup.action.assert</b> ()
4811         *
4812     * <p>
4813     * <b>Definition:</b>
4814     * Evaluates the results of previous operations to determine if the server under test behaves appropriately.
4815     * </p> 
4816         */
4817        @Block()        
4818        public static class SetupActionAssert 
4819            extends  BaseIdentifiableElement        implements IResourceBlock {
4820        
4821        @Child(name="label", type=StringDt.class, order=0, min=0, max=1, summary=false, modifier=false) 
4822        @Description(
4823                shortDefinition="",
4824                formalDefinition="The label would be used for tracking/logging purposes by test engines."
4825        )
4826        private StringDt myLabel;
4827        
4828        @Child(name="description", type=StringDt.class, order=1, min=0, max=1, summary=false, modifier=false)   
4829        @Description(
4830                shortDefinition="",
4831                formalDefinition="The description would be used by test engines for tracking and reporting purposes."
4832        )
4833        private StringDt myDescription;
4834        
4835        @Child(name="direction", type=CodeDt.class, order=2, min=0, max=1, summary=false, modifier=false)       
4836        @Description(
4837                shortDefinition="",
4838                formalDefinition="The direction to use for the assertion."
4839        )
4840        private BoundCodeDt<AssertionDirectionTypeEnum> myDirection;
4841        
4842        @Child(name="compareToSourceId", type=StringDt.class, order=3, min=0, max=1, summary=false, modifier=false)     
4843        @Description(
4844                shortDefinition="",
4845                formalDefinition="Id of fixture used to compare the \"sourceId/path\" evaluations to."
4846        )
4847        private StringDt myCompareToSourceId;
4848        
4849        @Child(name="compareToSourcePath", type=StringDt.class, order=4, min=0, max=1, summary=false, modifier=false)   
4850        @Description(
4851                shortDefinition="",
4852                formalDefinition="XPath or JSONPath expression against fixture used to compare the \"sourceId/path\" evaluations to."
4853        )
4854        private StringDt myCompareToSourcePath;
4855        
4856        @Child(name="contentType", type=CodeDt.class, order=5, min=0, max=1, summary=false, modifier=false)     
4857        @Description(
4858                shortDefinition="",
4859                formalDefinition="The content-type or mime-type to use for RESTful operation in the 'Content-Type' header."
4860        )
4861        private BoundCodeDt<ContentTypeEnum> myContentType;
4862        
4863        @Child(name="headerField", type=StringDt.class, order=6, min=0, max=1, summary=false, modifier=false)   
4864        @Description(
4865                shortDefinition="",
4866                formalDefinition="The HTTP header field name e.g. 'Location'"
4867        )
4868        private StringDt myHeaderField;
4869        
4870        @Child(name="minimumId", type=StringDt.class, order=7, min=0, max=1, summary=false, modifier=false)     
4871        @Description(
4872                shortDefinition="",
4873                formalDefinition="The ID of a fixture.  Asserts that the response contains at a minimumId the fixture specified by minimumId."
4874        )
4875        private StringDt myMinimumId;
4876        
4877        @Child(name="navigationLinks", type=BooleanDt.class, order=8, min=0, max=1, summary=false, modifier=false)      
4878        @Description(
4879                shortDefinition="",
4880                formalDefinition="Whether or not the test execution performs validation on the bundle navigation links"
4881        )
4882        private BooleanDt myNavigationLinks;
4883        
4884        @Child(name="operator", type=CodeDt.class, order=9, min=0, max=1, summary=false, modifier=false)        
4885        @Description(
4886                shortDefinition="",
4887                formalDefinition="The operator type"
4888        )
4889        private BoundCodeDt<AssertionOperatorTypeEnum> myOperator;
4890        
4891        @Child(name="path", type=StringDt.class, order=10, min=0, max=1, summary=false, modifier=false) 
4892        @Description(
4893                shortDefinition="",
4894                formalDefinition="The XPath or JSONPath expression to be evaluated against the fixture representing the response received from server."
4895        )
4896        private StringDt myPath;
4897        
4898        @Child(name="resource", type=CodeDt.class, order=11, min=0, max=1, summary=false, modifier=false)       
4899        @Description(
4900                shortDefinition="",
4901                formalDefinition="The type of the resource.  See http://hl7-fhir.github.io/resourcelist.html."
4902        )
4903        private CodeDt myResource;
4904        
4905        @Child(name="response", type=CodeDt.class, order=12, min=0, max=1, summary=false, modifier=false)       
4906        @Description(
4907                shortDefinition="",
4908                formalDefinition="okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable"
4909        )
4910        private BoundCodeDt<AssertionResponseTypesEnum> myResponse;
4911        
4912        @Child(name="responseCode", type=StringDt.class, order=13, min=0, max=1, summary=false, modifier=false) 
4913        @Description(
4914                shortDefinition="",
4915                formalDefinition="The value of the HTTP response code to be tested"
4916        )
4917        private StringDt myResponseCode;
4918        
4919        @Child(name="sourceId", type=IdDt.class, order=14, min=0, max=1, summary=false, modifier=false) 
4920        @Description(
4921                shortDefinition="",
4922                formalDefinition="Fixture to evaluate the XPath/JSONPath expression or the headerField  against."
4923        )
4924        private IdDt mySourceId;
4925        
4926        @Child(name="validateProfileId", type=IdDt.class, order=15, min=0, max=1, summary=false, modifier=false)        
4927        @Description(
4928                shortDefinition="",
4929                formalDefinition="The ID of the Profile to validate against."
4930        )
4931        private IdDt myValidateProfileId;
4932        
4933        @Child(name="value", type=StringDt.class, order=16, min=0, max=1, summary=false, modifier=false)        
4934        @Description(
4935                shortDefinition="",
4936                formalDefinition="The value to compare to"
4937        )
4938        private StringDt myValue;
4939        
4940        @Child(name="warningOnly", type=BooleanDt.class, order=17, min=0, max=1, summary=false, modifier=false) 
4941        @Description(
4942                shortDefinition="",
4943                formalDefinition="Whether or not the test execution will produce a warning only on error for this assert"
4944        )
4945        private BooleanDt myWarningOnly;
4946        
4947
4948        @Override
4949        public boolean isEmpty() {
4950                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myLabel,  myDescription,  myDirection,  myCompareToSourceId,  myCompareToSourcePath,  myContentType,  myHeaderField,  myMinimumId,  myNavigationLinks,  myOperator,  myPath,  myResource,  myResponse,  myResponseCode,  mySourceId,  myValidateProfileId,  myValue,  myWarningOnly);
4951        }
4952        
4953        @Override
4954        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
4955                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myLabel, myDescription, myDirection, myCompareToSourceId, myCompareToSourcePath, myContentType, myHeaderField, myMinimumId, myNavigationLinks, myOperator, myPath, myResource, myResponse, myResponseCode, mySourceId, myValidateProfileId, myValue, myWarningOnly);
4956        }
4957
4958        /**
4959         * Gets the value(s) for <b>label</b> ().
4960         * creating it if it does
4961         * not exist. Will not return <code>null</code>.
4962         *
4963     * <p>
4964     * <b>Definition:</b>
4965     * The label would be used for tracking/logging purposes by test engines.
4966     * </p> 
4967         */
4968        public StringDt getLabelElement() {  
4969                if (myLabel == null) {
4970                        myLabel = new StringDt();
4971                }
4972                return myLabel;
4973        }
4974
4975        
4976        /**
4977         * Gets the value(s) for <b>label</b> ().
4978         * creating it if it does
4979         * not exist. Will not return <code>null</code>.
4980         *
4981     * <p>
4982     * <b>Definition:</b>
4983     * The label would be used for tracking/logging purposes by test engines.
4984     * </p> 
4985         */
4986        public String getLabel() {  
4987                return getLabelElement().getValue();
4988        }
4989
4990        /**
4991         * Sets the value(s) for <b>label</b> ()
4992         *
4993     * <p>
4994     * <b>Definition:</b>
4995     * The label would be used for tracking/logging purposes by test engines.
4996     * </p> 
4997         */
4998        public SetupActionAssert setLabel(StringDt theValue) {
4999                myLabel = theValue;
5000                return this;
5001        }
5002        
5003        
5004
5005        /**
5006         * Sets the value for <b>label</b> ()
5007         *
5008     * <p>
5009     * <b>Definition:</b>
5010     * The label would be used for tracking/logging purposes by test engines.
5011     * </p> 
5012         */
5013        public SetupActionAssert setLabel( String theString) {
5014                myLabel = new StringDt(theString); 
5015                return this; 
5016        }
5017
5018 
5019        /**
5020         * Gets the value(s) for <b>description</b> ().
5021         * creating it if it does
5022         * not exist. Will not return <code>null</code>.
5023         *
5024     * <p>
5025     * <b>Definition:</b>
5026     * The description would be used by test engines for tracking and reporting purposes.
5027     * </p> 
5028         */
5029        public StringDt getDescriptionElement() {  
5030                if (myDescription == null) {
5031                        myDescription = new StringDt();
5032                }
5033                return myDescription;
5034        }
5035
5036        
5037        /**
5038         * Gets the value(s) for <b>description</b> ().
5039         * creating it if it does
5040         * not exist. Will not return <code>null</code>.
5041         *
5042     * <p>
5043     * <b>Definition:</b>
5044     * The description would be used by test engines for tracking and reporting purposes.
5045     * </p> 
5046         */
5047        public String getDescription() {  
5048                return getDescriptionElement().getValue();
5049        }
5050
5051        /**
5052         * Sets the value(s) for <b>description</b> ()
5053         *
5054     * <p>
5055     * <b>Definition:</b>
5056     * The description would be used by test engines for tracking and reporting purposes.
5057     * </p> 
5058         */
5059        public SetupActionAssert setDescription(StringDt theValue) {
5060                myDescription = theValue;
5061                return this;
5062        }
5063        
5064        
5065
5066        /**
5067         * Sets the value for <b>description</b> ()
5068         *
5069     * <p>
5070     * <b>Definition:</b>
5071     * The description would be used by test engines for tracking and reporting purposes.
5072     * </p> 
5073         */
5074        public SetupActionAssert setDescription( String theString) {
5075                myDescription = new StringDt(theString); 
5076                return this; 
5077        }
5078
5079 
5080        /**
5081         * Gets the value(s) for <b>direction</b> ().
5082         * creating it if it does
5083         * not exist. Will not return <code>null</code>.
5084         *
5085     * <p>
5086     * <b>Definition:</b>
5087     * The direction to use for the assertion.
5088     * </p> 
5089         */
5090        public BoundCodeDt<AssertionDirectionTypeEnum> getDirectionElement() {  
5091                if (myDirection == null) {
5092                        myDirection = new BoundCodeDt<AssertionDirectionTypeEnum>(AssertionDirectionTypeEnum.VALUESET_BINDER);
5093                }
5094                return myDirection;
5095        }
5096
5097        
5098        /**
5099         * Gets the value(s) for <b>direction</b> ().
5100         * creating it if it does
5101         * not exist. Will not return <code>null</code>.
5102         *
5103     * <p>
5104     * <b>Definition:</b>
5105     * The direction to use for the assertion.
5106     * </p> 
5107         */
5108        public String getDirection() {  
5109                return getDirectionElement().getValue();
5110        }
5111
5112        /**
5113         * Sets the value(s) for <b>direction</b> ()
5114         *
5115     * <p>
5116     * <b>Definition:</b>
5117     * The direction to use for the assertion.
5118     * </p> 
5119         */
5120        public SetupActionAssert setDirection(BoundCodeDt<AssertionDirectionTypeEnum> theValue) {
5121                myDirection = theValue;
5122                return this;
5123        }
5124        
5125        
5126
5127        /**
5128         * Sets the value(s) for <b>direction</b> ()
5129         *
5130     * <p>
5131     * <b>Definition:</b>
5132     * The direction to use for the assertion.
5133     * </p> 
5134         */
5135        public SetupActionAssert setDirection(AssertionDirectionTypeEnum theValue) {
5136                setDirection(new BoundCodeDt<AssertionDirectionTypeEnum>(AssertionDirectionTypeEnum.VALUESET_BINDER, theValue));
5137                
5138/*
5139                getDirectionElement().setValueAsEnum(theValue);
5140*/
5141                return this;
5142        }
5143
5144  
5145        /**
5146         * Gets the value(s) for <b>compareToSourceId</b> ().
5147         * creating it if it does
5148         * not exist. Will not return <code>null</code>.
5149         *
5150     * <p>
5151     * <b>Definition:</b>
5152     * Id of fixture used to compare the \&quot;sourceId/path\&quot; evaluations to.
5153     * </p> 
5154         */
5155        public StringDt getCompareToSourceIdElement() {  
5156                if (myCompareToSourceId == null) {
5157                        myCompareToSourceId = new StringDt();
5158                }
5159                return myCompareToSourceId;
5160        }
5161
5162        
5163        /**
5164         * Gets the value(s) for <b>compareToSourceId</b> ().
5165         * creating it if it does
5166         * not exist. Will not return <code>null</code>.
5167         *
5168     * <p>
5169     * <b>Definition:</b>
5170     * Id of fixture used to compare the \&quot;sourceId/path\&quot; evaluations to.
5171     * </p> 
5172         */
5173        public String getCompareToSourceId() {  
5174                return getCompareToSourceIdElement().getValue();
5175        }
5176
5177        /**
5178         * Sets the value(s) for <b>compareToSourceId</b> ()
5179         *
5180     * <p>
5181     * <b>Definition:</b>
5182     * Id of fixture used to compare the \&quot;sourceId/path\&quot; evaluations to.
5183     * </p> 
5184         */
5185        public SetupActionAssert setCompareToSourceId(StringDt theValue) {
5186                myCompareToSourceId = theValue;
5187                return this;
5188        }
5189        
5190        
5191
5192        /**
5193         * Sets the value for <b>compareToSourceId</b> ()
5194         *
5195     * <p>
5196     * <b>Definition:</b>
5197     * Id of fixture used to compare the \&quot;sourceId/path\&quot; evaluations to.
5198     * </p> 
5199         */
5200        public SetupActionAssert setCompareToSourceId( String theString) {
5201                myCompareToSourceId = new StringDt(theString); 
5202                return this; 
5203        }
5204
5205 
5206        /**
5207         * Gets the value(s) for <b>compareToSourcePath</b> ().
5208         * creating it if it does
5209         * not exist. Will not return <code>null</code>.
5210         *
5211     * <p>
5212     * <b>Definition:</b>
5213     * XPath or JSONPath expression against fixture used to compare the \&quot;sourceId/path\&quot; evaluations to.
5214     * </p> 
5215         */
5216        public StringDt getCompareToSourcePathElement() {  
5217                if (myCompareToSourcePath == null) {
5218                        myCompareToSourcePath = new StringDt();
5219                }
5220                return myCompareToSourcePath;
5221        }
5222
5223        
5224        /**
5225         * Gets the value(s) for <b>compareToSourcePath</b> ().
5226         * creating it if it does
5227         * not exist. Will not return <code>null</code>.
5228         *
5229     * <p>
5230     * <b>Definition:</b>
5231     * XPath or JSONPath expression against fixture used to compare the \&quot;sourceId/path\&quot; evaluations to.
5232     * </p> 
5233         */
5234        public String getCompareToSourcePath() {  
5235                return getCompareToSourcePathElement().getValue();
5236        }
5237
5238        /**
5239         * Sets the value(s) for <b>compareToSourcePath</b> ()
5240         *
5241     * <p>
5242     * <b>Definition:</b>
5243     * XPath or JSONPath expression against fixture used to compare the \&quot;sourceId/path\&quot; evaluations to.
5244     * </p> 
5245         */
5246        public SetupActionAssert setCompareToSourcePath(StringDt theValue) {
5247                myCompareToSourcePath = theValue;
5248                return this;
5249        }
5250        
5251        
5252
5253        /**
5254         * Sets the value for <b>compareToSourcePath</b> ()
5255         *
5256     * <p>
5257     * <b>Definition:</b>
5258     * XPath or JSONPath expression against fixture used to compare the \&quot;sourceId/path\&quot; evaluations to.
5259     * </p> 
5260         */
5261        public SetupActionAssert setCompareToSourcePath( String theString) {
5262                myCompareToSourcePath = new StringDt(theString); 
5263                return this; 
5264        }
5265
5266 
5267        /**
5268         * Gets the value(s) for <b>contentType</b> ().
5269         * creating it if it does
5270         * not exist. Will not return <code>null</code>.
5271         *
5272     * <p>
5273     * <b>Definition:</b>
5274     * The content-type or mime-type to use for RESTful operation in the 'Content-Type' header.
5275     * </p> 
5276         */
5277        public BoundCodeDt<ContentTypeEnum> getContentTypeElement() {  
5278                if (myContentType == null) {
5279                        myContentType = new BoundCodeDt<ContentTypeEnum>(ContentTypeEnum.VALUESET_BINDER);
5280                }
5281                return myContentType;
5282        }
5283
5284        
5285        /**
5286         * Gets the value(s) for <b>contentType</b> ().
5287         * creating it if it does
5288         * not exist. Will not return <code>null</code>.
5289         *
5290     * <p>
5291     * <b>Definition:</b>
5292     * The content-type or mime-type to use for RESTful operation in the 'Content-Type' header.
5293     * </p> 
5294         */
5295        public String getContentType() {  
5296                return getContentTypeElement().getValue();
5297        }
5298
5299        /**
5300         * Sets the value(s) for <b>contentType</b> ()
5301         *
5302     * <p>
5303     * <b>Definition:</b>
5304     * The content-type or mime-type to use for RESTful operation in the 'Content-Type' header.
5305     * </p> 
5306         */
5307        public SetupActionAssert setContentType(BoundCodeDt<ContentTypeEnum> theValue) {
5308                myContentType = theValue;
5309                return this;
5310        }
5311        
5312        
5313
5314        /**
5315         * Sets the value(s) for <b>contentType</b> ()
5316         *
5317     * <p>
5318     * <b>Definition:</b>
5319     * The content-type or mime-type to use for RESTful operation in the 'Content-Type' header.
5320     * </p> 
5321         */
5322        public SetupActionAssert setContentType(ContentTypeEnum theValue) {
5323                setContentType(new BoundCodeDt<ContentTypeEnum>(ContentTypeEnum.VALUESET_BINDER, theValue));
5324                
5325/*
5326                getContentTypeElement().setValueAsEnum(theValue);
5327*/
5328                return this;
5329        }
5330
5331  
5332        /**
5333         * Gets the value(s) for <b>headerField</b> ().
5334         * creating it if it does
5335         * not exist. Will not return <code>null</code>.
5336         *
5337     * <p>
5338     * <b>Definition:</b>
5339     * The HTTP header field name e.g. 'Location'
5340     * </p> 
5341         */
5342        public StringDt getHeaderFieldElement() {  
5343                if (myHeaderField == null) {
5344                        myHeaderField = new StringDt();
5345                }
5346                return myHeaderField;
5347        }
5348
5349        
5350        /**
5351         * Gets the value(s) for <b>headerField</b> ().
5352         * creating it if it does
5353         * not exist. Will not return <code>null</code>.
5354         *
5355     * <p>
5356     * <b>Definition:</b>
5357     * The HTTP header field name e.g. 'Location'
5358     * </p> 
5359         */
5360        public String getHeaderField() {  
5361                return getHeaderFieldElement().getValue();
5362        }
5363
5364        /**
5365         * Sets the value(s) for <b>headerField</b> ()
5366         *
5367     * <p>
5368     * <b>Definition:</b>
5369     * The HTTP header field name e.g. 'Location'
5370     * </p> 
5371         */
5372        public SetupActionAssert setHeaderField(StringDt theValue) {
5373                myHeaderField = theValue;
5374                return this;
5375        }
5376        
5377        
5378
5379        /**
5380         * Sets the value for <b>headerField</b> ()
5381         *
5382     * <p>
5383     * <b>Definition:</b>
5384     * The HTTP header field name e.g. 'Location'
5385     * </p> 
5386         */
5387        public SetupActionAssert setHeaderField( String theString) {
5388                myHeaderField = new StringDt(theString); 
5389                return this; 
5390        }
5391
5392 
5393        /**
5394         * Gets the value(s) for <b>minimumId</b> ().
5395         * creating it if it does
5396         * not exist. Will not return <code>null</code>.
5397         *
5398     * <p>
5399     * <b>Definition:</b>
5400     * The ID of a fixture.  Asserts that the response contains at a minimumId the fixture specified by minimumId.
5401     * </p> 
5402         */
5403        public StringDt getMinimumIdElement() {  
5404                if (myMinimumId == null) {
5405                        myMinimumId = new StringDt();
5406                }
5407                return myMinimumId;
5408        }
5409
5410        
5411        /**
5412         * Gets the value(s) for <b>minimumId</b> ().
5413         * creating it if it does
5414         * not exist. Will not return <code>null</code>.
5415         *
5416     * <p>
5417     * <b>Definition:</b>
5418     * The ID of a fixture.  Asserts that the response contains at a minimumId the fixture specified by minimumId.
5419     * </p> 
5420         */
5421        public String getMinimumId() {  
5422                return getMinimumIdElement().getValue();
5423        }
5424
5425        /**
5426         * Sets the value(s) for <b>minimumId</b> ()
5427         *
5428     * <p>
5429     * <b>Definition:</b>
5430     * The ID of a fixture.  Asserts that the response contains at a minimumId the fixture specified by minimumId.
5431     * </p> 
5432         */
5433        public SetupActionAssert setMinimumId(StringDt theValue) {
5434                myMinimumId = theValue;
5435                return this;
5436        }
5437        
5438        
5439
5440        /**
5441         * Sets the value for <b>minimumId</b> ()
5442         *
5443     * <p>
5444     * <b>Definition:</b>
5445     * The ID of a fixture.  Asserts that the response contains at a minimumId the fixture specified by minimumId.
5446     * </p> 
5447         */
5448        public SetupActionAssert setMinimumId( String theString) {
5449                myMinimumId = new StringDt(theString); 
5450                return this; 
5451        }
5452
5453 
5454        /**
5455         * Gets the value(s) for <b>navigationLinks</b> ().
5456         * creating it if it does
5457         * not exist. Will not return <code>null</code>.
5458         *
5459     * <p>
5460     * <b>Definition:</b>
5461     * Whether or not the test execution performs validation on the bundle navigation links
5462     * </p> 
5463         */
5464        public BooleanDt getNavigationLinksElement() {  
5465                if (myNavigationLinks == null) {
5466                        myNavigationLinks = new BooleanDt();
5467                }
5468                return myNavigationLinks;
5469        }
5470
5471        
5472        /**
5473         * Gets the value(s) for <b>navigationLinks</b> ().
5474         * creating it if it does
5475         * not exist. Will not return <code>null</code>.
5476         *
5477     * <p>
5478     * <b>Definition:</b>
5479     * Whether or not the test execution performs validation on the bundle navigation links
5480     * </p> 
5481         */
5482        public Boolean getNavigationLinks() {  
5483                return getNavigationLinksElement().getValue();
5484        }
5485
5486        /**
5487         * Sets the value(s) for <b>navigationLinks</b> ()
5488         *
5489     * <p>
5490     * <b>Definition:</b>
5491     * Whether or not the test execution performs validation on the bundle navigation links
5492     * </p> 
5493         */
5494        public SetupActionAssert setNavigationLinks(BooleanDt theValue) {
5495                myNavigationLinks = theValue;
5496                return this;
5497        }
5498        
5499        
5500
5501        /**
5502         * Sets the value for <b>navigationLinks</b> ()
5503         *
5504     * <p>
5505     * <b>Definition:</b>
5506     * Whether or not the test execution performs validation on the bundle navigation links
5507     * </p> 
5508         */
5509        public SetupActionAssert setNavigationLinks( boolean theBoolean) {
5510                myNavigationLinks = new BooleanDt(theBoolean); 
5511                return this; 
5512        }
5513
5514 
5515        /**
5516         * Gets the value(s) for <b>operator</b> ().
5517         * creating it if it does
5518         * not exist. Will not return <code>null</code>.
5519         *
5520     * <p>
5521     * <b>Definition:</b>
5522     * The operator type
5523     * </p> 
5524         */
5525        public BoundCodeDt<AssertionOperatorTypeEnum> getOperatorElement() {  
5526                if (myOperator == null) {
5527                        myOperator = new BoundCodeDt<AssertionOperatorTypeEnum>(AssertionOperatorTypeEnum.VALUESET_BINDER);
5528                }
5529                return myOperator;
5530        }
5531
5532        
5533        /**
5534         * Gets the value(s) for <b>operator</b> ().
5535         * creating it if it does
5536         * not exist. Will not return <code>null</code>.
5537         *
5538     * <p>
5539     * <b>Definition:</b>
5540     * The operator type
5541     * </p> 
5542         */
5543        public String getOperator() {  
5544                return getOperatorElement().getValue();
5545        }
5546
5547        /**
5548         * Sets the value(s) for <b>operator</b> ()
5549         *
5550     * <p>
5551     * <b>Definition:</b>
5552     * The operator type
5553     * </p> 
5554         */
5555        public SetupActionAssert setOperator(BoundCodeDt<AssertionOperatorTypeEnum> theValue) {
5556                myOperator = theValue;
5557                return this;
5558        }
5559        
5560        
5561
5562        /**
5563         * Sets the value(s) for <b>operator</b> ()
5564         *
5565     * <p>
5566     * <b>Definition:</b>
5567     * The operator type
5568     * </p> 
5569         */
5570        public SetupActionAssert setOperator(AssertionOperatorTypeEnum theValue) {
5571                setOperator(new BoundCodeDt<AssertionOperatorTypeEnum>(AssertionOperatorTypeEnum.VALUESET_BINDER, theValue));
5572                
5573/*
5574                getOperatorElement().setValueAsEnum(theValue);
5575*/
5576                return this;
5577        }
5578
5579  
5580        /**
5581         * Gets the value(s) for <b>path</b> ().
5582         * creating it if it does
5583         * not exist. Will not return <code>null</code>.
5584         *
5585     * <p>
5586     * <b>Definition:</b>
5587     * The XPath or JSONPath expression to be evaluated against the fixture representing the response received from server.
5588     * </p> 
5589         */
5590        public StringDt getPathElement() {  
5591                if (myPath == null) {
5592                        myPath = new StringDt();
5593                }
5594                return myPath;
5595        }
5596
5597        
5598        /**
5599         * Gets the value(s) for <b>path</b> ().
5600         * creating it if it does
5601         * not exist. Will not return <code>null</code>.
5602         *
5603     * <p>
5604     * <b>Definition:</b>
5605     * The XPath or JSONPath expression to be evaluated against the fixture representing the response received from server.
5606     * </p> 
5607         */
5608        public String getPath() {  
5609                return getPathElement().getValue();
5610        }
5611
5612        /**
5613         * Sets the value(s) for <b>path</b> ()
5614         *
5615     * <p>
5616     * <b>Definition:</b>
5617     * The XPath or JSONPath expression to be evaluated against the fixture representing the response received from server.
5618     * </p> 
5619         */
5620        public SetupActionAssert setPath(StringDt theValue) {
5621                myPath = theValue;
5622                return this;
5623        }
5624        
5625        
5626
5627        /**
5628         * Sets the value for <b>path</b> ()
5629         *
5630     * <p>
5631     * <b>Definition:</b>
5632     * The XPath or JSONPath expression to be evaluated against the fixture representing the response received from server.
5633     * </p> 
5634         */
5635        public SetupActionAssert setPath( String theString) {
5636                myPath = new StringDt(theString); 
5637                return this; 
5638        }
5639
5640 
5641        /**
5642         * Gets the value(s) for <b>resource</b> ().
5643         * creating it if it does
5644         * not exist. Will not return <code>null</code>.
5645         *
5646     * <p>
5647     * <b>Definition:</b>
5648     * The type of the resource.  See http://hl7-fhir.github.io/resourcelist.html.
5649     * </p> 
5650         */
5651        public CodeDt getResourceElement() {  
5652                if (myResource == null) {
5653                        myResource = new CodeDt();
5654                }
5655                return myResource;
5656        }
5657
5658        
5659        /**
5660         * Gets the value(s) for <b>resource</b> ().
5661         * creating it if it does
5662         * not exist. Will not return <code>null</code>.
5663         *
5664     * <p>
5665     * <b>Definition:</b>
5666     * The type of the resource.  See http://hl7-fhir.github.io/resourcelist.html.
5667     * </p> 
5668         */
5669        public String getResource() {  
5670                return getResourceElement().getValue();
5671        }
5672
5673        /**
5674         * Sets the value(s) for <b>resource</b> ()
5675         *
5676     * <p>
5677     * <b>Definition:</b>
5678     * The type of the resource.  See http://hl7-fhir.github.io/resourcelist.html.
5679     * </p> 
5680         */
5681        public SetupActionAssert setResource(CodeDt theValue) {
5682                myResource = theValue;
5683                return this;
5684        }
5685        
5686        
5687
5688        /**
5689         * Sets the value for <b>resource</b> ()
5690         *
5691     * <p>
5692     * <b>Definition:</b>
5693     * The type of the resource.  See http://hl7-fhir.github.io/resourcelist.html.
5694     * </p> 
5695         */
5696        public SetupActionAssert setResource( String theCode) {
5697                myResource = new CodeDt(theCode); 
5698                return this; 
5699        }
5700
5701 
5702        /**
5703         * Gets the value(s) for <b>response</b> ().
5704         * creating it if it does
5705         * not exist. Will not return <code>null</code>.
5706         *
5707     * <p>
5708     * <b>Definition:</b>
5709     * okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable
5710     * </p> 
5711         */
5712        public BoundCodeDt<AssertionResponseTypesEnum> getResponseElement() {  
5713                if (myResponse == null) {
5714                        myResponse = new BoundCodeDt<AssertionResponseTypesEnum>(AssertionResponseTypesEnum.VALUESET_BINDER);
5715                }
5716                return myResponse;
5717        }
5718
5719        
5720        /**
5721         * Gets the value(s) for <b>response</b> ().
5722         * creating it if it does
5723         * not exist. Will not return <code>null</code>.
5724         *
5725     * <p>
5726     * <b>Definition:</b>
5727     * okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable
5728     * </p> 
5729         */
5730        public String getResponse() {  
5731                return getResponseElement().getValue();
5732        }
5733
5734        /**
5735         * Sets the value(s) for <b>response</b> ()
5736         *
5737     * <p>
5738     * <b>Definition:</b>
5739     * okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable
5740     * </p> 
5741         */
5742        public SetupActionAssert setResponse(BoundCodeDt<AssertionResponseTypesEnum> theValue) {
5743                myResponse = theValue;
5744                return this;
5745        }
5746        
5747        
5748
5749        /**
5750         * Sets the value(s) for <b>response</b> ()
5751         *
5752     * <p>
5753     * <b>Definition:</b>
5754     * okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable
5755     * </p> 
5756         */
5757        public SetupActionAssert setResponse(AssertionResponseTypesEnum theValue) {
5758                setResponse(new BoundCodeDt<AssertionResponseTypesEnum>(AssertionResponseTypesEnum.VALUESET_BINDER, theValue));
5759                
5760/*
5761                getResponseElement().setValueAsEnum(theValue);
5762*/
5763                return this;
5764        }
5765
5766  
5767        /**
5768         * Gets the value(s) for <b>responseCode</b> ().
5769         * creating it if it does
5770         * not exist. Will not return <code>null</code>.
5771         *
5772     * <p>
5773     * <b>Definition:</b>
5774     * The value of the HTTP response code to be tested
5775     * </p> 
5776         */
5777        public StringDt getResponseCodeElement() {  
5778                if (myResponseCode == null) {
5779                        myResponseCode = new StringDt();
5780                }
5781                return myResponseCode;
5782        }
5783
5784        
5785        /**
5786         * Gets the value(s) for <b>responseCode</b> ().
5787         * creating it if it does
5788         * not exist. Will not return <code>null</code>.
5789         *
5790     * <p>
5791     * <b>Definition:</b>
5792     * The value of the HTTP response code to be tested
5793     * </p> 
5794         */
5795        public String getResponseCode() {  
5796                return getResponseCodeElement().getValue();
5797        }
5798
5799        /**
5800         * Sets the value(s) for <b>responseCode</b> ()
5801         *
5802     * <p>
5803     * <b>Definition:</b>
5804     * The value of the HTTP response code to be tested
5805     * </p> 
5806         */
5807        public SetupActionAssert setResponseCode(StringDt theValue) {
5808                myResponseCode = theValue;
5809                return this;
5810        }
5811        
5812        
5813
5814        /**
5815         * Sets the value for <b>responseCode</b> ()
5816         *
5817     * <p>
5818     * <b>Definition:</b>
5819     * The value of the HTTP response code to be tested
5820     * </p> 
5821         */
5822        public SetupActionAssert setResponseCode( String theString) {
5823                myResponseCode = new StringDt(theString); 
5824                return this; 
5825        }
5826
5827 
5828        /**
5829         * Gets the value(s) for <b>sourceId</b> ().
5830         * creating it if it does
5831         * not exist. Will not return <code>null</code>.
5832         *
5833     * <p>
5834     * <b>Definition:</b>
5835     * Fixture to evaluate the XPath/JSONPath expression or the headerField  against.
5836     * </p> 
5837         */
5838        public IdDt getSourceIdElement() {  
5839                if (mySourceId == null) {
5840                        mySourceId = new IdDt();
5841                }
5842                return mySourceId;
5843        }
5844
5845        
5846        /**
5847         * Gets the value(s) for <b>sourceId</b> ().
5848         * creating it if it does
5849         * not exist. Will not return <code>null</code>.
5850         *
5851     * <p>
5852     * <b>Definition:</b>
5853     * Fixture to evaluate the XPath/JSONPath expression or the headerField  against.
5854     * </p> 
5855         */
5856        public String getSourceId() {  
5857                return getSourceIdElement().getValue();
5858        }
5859
5860        /**
5861         * Sets the value(s) for <b>sourceId</b> ()
5862         *
5863     * <p>
5864     * <b>Definition:</b>
5865     * Fixture to evaluate the XPath/JSONPath expression or the headerField  against.
5866     * </p> 
5867         */
5868        public SetupActionAssert setSourceId(IdDt theValue) {
5869                mySourceId = theValue;
5870                return this;
5871        }
5872        
5873        
5874
5875        /**
5876         * Sets the value for <b>sourceId</b> ()
5877         *
5878     * <p>
5879     * <b>Definition:</b>
5880     * Fixture to evaluate the XPath/JSONPath expression or the headerField  against.
5881     * </p> 
5882         */
5883        public SetupActionAssert setSourceId( String theId) {
5884                mySourceId = new IdDt(theId); 
5885                return this; 
5886        }
5887
5888 
5889        /**
5890         * Gets the value(s) for <b>validateProfileId</b> ().
5891         * creating it if it does
5892         * not exist. Will not return <code>null</code>.
5893         *
5894     * <p>
5895     * <b>Definition:</b>
5896     * The ID of the Profile to validate against.
5897     * </p> 
5898         */
5899        public IdDt getValidateProfileIdElement() {  
5900                if (myValidateProfileId == null) {
5901                        myValidateProfileId = new IdDt();
5902                }
5903                return myValidateProfileId;
5904        }
5905
5906        
5907        /**
5908         * Gets the value(s) for <b>validateProfileId</b> ().
5909         * creating it if it does
5910         * not exist. Will not return <code>null</code>.
5911         *
5912     * <p>
5913     * <b>Definition:</b>
5914     * The ID of the Profile to validate against.
5915     * </p> 
5916         */
5917        public String getValidateProfileId() {  
5918                return getValidateProfileIdElement().getValue();
5919        }
5920
5921        /**
5922         * Sets the value(s) for <b>validateProfileId</b> ()
5923         *
5924     * <p>
5925     * <b>Definition:</b>
5926     * The ID of the Profile to validate against.
5927     * </p> 
5928         */
5929        public SetupActionAssert setValidateProfileId(IdDt theValue) {
5930                myValidateProfileId = theValue;
5931                return this;
5932        }
5933        
5934        
5935
5936        /**
5937         * Sets the value for <b>validateProfileId</b> ()
5938         *
5939     * <p>
5940     * <b>Definition:</b>
5941     * The ID of the Profile to validate against.
5942     * </p> 
5943         */
5944        public SetupActionAssert setValidateProfileId( String theId) {
5945                myValidateProfileId = new IdDt(theId); 
5946                return this; 
5947        }
5948
5949 
5950        /**
5951         * Gets the value(s) for <b>value</b> ().
5952         * creating it if it does
5953         * not exist. Will not return <code>null</code>.
5954         *
5955     * <p>
5956     * <b>Definition:</b>
5957     * The value to compare to
5958     * </p> 
5959         */
5960        public StringDt getValueElement() {  
5961                if (myValue == null) {
5962                        myValue = new StringDt();
5963                }
5964                return myValue;
5965        }
5966
5967        
5968        /**
5969         * Gets the value(s) for <b>value</b> ().
5970         * creating it if it does
5971         * not exist. Will not return <code>null</code>.
5972         *
5973     * <p>
5974     * <b>Definition:</b>
5975     * The value to compare to
5976     * </p> 
5977         */
5978        public String getValue() {  
5979                return getValueElement().getValue();
5980        }
5981
5982        /**
5983         * Sets the value(s) for <b>value</b> ()
5984         *
5985     * <p>
5986     * <b>Definition:</b>
5987     * The value to compare to
5988     * </p> 
5989         */
5990        public SetupActionAssert setValue(StringDt theValue) {
5991                myValue = theValue;
5992                return this;
5993        }
5994        
5995        
5996
5997        /**
5998         * Sets the value for <b>value</b> ()
5999         *
6000     * <p>
6001     * <b>Definition:</b>
6002     * The value to compare to
6003     * </p> 
6004         */
6005        public SetupActionAssert setValue( String theString) {
6006                myValue = new StringDt(theString); 
6007                return this; 
6008        }
6009
6010 
6011        /**
6012         * Gets the value(s) for <b>warningOnly</b> ().
6013         * creating it if it does
6014         * not exist. Will not return <code>null</code>.
6015         *
6016     * <p>
6017     * <b>Definition:</b>
6018     * Whether or not the test execution will produce a warning only on error for this assert
6019     * </p> 
6020         */
6021        public BooleanDt getWarningOnlyElement() {  
6022                if (myWarningOnly == null) {
6023                        myWarningOnly = new BooleanDt();
6024                }
6025                return myWarningOnly;
6026        }
6027
6028        
6029        /**
6030         * Gets the value(s) for <b>warningOnly</b> ().
6031         * creating it if it does
6032         * not exist. Will not return <code>null</code>.
6033         *
6034     * <p>
6035     * <b>Definition:</b>
6036     * Whether or not the test execution will produce a warning only on error for this assert
6037     * </p> 
6038         */
6039        public Boolean getWarningOnly() {  
6040                return getWarningOnlyElement().getValue();
6041        }
6042
6043        /**
6044         * Sets the value(s) for <b>warningOnly</b> ()
6045         *
6046     * <p>
6047     * <b>Definition:</b>
6048     * Whether or not the test execution will produce a warning only on error for this assert
6049     * </p> 
6050         */
6051        public SetupActionAssert setWarningOnly(BooleanDt theValue) {
6052                myWarningOnly = theValue;
6053                return this;
6054        }
6055        
6056        
6057
6058        /**
6059         * Sets the value for <b>warningOnly</b> ()
6060         *
6061     * <p>
6062     * <b>Definition:</b>
6063     * Whether or not the test execution will produce a warning only on error for this assert
6064     * </p> 
6065         */
6066        public SetupActionAssert setWarningOnly( boolean theBoolean) {
6067                myWarningOnly = new BooleanDt(theBoolean); 
6068                return this; 
6069        }
6070
6071 
6072
6073
6074        }
6075
6076
6077
6078
6079        /**
6080         * Block class for child element: <b>TestScript.test</b> ()
6081         *
6082     * <p>
6083     * <b>Definition:</b>
6084     * A test in this script.
6085     * </p> 
6086         */
6087        @Block()        
6088        public static class Test 
6089            extends  BaseIdentifiableElement        implements IResourceBlock {
6090        
6091        @Child(name="name", type=StringDt.class, order=0, min=0, max=1, summary=false, modifier=false)  
6092        @Description(
6093                shortDefinition="",
6094                formalDefinition="The name of this test used for tracking/logging purposes by test engines."
6095        )
6096        private StringDt myName;
6097        
6098        @Child(name="description", type=StringDt.class, order=1, min=0, max=1, summary=false, modifier=false)   
6099        @Description(
6100                shortDefinition="",
6101                formalDefinition="A short description of the test used by test engines for tracking and reporting purposes."
6102        )
6103        private StringDt myDescription;
6104        
6105        @Child(name="metadata", type=Metadata.class, order=2, min=0, max=1, summary=false, modifier=false)      
6106        @Description(
6107                shortDefinition="",
6108                formalDefinition="Capabilities that must exist and are assumed to function correctly on the FHIR server being tested."
6109        )
6110        private Metadata myMetadata;
6111        
6112        @Child(name="action", order=3, min=1, max=Child.MAX_UNLIMITED, summary=false, modifier=false)   
6113        @Description(
6114                shortDefinition="",
6115                formalDefinition="Action would contain either an operation or an assertion."
6116        )
6117        private java.util.List<TestAction> myAction;
6118        
6119
6120        @Override
6121        public boolean isEmpty() {
6122                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myName,  myDescription,  myMetadata,  myAction);
6123        }
6124        
6125        @Override
6126        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
6127                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myName, myDescription, myMetadata, myAction);
6128        }
6129
6130        /**
6131         * Gets the value(s) for <b>name</b> ().
6132         * creating it if it does
6133         * not exist. Will not return <code>null</code>.
6134         *
6135     * <p>
6136     * <b>Definition:</b>
6137     * The name of this test used for tracking/logging purposes by test engines.
6138     * </p> 
6139         */
6140        public StringDt getNameElement() {  
6141                if (myName == null) {
6142                        myName = new StringDt();
6143                }
6144                return myName;
6145        }
6146
6147        
6148        /**
6149         * Gets the value(s) for <b>name</b> ().
6150         * creating it if it does
6151         * not exist. Will not return <code>null</code>.
6152         *
6153     * <p>
6154     * <b>Definition:</b>
6155     * The name of this test used for tracking/logging purposes by test engines.
6156     * </p> 
6157         */
6158        public String getName() {  
6159                return getNameElement().getValue();
6160        }
6161
6162        /**
6163         * Sets the value(s) for <b>name</b> ()
6164         *
6165     * <p>
6166     * <b>Definition:</b>
6167     * The name of this test used for tracking/logging purposes by test engines.
6168     * </p> 
6169         */
6170        public Test setName(StringDt theValue) {
6171                myName = theValue;
6172                return this;
6173        }
6174        
6175        
6176
6177        /**
6178         * Sets the value for <b>name</b> ()
6179         *
6180     * <p>
6181     * <b>Definition:</b>
6182     * The name of this test used for tracking/logging purposes by test engines.
6183     * </p> 
6184         */
6185        public Test setName( String theString) {
6186                myName = new StringDt(theString); 
6187                return this; 
6188        }
6189
6190 
6191        /**
6192         * Gets the value(s) for <b>description</b> ().
6193         * creating it if it does
6194         * not exist. Will not return <code>null</code>.
6195         *
6196     * <p>
6197     * <b>Definition:</b>
6198     * A short description of the test used by test engines for tracking and reporting purposes.
6199     * </p> 
6200         */
6201        public StringDt getDescriptionElement() {  
6202                if (myDescription == null) {
6203                        myDescription = new StringDt();
6204                }
6205                return myDescription;
6206        }
6207
6208        
6209        /**
6210         * Gets the value(s) for <b>description</b> ().
6211         * creating it if it does
6212         * not exist. Will not return <code>null</code>.
6213         *
6214     * <p>
6215     * <b>Definition:</b>
6216     * A short description of the test used by test engines for tracking and reporting purposes.
6217     * </p> 
6218         */
6219        public String getDescription() {  
6220                return getDescriptionElement().getValue();
6221        }
6222
6223        /**
6224         * Sets the value(s) for <b>description</b> ()
6225         *
6226     * <p>
6227     * <b>Definition:</b>
6228     * A short description of the test used by test engines for tracking and reporting purposes.
6229     * </p> 
6230         */
6231        public Test setDescription(StringDt theValue) {
6232                myDescription = theValue;
6233                return this;
6234        }
6235        
6236        
6237
6238        /**
6239         * Sets the value for <b>description</b> ()
6240         *
6241     * <p>
6242     * <b>Definition:</b>
6243     * A short description of the test used by test engines for tracking and reporting purposes.
6244     * </p> 
6245         */
6246        public Test setDescription( String theString) {
6247                myDescription = new StringDt(theString); 
6248                return this; 
6249        }
6250
6251 
6252        /**
6253         * Gets the value(s) for <b>metadata</b> ().
6254         * creating it if it does
6255         * not exist. Will not return <code>null</code>.
6256         *
6257     * <p>
6258     * <b>Definition:</b>
6259     * Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.
6260     * </p> 
6261         */
6262        public Metadata getMetadata() {  
6263                if (myMetadata == null) {
6264                        myMetadata = new Metadata();
6265                }
6266                return myMetadata;
6267        }
6268
6269        /**
6270         * Sets the value(s) for <b>metadata</b> ()
6271         *
6272     * <p>
6273     * <b>Definition:</b>
6274     * Capabilities that must exist and are assumed to function correctly on the FHIR server being tested.
6275     * </p> 
6276         */
6277        public Test setMetadata(Metadata theValue) {
6278                myMetadata = theValue;
6279                return this;
6280        }
6281        
6282        
6283
6284  
6285        /**
6286         * Gets the value(s) for <b>action</b> ().
6287         * creating it if it does
6288         * not exist. Will not return <code>null</code>.
6289         *
6290     * <p>
6291     * <b>Definition:</b>
6292     * Action would contain either an operation or an assertion.
6293     * </p> 
6294         */
6295        public java.util.List<TestAction> getAction() {  
6296                if (myAction == null) {
6297                        myAction = new java.util.ArrayList<TestAction>();
6298                }
6299                return myAction;
6300        }
6301
6302        /**
6303         * Sets the value(s) for <b>action</b> ()
6304         *
6305     * <p>
6306     * <b>Definition:</b>
6307     * Action would contain either an operation or an assertion.
6308     * </p> 
6309         */
6310        public Test setAction(java.util.List<TestAction> theValue) {
6311                myAction = theValue;
6312                return this;
6313        }
6314        
6315        
6316
6317        /**
6318         * Adds and returns a new value for <b>action</b> ()
6319         *
6320     * <p>
6321     * <b>Definition:</b>
6322     * Action would contain either an operation or an assertion.
6323     * </p> 
6324         */
6325        public TestAction addAction() {
6326                TestAction newType = new TestAction();
6327                getAction().add(newType);
6328                return newType; 
6329        }
6330
6331        /**
6332         * Adds a given new value for <b>action</b> ()
6333         *
6334         * <p>
6335         * <b>Definition:</b>
6336         * Action would contain either an operation or an assertion.
6337         * </p>
6338         * @param theValue The action to add (must not be <code>null</code>)
6339         */
6340        public Test addAction(TestAction theValue) {
6341                if (theValue == null) {
6342                        throw new NullPointerException("theValue must not be null");
6343                }
6344                getAction().add(theValue);
6345                return this;
6346        }
6347
6348        /**
6349         * Gets the first repetition for <b>action</b> (),
6350         * creating it if it does not already exist.
6351         *
6352     * <p>
6353     * <b>Definition:</b>
6354     * Action would contain either an operation or an assertion.
6355     * </p> 
6356         */
6357        public TestAction getActionFirstRep() {
6358                if (getAction().isEmpty()) {
6359                        return addAction();
6360                }
6361                return getAction().get(0); 
6362        }
6363  
6364
6365
6366        }
6367
6368        /**
6369         * Block class for child element: <b>TestScript.test.action</b> ()
6370         *
6371     * <p>
6372     * <b>Definition:</b>
6373     * Action would contain either an operation or an assertion.
6374     * </p> 
6375         */
6376        @Block()        
6377        public static class TestAction 
6378            extends  BaseIdentifiableElement        implements IResourceBlock {
6379        
6380        @Child(name="operation", type=SetupActionOperation.class, order=0, min=0, max=1, summary=false, modifier=false) 
6381        @Description(
6382                shortDefinition="",
6383                formalDefinition="An operation would involve a REST request to a server."
6384        )
6385        private SetupActionOperation myOperation;
6386        
6387        @Child(name="assert", type=SetupActionAssert.class, order=1, min=0, max=1, summary=false, modifier=false)       
6388        @Description(
6389                shortDefinition="",
6390                formalDefinition="Evaluates the results of previous operations to determine if the server under test behaves appropriately."
6391        )
6392        private SetupActionAssert myAssert;
6393        
6394
6395        @Override
6396        public boolean isEmpty() {
6397                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myOperation,  myAssert);
6398        }
6399        
6400        @Override
6401        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
6402                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myOperation, myAssert);
6403        }
6404
6405        /**
6406         * Gets the value(s) for <b>operation</b> ().
6407         * creating it if it does
6408         * not exist. Will not return <code>null</code>.
6409         *
6410     * <p>
6411     * <b>Definition:</b>
6412     * An operation would involve a REST request to a server.
6413     * </p> 
6414         */
6415        public SetupActionOperation getOperation() {  
6416                if (myOperation == null) {
6417                        myOperation = new SetupActionOperation();
6418                }
6419                return myOperation;
6420        }
6421
6422        /**
6423         * Sets the value(s) for <b>operation</b> ()
6424         *
6425     * <p>
6426     * <b>Definition:</b>
6427     * An operation would involve a REST request to a server.
6428     * </p> 
6429         */
6430        public TestAction setOperation(SetupActionOperation theValue) {
6431                myOperation = theValue;
6432                return this;
6433        }
6434        
6435        
6436
6437  
6438        /**
6439         * Gets the value(s) for <b>assert</b> ().
6440         * creating it if it does
6441         * not exist. Will not return <code>null</code>.
6442         *
6443     * <p>
6444     * <b>Definition:</b>
6445     * Evaluates the results of previous operations to determine if the server under test behaves appropriately.
6446     * </p> 
6447         */
6448        public SetupActionAssert getAssert() {  
6449                if (myAssert == null) {
6450                        myAssert = new SetupActionAssert();
6451                }
6452                return myAssert;
6453        }
6454
6455        /**
6456         * Sets the value(s) for <b>assert</b> ()
6457         *
6458     * <p>
6459     * <b>Definition:</b>
6460     * Evaluates the results of previous operations to determine if the server under test behaves appropriately.
6461     * </p> 
6462         */
6463        public TestAction setAssert(SetupActionAssert theValue) {
6464                myAssert = theValue;
6465                return this;
6466        }
6467        
6468        
6469
6470  
6471
6472
6473        }
6474
6475
6476
6477        /**
6478         * Block class for child element: <b>TestScript.teardown</b> ()
6479         *
6480     * <p>
6481     * <b>Definition:</b>
6482     * A series of operations required to clean up after the all the tests are executed (successfully or otherwise).
6483     * </p> 
6484         */
6485        @Block()        
6486        public static class Teardown 
6487            extends  BaseIdentifiableElement        implements IResourceBlock {
6488        
6489        @Child(name="action", order=0, min=1, max=Child.MAX_UNLIMITED, summary=false, modifier=false)   
6490        @Description(
6491                shortDefinition="",
6492                formalDefinition="The teardown action will only contain an operation."
6493        )
6494        private java.util.List<TeardownAction> myAction;
6495        
6496
6497        @Override
6498        public boolean isEmpty() {
6499                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myAction);
6500        }
6501        
6502        @Override
6503        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
6504                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myAction);
6505        }
6506
6507        /**
6508         * Gets the value(s) for <b>action</b> ().
6509         * creating it if it does
6510         * not exist. Will not return <code>null</code>.
6511         *
6512     * <p>
6513     * <b>Definition:</b>
6514     * The teardown action will only contain an operation.
6515     * </p> 
6516         */
6517        public java.util.List<TeardownAction> getAction() {  
6518                if (myAction == null) {
6519                        myAction = new java.util.ArrayList<TeardownAction>();
6520                }
6521                return myAction;
6522        }
6523
6524        /**
6525         * Sets the value(s) for <b>action</b> ()
6526         *
6527     * <p>
6528     * <b>Definition:</b>
6529     * The teardown action will only contain an operation.
6530     * </p> 
6531         */
6532        public Teardown setAction(java.util.List<TeardownAction> theValue) {
6533                myAction = theValue;
6534                return this;
6535        }
6536        
6537        
6538
6539        /**
6540         * Adds and returns a new value for <b>action</b> ()
6541         *
6542     * <p>
6543     * <b>Definition:</b>
6544     * The teardown action will only contain an operation.
6545     * </p> 
6546         */
6547        public TeardownAction addAction() {
6548                TeardownAction newType = new TeardownAction();
6549                getAction().add(newType);
6550                return newType; 
6551        }
6552
6553        /**
6554         * Adds a given new value for <b>action</b> ()
6555         *
6556         * <p>
6557         * <b>Definition:</b>
6558         * The teardown action will only contain an operation.
6559         * </p>
6560         * @param theValue The action to add (must not be <code>null</code>)
6561         */
6562        public Teardown addAction(TeardownAction theValue) {
6563                if (theValue == null) {
6564                        throw new NullPointerException("theValue must not be null");
6565                }
6566                getAction().add(theValue);
6567                return this;
6568        }
6569
6570        /**
6571         * Gets the first repetition for <b>action</b> (),
6572         * creating it if it does not already exist.
6573         *
6574     * <p>
6575     * <b>Definition:</b>
6576     * The teardown action will only contain an operation.
6577     * </p> 
6578         */
6579        public TeardownAction getActionFirstRep() {
6580                if (getAction().isEmpty()) {
6581                        return addAction();
6582                }
6583                return getAction().get(0); 
6584        }
6585  
6586
6587
6588        }
6589
6590        /**
6591         * Block class for child element: <b>TestScript.teardown.action</b> ()
6592         *
6593     * <p>
6594     * <b>Definition:</b>
6595     * The teardown action will only contain an operation.
6596     * </p> 
6597         */
6598        @Block()        
6599        public static class TeardownAction 
6600            extends  BaseIdentifiableElement        implements IResourceBlock {
6601        
6602        @Child(name="operation", type=SetupActionOperation.class, order=0, min=0, max=1, summary=false, modifier=false) 
6603        @Description(
6604                shortDefinition="",
6605                formalDefinition="An operation would involve a REST request to a server."
6606        )
6607        private SetupActionOperation myOperation;
6608        
6609
6610        @Override
6611        public boolean isEmpty() {
6612                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myOperation);
6613        }
6614        
6615        @Override
6616        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
6617                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myOperation);
6618        }
6619
6620        /**
6621         * Gets the value(s) for <b>operation</b> ().
6622         * creating it if it does
6623         * not exist. Will not return <code>null</code>.
6624         *
6625     * <p>
6626     * <b>Definition:</b>
6627     * An operation would involve a REST request to a server.
6628     * </p> 
6629         */
6630        public SetupActionOperation getOperation() {  
6631                if (myOperation == null) {
6632                        myOperation = new SetupActionOperation();
6633                }
6634                return myOperation;
6635        }
6636
6637        /**
6638         * Sets the value(s) for <b>operation</b> ()
6639         *
6640     * <p>
6641     * <b>Definition:</b>
6642     * An operation would involve a REST request to a server.
6643     * </p> 
6644         */
6645        public TeardownAction setOperation(SetupActionOperation theValue) {
6646                myOperation = theValue;
6647                return this;
6648        }
6649        
6650        
6651
6652  
6653
6654
6655        }
6656
6657
6658
6659
6660
6661    @Override
6662    public String getResourceName() {
6663        return "TestScript";
6664    }
6665    
6666    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
6667        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
6668    }
6669
6670
6671}