001package org.hl7.fhir.r4b.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 Fri, Dec 31, 2021 05:58+1100 for FHIR v4.3.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 ("AuditEvent".equals(name))
055            return new AuditEvent();
056        if ("Basic".equals(name))
057            return new Basic();
058        if ("Binary".equals(name))
059            return new Binary();
060        if ("BiologicallyDerivedProduct".equals(name))
061            return new BiologicallyDerivedProduct();
062        if ("BodyStructure".equals(name))
063            return new BodyStructure();
064        if ("Bundle".equals(name))
065            return new Bundle();
066        if ("CapabilityStatement".equals(name))
067            return new CapabilityStatement();
068        if ("CarePlan".equals(name))
069            return new CarePlan();
070        if ("CareTeam".equals(name))
071            return new CareTeam();
072        if ("CatalogEntry".equals(name))
073            return new CatalogEntry();
074        if ("ChargeItem".equals(name))
075            return new ChargeItem();
076        if ("ChargeItemDefinition".equals(name))
077            return new ChargeItemDefinition();
078        if ("Citation".equals(name))
079            return new Citation();
080        if ("Claim".equals(name))
081            return new Claim();
082        if ("ClaimResponse".equals(name))
083            return new ClaimResponse();
084        if ("ClinicalImpression".equals(name))
085            return new ClinicalImpression();
086        if ("ClinicalUseDefinition".equals(name))
087            return new ClinicalUseDefinition();
088        if ("CodeSystem".equals(name))
089            return new CodeSystem();
090        if ("Communication".equals(name))
091            return new Communication();
092        if ("CommunicationRequest".equals(name))
093            return new CommunicationRequest();
094        if ("CompartmentDefinition".equals(name))
095            return new CompartmentDefinition();
096        if ("Composition".equals(name))
097            return new Composition();
098        if ("ConceptMap".equals(name))
099            return new ConceptMap();
100        if ("Condition".equals(name))
101            return new Condition();
102        if ("Consent".equals(name))
103            return new Consent();
104        if ("Contract".equals(name))
105            return new Contract();
106        if ("Coverage".equals(name))
107            return new Coverage();
108        if ("CoverageEligibilityRequest".equals(name))
109            return new CoverageEligibilityRequest();
110        if ("CoverageEligibilityResponse".equals(name))
111            return new CoverageEligibilityResponse();
112        if ("DetectedIssue".equals(name))
113            return new DetectedIssue();
114        if ("Device".equals(name))
115            return new Device();
116        if ("DeviceDefinition".equals(name))
117            return new DeviceDefinition();
118        if ("DeviceMetric".equals(name))
119            return new DeviceMetric();
120        if ("DeviceRequest".equals(name))
121            return new DeviceRequest();
122        if ("DeviceUseStatement".equals(name))
123            return new DeviceUseStatement();
124        if ("DiagnosticReport".equals(name))
125            return new DiagnosticReport();
126        if ("DocumentManifest".equals(name))
127            return new DocumentManifest();
128        if ("DocumentReference".equals(name))
129            return new DocumentReference();
130        if ("Encounter".equals(name))
131            return new Encounter();
132        if ("Endpoint".equals(name))
133            return new Endpoint();
134        if ("EnrollmentRequest".equals(name))
135            return new EnrollmentRequest();
136        if ("EnrollmentResponse".equals(name))
137            return new EnrollmentResponse();
138        if ("EpisodeOfCare".equals(name))
139            return new EpisodeOfCare();
140        if ("EventDefinition".equals(name))
141            return new EventDefinition();
142        if ("Evidence".equals(name))
143            return new Evidence();
144        if ("EvidenceReport".equals(name))
145            return new EvidenceReport();
146        if ("EvidenceVariable".equals(name))
147            return new EvidenceVariable();
148        if ("ExampleScenario".equals(name))
149            return new ExampleScenario();
150        if ("ExplanationOfBenefit".equals(name))
151            return new ExplanationOfBenefit();
152        if ("FamilyMemberHistory".equals(name))
153            return new FamilyMemberHistory();
154        if ("Flag".equals(name))
155            return new Flag();
156        if ("Goal".equals(name))
157            return new Goal();
158        if ("GraphDefinition".equals(name))
159            return new GraphDefinition();
160        if ("Group".equals(name))
161            return new Group();
162        if ("GuidanceResponse".equals(name))
163            return new GuidanceResponse();
164        if ("HealthcareService".equals(name))
165            return new HealthcareService();
166        if ("ImagingStudy".equals(name))
167            return new ImagingStudy();
168        if ("Immunization".equals(name))
169            return new Immunization();
170        if ("ImmunizationEvaluation".equals(name))
171            return new ImmunizationEvaluation();
172        if ("ImmunizationRecommendation".equals(name))
173            return new ImmunizationRecommendation();
174        if ("ImplementationGuide".equals(name))
175            return new ImplementationGuide();
176        if ("Ingredient".equals(name))
177            return new Ingredient();
178        if ("InsurancePlan".equals(name))
179            return new InsurancePlan();
180        if ("Invoice".equals(name))
181            return new Invoice();
182        if ("Library".equals(name))
183            return new Library();
184        if ("Linkage".equals(name))
185            return new Linkage();
186        if ("List".equals(name))
187            return new ListResource();
188        if ("Location".equals(name))
189            return new Location();
190        if ("ManufacturedItemDefinition".equals(name))
191            return new ManufacturedItemDefinition();
192        if ("Measure".equals(name))
193            return new Measure();
194        if ("MeasureReport".equals(name))
195            return new MeasureReport();
196        if ("Media".equals(name))
197            return new Media();
198        if ("Medication".equals(name))
199            return new Medication();
200        if ("MedicationAdministration".equals(name))
201            return new MedicationAdministration();
202        if ("MedicationDispense".equals(name))
203            return new MedicationDispense();
204        if ("MedicationKnowledge".equals(name))
205            return new MedicationKnowledge();
206        if ("MedicationRequest".equals(name))
207            return new MedicationRequest();
208        if ("MedicationStatement".equals(name))
209            return new MedicationStatement();
210        if ("MedicinalProductDefinition".equals(name))
211            return new MedicinalProductDefinition();
212        if ("MessageDefinition".equals(name))
213            return new MessageDefinition();
214        if ("MessageHeader".equals(name))
215            return new MessageHeader();
216        if ("MolecularSequence".equals(name))
217            return new MolecularSequence();
218        if ("NamingSystem".equals(name))
219            return new NamingSystem();
220        if ("NutritionOrder".equals(name))
221            return new NutritionOrder();
222        if ("NutritionProduct".equals(name))
223            return new NutritionProduct();
224        if ("Observation".equals(name))
225            return new Observation();
226        if ("ObservationDefinition".equals(name))
227            return new ObservationDefinition();
228        if ("OperationDefinition".equals(name))
229            return new OperationDefinition();
230        if ("OperationOutcome".equals(name))
231            return new OperationOutcome();
232        if ("Organization".equals(name))
233            return new Organization();
234        if ("OrganizationAffiliation".equals(name))
235            return new OrganizationAffiliation();
236        if ("PackagedProductDefinition".equals(name))
237            return new PackagedProductDefinition();
238        if ("Parameters".equals(name))
239            return new Parameters();
240        if ("Patient".equals(name))
241            return new Patient();
242        if ("PaymentNotice".equals(name))
243            return new PaymentNotice();
244        if ("PaymentReconciliation".equals(name))
245            return new PaymentReconciliation();
246        if ("Person".equals(name))
247            return new Person();
248        if ("PlanDefinition".equals(name))
249            return new PlanDefinition();
250        if ("Practitioner".equals(name))
251            return new Practitioner();
252        if ("PractitionerRole".equals(name))
253            return new PractitionerRole();
254        if ("Procedure".equals(name))
255            return new Procedure();
256        if ("Provenance".equals(name))
257            return new Provenance();
258        if ("Questionnaire".equals(name))
259            return new Questionnaire();
260        if ("QuestionnaireResponse".equals(name))
261            return new QuestionnaireResponse();
262        if ("RegulatedAuthorization".equals(name))
263            return new RegulatedAuthorization();
264        if ("RelatedPerson".equals(name))
265            return new RelatedPerson();
266        if ("RequestGroup".equals(name))
267            return new RequestGroup();
268        if ("ResearchDefinition".equals(name))
269            return new ResearchDefinition();
270        if ("ResearchElementDefinition".equals(name))
271            return new ResearchElementDefinition();
272        if ("ResearchStudy".equals(name))
273            return new ResearchStudy();
274        if ("ResearchSubject".equals(name))
275            return new ResearchSubject();
276        if ("RiskAssessment".equals(name))
277            return new RiskAssessment();
278        if ("Schedule".equals(name))
279            return new Schedule();
280        if ("SearchParameter".equals(name))
281            return new SearchParameter();
282        if ("ServiceRequest".equals(name))
283            return new ServiceRequest();
284        if ("Slot".equals(name))
285            return new Slot();
286        if ("Specimen".equals(name))
287            return new Specimen();
288        if ("SpecimenDefinition".equals(name))
289            return new SpecimenDefinition();
290        if ("StructureDefinition".equals(name))
291            return new StructureDefinition();
292        if ("StructureMap".equals(name))
293            return new StructureMap();
294        if ("Subscription".equals(name))
295            return new Subscription();
296        if ("SubscriptionStatus".equals(name))
297            return new SubscriptionStatus();
298        if ("SubscriptionTopic".equals(name))
299            return new SubscriptionTopic();
300        if ("Substance".equals(name))
301            return new Substance();
302        if ("SubstanceDefinition".equals(name))
303            return new SubstanceDefinition();
304        if ("SupplyDelivery".equals(name))
305            return new SupplyDelivery();
306        if ("SupplyRequest".equals(name))
307            return new SupplyRequest();
308        if ("Task".equals(name))
309            return new Task();
310        if ("TerminologyCapabilities".equals(name))
311            return new TerminologyCapabilities();
312        if ("TestReport".equals(name))
313            return new TestReport();
314        if ("TestScript".equals(name))
315            return new TestScript();
316        if ("ValueSet".equals(name))
317            return new ValueSet();
318        if ("VerificationResult".equals(name))
319            return new VerificationResult();
320        if ("VisionPrescription".equals(name))
321            return new VisionPrescription();
322
323        else
324            throw new FHIRException("Unknown Resource Name '"+name+"'");
325    }
326
327    public static Element createType(String name) throws FHIRException {
328        if ("base64Binary".equals(name))            
329          return new Base64BinaryType();
330        if ("boolean".equals(name))            
331          return new BooleanType();
332        if ("canonical".equals(name))            
333          return new CanonicalType();
334        if ("code".equals(name))            
335          return new CodeType();
336        if ("date".equals(name))            
337          return new DateType();
338        if ("dateTime".equals(name))            
339          return new DateTimeType();
340        if ("decimal".equals(name))            
341          return new DecimalType();
342        if ("id".equals(name))            
343          return new IdType();
344        if ("instant".equals(name))            
345          return new InstantType();
346        if ("integer".equals(name))            
347          return new IntegerType();
348        if ("integer64".equals(name))            
349          return new Integer64Type();
350        if ("markdown".equals(name))            
351          return new MarkdownType();
352        if ("oid".equals(name))            
353          return new OidType();
354        if ("positiveInt".equals(name))            
355          return new PositiveIntType();
356        if ("string".equals(name))            
357          return new StringType();
358        if ("time".equals(name))            
359          return new TimeType();
360        if ("unsignedInt".equals(name))            
361          return new UnsignedIntType();
362        if ("uri".equals(name))            
363          return new UriType();
364        if ("url".equals(name))            
365          return new UrlType();
366        if ("uuid".equals(name))            
367          return new UuidType();
368        if ("Address".equals(name))
369            return new Address();
370        if ("Age".equals(name))
371            return new Age();
372        if ("Annotation".equals(name))
373            return new Annotation();
374        if ("Attachment".equals(name))
375            return new Attachment();
376        if ("CodeableConcept".equals(name))
377            return new CodeableConcept();
378        if ("CodeableReference".equals(name))
379            return new CodeableReference();
380        if ("Coding".equals(name))
381            return new Coding();
382        if ("ContactDetail".equals(name))
383            return new ContactDetail();
384        if ("ContactPoint".equals(name))
385            return new ContactPoint();
386        if ("Contributor".equals(name))
387            return new Contributor();
388        if ("Count".equals(name))
389            return new Count();
390        if ("DataRequirement".equals(name))
391            return new DataRequirement();
392        if ("Distance".equals(name))
393            return new Distance();
394        if ("Dosage".equals(name))
395            return new Dosage();
396        if ("Duration".equals(name))
397            return new Duration();
398        if ("ElementDefinition".equals(name))
399            return new ElementDefinition();
400        if ("Expression".equals(name))
401            return new Expression();
402        if ("Extension".equals(name))
403            return new Extension();
404        if ("HumanName".equals(name))
405            return new HumanName();
406        if ("Identifier".equals(name))
407            return new Identifier();
408        if ("MarketingStatus".equals(name))
409            return new MarketingStatus();
410        if ("Meta".equals(name))
411            return new Meta();
412        if ("Money".equals(name))
413            return new Money();
414        if ("Narrative".equals(name))
415            return new Narrative();
416        if ("ParameterDefinition".equals(name))
417            return new ParameterDefinition();
418        if ("Period".equals(name))
419            return new Period();
420        if ("Population".equals(name))
421            return new Population();
422        if ("ProdCharacteristic".equals(name))
423            return new ProdCharacteristic();
424        if ("ProductShelfLife".equals(name))
425            return new ProductShelfLife();
426        if ("Quantity".equals(name))
427            return new Quantity();
428        if ("Range".equals(name))
429            return new Range();
430        if ("Ratio".equals(name))
431            return new Ratio();
432        if ("RatioRange".equals(name))
433            return new RatioRange();
434        if ("Reference".equals(name))
435            return new Reference();
436        if ("RelatedArtifact".equals(name))
437            return new RelatedArtifact();
438        if ("SampledData".equals(name))
439            return new SampledData();
440        if ("Signature".equals(name))
441            return new Signature();
442        if ("Timing".equals(name))
443            return new Timing();
444        if ("TriggerDefinition".equals(name))
445            return new TriggerDefinition();
446        if ("UsageContext".equals(name))
447            return new UsageContext();
448
449        else
450            throw new FHIRException("Unknown Type Name '"+name+"'");    }
451
452    public static Base createResourceOrType(String name) throws FHIRException {
453      switch (name.hashCode()) {
454        case -1216012752: return new Base64BinaryType();
455        case 64711720: return new BooleanType();
456        case 828351732: return new CanonicalType();
457        case 3059181: return new CodeType();
458        case 3076014: return new DateType();
459        case 1792749467: return new DateTimeType();
460        case 1542263633: return new DecimalType();
461        case 3355: return new IdType();
462        case 1957570017: return new InstantType();
463        case 1958052158: return new IntegerType();
464        case 246938863: return new MarkdownType();
465        case 110026: return new OidType();
466        case -131262666: return new PositiveIntType();
467        case -891985903: return new StringType();
468        case 3560141: return new TimeType();
469        case 1145198778: return new UnsignedIntType();
470        case 116076: return new UriType();
471        case 116079: return new UrlType();
472        case 3601339: return new UuidType();
473        case 487334413: return new Account();
474        case 851278306: return new ActivityDefinition();
475        case 1643210993: return new AdministrableProductDefinition();
476        case -329624856: return new AdverseEvent();
477        case 1721380104: return new AllergyIntolerance();
478        case 192873343: return new Appointment();
479        case 1733332192: return new AppointmentResponse();
480        case -632949857: return new AuditEvent();
481        case 63955982: return new Basic();
482        case 1989867553: return new Binary();
483        case -310041824: return new BiologicallyDerivedProduct();
484        case -202769967: return new BodyStructure();
485        case 2000952482: return new Bundle();
486        case -871422185: return new CapabilityStatement();
487        case 57208314: return new CarePlan();
488        case 57320750: return new CareTeam();
489        case -1007602695: return new CatalogEntry();
490        case -883723257: return new ChargeItem();
491        case -315725638: return new ChargeItemDefinition();
492        case -1378062585: return new Citation();
493        case 65189916: return new Claim();
494        case 1488475261: return new ClaimResponse();
495        case -1268501092: return new ClinicalImpression();
496        case 462236103: return new ClinicalUseDefinition();
497        case 1076953756: return new CodeSystem();
498        case -236322890: return new Communication();
499        case -1874423303: return new CommunicationRequest();
500        case 1287805733: return new CompartmentDefinition();
501        case 828944778: return new Composition();
502        case 57185780: return new ConceptMap();
503        case 1142656251: return new Condition();
504        case -1678813190: return new Consent();
505        case -502303438: return new Contract();
506        case -287122936: return new Coverage();
507        case -140860822: return new CoverageEligibilityRequest();
508        case -18784314: return new CoverageEligibilityResponse();
509        case 850563927: return new DetectedIssue();
510        case 2043677302: return new Device();
511        case 1083244649: return new DeviceDefinition();
512        case -949306426: return new DeviceMetric();
513        case 776138553: return new DeviceRequest();
514        case 491858238: return new DeviceUseStatement();
515        case -1122842661: return new DiagnosticReport();
516        case 1922784394: return new DocumentManifest();
517        case -1202791344: return new DocumentReference();
518        case -766867181: return new Encounter();
519        case 1805746613: return new Endpoint();
520        case -1377846581: return new EnrollmentRequest();
521        case 289362821: return new EnrollmentResponse();
522        case -1093178557: return new EpisodeOfCare();
523        case 1851868013: return new EventDefinition();
524        case 447611511: return new Evidence();
525        case -715436405: return new EvidenceReport();
526        case -1162161645: return new EvidenceVariable();
527        case 1175230202: return new ExampleScenario();
528        case -1001676601: return new ExplanationOfBenefit();
529        case 1260711798: return new FamilyMemberHistory();
530        case 2192268: return new Flag();
531        case 2224947: return new Goal();
532        case -180371167: return new GraphDefinition();
533        case 69076575: return new Group();
534        case 997117913: return new GuidanceResponse();
535        case 933423720: return new HealthcareService();
536        case -650580623: return new ImagingStudy();
537        case -2004863454: return new Immunization();
538        case -1768794370: return new ImmunizationEvaluation();
539        case 1728372347: return new ImmunizationRecommendation();
540        case 1410262602: return new ImplementationGuide();
541        case 1787055601: return new Ingredient();
542        case -1503864573: return new InsurancePlan();
543        case -670115059: return new Invoice();
544        case 1830861979: return new Library();
545        case 1841735333: return new Linkage();
546        case 2368702: return new ListResource();
547        case 1965687765: return new Location();
548        case -116700279: return new ManufacturedItemDefinition();
549        case -1691992770: return new Measure();
550        case 1681397778: return new MeasureReport();
551        case 74219460: return new Media();
552        case -302536977: return new Medication();
553        case -342579923: return new MedicationAdministration();
554        case -408244884: return new MedicationDispense();
555        case 1537687119: return new MedicationKnowledge();
556        case 1627523232: return new MedicationRequest();
557        case -2097348800: return new MedicationStatement();
558        case -1378257556: return new MedicinalProductDefinition();
559        case -2037697382: return new MessageDefinition();
560        case -1087398572: return new MessageHeader();
561        case -1839726095: return new MolecularSequence();
562        case 369315063: return new NamingSystem();
563        case 1247831734: return new NutritionOrder();
564        case 1768059479: return new NutritionProduct();
565        case 1790214156: return new Observation();
566        case 673706623: return new ObservationDefinition();
567        case -2140710406: return new OperationDefinition();
568        case -526550005: return new OperationOutcome();
569        case 1343242579: return new Organization();
570        case 2069161885: return new OrganizationAffiliation();
571        case 577413700: return new PackagedProductDefinition();
572        case -1842766326: return new Parameters();
573        case 873235173: return new Patient();
574        case 2082457694: return new PaymentNotice();
575        case 28778089: return new PaymentReconciliation();
576        case -1907849355: return new Person();
577        case 1401244028: return new PlanDefinition();
578        case 738893626: return new Practitioner();
579        case -621058352: return new PractitionerRole();
580        case 908763827: return new Procedure();
581        case 2093211201: return new Provenance();
582        case -218088061: return new Questionnaire();
583        case 269058788: return new QuestionnaireResponse();
584        case 2137545436: return new RegulatedAuthorization();
585        case 846088000: return new RelatedPerson();
586        case 1445374288: return new RequestGroup();
587        case 237996398: return new ResearchDefinition();
588        case 463703284: return new ResearchElementDefinition();
589        case 1312904398: return new ResearchStudy();
590        case -1008013583: return new ResearchSubject();
591        case -766422255: return new RiskAssessment();
592        case -633276745: return new Schedule();
593        case -912457023: return new SearchParameter();
594        case -1944810950: return new ServiceRequest();
595        case 2579998: return new Slot();
596        case -2068224216: return new Specimen();
597        case 863741595: return new SpecimenDefinition();
598        case 1133777670: return new StructureDefinition();
599        case 1958247177: return new StructureMap();
600        case 505523517: return new Subscription();
601        case 108709775: return new SubscriptionStatus();
602        case 835579378: return new SubscriptionTopic();
603        case -1760959152: return new Substance();
604        case 1971491523: return new SubstanceDefinition();
605        case 383030819: return new SupplyDelivery();
606        case 665843328: return new SupplyRequest();
607        case 2599333: return new Task();
608        case -549565975: return new TerminologyCapabilities();
609        case -616289146: return new TestReport();
610        case -589453283: return new TestScript();
611        case -1345530543: return new ValueSet();
612        case 957089336: return new VerificationResult();
613        case -555387838: return new VisionPrescription();
614        case 516961236: return new Address();
615        case 65759: return new Age();
616        case 438421327: return new Annotation();
617        case 29963587: return new Attachment();
618        case -1153521791: return new CodeableConcept();
619        case -464287196: return new CodeableReference();
620        case 2023747466: return new Coding();
621        case 973193329: return new ContactDetail();
622        case 1428236656: return new ContactPoint();
623        case -227407685: return new Contributor();
624        case 65298671: return new Count();
625        case -367870439: return new DataRequirement();
626        case 353103893: return new Distance();
627        case 2052815575: return new Dosage();
628        case -1927368268: return new Duration();
629        case -1605049009: return new ElementDefinition();
630        case 198012600: return new Expression();
631        case 1391410207: return new Extension();
632        case 1592332600: return new HumanName();
633        case 375032009: return new Identifier();
634        case -926250600: return new MarketingStatus();
635        case 2394661: return new Meta();
636        case 74526880: return new Money();
637        case -540546990: return new Narrative();
638        case 671337916: return new ParameterDefinition();
639        case -1907858975: return new Period();
640        case -30093459: return new Population();
641        case 458000626: return new ProdCharacteristic();
642        case 1209602103: return new ProductShelfLife();
643        case -1220360021: return new Quantity();
644        case 78727453: return new Range();
645        case 78733291: return new Ratio();
646        case -200924142: return new RatioRange();
647        case 1078812459: return new Reference();
648        case -330210563: return new RelatedArtifact();
649        case 1824308900: return new SampledData();
650        case -1217415016: return new Signature();
651        case -1789797270: return new Timing();
652        case 770498827: return new TriggerDefinition();
653        case 1071332590: return new UsageContext();
654
655      default:
656        throw new FHIRException("Unknown Resource or Type Name '"+name+"'");
657    }
658  }
659
660    public static DataType createPrimitive(String type, String value) {
661      switch (type) {
662      case "boolean": return new BooleanType(value);
663      case "integer": return new IntegerType(value);
664      case "integer64": return new Integer64Type(value);
665      case "string": return new StringType(value);
666      case "decimal": return new DecimalType(value);
667      case "uri": return new UriType(value);
668      case "url": return new UrlType(value);
669      case "canonical": return new CanonicalType(value);
670      case "base64Binary": return new Base64BinaryType(value);
671      case "instant": return new InstantType(value);
672      case "date": return new DateType(value);
673      case "dateTime": return new DateTimeType(value);
674      case "time": return new TimeType(value);
675      case "code": return new CodeType(value);
676      case "oid": return new OidType(value);
677      case "id": return new IdType(value);
678      case "markdown": return new MarkdownType(value);
679      case "unsignedInt": return new UnsignedIntType(value);
680      case "positiveInt": return new PositiveIntType(value);
681      case "uuid": return new UuidType(value);
682      default:
683        throw new FHIRException("Unknown Primitive Type '"+type+"'");
684      }
685    }
686
687}