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 28, 2021 07:16+1100 for FHIR v5.0.0-snapshot1
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 ("AdministrableProductDefinition".equals(name))
045            return new AdministrableProductDefinition();
046        if ("AdverseEvent".equals(name))
047            return new AdverseEvent();
048        if ("AllergyIntolerance".equals(name))
049            return new AllergyIntolerance();
050        if ("Appointment".equals(name))
051            return new Appointment();
052        if ("AppointmentResponse".equals(name))
053            return new AppointmentResponse();
054        if ("ArtifactAssessment".equals(name))
055            return new ArtifactAssessment();
056        if ("AuditEvent".equals(name))
057            return new AuditEvent();
058        if ("Basic".equals(name))
059            return new Basic();
060        if ("Binary".equals(name))
061            return new Binary();
062        if ("BiologicallyDerivedProduct".equals(name))
063            return new BiologicallyDerivedProduct();
064        if ("BodyStructure".equals(name))
065            return new BodyStructure();
066        if ("Bundle".equals(name))
067            return new Bundle();
068        if ("CapabilityStatement".equals(name))
069            return new CapabilityStatement();
070        if ("CapabilityStatement2".equals(name))
071            return new CapabilityStatement2();
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 ("ClinicalUseIssue".equals(name))
091            return new ClinicalUseIssue();
092        if ("CodeSystem".equals(name))
093            return new CodeSystem();
094        if ("Communication".equals(name))
095            return new Communication();
096        if ("CommunicationRequest".equals(name))
097            return new CommunicationRequest();
098        if ("CompartmentDefinition".equals(name))
099            return new CompartmentDefinition();
100        if ("Composition".equals(name))
101            return new Composition();
102        if ("ConceptMap".equals(name))
103            return new ConceptMap();
104        if ("ConceptMap2".equals(name))
105            return new ConceptMap2();
106        if ("Condition".equals(name))
107            return new Condition();
108        if ("ConditionDefinition".equals(name))
109            return new ConditionDefinition();
110        if ("Consent".equals(name))
111            return new Consent();
112        if ("Contract".equals(name))
113            return new Contract();
114        if ("Coverage".equals(name))
115            return new Coverage();
116        if ("CoverageEligibilityRequest".equals(name))
117            return new CoverageEligibilityRequest();
118        if ("CoverageEligibilityResponse".equals(name))
119            return new CoverageEligibilityResponse();
120        if ("DetectedIssue".equals(name))
121            return new DetectedIssue();
122        if ("Device".equals(name))
123            return new Device();
124        if ("DeviceDefinition".equals(name))
125            return new DeviceDefinition();
126        if ("DeviceDispense".equals(name))
127            return new DeviceDispense();
128        if ("DeviceMetric".equals(name))
129            return new DeviceMetric();
130        if ("DeviceRequest".equals(name))
131            return new DeviceRequest();
132        if ("DeviceUsage".equals(name))
133            return new DeviceUsage();
134        if ("DiagnosticReport".equals(name))
135            return new DiagnosticReport();
136        if ("DocumentManifest".equals(name))
137            return new DocumentManifest();
138        if ("DocumentReference".equals(name))
139            return new DocumentReference();
140        if ("Encounter".equals(name))
141            return new Encounter();
142        if ("Endpoint".equals(name))
143            return new Endpoint();
144        if ("EnrollmentRequest".equals(name))
145            return new EnrollmentRequest();
146        if ("EnrollmentResponse".equals(name))
147            return new EnrollmentResponse();
148        if ("EpisodeOfCare".equals(name))
149            return new EpisodeOfCare();
150        if ("EventDefinition".equals(name))
151            return new EventDefinition();
152        if ("Evidence".equals(name))
153            return new Evidence();
154        if ("EvidenceReport".equals(name))
155            return new EvidenceReport();
156        if ("EvidenceVariable".equals(name))
157            return new EvidenceVariable();
158        if ("ExampleScenario".equals(name))
159            return new ExampleScenario();
160        if ("ExplanationOfBenefit".equals(name))
161            return new ExplanationOfBenefit();
162        if ("FamilyMemberHistory".equals(name))
163            return new FamilyMemberHistory();
164        if ("Flag".equals(name))
165            return new Flag();
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 ("RequestGroup".equals(name))
283            return new RequestGroup();
284        if ("ResearchStudy".equals(name))
285            return new ResearchStudy();
286        if ("ResearchSubject".equals(name))
287            return new ResearchSubject();
288        if ("RiskAssessment".equals(name))
289            return new RiskAssessment();
290        if ("Schedule".equals(name))
291            return new Schedule();
292        if ("SearchParameter".equals(name))
293            return new SearchParameter();
294        if ("ServiceRequest".equals(name))
295            return new ServiceRequest();
296        if ("Slot".equals(name))
297            return new Slot();
298        if ("Specimen".equals(name))
299            return new Specimen();
300        if ("SpecimenDefinition".equals(name))
301            return new SpecimenDefinition();
302        if ("StructureDefinition".equals(name))
303            return new StructureDefinition();
304        if ("StructureMap".equals(name))
305            return new StructureMap();
306        if ("Subscription".equals(name))
307            return new Subscription();
308        if ("SubscriptionStatus".equals(name))
309            return new SubscriptionStatus();
310        if ("SubscriptionTopic".equals(name))
311            return new SubscriptionTopic();
312        if ("Substance".equals(name))
313            return new Substance();
314        if ("SubstanceDefinition".equals(name))
315            return new SubstanceDefinition();
316        if ("SubstanceNucleicAcid".equals(name))
317            return new SubstanceNucleicAcid();
318        if ("SubstancePolymer".equals(name))
319            return new SubstancePolymer();
320        if ("SubstanceProtein".equals(name))
321            return new SubstanceProtein();
322        if ("SubstanceReferenceInformation".equals(name))
323            return new SubstanceReferenceInformation();
324        if ("SubstanceSourceMaterial".equals(name))
325            return new SubstanceSourceMaterial();
326        if ("SupplyDelivery".equals(name))
327            return new SupplyDelivery();
328        if ("SupplyRequest".equals(name))
329            return new SupplyRequest();
330        if ("Task".equals(name))
331            return new Task();
332        if ("TerminologyCapabilities".equals(name))
333            return new TerminologyCapabilities();
334        if ("TestReport".equals(name))
335            return new TestReport();
336        if ("TestScript".equals(name))
337            return new TestScript();
338        if ("ValueSet".equals(name))
339            return new ValueSet();
340        if ("VerificationResult".equals(name))
341            return new VerificationResult();
342        if ("VisionPrescription".equals(name))
343            return new VisionPrescription();
344
345        else
346            throw new FHIRException("Unknown Resource Name '"+name+"'");
347    }
348
349    public static Element createType(String name) throws FHIRException {
350        if ("base64Binary".equals(name))            
351          return new Base64BinaryType();
352        if ("boolean".equals(name))            
353          return new BooleanType();
354        if ("canonical".equals(name))            
355          return new CanonicalType();
356        if ("code".equals(name))            
357          return new CodeType();
358        if ("date".equals(name))            
359          return new DateType();
360        if ("dateTime".equals(name))            
361          return new DateTimeType();
362        if ("decimal".equals(name))            
363          return new DecimalType();
364        if ("id".equals(name))            
365          return new IdType();
366        if ("instant".equals(name))            
367          return new InstantType();
368        if ("integer".equals(name))            
369          return new IntegerType();
370        if ("integer64".equals(name))            
371          return new Integer64Type();
372        if ("markdown".equals(name))            
373          return new MarkdownType();
374        if ("oid".equals(name))            
375          return new OidType();
376        if ("positiveInt".equals(name))            
377          return new PositiveIntType();
378        if ("string".equals(name))            
379          return new StringType();
380        if ("time".equals(name))            
381          return new TimeType();
382        if ("unsignedInt".equals(name))            
383          return new UnsignedIntType();
384        if ("uri".equals(name))            
385          return new UriType();
386        if ("url".equals(name))            
387          return new UrlType();
388        if ("uuid".equals(name))            
389          return new UuidType();
390        if ("Address".equals(name))
391            return new Address();
392        if ("Age".equals(name))
393            return new Age();
394        if ("Annotation".equals(name))
395            return new Annotation();
396        if ("Attachment".equals(name))
397            return new Attachment();
398        if ("CodeableConcept".equals(name))
399            return new CodeableConcept();
400        if ("CodeableReference".equals(name))
401            return new CodeableReference();
402        if ("Coding".equals(name))
403            return new Coding();
404        if ("ContactDetail".equals(name))
405            return new ContactDetail();
406        if ("ContactPoint".equals(name))
407            return new ContactPoint();
408        if ("Contributor".equals(name))
409            return new Contributor();
410        if ("Count".equals(name))
411            return new Count();
412        if ("DataRequirement".equals(name))
413            return new DataRequirement();
414        if ("Distance".equals(name))
415            return new Distance();
416        if ("Dosage".equals(name))
417            return new Dosage();
418        if ("Duration".equals(name))
419            return new Duration();
420        if ("ElementDefinition".equals(name))
421            return new ElementDefinition();
422        if ("Expression".equals(name))
423            return new Expression();
424        if ("Extension".equals(name))
425            return new Extension();
426        if ("HumanName".equals(name))
427            return new HumanName();
428        if ("Identifier".equals(name))
429            return new Identifier();
430        if ("MarketingStatus".equals(name))
431            return new MarketingStatus();
432        if ("Meta".equals(name))
433            return new Meta();
434        if ("Money".equals(name))
435            return new Money();
436        if ("Narrative".equals(name))
437            return new Narrative();
438        if ("ParameterDefinition".equals(name))
439            return new ParameterDefinition();
440        if ("Period".equals(name))
441            return new Period();
442        if ("Population".equals(name))
443            return new Population();
444        if ("ProdCharacteristic".equals(name))
445            return new ProdCharacteristic();
446        if ("ProductShelfLife".equals(name))
447            return new ProductShelfLife();
448        if ("Quantity".equals(name))
449            return new Quantity();
450        if ("Range".equals(name))
451            return new Range();
452        if ("Ratio".equals(name))
453            return new Ratio();
454        if ("RatioRange".equals(name))
455            return new RatioRange();
456        if ("Reference".equals(name))
457            return new Reference();
458        if ("RelatedArtifact".equals(name))
459            return new RelatedArtifact();
460        if ("SampledData".equals(name))
461            return new SampledData();
462        if ("Signature".equals(name))
463            return new Signature();
464        if ("Timing".equals(name))
465            return new Timing();
466        if ("TriggerDefinition".equals(name))
467            return new TriggerDefinition();
468        if ("UsageContext".equals(name))
469            return new UsageContext();
470
471        else
472            throw new FHIRException("Unknown Type Name '"+name+"'");    }
473
474    public static Base createResourceOrType(String name) throws FHIRException {
475      switch (name.hashCode()) {
476        case -1216012752: return new Base64BinaryType();
477        case 64711720: return new BooleanType();
478        case 828351732: return new CanonicalType();
479        case 3059181: return new CodeType();
480        case 3076014: return new DateType();
481        case 1792749467: return new DateTimeType();
482        case 1542263633: return new DecimalType();
483        case 3355: return new IdType();
484        case 1957570017: return new InstantType();
485        case 1958052158: return new IntegerType();
486        case 246938863: return new MarkdownType();
487        case 110026: return new OidType();
488        case -131262666: return new PositiveIntType();
489        case -891985903: return new StringType();
490        case 3560141: return new TimeType();
491        case 1145198778: return new UnsignedIntType();
492        case 116076: return new UriType();
493        case 116079: return new UrlType();
494        case 3601339: return new UuidType();
495        case 487334413: return new Account();
496        case 851278306: return new ActivityDefinition();
497        case 1643210993: return new AdministrableProductDefinition();
498        case -329624856: return new AdverseEvent();
499        case 1721380104: return new AllergyIntolerance();
500        case 192873343: return new Appointment();
501        case 1733332192: return new AppointmentResponse();
502        case -1438435756: return new ArtifactAssessment();
503        case -632949857: return new AuditEvent();
504        case 63955982: return new Basic();
505        case 1989867553: return new Binary();
506        case -310041824: return new BiologicallyDerivedProduct();
507        case -202769967: return new BodyStructure();
508        case 2000952482: return new Bundle();
509        case -871422185: return new CapabilityStatement();
510        case -1244283909: return new CapabilityStatement2();
511        case 57208314: return new CarePlan();
512        case 57320750: return new CareTeam();
513        case -883723257: return new ChargeItem();
514        case -315725638: return new ChargeItemDefinition();
515        case -1378062585: return new Citation();
516        case 65189916: return new Claim();
517        case 1488475261: return new ClaimResponse();
518        case -1268501092: return new ClinicalImpression();
519        case 462236103: return new ClinicalUseDefinition();
520        case -590890011: return new ClinicalUseIssue();
521        case 1076953756: return new CodeSystem();
522        case -236322890: return new Communication();
523        case -1874423303: return new CommunicationRequest();
524        case 1287805733: return new CompartmentDefinition();
525        case 828944778: return new Composition();
526        case 57185780: return new ConceptMap();
527        case 1772759230: return new ConceptMap2();
528        case 1142656251: return new Condition();
529        case 1722998958: return new ConditionDefinition();
530        case -1678813190: return new Consent();
531        case -502303438: return new Contract();
532        case -287122936: return new Coverage();
533        case -140860822: return new CoverageEligibilityRequest();
534        case -18784314: return new CoverageEligibilityResponse();
535        case 850563927: return new DetectedIssue();
536        case 2043677302: return new Device();
537        case 1083244649: return new DeviceDefinition();
538        case -1031366157: return new DeviceDispense();
539        case -949306426: return new DeviceMetric();
540        case 776138553: return new DeviceRequest();
541        case 115711179: return new DeviceUsage();
542        case -1122842661: return new DiagnosticReport();
543        case 1922784394: return new DocumentManifest();
544        case -1202791344: return new DocumentReference();
545        case -766867181: return new Encounter();
546        case 1805746613: return new Endpoint();
547        case -1377846581: return new EnrollmentRequest();
548        case 289362821: return new EnrollmentResponse();
549        case -1093178557: return new EpisodeOfCare();
550        case 1851868013: return new EventDefinition();
551        case 447611511: return new Evidence();
552        case -715436405: return new EvidenceReport();
553        case -1162161645: return new EvidenceVariable();
554        case 1175230202: return new ExampleScenario();
555        case -1001676601: return new ExplanationOfBenefit();
556        case 1260711798: return new FamilyMemberHistory();
557        case 2192268: return new Flag();
558        case 2224947: return new Goal();
559        case -180371167: return new GraphDefinition();
560        case 69076575: return new Group();
561        case 997117913: return new GuidanceResponse();
562        case 933423720: return new HealthcareService();
563        case -1650574028: return new ImagingSelection();
564        case -650580623: return new ImagingStudy();
565        case -2004863454: return new Immunization();
566        case -1768794370: return new ImmunizationEvaluation();
567        case 1728372347: return new ImmunizationRecommendation();
568        case 1410262602: return new ImplementationGuide();
569        case 1787055601: return new Ingredient();
570        case -1503864573: return new InsurancePlan();
571        case 1884986768: return new InventoryReport();
572        case -670115059: return new Invoice();
573        case 1830861979: return new Library();
574        case 1841735333: return new Linkage();
575        case 2368702: return new ListResource();
576        case 1965687765: return new Location();
577        case -116700279: return new ManufacturedItemDefinition();
578        case -1691992770: return new Measure();
579        case 1681397778: return new MeasureReport();
580        case -302536977: return new Medication();
581        case -342579923: return new MedicationAdministration();
582        case -408244884: return new MedicationDispense();
583        case 1537687119: return new MedicationKnowledge();
584        case 1627523232: return new MedicationRequest();
585        case 362406898: return new MedicationUsage();
586        case -1378257556: return new MedicinalProductDefinition();
587        case -2037697382: return new MessageDefinition();
588        case -1087398572: return new MessageHeader();
589        case -1839726095: return new MolecularSequence();
590        case 369315063: return new NamingSystem();
591        case -146918204: return new NutritionIntake();
592        case 1247831734: return new NutritionOrder();
593        case 1768059479: return new NutritionProduct();
594        case 1790214156: return new Observation();
595        case 673706623: return new ObservationDefinition();
596        case -2140710406: return new OperationDefinition();
597        case -526550005: return new OperationOutcome();
598        case 1343242579: return new Organization();
599        case 2069161885: return new OrganizationAffiliation();
600        case 577413700: return new PackagedProductDefinition();
601        case -1842766326: return new Parameters();
602        case 873235173: return new Patient();
603        case 2082457694: return new PaymentNotice();
604        case 28778089: return new PaymentReconciliation();
605        case 1475846639: return new Permission();
606        case -1907849355: return new Person();
607        case 1401244028: return new PlanDefinition();
608        case 738893626: return new Practitioner();
609        case -621058352: return new PractitionerRole();
610        case 908763827: return new Procedure();
611        case 2093211201: return new Provenance();
612        case -218088061: return new Questionnaire();
613        case 269058788: return new QuestionnaireResponse();
614        case 2137545436: return new RegulatedAuthorization();
615        case 846088000: return new RelatedPerson();
616        case 1445374288: return new RequestGroup();
617        case 1312904398: return new ResearchStudy();
618        case -1008013583: return new ResearchSubject();
619        case -766422255: return new RiskAssessment();
620        case -633276745: return new Schedule();
621        case -912457023: return new SearchParameter();
622        case -1944810950: return new ServiceRequest();
623        case 2579998: return new Slot();
624        case -2068224216: return new Specimen();
625        case 863741595: return new SpecimenDefinition();
626        case 1133777670: return new StructureDefinition();
627        case 1958247177: return new StructureMap();
628        case 505523517: return new Subscription();
629        case 108709775: return new SubscriptionStatus();
630        case 835579378: return new SubscriptionTopic();
631        case -1760959152: return new Substance();
632        case 1971491523: return new SubstanceDefinition();
633        case -300807236: return new SubstanceNucleicAcid();
634        case 1272939294: return new SubstancePolymer();
635        case 1361440787: return new SubstanceProtein();
636        case 159007313: return new SubstanceReferenceInformation();
637        case -222622766: return new SubstanceSourceMaterial();
638        case 383030819: return new SupplyDelivery();
639        case 665843328: return new SupplyRequest();
640        case 2599333: return new Task();
641        case -549565975: return new TerminologyCapabilities();
642        case -616289146: return new TestReport();
643        case -589453283: return new TestScript();
644        case -1345530543: return new ValueSet();
645        case 957089336: return new VerificationResult();
646        case -555387838: return new VisionPrescription();
647        case 516961236: return new Address();
648        case 65759: return new Age();
649        case 438421327: return new Annotation();
650        case 29963587: return new Attachment();
651        case -1153521791: return new CodeableConcept();
652        case -464287196: return new CodeableReference();
653        case 2023747466: return new Coding();
654        case 973193329: return new ContactDetail();
655        case 1428236656: return new ContactPoint();
656        case -227407685: return new Contributor();
657        case 65298671: return new Count();
658        case -367870439: return new DataRequirement();
659        case 353103893: return new Distance();
660        case 2052815575: return new Dosage();
661        case -1927368268: return new Duration();
662        case -1605049009: return new ElementDefinition();
663        case 198012600: return new Expression();
664        case 1391410207: return new Extension();
665        case 1592332600: return new HumanName();
666        case 375032009: return new Identifier();
667        case -926250600: return new MarketingStatus();
668        case 2394661: return new Meta();
669        case 74526880: return new Money();
670        case -540546990: return new Narrative();
671        case 671337916: return new ParameterDefinition();
672        case -1907858975: return new Period();
673        case -30093459: return new Population();
674        case 458000626: return new ProdCharacteristic();
675        case 1209602103: return new ProductShelfLife();
676        case -1220360021: return new Quantity();
677        case 78727453: return new Range();
678        case 78733291: return new Ratio();
679        case -200924142: return new RatioRange();
680        case 1078812459: return new Reference();
681        case -330210563: return new RelatedArtifact();
682        case 1824308900: return new SampledData();
683        case -1217415016: return new Signature();
684        case -1789797270: return new Timing();
685        case 770498827: return new TriggerDefinition();
686        case 1071332590: return new UsageContext();
687
688      default:
689        throw new FHIRException("Unknown Resource or Type Name '"+name+"'");
690    }
691  }
692
693    public static DataType createPrimitive(String type, String value) {
694      switch (type) {
695      case "boolean": return new BooleanType(value);
696      case "integer": return new IntegerType(value);
697      case "integer64": return new Integer64Type(value);
698      case "string": return new StringType(value);
699      case "decimal": return new DecimalType(value);
700      case "uri": return new UriType(value);
701      case "url": return new UrlType(value);
702      case "canonical": return new CanonicalType(value);
703      case "base64Binary": return new Base64BinaryType(value);
704      case "instant": return new InstantType(value);
705      case "date": return new DateType(value);
706      case "dateTime": return new DateTimeType(value);
707      case "time": return new TimeType(value);
708      case "code": return new CodeType(value);
709      case "oid": return new OidType(value);
710      case "id": return new IdType(value);
711      case "markdown": return new MarkdownType(value);
712      case "unsignedInt": return new UnsignedIntType(value);
713      case "positiveInt": return new PositiveIntType(value);
714      case "uuid": return new UuidType(value);
715      default:
716        throw new FHIRException("Unknown Primitive Type '"+type+"'");
717      }
718    }
719
720}