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>Bundle</b> Resource
320 * ()
321 *
322 * <p>
323 * <b>Definition:</b>
324 * A container for a collection of resources.
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/Bundle">http://hl7.org/fhir/profiles/Bundle</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="Bundle", profile="http://hl7.org/fhir/profiles/Bundle", id="bundle")
339public class Bundle extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     , org.hl7.fhir.instance.model.api.IBaseBundle
341    {
342
343        /**
344         * Search parameter constant for <b>type</b>
345         * <p>
346         * Description: <b></b><br>
347         * Type: <b>token</b><br>
348         * Path: <b>Bundle.type</b><br>
349         * </p>
350         */
351        @SearchParamDefinition(name="type", path="Bundle.type", description="", type="token"  )
352        public static final String SP_TYPE = "type";
353
354        /**
355         * <b>Fluent Client</b> search parameter constant for <b>type</b>
356         * <p>
357         * Description: <b></b><br>
358         * Type: <b>token</b><br>
359         * Path: <b>Bundle.type</b><br>
360         * </p>
361         */
362        public static final TokenClientParam TYPE = new TokenClientParam(SP_TYPE);
363
364        /**
365         * Search parameter constant for <b>message</b>
366         * <p>
367         * Description: <b>The first resource in the bundle, if the bundle type is \&quot;message\&quot; - this is a message header, and this parameter provides access to search its contents</b><br>
368         * Type: <b>reference</b><br>
369         * Path: <b>Bundle.entry.resource(0)</b><br>
370         * </p>
371         */
372        @SearchParamDefinition(name="message", path="Bundle.entry.resource(0)", description="The first resource in the bundle, if the bundle type is \"message\" - this is a message header, and this parameter provides access to search its contents", type="reference"  )
373        public static final String SP_MESSAGE = "message";
374
375        /**
376         * <b>Fluent Client</b> search parameter constant for <b>message</b>
377         * <p>
378         * Description: <b>The first resource in the bundle, if the bundle type is \&quot;message\&quot; - this is a message header, and this parameter provides access to search its contents</b><br>
379         * Type: <b>reference</b><br>
380         * Path: <b>Bundle.entry.resource(0)</b><br>
381         * </p>
382         */
383        public static final ReferenceClientParam MESSAGE = new ReferenceClientParam(SP_MESSAGE);
384
385        /**
386         * Search parameter constant for <b>composition</b>
387         * <p>
388         * Description: <b>The first resource in the bundle, if the bundle type is \&quot;document\&quot; - this is a composition, and this parameter provides access to searches its contents</b><br>
389         * Type: <b>reference</b><br>
390         * Path: <b>Bundle.entry.resource(0)</b><br>
391         * </p>
392         */
393        @SearchParamDefinition(name="composition", path="Bundle.entry.resource(0)", description="The first resource in the bundle, if the bundle type is \"document\" - this is a composition, and this parameter provides access to searches its contents", type="reference"  )
394        public static final String SP_COMPOSITION = "composition";
395
396        /**
397         * <b>Fluent Client</b> search parameter constant for <b>composition</b>
398         * <p>
399         * Description: <b>The first resource in the bundle, if the bundle type is \&quot;document\&quot; - this is a composition, and this parameter provides access to searches its contents</b><br>
400         * Type: <b>reference</b><br>
401         * Path: <b>Bundle.entry.resource(0)</b><br>
402         * </p>
403         */
404        public static final ReferenceClientParam COMPOSITION = new ReferenceClientParam(SP_COMPOSITION);
405
406
407        /**
408         * Constant for fluent queries to be used to add include statements. Specifies
409         * the path value of "<b>Bundle:composition</b>".
410         */
411        public static final Include INCLUDE_COMPOSITION = new Include("Bundle:composition");
412
413        /**
414         * Constant for fluent queries to be used to add include statements. Specifies
415         * the path value of "<b>Bundle:message</b>".
416         */
417        public static final Include INCLUDE_MESSAGE = new Include("Bundle:message");
418
419
420        @Child(name="type", type=CodeDt.class, order=0, min=1, max=1, summary=true, modifier=false)     
421        @Description(
422                shortDefinition="",
423                formalDefinition="Indicates the purpose of this bundle- how it was intended to be used"
424        )
425        private BoundCodeDt<BundleTypeEnum> myType;
426        
427        @Child(name="total", type=UnsignedIntDt.class, order=1, min=0, max=1, summary=true, modifier=false)     
428        @Description(
429                shortDefinition="",
430                formalDefinition="If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle)"
431        )
432        private UnsignedIntDt myTotal;
433        
434        @Child(name="link", order=2, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)      
435        @Description(
436                shortDefinition="",
437                formalDefinition="A series of links that provide context to this bundle"
438        )
439        private java.util.List<Link> myLink;
440        
441        @Child(name="entry", order=3, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)     
442        @Description(
443                shortDefinition="",
444                formalDefinition="An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only)"
445        )
446        private java.util.List<Entry> myEntry;
447        
448        @Child(name="signature", type=SignatureDt.class, order=4, min=0, max=1, summary=true, modifier=false)   
449        @Description(
450                shortDefinition="",
451                formalDefinition="Digital Signature - base64 encoded. XML DigSIg or a JWT"
452        )
453        private SignatureDt mySignature;
454        
455
456        @Override
457        public boolean isEmpty() {
458                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  myTotal,  myLink,  myEntry,  mySignature);
459        }
460        
461        @Override
462        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
463                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, myTotal, myLink, myEntry, mySignature);
464        }
465
466        /**
467         * Gets the value(s) for <b>type</b> ().
468         * creating it if it does
469         * not exist. Will not return <code>null</code>.
470         *
471     * <p>
472     * <b>Definition:</b>
473     * Indicates the purpose of this bundle- how it was intended to be used
474     * </p> 
475         */
476        public BoundCodeDt<BundleTypeEnum> getTypeElement() {  
477                if (myType == null) {
478                        myType = new BoundCodeDt<BundleTypeEnum>(BundleTypeEnum.VALUESET_BINDER);
479                }
480                return myType;
481        }
482
483        
484        /**
485         * Gets the value(s) for <b>type</b> ().
486         * creating it if it does
487         * not exist. Will not return <code>null</code>.
488         *
489     * <p>
490     * <b>Definition:</b>
491     * Indicates the purpose of this bundle- how it was intended to be used
492     * </p> 
493         */
494        public String getType() {  
495                return getTypeElement().getValue();
496        }
497
498        /**
499         * Sets the value(s) for <b>type</b> ()
500         *
501     * <p>
502     * <b>Definition:</b>
503     * Indicates the purpose of this bundle- how it was intended to be used
504     * </p> 
505         */
506        public Bundle setType(BoundCodeDt<BundleTypeEnum> theValue) {
507                myType = theValue;
508                return this;
509        }
510        
511        
512
513        /**
514         * Sets the value(s) for <b>type</b> ()
515         *
516     * <p>
517     * <b>Definition:</b>
518     * Indicates the purpose of this bundle- how it was intended to be used
519     * </p> 
520         */
521        public Bundle setType(BundleTypeEnum theValue) {
522                setType(new BoundCodeDt<BundleTypeEnum>(BundleTypeEnum.VALUESET_BINDER, theValue));
523                
524/*
525                getTypeElement().setValueAsEnum(theValue);
526*/
527                return this;
528        }
529
530  
531        /**
532         * Gets the value(s) for <b>total</b> ().
533         * creating it if it does
534         * not exist. Will not return <code>null</code>.
535         *
536     * <p>
537     * <b>Definition:</b>
538     * If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle)
539     * </p> 
540         */
541        public UnsignedIntDt getTotalElement() {  
542                if (myTotal == null) {
543                        myTotal = new UnsignedIntDt();
544                }
545                return myTotal;
546        }
547
548        
549        /**
550         * Gets the value(s) for <b>total</b> ().
551         * creating it if it does
552         * not exist. Will not return <code>null</code>.
553         *
554     * <p>
555     * <b>Definition:</b>
556     * If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle)
557     * </p> 
558         */
559        public Integer getTotal() {  
560                return getTotalElement().getValue();
561        }
562
563        /**
564         * Sets the value(s) for <b>total</b> ()
565         *
566     * <p>
567     * <b>Definition:</b>
568     * If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle)
569     * </p> 
570         */
571        public Bundle setTotal(UnsignedIntDt theValue) {
572                myTotal = theValue;
573                return this;
574        }
575        
576        
577
578        /**
579         * Sets the value for <b>total</b> ()
580         *
581     * <p>
582     * <b>Definition:</b>
583     * If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle)
584     * </p> 
585         */
586        public Bundle setTotal( int theInteger) {
587                myTotal = new UnsignedIntDt(theInteger); 
588                return this; 
589        }
590
591 
592        /**
593         * Gets the value(s) for <b>link</b> ().
594         * creating it if it does
595         * not exist. Will not return <code>null</code>.
596         *
597     * <p>
598     * <b>Definition:</b>
599     * A series of links that provide context to this bundle
600     * </p> 
601         */
602        public java.util.List<Link> getLink() {  
603                if (myLink == null) {
604                        myLink = new java.util.ArrayList<Link>();
605                }
606                return myLink;
607        }
608
609        /**
610         * Sets the value(s) for <b>link</b> ()
611         *
612     * <p>
613     * <b>Definition:</b>
614     * A series of links that provide context to this bundle
615     * </p> 
616         */
617        public Bundle setLink(java.util.List<Link> theValue) {
618                myLink = theValue;
619                return this;
620        }
621        
622        
623
624        /**
625         * Adds and returns a new value for <b>link</b> ()
626         *
627     * <p>
628     * <b>Definition:</b>
629     * A series of links that provide context to this bundle
630     * </p> 
631         */
632        public Link addLink() {
633                Link newType = new Link();
634                getLink().add(newType);
635                return newType; 
636        }
637
638        /**
639         * Adds a given new value for <b>link</b> ()
640         *
641         * <p>
642         * <b>Definition:</b>
643         * A series of links that provide context to this bundle
644         * </p>
645         * @param theValue The link to add (must not be <code>null</code>)
646         */
647        public Bundle addLink(Link theValue) {
648                if (theValue == null) {
649                        throw new NullPointerException("theValue must not be null");
650                }
651                getLink().add(theValue);
652                return this;
653        }
654
655        /**
656         * Gets the first repetition for <b>link</b> (),
657         * creating it if it does not already exist.
658         *
659     * <p>
660     * <b>Definition:</b>
661     * A series of links that provide context to this bundle
662     * </p> 
663         */
664        public Link getLinkFirstRep() {
665                if (getLink().isEmpty()) {
666                        return addLink();
667                }
668                return getLink().get(0); 
669        }
670  
671        /**
672         * Gets the value(s) for <b>entry</b> ().
673         * creating it if it does
674         * not exist. Will not return <code>null</code>.
675         *
676     * <p>
677     * <b>Definition:</b>
678     * An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only)
679     * </p> 
680         */
681        public java.util.List<Entry> getEntry() {  
682                if (myEntry == null) {
683                        myEntry = new java.util.ArrayList<Entry>();
684                }
685                return myEntry;
686        }
687
688        /**
689         * Sets the value(s) for <b>entry</b> ()
690         *
691     * <p>
692     * <b>Definition:</b>
693     * An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only)
694     * </p> 
695         */
696        public Bundle setEntry(java.util.List<Entry> theValue) {
697                myEntry = theValue;
698                return this;
699        }
700        
701        
702
703        /**
704         * Adds and returns a new value for <b>entry</b> ()
705         *
706     * <p>
707     * <b>Definition:</b>
708     * An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only)
709     * </p> 
710         */
711        public Entry addEntry() {
712                Entry newType = new Entry();
713                getEntry().add(newType);
714                return newType; 
715        }
716
717        /**
718         * Adds a given new value for <b>entry</b> ()
719         *
720         * <p>
721         * <b>Definition:</b>
722         * An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only)
723         * </p>
724         * @param theValue The entry to add (must not be <code>null</code>)
725         */
726        public Bundle addEntry(Entry theValue) {
727                if (theValue == null) {
728                        throw new NullPointerException("theValue must not be null");
729                }
730                getEntry().add(theValue);
731                return this;
732        }
733
734        /**
735         * Gets the first repetition for <b>entry</b> (),
736         * creating it if it does not already exist.
737         *
738     * <p>
739     * <b>Definition:</b>
740     * An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only)
741     * </p> 
742         */
743        public Entry getEntryFirstRep() {
744                if (getEntry().isEmpty()) {
745                        return addEntry();
746                }
747                return getEntry().get(0); 
748        }
749  
750        /**
751         * Gets the value(s) for <b>signature</b> ().
752         * creating it if it does
753         * not exist. Will not return <code>null</code>.
754         *
755     * <p>
756     * <b>Definition:</b>
757     * Digital Signature - base64 encoded. XML DigSIg or a JWT
758     * </p> 
759         */
760        public SignatureDt getSignature() {  
761                if (mySignature == null) {
762                        mySignature = new SignatureDt();
763                }
764                return mySignature;
765        }
766
767        /**
768         * Sets the value(s) for <b>signature</b> ()
769         *
770     * <p>
771     * <b>Definition:</b>
772     * Digital Signature - base64 encoded. XML DigSIg or a JWT
773     * </p> 
774         */
775        public Bundle setSignature(SignatureDt theValue) {
776                mySignature = theValue;
777                return this;
778        }
779        
780        
781
782  
783        /**
784         * Block class for child element: <b>Bundle.link</b> ()
785         *
786     * <p>
787     * <b>Definition:</b>
788     * A series of links that provide context to this bundle
789     * </p> 
790         */
791        @Block()        
792        public static class Link 
793            extends  BaseIdentifiableElement        implements IResourceBlock {
794        
795        @Child(name="relation", type=StringDt.class, order=0, min=1, max=1, summary=true, modifier=false)       
796        @Description(
797                shortDefinition="",
798                formalDefinition="A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]"
799        )
800        private StringDt myRelation;
801        
802        @Child(name="url", type=UriDt.class, order=1, min=1, max=1, summary=true, modifier=false)       
803        @Description(
804                shortDefinition="",
805                formalDefinition="The reference details for the link"
806        )
807        private UriDt myUrl;
808        
809
810        @Override
811        public boolean isEmpty() {
812                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myRelation,  myUrl);
813        }
814        
815        @Override
816        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
817                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myRelation, myUrl);
818        }
819
820        /**
821         * Gets the value(s) for <b>relation</b> ().
822         * creating it if it does
823         * not exist. Will not return <code>null</code>.
824         *
825     * <p>
826     * <b>Definition:</b>
827     * A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]
828     * </p> 
829         */
830        public StringDt getRelationElement() {  
831                if (myRelation == null) {
832                        myRelation = new StringDt();
833                }
834                return myRelation;
835        }
836
837        
838        /**
839         * Gets the value(s) for <b>relation</b> ().
840         * creating it if it does
841         * not exist. Will not return <code>null</code>.
842         *
843     * <p>
844     * <b>Definition:</b>
845     * A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]
846     * </p> 
847         */
848        public String getRelation() {  
849                return getRelationElement().getValue();
850        }
851
852        /**
853         * Sets the value(s) for <b>relation</b> ()
854         *
855     * <p>
856     * <b>Definition:</b>
857     * A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]
858     * </p> 
859         */
860        public Link setRelation(StringDt theValue) {
861                myRelation = theValue;
862                return this;
863        }
864        
865        
866
867        /**
868         * Sets the value for <b>relation</b> ()
869         *
870     * <p>
871     * <b>Definition:</b>
872     * A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]
873     * </p> 
874         */
875        public Link setRelation( String theString) {
876                myRelation = new StringDt(theString); 
877                return this; 
878        }
879
880 
881        /**
882         * Gets the value(s) for <b>url</b> ().
883         * creating it if it does
884         * not exist. Will not return <code>null</code>.
885         *
886     * <p>
887     * <b>Definition:</b>
888     * The reference details for the link
889     * </p> 
890         */
891        public UriDt getUrlElement() {  
892                if (myUrl == null) {
893                        myUrl = new UriDt();
894                }
895                return myUrl;
896        }
897
898        
899        /**
900         * Gets the value(s) for <b>url</b> ().
901         * creating it if it does
902         * not exist. Will not return <code>null</code>.
903         *
904     * <p>
905     * <b>Definition:</b>
906     * The reference details for the link
907     * </p> 
908         */
909        public String getUrl() {  
910                return getUrlElement().getValue();
911        }
912
913        /**
914         * Sets the value(s) for <b>url</b> ()
915         *
916     * <p>
917     * <b>Definition:</b>
918     * The reference details for the link
919     * </p> 
920         */
921        public Link setUrl(UriDt theValue) {
922                myUrl = theValue;
923                return this;
924        }
925        
926        
927
928        /**
929         * Sets the value for <b>url</b> ()
930         *
931     * <p>
932     * <b>Definition:</b>
933     * The reference details for the link
934     * </p> 
935         */
936        public Link setUrl( String theUri) {
937                myUrl = new UriDt(theUri); 
938                return this; 
939        }
940
941 
942
943
944        }
945
946
947        /**
948         * Block class for child element: <b>Bundle.entry</b> ()
949         *
950     * <p>
951     * <b>Definition:</b>
952     * An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only)
953     * </p> 
954         */
955        @Block()        
956        public static class Entry 
957            extends  BaseIdentifiableElement        implements IResourceBlock {
958        
959        @Child(name="link", type=Link.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)     
960        @Description(
961                shortDefinition="",
962                formalDefinition="A series of links that provide context to this entry"
963        )
964        private java.util.List<Link> myLink;
965        
966        @Child(name="fullUrl", type=UriDt.class, order=1, min=0, max=1, summary=true, modifier=false)   
967        @Description(
968                shortDefinition="",
969                formalDefinition="The Absolute URL for the resource. This must be provided for all resources. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource"
970        )
971        private UriDt myFullUrl;
972        
973        @Child(name="resource", type=IResource.class, order=2, min=0, max=1, summary=true, modifier=false)      
974        @Description(
975                shortDefinition="",
976                formalDefinition="The Resources for the entry"
977        )
978        private IResource myResource;
979        
980        @Child(name="search", order=3, min=0, max=1, summary=true, modifier=false)      
981        @Description(
982                shortDefinition="",
983                formalDefinition="Information about the search process that lead to the creation of this entry"
984        )
985        private EntrySearch mySearch;
986        
987        @Child(name="request", order=4, min=0, max=1, summary=true, modifier=false)     
988        @Description(
989                shortDefinition="",
990                formalDefinition="Additional information about how this entry should be processed as part of a transaction"
991        )
992        private EntryRequest myRequest;
993        
994        @Child(name="response", order=5, min=0, max=1, summary=true, modifier=false)    
995        @Description(
996                shortDefinition="",
997                formalDefinition="Additional information about how this entry should be processed as part of a transaction"
998        )
999        private EntryResponse myResponse;
1000        
1001
1002        @Override
1003        public boolean isEmpty() {
1004                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myLink,  myFullUrl,  myResource,  mySearch,  myRequest,  myResponse);
1005        }
1006        
1007        @Override
1008        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1009                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myLink, myFullUrl, myResource, mySearch, myRequest, myResponse);
1010        }
1011
1012        /**
1013         * Gets the value(s) for <b>link</b> ().
1014         * creating it if it does
1015         * not exist. Will not return <code>null</code>.
1016         *
1017     * <p>
1018     * <b>Definition:</b>
1019     * A series of links that provide context to this entry
1020     * </p> 
1021         */
1022        public java.util.List<Link> getLink() {  
1023                if (myLink == null) {
1024                        myLink = new java.util.ArrayList<Link>();
1025                }
1026                return myLink;
1027        }
1028
1029        /**
1030         * Sets the value(s) for <b>link</b> ()
1031         *
1032     * <p>
1033     * <b>Definition:</b>
1034     * A series of links that provide context to this entry
1035     * </p> 
1036         */
1037        public Entry setLink(java.util.List<Link> theValue) {
1038                myLink = theValue;
1039                return this;
1040        }
1041        
1042        
1043
1044        /**
1045         * Adds and returns a new value for <b>link</b> ()
1046         *
1047     * <p>
1048     * <b>Definition:</b>
1049     * A series of links that provide context to this entry
1050     * </p> 
1051         */
1052        public Link addLink() {
1053                Link newType = new Link();
1054                getLink().add(newType);
1055                return newType; 
1056        }
1057
1058        /**
1059         * Adds a given new value for <b>link</b> ()
1060         *
1061         * <p>
1062         * <b>Definition:</b>
1063         * A series of links that provide context to this entry
1064         * </p>
1065         * @param theValue The link to add (must not be <code>null</code>)
1066         */
1067        public Entry addLink(Link theValue) {
1068                if (theValue == null) {
1069                        throw new NullPointerException("theValue must not be null");
1070                }
1071                getLink().add(theValue);
1072                return this;
1073        }
1074
1075        /**
1076         * Gets the first repetition for <b>link</b> (),
1077         * creating it if it does not already exist.
1078         *
1079     * <p>
1080     * <b>Definition:</b>
1081     * A series of links that provide context to this entry
1082     * </p> 
1083         */
1084        public Link getLinkFirstRep() {
1085                if (getLink().isEmpty()) {
1086                        return addLink();
1087                }
1088                return getLink().get(0); 
1089        }
1090  
1091        /**
1092         * Gets the value(s) for <b>fullUrl</b> ().
1093         * creating it if it does
1094         * not exist. Will not return <code>null</code>.
1095         *
1096     * <p>
1097     * <b>Definition:</b>
1098     * The Absolute URL for the resource. This must be provided for all resources. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource
1099     * </p> 
1100         */
1101        public UriDt getFullUrlElement() {  
1102                if (myFullUrl == null) {
1103                        myFullUrl = new UriDt();
1104                }
1105                return myFullUrl;
1106        }
1107
1108        
1109        /**
1110         * Gets the value(s) for <b>fullUrl</b> ().
1111         * creating it if it does
1112         * not exist. Will not return <code>null</code>.
1113         *
1114     * <p>
1115     * <b>Definition:</b>
1116     * The Absolute URL for the resource. This must be provided for all resources. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource
1117     * </p> 
1118         */
1119        public String getFullUrl() {  
1120                return getFullUrlElement().getValue();
1121        }
1122
1123        /**
1124         * Sets the value(s) for <b>fullUrl</b> ()
1125         *
1126     * <p>
1127     * <b>Definition:</b>
1128     * The Absolute URL for the resource. This must be provided for all resources. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource
1129     * </p> 
1130         */
1131        public Entry setFullUrl(UriDt theValue) {
1132                myFullUrl = theValue;
1133                return this;
1134        }
1135        
1136        
1137
1138        /**
1139         * Sets the value for <b>fullUrl</b> ()
1140         *
1141     * <p>
1142     * <b>Definition:</b>
1143     * The Absolute URL for the resource. This must be provided for all resources. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource
1144     * </p> 
1145         */
1146        public Entry setFullUrl( String theUri) {
1147                myFullUrl = new UriDt(theUri); 
1148                return this; 
1149        }
1150
1151 
1152        /**
1153         * Gets the value(s) for <b>resource</b> ().
1154         *
1155     * <p>
1156     * <b>Definition:</b>
1157     * The Resources for the entry
1158     * </p> 
1159         */
1160        public IResource getResource() {  
1161                return myResource;
1162        }
1163
1164
1165        /**
1166         * Sets the value(s) for <b>resource</b> ()
1167         *
1168     * <p>
1169     * <b>Definition:</b>
1170     * The Resources for the entry
1171     * </p> 
1172         */
1173        public Entry setResource(IResource theValue) {
1174                myResource = theValue;
1175                return this;
1176        }
1177        
1178        
1179
1180  
1181        /**
1182         * Gets the value(s) for <b>search</b> ().
1183         * creating it if it does
1184         * not exist. Will not return <code>null</code>.
1185         *
1186     * <p>
1187     * <b>Definition:</b>
1188     * Information about the search process that lead to the creation of this entry
1189     * </p> 
1190         */
1191        public EntrySearch getSearch() {  
1192                if (mySearch == null) {
1193                        mySearch = new EntrySearch();
1194                }
1195                return mySearch;
1196        }
1197
1198        /**
1199         * Sets the value(s) for <b>search</b> ()
1200         *
1201     * <p>
1202     * <b>Definition:</b>
1203     * Information about the search process that lead to the creation of this entry
1204     * </p> 
1205         */
1206        public Entry setSearch(EntrySearch theValue) {
1207                mySearch = theValue;
1208                return this;
1209        }
1210        
1211        
1212
1213  
1214        /**
1215         * Gets the value(s) for <b>request</b> ().
1216         * creating it if it does
1217         * not exist. Will not return <code>null</code>.
1218         *
1219     * <p>
1220     * <b>Definition:</b>
1221     * Additional information about how this entry should be processed as part of a transaction
1222     * </p> 
1223         */
1224        public EntryRequest getRequest() {  
1225                if (myRequest == null) {
1226                        myRequest = new EntryRequest();
1227                }
1228                return myRequest;
1229        }
1230
1231        /**
1232         * Sets the value(s) for <b>request</b> ()
1233         *
1234     * <p>
1235     * <b>Definition:</b>
1236     * Additional information about how this entry should be processed as part of a transaction
1237     * </p> 
1238         */
1239        public Entry setRequest(EntryRequest theValue) {
1240                myRequest = theValue;
1241                return this;
1242        }
1243        
1244        
1245
1246  
1247        /**
1248         * Gets the value(s) for <b>response</b> ().
1249         * creating it if it does
1250         * not exist. Will not return <code>null</code>.
1251         *
1252     * <p>
1253     * <b>Definition:</b>
1254     * Additional information about how this entry should be processed as part of a transaction
1255     * </p> 
1256         */
1257        public EntryResponse getResponse() {  
1258                if (myResponse == null) {
1259                        myResponse = new EntryResponse();
1260                }
1261                return myResponse;
1262        }
1263
1264        /**
1265         * Sets the value(s) for <b>response</b> ()
1266         *
1267     * <p>
1268     * <b>Definition:</b>
1269     * Additional information about how this entry should be processed as part of a transaction
1270     * </p> 
1271         */
1272        public Entry setResponse(EntryResponse theValue) {
1273                myResponse = theValue;
1274                return this;
1275        }
1276        
1277        
1278
1279  
1280
1281
1282        }
1283
1284        /**
1285         * Block class for child element: <b>Bundle.entry.search</b> ()
1286         *
1287     * <p>
1288     * <b>Definition:</b>
1289     * Information about the search process that lead to the creation of this entry
1290     * </p> 
1291         */
1292        @Block()        
1293        public static class EntrySearch 
1294            extends  BaseIdentifiableElement        implements IResourceBlock {
1295        
1296        @Child(name="mode", type=CodeDt.class, order=0, min=0, max=1, summary=true, modifier=false)     
1297        @Description(
1298                shortDefinition="",
1299                formalDefinition="Why this entry is in the result set - whether it's included as a match or because of an _include requirement"
1300        )
1301        private BoundCodeDt<SearchEntryModeEnum> myMode;
1302        
1303        @Child(name="score", type=DecimalDt.class, order=1, min=0, max=1, summary=true, modifier=false) 
1304        @Description(
1305                shortDefinition="",
1306                formalDefinition="When searching, the server's search ranking score for the entry"
1307        )
1308        private DecimalDt myScore;
1309        
1310
1311        @Override
1312        public boolean isEmpty() {
1313                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myMode,  myScore);
1314        }
1315        
1316        @Override
1317        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1318                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myMode, myScore);
1319        }
1320
1321        /**
1322         * Gets the value(s) for <b>mode</b> ().
1323         * creating it if it does
1324         * not exist. Will not return <code>null</code>.
1325         *
1326     * <p>
1327     * <b>Definition:</b>
1328     * Why this entry is in the result set - whether it's included as a match or because of an _include requirement
1329     * </p> 
1330         */
1331        public BoundCodeDt<SearchEntryModeEnum> getModeElement() {  
1332                if (myMode == null) {
1333                        myMode = new BoundCodeDt<SearchEntryModeEnum>(SearchEntryModeEnum.VALUESET_BINDER);
1334                }
1335                return myMode;
1336        }
1337
1338        
1339        /**
1340         * Gets the value(s) for <b>mode</b> ().
1341         * creating it if it does
1342         * not exist. Will not return <code>null</code>.
1343         *
1344     * <p>
1345     * <b>Definition:</b>
1346     * Why this entry is in the result set - whether it's included as a match or because of an _include requirement
1347     * </p> 
1348         */
1349        public String getMode() {  
1350                return getModeElement().getValue();
1351        }
1352
1353        /**
1354         * Sets the value(s) for <b>mode</b> ()
1355         *
1356     * <p>
1357     * <b>Definition:</b>
1358     * Why this entry is in the result set - whether it's included as a match or because of an _include requirement
1359     * </p> 
1360         */
1361        public EntrySearch setMode(BoundCodeDt<SearchEntryModeEnum> theValue) {
1362                myMode = theValue;
1363                return this;
1364        }
1365        
1366        
1367
1368        /**
1369         * Sets the value(s) for <b>mode</b> ()
1370         *
1371     * <p>
1372     * <b>Definition:</b>
1373     * Why this entry is in the result set - whether it's included as a match or because of an _include requirement
1374     * </p> 
1375         */
1376        public EntrySearch setMode(SearchEntryModeEnum theValue) {
1377                setMode(new BoundCodeDt<SearchEntryModeEnum>(SearchEntryModeEnum.VALUESET_BINDER, theValue));
1378                
1379/*
1380                getModeElement().setValueAsEnum(theValue);
1381*/
1382                return this;
1383        }
1384
1385  
1386        /**
1387         * Gets the value(s) for <b>score</b> ().
1388         * creating it if it does
1389         * not exist. Will not return <code>null</code>.
1390         *
1391     * <p>
1392     * <b>Definition:</b>
1393     * When searching, the server's search ranking score for the entry
1394     * </p> 
1395         */
1396        public DecimalDt getScoreElement() {  
1397                if (myScore == null) {
1398                        myScore = new DecimalDt();
1399                }
1400                return myScore;
1401        }
1402
1403        
1404        /**
1405         * Gets the value(s) for <b>score</b> ().
1406         * creating it if it does
1407         * not exist. Will not return <code>null</code>.
1408         *
1409     * <p>
1410     * <b>Definition:</b>
1411     * When searching, the server's search ranking score for the entry
1412     * </p> 
1413         */
1414        public BigDecimal getScore() {  
1415                return getScoreElement().getValue();
1416        }
1417
1418        /**
1419         * Sets the value(s) for <b>score</b> ()
1420         *
1421     * <p>
1422     * <b>Definition:</b>
1423     * When searching, the server's search ranking score for the entry
1424     * </p> 
1425         */
1426        public EntrySearch setScore(DecimalDt theValue) {
1427                myScore = theValue;
1428                return this;
1429        }
1430        
1431        
1432
1433        /**
1434         * Sets the value for <b>score</b> ()
1435         *
1436     * <p>
1437     * <b>Definition:</b>
1438     * When searching, the server's search ranking score for the entry
1439     * </p> 
1440         */
1441        public EntrySearch setScore( long theValue) {
1442                myScore = new DecimalDt(theValue); 
1443                return this; 
1444        }
1445
1446        /**
1447         * Sets the value for <b>score</b> ()
1448         *
1449     * <p>
1450     * <b>Definition:</b>
1451     * When searching, the server's search ranking score for the entry
1452     * </p> 
1453         */
1454        public EntrySearch setScore( double theValue) {
1455                myScore = new DecimalDt(theValue); 
1456                return this; 
1457        }
1458
1459        /**
1460         * Sets the value for <b>score</b> ()
1461         *
1462     * <p>
1463     * <b>Definition:</b>
1464     * When searching, the server's search ranking score for the entry
1465     * </p> 
1466         */
1467        public EntrySearch setScore( java.math.BigDecimal theValue) {
1468                myScore = new DecimalDt(theValue); 
1469                return this; 
1470        }
1471
1472 
1473
1474
1475        }
1476
1477
1478        /**
1479         * Block class for child element: <b>Bundle.entry.request</b> ()
1480         *
1481     * <p>
1482     * <b>Definition:</b>
1483     * Additional information about how this entry should be processed as part of a transaction
1484     * </p> 
1485         */
1486        @Block()        
1487        public static class EntryRequest 
1488            extends  BaseIdentifiableElement        implements IResourceBlock {
1489        
1490        @Child(name="method", type=CodeDt.class, order=0, min=1, max=1, summary=true, modifier=false)   
1491        @Description(
1492                shortDefinition="",
1493                formalDefinition="The HTTP verb for this entry in either a update history, or a transaction/ transaction response"
1494        )
1495        private BoundCodeDt<HTTPVerbEnum> myMethod;
1496        
1497        @Child(name="url", type=UriDt.class, order=1, min=1, max=1, summary=true, modifier=false)       
1498        @Description(
1499                shortDefinition="",
1500                formalDefinition="The URL for this entry, relative to the root (the address to which the request is posted)"
1501        )
1502        private UriDt myUrl;
1503        
1504        @Child(name="ifNoneMatch", type=StringDt.class, order=2, min=0, max=1, summary=true, modifier=false)    
1505        @Description(
1506                shortDefinition="",
1507                formalDefinition="If the ETag values match, return a 304 Not modified status. See the API documentation for [\"Conditional Read\"](http.html#cread)"
1508        )
1509        private StringDt myIfNoneMatch;
1510        
1511        @Child(name="ifModifiedSince", type=InstantDt.class, order=3, min=0, max=1, summary=true, modifier=false)       
1512        @Description(
1513                shortDefinition="",
1514                formalDefinition="Only perform the operation if the last updated date matches. See the API documentation for [\"Conditional Read\"](http.html#cread)"
1515        )
1516        private InstantDt myIfModifiedSince;
1517        
1518        @Child(name="ifMatch", type=StringDt.class, order=4, min=0, max=1, summary=true, modifier=false)        
1519        @Description(
1520                shortDefinition="",
1521                formalDefinition="Only perform the operation if the Etag value matches. For more information, see the API section [\"Managing Resource Contention\"](http.html#concurrency)"
1522        )
1523        private StringDt myIfMatch;
1524        
1525        @Child(name="ifNoneExist", type=StringDt.class, order=5, min=0, max=1, summary=true, modifier=false)    
1526        @Description(
1527                shortDefinition="",
1528                formalDefinition="Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\"Conditional Create\"](http.html#ccreate). This is just the query portion of the URL - what follows the \"?\" (not including the \"?\")"
1529        )
1530        private StringDt myIfNoneExist;
1531        
1532
1533        @Override
1534        public boolean isEmpty() {
1535                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myMethod,  myUrl,  myIfNoneMatch,  myIfModifiedSince,  myIfMatch,  myIfNoneExist);
1536        }
1537        
1538        @Override
1539        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1540                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myMethod, myUrl, myIfNoneMatch, myIfModifiedSince, myIfMatch, myIfNoneExist);
1541        }
1542
1543        /**
1544         * Gets the value(s) for <b>method</b> ().
1545         * creating it if it does
1546         * not exist. Will not return <code>null</code>.
1547         *
1548     * <p>
1549     * <b>Definition:</b>
1550     * The HTTP verb for this entry in either a update history, or a transaction/ transaction response
1551     * </p> 
1552         */
1553        public BoundCodeDt<HTTPVerbEnum> getMethodElement() {  
1554                if (myMethod == null) {
1555                        myMethod = new BoundCodeDt<HTTPVerbEnum>(HTTPVerbEnum.VALUESET_BINDER);
1556                }
1557                return myMethod;
1558        }
1559
1560        
1561        /**
1562         * Gets the value(s) for <b>method</b> ().
1563         * creating it if it does
1564         * not exist. Will not return <code>null</code>.
1565         *
1566     * <p>
1567     * <b>Definition:</b>
1568     * The HTTP verb for this entry in either a update history, or a transaction/ transaction response
1569     * </p> 
1570         */
1571        public String getMethod() {  
1572                return getMethodElement().getValue();
1573        }
1574
1575        /**
1576         * Sets the value(s) for <b>method</b> ()
1577         *
1578     * <p>
1579     * <b>Definition:</b>
1580     * The HTTP verb for this entry in either a update history, or a transaction/ transaction response
1581     * </p> 
1582         */
1583        public EntryRequest setMethod(BoundCodeDt<HTTPVerbEnum> theValue) {
1584                myMethod = theValue;
1585                return this;
1586        }
1587        
1588        
1589
1590        /**
1591         * Sets the value(s) for <b>method</b> ()
1592         *
1593     * <p>
1594     * <b>Definition:</b>
1595     * The HTTP verb for this entry in either a update history, or a transaction/ transaction response
1596     * </p> 
1597         */
1598        public EntryRequest setMethod(HTTPVerbEnum theValue) {
1599                setMethod(new BoundCodeDt<HTTPVerbEnum>(HTTPVerbEnum.VALUESET_BINDER, theValue));
1600                
1601/*
1602                getMethodElement().setValueAsEnum(theValue);
1603*/
1604                return this;
1605        }
1606
1607  
1608        /**
1609         * Gets the value(s) for <b>url</b> ().
1610         * creating it if it does
1611         * not exist. Will not return <code>null</code>.
1612         *
1613     * <p>
1614     * <b>Definition:</b>
1615     * The URL for this entry, relative to the root (the address to which the request is posted)
1616     * </p> 
1617         */
1618        public UriDt getUrlElement() {  
1619                if (myUrl == null) {
1620                        myUrl = new UriDt();
1621                }
1622                return myUrl;
1623        }
1624
1625        
1626        /**
1627         * Gets the value(s) for <b>url</b> ().
1628         * creating it if it does
1629         * not exist. Will not return <code>null</code>.
1630         *
1631     * <p>
1632     * <b>Definition:</b>
1633     * The URL for this entry, relative to the root (the address to which the request is posted)
1634     * </p> 
1635         */
1636        public String getUrl() {  
1637                return getUrlElement().getValue();
1638        }
1639
1640        /**
1641         * Sets the value(s) for <b>url</b> ()
1642         *
1643     * <p>
1644     * <b>Definition:</b>
1645     * The URL for this entry, relative to the root (the address to which the request is posted)
1646     * </p> 
1647         */
1648        public EntryRequest setUrl(UriDt theValue) {
1649                myUrl = theValue;
1650                return this;
1651        }
1652        
1653        
1654
1655        /**
1656         * Sets the value for <b>url</b> ()
1657         *
1658     * <p>
1659     * <b>Definition:</b>
1660     * The URL for this entry, relative to the root (the address to which the request is posted)
1661     * </p> 
1662         */
1663        public EntryRequest setUrl( String theUri) {
1664                myUrl = new UriDt(theUri); 
1665                return this; 
1666        }
1667
1668 
1669        /**
1670         * Gets the value(s) for <b>ifNoneMatch</b> ().
1671         * creating it if it does
1672         * not exist. Will not return <code>null</code>.
1673         *
1674     * <p>
1675     * <b>Definition:</b>
1676     * If the ETag values match, return a 304 Not modified status. See the API documentation for [\&quot;Conditional Read\&quot;](http.html#cread)
1677     * </p> 
1678         */
1679        public StringDt getIfNoneMatchElement() {  
1680                if (myIfNoneMatch == null) {
1681                        myIfNoneMatch = new StringDt();
1682                }
1683                return myIfNoneMatch;
1684        }
1685
1686        
1687        /**
1688         * Gets the value(s) for <b>ifNoneMatch</b> ().
1689         * creating it if it does
1690         * not exist. Will not return <code>null</code>.
1691         *
1692     * <p>
1693     * <b>Definition:</b>
1694     * If the ETag values match, return a 304 Not modified status. See the API documentation for [\&quot;Conditional Read\&quot;](http.html#cread)
1695     * </p> 
1696         */
1697        public String getIfNoneMatch() {  
1698                return getIfNoneMatchElement().getValue();
1699        }
1700
1701        /**
1702         * Sets the value(s) for <b>ifNoneMatch</b> ()
1703         *
1704     * <p>
1705     * <b>Definition:</b>
1706     * If the ETag values match, return a 304 Not modified status. See the API documentation for [\&quot;Conditional Read\&quot;](http.html#cread)
1707     * </p> 
1708         */
1709        public EntryRequest setIfNoneMatch(StringDt theValue) {
1710                myIfNoneMatch = theValue;
1711                return this;
1712        }
1713        
1714        
1715
1716        /**
1717         * Sets the value for <b>ifNoneMatch</b> ()
1718         *
1719     * <p>
1720     * <b>Definition:</b>
1721     * If the ETag values match, return a 304 Not modified status. See the API documentation for [\&quot;Conditional Read\&quot;](http.html#cread)
1722     * </p> 
1723         */
1724        public EntryRequest setIfNoneMatch( String theString) {
1725                myIfNoneMatch = new StringDt(theString); 
1726                return this; 
1727        }
1728
1729 
1730        /**
1731         * Gets the value(s) for <b>ifModifiedSince</b> ().
1732         * creating it if it does
1733         * not exist. Will not return <code>null</code>.
1734         *
1735     * <p>
1736     * <b>Definition:</b>
1737     * Only perform the operation if the last updated date matches. See the API documentation for [\&quot;Conditional Read\&quot;](http.html#cread)
1738     * </p> 
1739         */
1740        public InstantDt getIfModifiedSinceElement() {  
1741                if (myIfModifiedSince == null) {
1742                        myIfModifiedSince = new InstantDt();
1743                }
1744                return myIfModifiedSince;
1745        }
1746
1747        
1748        /**
1749         * Gets the value(s) for <b>ifModifiedSince</b> ().
1750         * creating it if it does
1751         * not exist. Will not return <code>null</code>.
1752         *
1753     * <p>
1754     * <b>Definition:</b>
1755     * Only perform the operation if the last updated date matches. See the API documentation for [\&quot;Conditional Read\&quot;](http.html#cread)
1756     * </p> 
1757         */
1758        public Date getIfModifiedSince() {  
1759                return getIfModifiedSinceElement().getValue();
1760        }
1761
1762        /**
1763         * Sets the value(s) for <b>ifModifiedSince</b> ()
1764         *
1765     * <p>
1766     * <b>Definition:</b>
1767     * Only perform the operation if the last updated date matches. See the API documentation for [\&quot;Conditional Read\&quot;](http.html#cread)
1768     * </p> 
1769         */
1770        public EntryRequest setIfModifiedSince(InstantDt theValue) {
1771                myIfModifiedSince = theValue;
1772                return this;
1773        }
1774        
1775        
1776
1777        /**
1778         * Sets the value for <b>ifModifiedSince</b> ()
1779         *
1780     * <p>
1781     * <b>Definition:</b>
1782     * Only perform the operation if the last updated date matches. See the API documentation for [\&quot;Conditional Read\&quot;](http.html#cread)
1783     * </p> 
1784         */
1785        public EntryRequest setIfModifiedSinceWithMillisPrecision( Date theDate) {
1786                myIfModifiedSince = new InstantDt(theDate); 
1787                return this; 
1788        }
1789
1790        /**
1791         * Sets the value for <b>ifModifiedSince</b> ()
1792         *
1793     * <p>
1794     * <b>Definition:</b>
1795     * Only perform the operation if the last updated date matches. See the API documentation for [\&quot;Conditional Read\&quot;](http.html#cread)
1796     * </p> 
1797         */
1798        public EntryRequest setIfModifiedSince( Date theDate,  TemporalPrecisionEnum thePrecision) {
1799                myIfModifiedSince = new InstantDt(theDate, thePrecision); 
1800                return this; 
1801        }
1802
1803 
1804        /**
1805         * Gets the value(s) for <b>ifMatch</b> ().
1806         * creating it if it does
1807         * not exist. Will not return <code>null</code>.
1808         *
1809     * <p>
1810     * <b>Definition:</b>
1811     * Only perform the operation if the Etag value matches. For more information, see the API section [\&quot;Managing Resource Contention\&quot;](http.html#concurrency)
1812     * </p> 
1813         */
1814        public StringDt getIfMatchElement() {  
1815                if (myIfMatch == null) {
1816                        myIfMatch = new StringDt();
1817                }
1818                return myIfMatch;
1819        }
1820
1821        
1822        /**
1823         * Gets the value(s) for <b>ifMatch</b> ().
1824         * creating it if it does
1825         * not exist. Will not return <code>null</code>.
1826         *
1827     * <p>
1828     * <b>Definition:</b>
1829     * Only perform the operation if the Etag value matches. For more information, see the API section [\&quot;Managing Resource Contention\&quot;](http.html#concurrency)
1830     * </p> 
1831         */
1832        public String getIfMatch() {  
1833                return getIfMatchElement().getValue();
1834        }
1835
1836        /**
1837         * Sets the value(s) for <b>ifMatch</b> ()
1838         *
1839     * <p>
1840     * <b>Definition:</b>
1841     * Only perform the operation if the Etag value matches. For more information, see the API section [\&quot;Managing Resource Contention\&quot;](http.html#concurrency)
1842     * </p> 
1843         */
1844        public EntryRequest setIfMatch(StringDt theValue) {
1845                myIfMatch = theValue;
1846                return this;
1847        }
1848        
1849        
1850
1851        /**
1852         * Sets the value for <b>ifMatch</b> ()
1853         *
1854     * <p>
1855     * <b>Definition:</b>
1856     * Only perform the operation if the Etag value matches. For more information, see the API section [\&quot;Managing Resource Contention\&quot;](http.html#concurrency)
1857     * </p> 
1858         */
1859        public EntryRequest setIfMatch( String theString) {
1860                myIfMatch = new StringDt(theString); 
1861                return this; 
1862        }
1863
1864 
1865        /**
1866         * Gets the value(s) for <b>ifNoneExist</b> ().
1867         * creating it if it does
1868         * not exist. Will not return <code>null</code>.
1869         *
1870     * <p>
1871     * <b>Definition:</b>
1872     * Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\&quot;Conditional Create\&quot;](http.html#ccreate). This is just the query portion of the URL - what follows the \&quot;?\&quot; (not including the \&quot;?\&quot;)
1873     * </p> 
1874         */
1875        public StringDt getIfNoneExistElement() {  
1876                if (myIfNoneExist == null) {
1877                        myIfNoneExist = new StringDt();
1878                }
1879                return myIfNoneExist;
1880        }
1881
1882        
1883        /**
1884         * Gets the value(s) for <b>ifNoneExist</b> ().
1885         * creating it if it does
1886         * not exist. Will not return <code>null</code>.
1887         *
1888     * <p>
1889     * <b>Definition:</b>
1890     * Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\&quot;Conditional Create\&quot;](http.html#ccreate). This is just the query portion of the URL - what follows the \&quot;?\&quot; (not including the \&quot;?\&quot;)
1891     * </p> 
1892         */
1893        public String getIfNoneExist() {  
1894                return getIfNoneExistElement().getValue();
1895        }
1896
1897        /**
1898         * Sets the value(s) for <b>ifNoneExist</b> ()
1899         *
1900     * <p>
1901     * <b>Definition:</b>
1902     * Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\&quot;Conditional Create\&quot;](http.html#ccreate). This is just the query portion of the URL - what follows the \&quot;?\&quot; (not including the \&quot;?\&quot;)
1903     * </p> 
1904         */
1905        public EntryRequest setIfNoneExist(StringDt theValue) {
1906                myIfNoneExist = theValue;
1907                return this;
1908        }
1909        
1910        
1911
1912        /**
1913         * Sets the value for <b>ifNoneExist</b> ()
1914         *
1915     * <p>
1916     * <b>Definition:</b>
1917     * Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\&quot;Conditional Create\&quot;](http.html#ccreate). This is just the query portion of the URL - what follows the \&quot;?\&quot; (not including the \&quot;?\&quot;)
1918     * </p> 
1919         */
1920        public EntryRequest setIfNoneExist( String theString) {
1921                myIfNoneExist = new StringDt(theString); 
1922                return this; 
1923        }
1924
1925 
1926
1927
1928        }
1929
1930
1931        /**
1932         * Block class for child element: <b>Bundle.entry.response</b> ()
1933         *
1934     * <p>
1935     * <b>Definition:</b>
1936     * Additional information about how this entry should be processed as part of a transaction
1937     * </p> 
1938         */
1939        @Block()        
1940        public static class EntryResponse 
1941            extends  BaseIdentifiableElement        implements IResourceBlock {
1942        
1943        @Child(name="status", type=StringDt.class, order=0, min=1, max=1, summary=true, modifier=false) 
1944        @Description(
1945                shortDefinition="",
1946                formalDefinition="The status code returned by processing this entry"
1947        )
1948        private StringDt myStatus;
1949        
1950        @Child(name="location", type=UriDt.class, order=1, min=0, max=1, summary=true, modifier=false)  
1951        @Description(
1952                shortDefinition="",
1953                formalDefinition="The location header created by processing this operation"
1954        )
1955        private UriDt myLocation;
1956        
1957        @Child(name="etag", type=StringDt.class, order=2, min=0, max=1, summary=true, modifier=false)   
1958        @Description(
1959                shortDefinition="",
1960                formalDefinition="The etag for the resource, it the operation for the entry produced a versioned resource"
1961        )
1962        private StringDt myEtag;
1963        
1964        @Child(name="lastModified", type=InstantDt.class, order=3, min=0, max=1, summary=true, modifier=false)  
1965        @Description(
1966                shortDefinition="",
1967                formalDefinition="The date/time that the resource was modified on the server"
1968        )
1969        private InstantDt myLastModified;
1970        
1971
1972        @Override
1973        public boolean isEmpty() {
1974                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myStatus,  myLocation,  myEtag,  myLastModified);
1975        }
1976        
1977        @Override
1978        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1979                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myStatus, myLocation, myEtag, myLastModified);
1980        }
1981
1982        /**
1983         * Gets the value(s) for <b>status</b> ().
1984         * creating it if it does
1985         * not exist. Will not return <code>null</code>.
1986         *
1987     * <p>
1988     * <b>Definition:</b>
1989     * The status code returned by processing this entry
1990     * </p> 
1991         */
1992        public StringDt getStatusElement() {  
1993                if (myStatus == null) {
1994                        myStatus = new StringDt();
1995                }
1996                return myStatus;
1997        }
1998
1999        
2000        /**
2001         * Gets the value(s) for <b>status</b> ().
2002         * creating it if it does
2003         * not exist. Will not return <code>null</code>.
2004         *
2005     * <p>
2006     * <b>Definition:</b>
2007     * The status code returned by processing this entry
2008     * </p> 
2009         */
2010        public String getStatus() {  
2011                return getStatusElement().getValue();
2012        }
2013
2014        /**
2015         * Sets the value(s) for <b>status</b> ()
2016         *
2017     * <p>
2018     * <b>Definition:</b>
2019     * The status code returned by processing this entry
2020     * </p> 
2021         */
2022        public EntryResponse setStatus(StringDt theValue) {
2023                myStatus = theValue;
2024                return this;
2025        }
2026        
2027        
2028
2029        /**
2030         * Sets the value for <b>status</b> ()
2031         *
2032     * <p>
2033     * <b>Definition:</b>
2034     * The status code returned by processing this entry
2035     * </p> 
2036         */
2037        public EntryResponse setStatus( String theString) {
2038                myStatus = new StringDt(theString); 
2039                return this; 
2040        }
2041
2042 
2043        /**
2044         * Gets the value(s) for <b>location</b> ().
2045         * creating it if it does
2046         * not exist. Will not return <code>null</code>.
2047         *
2048     * <p>
2049     * <b>Definition:</b>
2050     * The location header created by processing this operation
2051     * </p> 
2052         */
2053        public UriDt getLocationElement() {  
2054                if (myLocation == null) {
2055                        myLocation = new UriDt();
2056                }
2057                return myLocation;
2058        }
2059
2060        
2061        /**
2062         * Gets the value(s) for <b>location</b> ().
2063         * creating it if it does
2064         * not exist. Will not return <code>null</code>.
2065         *
2066     * <p>
2067     * <b>Definition:</b>
2068     * The location header created by processing this operation
2069     * </p> 
2070         */
2071        public String getLocation() {  
2072                return getLocationElement().getValue();
2073        }
2074
2075        /**
2076         * Sets the value(s) for <b>location</b> ()
2077         *
2078     * <p>
2079     * <b>Definition:</b>
2080     * The location header created by processing this operation
2081     * </p> 
2082         */
2083        public EntryResponse setLocation(UriDt theValue) {
2084                myLocation = theValue;
2085                return this;
2086        }
2087        
2088        
2089
2090        /**
2091         * Sets the value for <b>location</b> ()
2092         *
2093     * <p>
2094     * <b>Definition:</b>
2095     * The location header created by processing this operation
2096     * </p> 
2097         */
2098        public EntryResponse setLocation( String theUri) {
2099                myLocation = new UriDt(theUri); 
2100                return this; 
2101        }
2102
2103 
2104        /**
2105         * Gets the value(s) for <b>etag</b> ().
2106         * creating it if it does
2107         * not exist. Will not return <code>null</code>.
2108         *
2109     * <p>
2110     * <b>Definition:</b>
2111     * The etag for the resource, it the operation for the entry produced a versioned resource
2112     * </p> 
2113         */
2114        public StringDt getEtagElement() {  
2115                if (myEtag == null) {
2116                        myEtag = new StringDt();
2117                }
2118                return myEtag;
2119        }
2120
2121        
2122        /**
2123         * Gets the value(s) for <b>etag</b> ().
2124         * creating it if it does
2125         * not exist. Will not return <code>null</code>.
2126         *
2127     * <p>
2128     * <b>Definition:</b>
2129     * The etag for the resource, it the operation for the entry produced a versioned resource
2130     * </p> 
2131         */
2132        public String getEtag() {  
2133                return getEtagElement().getValue();
2134        }
2135
2136        /**
2137         * Sets the value(s) for <b>etag</b> ()
2138         *
2139     * <p>
2140     * <b>Definition:</b>
2141     * The etag for the resource, it the operation for the entry produced a versioned resource
2142     * </p> 
2143         */
2144        public EntryResponse setEtag(StringDt theValue) {
2145                myEtag = theValue;
2146                return this;
2147        }
2148        
2149        
2150
2151        /**
2152         * Sets the value for <b>etag</b> ()
2153         *
2154     * <p>
2155     * <b>Definition:</b>
2156     * The etag for the resource, it the operation for the entry produced a versioned resource
2157     * </p> 
2158         */
2159        public EntryResponse setEtag( String theString) {
2160                myEtag = new StringDt(theString); 
2161                return this; 
2162        }
2163
2164 
2165        /**
2166         * Gets the value(s) for <b>lastModified</b> ().
2167         * creating it if it does
2168         * not exist. Will not return <code>null</code>.
2169         *
2170     * <p>
2171     * <b>Definition:</b>
2172     * The date/time that the resource was modified on the server
2173     * </p> 
2174         */
2175        public InstantDt getLastModifiedElement() {  
2176                if (myLastModified == null) {
2177                        myLastModified = new InstantDt();
2178                }
2179                return myLastModified;
2180        }
2181
2182        
2183        /**
2184         * Gets the value(s) for <b>lastModified</b> ().
2185         * creating it if it does
2186         * not exist. Will not return <code>null</code>.
2187         *
2188     * <p>
2189     * <b>Definition:</b>
2190     * The date/time that the resource was modified on the server
2191     * </p> 
2192         */
2193        public Date getLastModified() {  
2194                return getLastModifiedElement().getValue();
2195        }
2196
2197        /**
2198         * Sets the value(s) for <b>lastModified</b> ()
2199         *
2200     * <p>
2201     * <b>Definition:</b>
2202     * The date/time that the resource was modified on the server
2203     * </p> 
2204         */
2205        public EntryResponse setLastModified(InstantDt theValue) {
2206                myLastModified = theValue;
2207                return this;
2208        }
2209        
2210        
2211
2212        /**
2213         * Sets the value for <b>lastModified</b> ()
2214         *
2215     * <p>
2216     * <b>Definition:</b>
2217     * The date/time that the resource was modified on the server
2218     * </p> 
2219         */
2220        public EntryResponse setLastModifiedWithMillisPrecision( Date theDate) {
2221                myLastModified = new InstantDt(theDate); 
2222                return this; 
2223        }
2224
2225        /**
2226         * Sets the value for <b>lastModified</b> ()
2227         *
2228     * <p>
2229     * <b>Definition:</b>
2230     * The date/time that the resource was modified on the server
2231     * </p> 
2232         */
2233        public EntryResponse setLastModified( Date theDate,  TemporalPrecisionEnum thePrecision) {
2234                myLastModified = new InstantDt(theDate, thePrecision); 
2235                return this; 
2236        }
2237
2238 
2239
2240
2241        }
2242
2243
2244
2245
2246
2247    @Override
2248    public String getResourceName() {
2249        return "Bundle";
2250    }
2251    
2252    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
2253        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
2254    }
2255
2256        /**
2257         * Returns the {@link #getLink() link} which matches a given {@link Link#getRelation() relation}. 
2258         * If no link is found which matches the given relation, returns <code>null</code>. If more than one
2259         * link is found which matches the given relation, returns the first matching Link.
2260         * 
2261         * @param theRelation
2262         *            The relation, such as "next", or "self. See the constants such as {@link IBaseBundle#LINK_SELF} and {@link IBaseBundle#LINK_NEXT}.
2263         * @return Returns a matching Link, or <code>null</code>
2264         * @see IBaseBundle#LINK_NEXT
2265         * @see IBaseBundle#LINK_PREV
2266         * @see IBaseBundle#LINK_SELF
2267         */
2268        public Link getLink(String theRelation) {
2269                org.apache.commons.lang3.Validate.notBlank(theRelation, "theRelation may not be null or empty");
2270                for (Link next : getLink()) {
2271                        if (theRelation.equals(next.getRelation())) {
2272                                return next;
2273                        }
2274                }
2275                return null;
2276        }
2277
2278        /**
2279         * Returns the {@link #getLink() link} which matches a given {@link Link#getRelation() relation}. 
2280         * If no link is found which matches the given relation, creates a new Link with the
2281         * given relation and adds it to this Bundle. If more than one
2282         * link is found which matches the given relation, returns the first matching Link.
2283         * 
2284         * @param theRelation
2285         *            The relation, such as "next", or "self. See the constants such as {@link IBaseBundle#LINK_SELF} and {@link IBaseBundle#LINK_NEXT}.
2286         * @return Returns a matching Link, or <code>null</code>
2287         * @see IBaseBundle#LINK_NEXT
2288         * @see IBaseBundle#LINK_PREV
2289         * @see IBaseBundle#LINK_SELF
2290         */
2291        public Link getLinkOrCreate(String theRelation) {
2292                org.apache.commons.lang3.Validate.notBlank(theRelation, "theRelation may not be null or empty");
2293                for (Link next : getLink()) {
2294                        if (theRelation.equals(next.getRelation())) {
2295                                return next;
2296                        }
2297                }
2298                Link retVal = new Link();
2299                retVal.setRelation(theRelation);
2300                getLink().add(retVal);
2301                return retVal;
2302        }
2303
2304}