001package org.hl7.fhir.r5.model;
002
003/*
004  Copyright (c) 2011+, HL7, Inc.
005  All rights reserved.
006  
007  Redistribution and use in source and binary forms, with or without modification, \
008  are permitted provided that the following conditions are met:
009  
010   * Redistributions of source code must retain the above copyright notice, this \
011     list of conditions and the following disclaimer.
012   * Redistributions in binary form must reproduce the above copyright notice, \
013     this list of conditions and the following disclaimer in the documentation \
014     and/or other materials provided with the distribution.
015   * Neither the name of HL7 nor the names of its contributors may be used to 
016     endorse or promote products derived from this software without specific 
017     prior written permission.
018  
019  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
020  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
021  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
022  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
023  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
024  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
025  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
026  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
027  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
028  POSSIBILITY OF SUCH DAMAGE.
029  */
030
031// Generated on Tue, Dec 13, 2022 17:53+1100 for FHIR vcurrent
032
033
034  
035import org.hl7.fhir.exceptions.FHIRException;
036
037public class ResourceFactory extends Factory {
038
039    public static Resource createResource(String name) throws FHIRException {
040        if ("Account".equals(name))
041            return new Account();
042        if ("ActivityDefinition".equals(name))
043            return new ActivityDefinition();
044        if ("ActorDefinition".equals(name))
045            return new ActorDefinition();
046        if ("AdministrableProductDefinition".equals(name))
047            return new AdministrableProductDefinition();
048        if ("AdverseEvent".equals(name))
049            return new AdverseEvent();
050        if ("AllergyIntolerance".equals(name))
051            return new AllergyIntolerance();
052        if ("Appointment".equals(name))
053            return new Appointment();
054        if ("AppointmentResponse".equals(name))
055            return new AppointmentResponse();
056        if ("ArtifactAssessment".equals(name))
057            return new ArtifactAssessment();
058        if ("AuditEvent".equals(name))
059            return new AuditEvent();
060        if ("Basic".equals(name))
061            return new Basic();
062        if ("Binary".equals(name))
063            return new Binary();
064        if ("BiologicallyDerivedProduct".equals(name))
065            return new BiologicallyDerivedProduct();
066        if ("BodyStructure".equals(name))
067            return new BodyStructure();
068        if ("Bundle".equals(name))
069            return new Bundle();
070        if ("CapabilityStatement".equals(name))
071            return new CapabilityStatement();
072        if ("CarePlan".equals(name))
073            return new CarePlan();
074        if ("CareTeam".equals(name))
075            return new CareTeam();
076        if ("ChargeItem".equals(name))
077            return new ChargeItem();
078        if ("ChargeItemDefinition".equals(name))
079            return new ChargeItemDefinition();
080        if ("Citation".equals(name))
081            return new Citation();
082        if ("Claim".equals(name))
083            return new Claim();
084        if ("ClaimResponse".equals(name))
085            return new ClaimResponse();
086        if ("ClinicalImpression".equals(name))
087            return new ClinicalImpression();
088        if ("ClinicalUseDefinition".equals(name))
089            return new ClinicalUseDefinition();
090        if ("CodeSystem".equals(name))
091            return new CodeSystem();
092        if ("Communication".equals(name))
093            return new Communication();
094        if ("CommunicationRequest".equals(name))
095            return new CommunicationRequest();
096        if ("CompartmentDefinition".equals(name))
097            return new CompartmentDefinition();
098        if ("Composition".equals(name))
099            return new Composition();
100        if ("ConceptMap".equals(name))
101            return new ConceptMap();
102        if ("Condition".equals(name))
103            return new Condition();
104        if ("ConditionDefinition".equals(name))
105            return new ConditionDefinition();
106        if ("Consent".equals(name))
107            return new Consent();
108        if ("Contract".equals(name))
109            return new Contract();
110        if ("Coverage".equals(name))
111            return new Coverage();
112        if ("CoverageEligibilityRequest".equals(name))
113            return new CoverageEligibilityRequest();
114        if ("CoverageEligibilityResponse".equals(name))
115            return new CoverageEligibilityResponse();
116        if ("DetectedIssue".equals(name))
117            return new DetectedIssue();
118        if ("Device".equals(name))
119            return new Device();
120        if ("DeviceDefinition".equals(name))
121            return new DeviceDefinition();
122        if ("DeviceDispense".equals(name))
123            return new DeviceDispense();
124        if ("DeviceMetric".equals(name))
125            return new DeviceMetric();
126        if ("DeviceRequest".equals(name))
127            return new DeviceRequest();
128        if ("DeviceUsage".equals(name))
129            return new DeviceUsage();
130        if ("DiagnosticReport".equals(name))
131            return new DiagnosticReport();
132        if ("DocumentManifest".equals(name))
133            return new DocumentManifest();
134        if ("DocumentReference".equals(name))
135            return new DocumentReference();
136        if ("Encounter".equals(name))
137            return new Encounter();
138        if ("Endpoint".equals(name))
139            return new Endpoint();
140        if ("EnrollmentRequest".equals(name))
141            return new EnrollmentRequest();
142        if ("EnrollmentResponse".equals(name))
143            return new EnrollmentResponse();
144        if ("EpisodeOfCare".equals(name))
145            return new EpisodeOfCare();
146        if ("EventDefinition".equals(name))
147            return new EventDefinition();
148        if ("Evidence".equals(name))
149            return new Evidence();
150        if ("EvidenceReport".equals(name))
151            return new EvidenceReport();
152        if ("EvidenceVariable".equals(name))
153            return new EvidenceVariable();
154        if ("ExampleScenario".equals(name))
155            return new ExampleScenario();
156        if ("ExplanationOfBenefit".equals(name))
157            return new ExplanationOfBenefit();
158        if ("FamilyMemberHistory".equals(name))
159            return new FamilyMemberHistory();
160        if ("Flag".equals(name))
161            return new Flag();
162        if ("FormularyItem".equals(name))
163            return new FormularyItem();
164        if ("GenomicStudy".equals(name))
165            return new GenomicStudy();
166        if ("Goal".equals(name))
167            return new Goal();
168        if ("GraphDefinition".equals(name))
169            return new GraphDefinition();
170        if ("Group".equals(name))
171            return new Group();
172        if ("GuidanceResponse".equals(name))
173            return new GuidanceResponse();
174        if ("HealthcareService".equals(name))
175            return new HealthcareService();
176        if ("ImagingSelection".equals(name))
177            return new ImagingSelection();
178        if ("ImagingStudy".equals(name))
179            return new ImagingStudy();
180        if ("Immunization".equals(name))
181            return new Immunization();
182        if ("ImmunizationEvaluation".equals(name))
183            return new ImmunizationEvaluation();
184        if ("ImmunizationRecommendation".equals(name))
185            return new ImmunizationRecommendation();
186        if ("ImplementationGuide".equals(name))
187            return new ImplementationGuide();
188        if ("Ingredient".equals(name))
189            return new Ingredient();
190        if ("InsurancePlan".equals(name))
191            return new InsurancePlan();
192        if ("InventoryReport".equals(name))
193            return new InventoryReport();
194        if ("Invoice".equals(name))
195            return new Invoice();
196        if ("Library".equals(name))
197            return new Library();
198        if ("Linkage".equals(name))
199            return new Linkage();
200        if ("List".equals(name))
201            return new ListResource();
202        if ("Location".equals(name))
203            return new Location();
204        if ("ManufacturedItemDefinition".equals(name))
205            return new ManufacturedItemDefinition();
206        if ("Measure".equals(name))
207            return new Measure();
208        if ("MeasureReport".equals(name))
209            return new MeasureReport();
210        if ("Medication".equals(name))
211            return new Medication();
212        if ("MedicationAdministration".equals(name))
213            return new MedicationAdministration();
214        if ("MedicationDispense".equals(name))
215            return new MedicationDispense();
216        if ("MedicationKnowledge".equals(name))
217            return new MedicationKnowledge();
218        if ("MedicationRequest".equals(name))
219            return new MedicationRequest();
220        if ("MedicationUsage".equals(name))
221            return new MedicationUsage();
222        if ("MedicinalProductDefinition".equals(name))
223            return new MedicinalProductDefinition();
224        if ("MessageDefinition".equals(name))
225            return new MessageDefinition();
226        if ("MessageHeader".equals(name))
227            return new MessageHeader();
228        if ("MolecularSequence".equals(name))
229            return new MolecularSequence();
230        if ("NamingSystem".equals(name))
231            return new NamingSystem();
232        if ("NutritionIntake".equals(name))
233            return new NutritionIntake();
234        if ("NutritionOrder".equals(name))
235            return new NutritionOrder();
236        if ("NutritionProduct".equals(name))
237            return new NutritionProduct();
238        if ("Observation".equals(name))
239            return new Observation();
240        if ("ObservationDefinition".equals(name))
241            return new ObservationDefinition();
242        if ("OperationDefinition".equals(name))
243            return new OperationDefinition();
244        if ("OperationOutcome".equals(name))
245            return new OperationOutcome();
246        if ("Organization".equals(name))
247            return new Organization();
248        if ("OrganizationAffiliation".equals(name))
249            return new OrganizationAffiliation();
250        if ("PackagedProductDefinition".equals(name))
251            return new PackagedProductDefinition();
252        if ("Parameters".equals(name))
253            return new Parameters();
254        if ("Patient".equals(name))
255            return new Patient();
256        if ("PaymentNotice".equals(name))
257            return new PaymentNotice();
258        if ("PaymentReconciliation".equals(name))
259            return new PaymentReconciliation();
260        if ("Permission".equals(name))
261            return new Permission();
262        if ("Person".equals(name))
263            return new Person();
264        if ("PlanDefinition".equals(name))
265            return new PlanDefinition();
266        if ("Practitioner".equals(name))
267            return new Practitioner();
268        if ("PractitionerRole".equals(name))
269            return new PractitionerRole();
270        if ("Procedure".equals(name))
271            return new Procedure();
272        if ("Provenance".equals(name))
273            return new Provenance();
274        if ("Questionnaire".equals(name))
275            return new Questionnaire();
276        if ("QuestionnaireResponse".equals(name))
277            return new QuestionnaireResponse();
278        if ("RegulatedAuthorization".equals(name))
279            return new RegulatedAuthorization();
280        if ("RelatedPerson".equals(name))
281            return new RelatedPerson();
282        if ("RequestOrchestration".equals(name))
283            return new RequestOrchestration();
284        if ("Requirements".equals(name))
285            return new Requirements();
286        if ("ResearchStudy".equals(name))
287            return new ResearchStudy();
288        if ("ResearchSubject".equals(name))
289            return new ResearchSubject();
290        if ("RiskAssessment".equals(name))
291            return new RiskAssessment();
292        if ("Schedule".equals(name))
293            return new Schedule();
294        if ("SearchParameter".equals(name))
295            return new SearchParameter();
296        if ("ServiceRequest".equals(name))
297            return new ServiceRequest();
298        if ("Slot".equals(name))
299            return new Slot();
300        if ("Specimen".equals(name))
301            return new Specimen();
302        if ("SpecimenDefinition".equals(name))
303            return new SpecimenDefinition();
304        if ("StructureDefinition".equals(name))
305            return new StructureDefinition();
306        if ("StructureMap".equals(name))
307            return new StructureMap();
308        if ("Subscription".equals(name))
309            return new Subscription();
310        if ("SubscriptionStatus".equals(name))
311            return new SubscriptionStatus();
312        if ("SubscriptionTopic".equals(name))
313            return new SubscriptionTopic();
314        if ("Substance".equals(name))
315            return new Substance();
316        if ("SubstanceDefinition".equals(name))
317            return new SubstanceDefinition();
318        if ("SubstanceNucleicAcid".equals(name))
319            return new SubstanceNucleicAcid();
320        if ("SubstancePolymer".equals(name))
321            return new SubstancePolymer();
322        if ("SubstanceProtein".equals(name))
323            return new SubstanceProtein();
324        if ("SubstanceReferenceInformation".equals(name))
325            return new SubstanceReferenceInformation();
326        if ("SubstanceSourceMaterial".equals(name))
327            return new SubstanceSourceMaterial();
328        if ("SupplyDelivery".equals(name))
329            return new SupplyDelivery();
330        if ("SupplyRequest".equals(name))
331            return new SupplyRequest();
332        if ("Task".equals(name))
333            return new Task();
334        if ("TerminologyCapabilities".equals(name))
335            return new TerminologyCapabilities();
336        if ("TestReport".equals(name))
337            return new TestReport();
338        if ("TestScript".equals(name))
339            return new TestScript();
340        if ("Transport".equals(name))
341            return new Transport();
342        if ("ValueSet".equals(name))
343            return new ValueSet();
344        if ("VerificationResult".equals(name))
345            return new VerificationResult();
346        if ("VisionPrescription".equals(name))
347            return new VisionPrescription();
348
349        else
350            throw new FHIRException("Unknown Resource Name '"+name+"'");
351    }
352
353    public static Element createType(String name) throws FHIRException {
354        if ("base64Binary".equals(name))            
355          return new Base64BinaryType();
356        if ("boolean".equals(name))            
357          return new BooleanType();
358        if ("canonical".equals(name))            
359          return new CanonicalType();
360        if ("code".equals(name))            
361          return new CodeType();
362        if ("date".equals(name))            
363          return new DateType();
364        if ("dateTime".equals(name))            
365          return new DateTimeType();
366        if ("decimal".equals(name))            
367          return new DecimalType();
368        if ("id".equals(name))            
369          return new IdType();
370        if ("instant".equals(name))            
371          return new InstantType();
372        if ("integer".equals(name))            
373          return new IntegerType();
374        if ("integer64".equals(name))            
375          return new Integer64Type();
376        if ("markdown".equals(name))            
377          return new MarkdownType();
378        if ("oid".equals(name))            
379          return new OidType();
380        if ("positiveInt".equals(name))            
381          return new PositiveIntType();
382        if ("string".equals(name))            
383          return new StringType();
384        if ("time".equals(name))            
385          return new TimeType();
386        if ("unsignedInt".equals(name))            
387          return new UnsignedIntType();
388        if ("uri".equals(name))            
389          return new UriType();
390        if ("url".equals(name))            
391          return new UrlType();
392        if ("uuid".equals(name))            
393          return new UuidType();
394        if ("Address".equals(name))
395            return new Address();
396        if ("Age".equals(name))
397            return new Age();
398        if ("Annotation".equals(name))
399            return new Annotation();
400        if ("Attachment".equals(name))
401            return new Attachment();
402        if ("Availability".equals(name))
403            return new Availability();
404        if ("CodeableConcept".equals(name))
405            return new CodeableConcept();
406        if ("CodeableReference".equals(name))
407            return new CodeableReference();
408        if ("Coding".equals(name))
409            return new Coding();
410        if ("ContactDetail".equals(name))
411            return new ContactDetail();
412        if ("ContactPoint".equals(name))
413            return new ContactPoint();
414        if ("Contributor".equals(name))
415            return new Contributor();
416        if ("Count".equals(name))
417            return new Count();
418        if ("DataRequirement".equals(name))
419            return new DataRequirement();
420        if ("Distance".equals(name))
421            return new Distance();
422        if ("Dosage".equals(name))
423            return new Dosage();
424        if ("Duration".equals(name))
425            return new Duration();
426        if ("ElementDefinition".equals(name))
427            return new ElementDefinition();
428        if ("Expression".equals(name))
429            return new Expression();
430        if ("ExtendedContactDetail".equals(name))
431            return new ExtendedContactDetail();
432        if ("Extension".equals(name))
433            return new Extension();
434        if ("HumanName".equals(name))
435            return new HumanName();
436        if ("Identifier".equals(name))
437            return new Identifier();
438        if ("MarketingStatus".equals(name))
439            return new MarketingStatus();
440        if ("Meta".equals(name))
441            return new Meta();
442        if ("MonetaryComponent".equals(name))
443            return new MonetaryComponent();
444        if ("Money".equals(name))
445            return new Money();
446        if ("Narrative".equals(name))
447            return new Narrative();
448        if ("ParameterDefinition".equals(name))
449            return new ParameterDefinition();
450        if ("Period".equals(name))
451            return new Period();
452        if ("Population".equals(name))
453            return new Population();
454        if ("ProductShelfLife".equals(name))
455            return new ProductShelfLife();
456        if ("Quantity".equals(name))
457            return new Quantity();
458        if ("Range".equals(name))
459            return new Range();
460        if ("Ratio".equals(name))
461            return new Ratio();
462        if ("RatioRange".equals(name))
463            return new RatioRange();
464        if ("Reference".equals(name))
465            return new Reference();
466        if ("RelatedArtifact".equals(name))
467            return new RelatedArtifact();
468        if ("SampledData".equals(name))
469            return new SampledData();
470        if ("Signature".equals(name))
471            return new Signature();
472        if ("Timing".equals(name))
473            return new Timing();
474        if ("TriggerDefinition".equals(name))
475            return new TriggerDefinition();
476        if ("UsageContext".equals(name))
477            return new UsageContext();
478        if ("VirtualServiceDetail".equals(name))
479            return new VirtualServiceDetail();
480
481        else
482            throw new FHIRException("Unknown Type Name '"+name+"'");    }
483
484    public static Base createResourceOrType(String name) throws FHIRException {
485      switch (name.hashCode()) {
486        case -1216012752: return new Base64BinaryType();
487        case 64711720: return new BooleanType();
488        case 828351732: return new CanonicalType();
489        case 3059181: return new CodeType();
490        case 3076014: return new DateType();
491        case 1792749467: return new DateTimeType();
492        case 1542263633: return new DecimalType();
493        case 3355: return new IdType();
494        case 1957570017: return new InstantType();
495        case 1958052158: return new IntegerType();
496        case 246938863: return new MarkdownType();
497        case 110026: return new OidType();
498        case -131262666: return new PositiveIntType();
499        case -891985903: return new StringType();
500        case 3560141: return new TimeType();
501        case 1145198778: return new UnsignedIntType();
502        case 116076: return new UriType();
503        case 116079: return new UrlType();
504        case 3601339: return new UuidType();
505        case 487334413: return new Account();
506        case 851278306: return new ActivityDefinition();
507        case 454247688: return new ActorDefinition();
508        case 1643210993: return new AdministrableProductDefinition();
509        case -329624856: return new AdverseEvent();
510        case 1721380104: return new AllergyIntolerance();
511        case 192873343: return new Appointment();
512        case 1733332192: return new AppointmentResponse();
513        case -1438435756: return new ArtifactAssessment();
514        case -632949857: return new AuditEvent();
515        case 63955982: return new Basic();
516        case 1989867553: return new Binary();
517        case -310041824: return new BiologicallyDerivedProduct();
518        case -202769967: return new BodyStructure();
519        case 2000952482: return new Bundle();
520        case -871422185: return new CapabilityStatement();
521        case 57208314: return new CarePlan();
522        case 57320750: return new CareTeam();
523        case -883723257: return new ChargeItem();
524        case -315725638: return new ChargeItemDefinition();
525        case -1378062585: return new Citation();
526        case 65189916: return new Claim();
527        case 1488475261: return new ClaimResponse();
528        case -1268501092: return new ClinicalImpression();
529        case 462236103: return new ClinicalUseDefinition();
530        case 1076953756: return new CodeSystem();
531        case -236322890: return new Communication();
532        case -1874423303: return new CommunicationRequest();
533        case 1287805733: return new CompartmentDefinition();
534        case 828944778: return new Composition();
535        case 57185780: return new ConceptMap();
536        case 1142656251: return new Condition();
537        case 1722998958: return new ConditionDefinition();
538        case -1678813190: return new Consent();
539        case -502303438: return new Contract();
540        case -287122936: return new Coverage();
541        case -140860822: return new CoverageEligibilityRequest();
542        case -18784314: return new CoverageEligibilityResponse();
543        case 850563927: return new DetectedIssue();
544        case 2043677302: return new Device();
545        case 1083244649: return new DeviceDefinition();
546        case -1031366157: return new DeviceDispense();
547        case -949306426: return new DeviceMetric();
548        case 776138553: return new DeviceRequest();
549        case 115711179: return new DeviceUsage();
550        case -1122842661: return new DiagnosticReport();
551        case 1922784394: return new DocumentManifest();
552        case -1202791344: return new DocumentReference();
553        case -766867181: return new Encounter();
554        case 1805746613: return new Endpoint();
555        case -1377846581: return new EnrollmentRequest();
556        case 289362821: return new EnrollmentResponse();
557        case -1093178557: return new EpisodeOfCare();
558        case 1851868013: return new EventDefinition();
559        case 447611511: return new Evidence();
560        case -715436405: return new EvidenceReport();
561        case -1162161645: return new EvidenceVariable();
562        case 1175230202: return new ExampleScenario();
563        case -1001676601: return new ExplanationOfBenefit();
564        case 1260711798: return new FamilyMemberHistory();
565        case 2192268: return new Flag();
566        case 1238228672: return new FormularyItem();
567        case -1128240127: return new GenomicStudy();
568        case 2224947: return new Goal();
569        case -180371167: return new GraphDefinition();
570        case 69076575: return new Group();
571        case 997117913: return new GuidanceResponse();
572        case 933423720: return new HealthcareService();
573        case -1650574028: return new ImagingSelection();
574        case -650580623: return new ImagingStudy();
575        case -2004863454: return new Immunization();
576        case -1768794370: return new ImmunizationEvaluation();
577        case 1728372347: return new ImmunizationRecommendation();
578        case 1410262602: return new ImplementationGuide();
579        case 1787055601: return new Ingredient();
580        case -1503864573: return new InsurancePlan();
581        case 1884986768: return new InventoryReport();
582        case -670115059: return new Invoice();
583        case 1830861979: return new Library();
584        case 1841735333: return new Linkage();
585        case 2368702: return new ListResource();
586        case 1965687765: return new Location();
587        case -116700279: return new ManufacturedItemDefinition();
588        case -1691992770: return new Measure();
589        case 1681397778: return new MeasureReport();
590        case -302536977: return new Medication();
591        case -342579923: return new MedicationAdministration();
592        case -408244884: return new MedicationDispense();
593        case 1537687119: return new MedicationKnowledge();
594        case 1627523232: return new MedicationRequest();
595        case 362406898: return new MedicationUsage();
596        case -1378257556: return new MedicinalProductDefinition();
597        case -2037697382: return new MessageDefinition();
598        case -1087398572: return new MessageHeader();
599        case -1839726095: return new MolecularSequence();
600        case 369315063: return new NamingSystem();
601        case -146918204: return new NutritionIntake();
602        case 1247831734: return new NutritionOrder();
603        case 1768059479: return new NutritionProduct();
604        case 1790214156: return new Observation();
605        case 673706623: return new ObservationDefinition();
606        case -2140710406: return new OperationDefinition();
607        case -526550005: return new OperationOutcome();
608        case 1343242579: return new Organization();
609        case 2069161885: return new OrganizationAffiliation();
610        case 577413700: return new PackagedProductDefinition();
611        case -1842766326: return new Parameters();
612        case 873235173: return new Patient();
613        case 2082457694: return new PaymentNotice();
614        case 28778089: return new PaymentReconciliation();
615        case 1475846639: return new Permission();
616        case -1907849355: return new Person();
617        case 1401244028: return new PlanDefinition();
618        case 738893626: return new Practitioner();
619        case -621058352: return new PractitionerRole();
620        case 908763827: return new Procedure();
621        case 2093211201: return new Provenance();
622        case -218088061: return new Questionnaire();
623        case 269058788: return new QuestionnaireResponse();
624        case 2137545436: return new RegulatedAuthorization();
625        case 846088000: return new RelatedPerson();
626        case 1880382482: return new RequestOrchestration();
627        case -1455554384: return new Requirements();
628        case 1312904398: return new ResearchStudy();
629        case -1008013583: return new ResearchSubject();
630        case -766422255: return new RiskAssessment();
631        case -633276745: return new Schedule();
632        case -912457023: return new SearchParameter();
633        case -1944810950: return new ServiceRequest();
634        case 2579998: return new Slot();
635        case -2068224216: return new Specimen();
636        case 863741595: return new SpecimenDefinition();
637        case 1133777670: return new StructureDefinition();
638        case 1958247177: return new StructureMap();
639        case 505523517: return new Subscription();
640        case 108709775: return new SubscriptionStatus();
641        case 835579378: return new SubscriptionTopic();
642        case -1760959152: return new Substance();
643        case 1971491523: return new SubstanceDefinition();
644        case -300807236: return new SubstanceNucleicAcid();
645        case 1272939294: return new SubstancePolymer();
646        case 1361440787: return new SubstanceProtein();
647        case 159007313: return new SubstanceReferenceInformation();
648        case -222622766: return new SubstanceSourceMaterial();
649        case 383030819: return new SupplyDelivery();
650        case 665843328: return new SupplyRequest();
651        case 2599333: return new Task();
652        case -549565975: return new TerminologyCapabilities();
653        case -616289146: return new TestReport();
654        case -589453283: return new TestScript();
655        case -1238034679: return new Transport();
656        case -1345530543: return new ValueSet();
657        case 957089336: return new VerificationResult();
658        case -555387838: return new VisionPrescription();
659        case 516961236: return new Address();
660        case 65759: return new Age();
661        case 438421327: return new Annotation();
662        case 29963587: return new Attachment();
663        case -2133104261: return new Availability();
664        case -1153521791: return new CodeableConcept();
665        case -464287196: return new CodeableReference();
666        case 2023747466: return new Coding();
667        case 973193329: return new ContactDetail();
668        case 1428236656: return new ContactPoint();
669        case -227407685: return new Contributor();
670        case 65298671: return new Count();
671        case -367870439: return new DataRequirement();
672        case 353103893: return new Distance();
673        case 2052815575: return new Dosage();
674        case -1927368268: return new Duration();
675        case -1605049009: return new ElementDefinition();
676        case 198012600: return new Expression();
677        case 1711712184: return new ExtendedContactDetail();
678        case 1391410207: return new Extension();
679        case 1592332600: return new HumanName();
680        case 375032009: return new Identifier();
681        case -926250600: return new MarketingStatus();
682        case 2394661: return new Meta();
683        case -1336076400: return new MonetaryComponent();
684        case 74526880: return new Money();
685        case -540546990: return new Narrative();
686        case 671337916: return new ParameterDefinition();
687        case -1907858975: return new Period();
688        case -30093459: return new Population();
689        case 1209602103: return new ProductShelfLife();
690        case -1220360021: return new Quantity();
691        case 78727453: return new Range();
692        case 78733291: return new Ratio();
693        case -200924142: return new RatioRange();
694        case 1078812459: return new Reference();
695        case -330210563: return new RelatedArtifact();
696        case 1824308900: return new SampledData();
697        case -1217415016: return new Signature();
698        case -1789797270: return new Timing();
699        case 770498827: return new TriggerDefinition();
700        case 1071332590: return new UsageContext();
701        case 1218149947: return new VirtualServiceDetail();
702
703      default:
704        throw new FHIRException("Unknown Resource or Type Name '"+name+"'");
705    }
706  }
707
708    public static DataType createPrimitive(String type, String value) {
709      switch (type) {
710      case "boolean": return new BooleanType(value);
711      case "integer": return new IntegerType(value);
712      case "integer64": return new Integer64Type(value);
713      case "string": return new StringType(value);
714      case "decimal": return new DecimalType(value);
715      case "uri": return new UriType(value);
716      case "url": return new UrlType(value);
717      case "canonical": return new CanonicalType(value);
718      case "base64Binary": return new Base64BinaryType(value);
719      case "instant": return new InstantType(value);
720      case "date": return new DateType(value);
721      case "dateTime": return new DateTimeType(value);
722      case "time": return new TimeType(value);
723      case "code": return new CodeType(value);
724      case "oid": return new OidType(value);
725      case "id": return new IdType(value);
726      case "markdown": return new MarkdownType(value);
727      case "unsignedInt": return new UnsignedIntType(value);
728      case "positiveInt": return new PositiveIntType(value);
729      case "uuid": return new UuidType(value);
730      default:
731        throw new FHIRException("Unknown Primitive Type '"+type+"'");
732      }
733    }
734
735}