001package org.hl7.fhir.dstu3.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
032// Generated on Mon, Apr 17, 2017 17:38-0400 for FHIR v3.0.1
033
034import org.hl7.fhir.exceptions.FHIRException;
035
036public class ResourceFactory extends Factory {
037
038    public static Resource createResource(String name) throws FHIRException {
039        if ("Appointment".equals(name))
040            return new Appointment();
041        if ("ReferralRequest".equals(name))
042            return new ReferralRequest();
043        if ("Account".equals(name))
044            return new Account();
045        if ("DocumentManifest".equals(name))
046            return new DocumentManifest();
047        if ("MessageDefinition".equals(name))
048            return new MessageDefinition();
049        if ("Goal".equals(name))
050            return new Goal();
051        if ("Endpoint".equals(name))
052            return new Endpoint();
053        if ("EnrollmentRequest".equals(name))
054            return new EnrollmentRequest();
055        if ("Consent".equals(name))
056            return new Consent();
057        if ("CapabilityStatement".equals(name))
058            return new CapabilityStatement();
059        if ("Medication".equals(name))
060            return new Medication();
061        if ("Measure".equals(name))
062            return new Measure();
063        if ("ResearchSubject".equals(name))
064            return new ResearchSubject();
065        if ("Subscription".equals(name))
066            return new Subscription();
067        if ("DocumentReference".equals(name))
068            return new DocumentReference();
069        if ("GraphDefinition".equals(name))
070            return new GraphDefinition();
071        if ("ImagingManifest".equals(name))
072            return new ImagingManifest();
073        if ("Parameters".equals(name))
074            return new Parameters();
075        if ("MeasureReport".equals(name))
076            return new MeasureReport();
077        if ("PractitionerRole".equals(name))
078            return new PractitionerRole();
079        if ("RelatedPerson".equals(name))
080            return new RelatedPerson();
081        if ("SupplyRequest".equals(name))
082            return new SupplyRequest();
083        if ("Practitioner".equals(name))
084            return new Practitioner();
085        if ("ExpansionProfile".equals(name))
086            return new ExpansionProfile();
087        if ("Slot".equals(name))
088            return new Slot();
089        if ("Person".equals(name))
090            return new Person();
091        if ("Contract".equals(name))
092            return new Contract();
093        if ("RiskAssessment".equals(name))
094            return new RiskAssessment();
095        if ("Group".equals(name))
096            return new Group();
097        if ("PaymentNotice".equals(name))
098            return new PaymentNotice();
099        if ("Organization".equals(name))
100            return new Organization();
101        if ("CareTeam".equals(name))
102            return new CareTeam();
103        if ("ImplementationGuide".equals(name))
104            return new ImplementationGuide();
105        if ("ImagingStudy".equals(name))
106            return new ImagingStudy();
107        if ("DeviceComponent".equals(name))
108            return new DeviceComponent();
109        if ("FamilyMemberHistory".equals(name))
110            return new FamilyMemberHistory();
111        if ("ChargeItem".equals(name))
112            return new ChargeItem();
113        if ("Encounter".equals(name))
114            return new Encounter();
115        if ("Substance".equals(name))
116            return new Substance();
117        if ("SearchParameter".equals(name))
118            return new SearchParameter();
119        if ("ServiceDefinition".equals(name))
120            return new ServiceDefinition();
121        if ("Communication".equals(name))
122            return new Communication();
123        if ("ActivityDefinition".equals(name))
124            return new ActivityDefinition();
125        if ("Linkage".equals(name))
126            return new Linkage();
127        if ("DeviceUseStatement".equals(name))
128            return new DeviceUseStatement();
129        if ("RequestGroup".equals(name))
130            return new RequestGroup();
131        if ("DeviceRequest".equals(name))
132            return new DeviceRequest();
133        if ("MessageHeader".equals(name))
134            return new MessageHeader();
135        if ("ImmunizationRecommendation".equals(name))
136            return new ImmunizationRecommendation();
137        if ("BodySite".equals(name))
138            return new BodySite();
139        if ("Provenance".equals(name))
140            return new Provenance();
141        if ("Task".equals(name))
142            return new Task();
143        if ("Questionnaire".equals(name))
144            return new Questionnaire();
145        if ("ExplanationOfBenefit".equals(name))
146            return new ExplanationOfBenefit();
147        if ("ResearchStudy".equals(name))
148            return new ResearchStudy();
149        if ("Specimen".equals(name))
150            return new Specimen();
151        if ("AllergyIntolerance".equals(name))
152            return new AllergyIntolerance();
153        if ("CarePlan".equals(name))
154            return new CarePlan();
155        if ("StructureDefinition".equals(name))
156            return new StructureDefinition();
157        if ("EpisodeOfCare".equals(name))
158            return new EpisodeOfCare();
159        if ("OperationOutcome".equals(name))
160            return new OperationOutcome();
161        if ("Procedure".equals(name))
162            return new Procedure();
163        if ("List".equals(name))
164            return new ListResource();
165        if ("ConceptMap".equals(name))
166            return new ConceptMap();
167        if ("ValueSet".equals(name))
168            return new ValueSet();
169        if ("OperationDefinition".equals(name))
170            return new OperationDefinition();
171        if ("Immunization".equals(name))
172            return new Immunization();
173        if ("MedicationRequest".equals(name))
174            return new MedicationRequest();
175        if ("Device".equals(name))
176            return new Device();
177        if ("VisionPrescription".equals(name))
178            return new VisionPrescription();
179        if ("Media".equals(name))
180            return new Media();
181        if ("ProcedureRequest".equals(name))
182            return new ProcedureRequest();
183        if ("EligibilityResponse".equals(name))
184            return new EligibilityResponse();
185        if ("Sequence".equals(name))
186            return new Sequence();
187        if ("DeviceMetric".equals(name))
188            return new DeviceMetric();
189        if ("Flag".equals(name))
190            return new Flag();
191        if ("CodeSystem".equals(name))
192            return new CodeSystem();
193        if ("AppointmentResponse".equals(name))
194            return new AppointmentResponse();
195        if ("StructureMap".equals(name))
196            return new StructureMap();
197        if ("AdverseEvent".equals(name))
198            return new AdverseEvent();
199        if ("GuidanceResponse".equals(name))
200            return new GuidanceResponse();
201        if ("Observation".equals(name))
202            return new Observation();
203        if ("MedicationAdministration".equals(name))
204            return new MedicationAdministration();
205        if ("EnrollmentResponse".equals(name))
206            return new EnrollmentResponse();
207        if ("Binary".equals(name))
208            return new Binary();
209        if ("Library".equals(name))
210            return new Library();
211        if ("MedicationStatement".equals(name))
212            return new MedicationStatement();
213        if ("CommunicationRequest".equals(name))
214            return new CommunicationRequest();
215        if ("TestScript".equals(name))
216            return new TestScript();
217        if ("Basic".equals(name))
218            return new Basic();
219        if ("TestReport".equals(name))
220            return new TestReport();
221        if ("ClaimResponse".equals(name))
222            return new ClaimResponse();
223        if ("EligibilityRequest".equals(name))
224            return new EligibilityRequest();
225        if ("ProcessRequest".equals(name))
226            return new ProcessRequest();
227        if ("MedicationDispense".equals(name))
228            return new MedicationDispense();
229        if ("DiagnosticReport".equals(name))
230            return new DiagnosticReport();
231        if ("HealthcareService".equals(name))
232            return new HealthcareService();
233        if ("DataElement".equals(name))
234            return new DataElement();
235        if ("NutritionOrder".equals(name))
236            return new NutritionOrder();
237        if ("AuditEvent".equals(name))
238            return new AuditEvent();
239        if ("PaymentReconciliation".equals(name))
240            return new PaymentReconciliation();
241        if ("Condition".equals(name))
242            return new Condition();
243        if ("Composition".equals(name))
244            return new Composition();
245        if ("DetectedIssue".equals(name))
246            return new DetectedIssue();
247        if ("Bundle".equals(name))
248            return new Bundle();
249        if ("CompartmentDefinition".equals(name))
250            return new CompartmentDefinition();
251        if ("Patient".equals(name))
252            return new Patient();
253        if ("Coverage".equals(name))
254            return new Coverage();
255        if ("QuestionnaireResponse".equals(name))
256            return new QuestionnaireResponse();
257        if ("ProcessResponse".equals(name))
258            return new ProcessResponse();
259        if ("NamingSystem".equals(name))
260            return new NamingSystem();
261        if ("Schedule".equals(name))
262            return new Schedule();
263        if ("SupplyDelivery".equals(name))
264            return new SupplyDelivery();
265        if ("ClinicalImpression".equals(name))
266            return new ClinicalImpression();
267        if ("PlanDefinition".equals(name))
268            return new PlanDefinition();
269        if ("Claim".equals(name))
270            return new Claim();
271        if ("Location".equals(name))
272            return new Location();
273        else
274            throw new FHIRException("Unknown Resource Name '"+name+"'");
275    }
276
277    public static Element createType(String name) throws FHIRException {
278        if ("date".equals(name))
279            return new DateType();
280        if ("Meta".equals(name))
281            return new Meta();
282        if ("Address".equals(name))
283            return new Address();
284        if ("Attachment".equals(name))
285            return new Attachment();
286        if ("integer".equals(name))
287            return new IntegerType();
288        if ("Count".equals(name))
289            return new Count();
290        if ("DataRequirement".equals(name))
291            return new DataRequirement();
292        if ("Dosage".equals(name))
293            return new Dosage();
294        if ("uuid".equals(name))
295            return new UuidType();
296        if ("Identifier".equals(name))
297            return new Identifier();
298        if ("Narrative".equals(name))
299            return new Narrative();
300        if ("Coding".equals(name))
301            return new Coding();
302        if ("SampledData".equals(name))
303            return new SampledData();
304        if ("id".equals(name))
305            return new IdType();
306        if ("positiveInt".equals(name))
307            return new PositiveIntType();
308        if ("ElementDefinition".equals(name))
309            return new ElementDefinition();
310        if ("Distance".equals(name))
311            return new Distance();
312        if ("Period".equals(name))
313            return new Period();
314        if ("Duration".equals(name))
315            return new Duration();
316        if ("Range".equals(name))
317            return new Range();
318        if ("RelatedArtifact".equals(name))
319            return new RelatedArtifact();
320        if ("base64Binary".equals(name))
321            return new Base64BinaryType();
322        if ("UsageContext".equals(name))
323            return new UsageContext();
324        if ("Timing".equals(name))
325            return new Timing();
326        if ("decimal".equals(name))
327            return new DecimalType();
328        if ("CodeableConcept".equals(name))
329            return new CodeableConcept();
330        if ("ParameterDefinition".equals(name))
331            return new ParameterDefinition();
332        if ("dateTime".equals(name))
333            return new DateTimeType();
334        if ("code".equals(name))
335            return new CodeType();
336        if ("string".equals(name))
337            return new StringType();
338        if ("Contributor".equals(name))
339            return new Contributor();
340        if ("oid".equals(name))
341            return new OidType();
342        if ("instant".equals(name))
343            return new InstantType();
344        if ("Money".equals(name))
345            return new Money();
346        if ("HumanName".equals(name))
347            return new HumanName();
348        if ("ContactPoint".equals(name))
349            return new ContactPoint();
350        if ("markdown".equals(name))
351            return new MarkdownType();
352        if ("Ratio".equals(name))
353            return new Ratio();
354        if ("Age".equals(name))
355            return new Age();
356        if ("Reference".equals(name))
357            return new Reference();
358        if ("TriggerDefinition".equals(name))
359            return new TriggerDefinition();
360        if ("SimpleQuantity".equals(name))
361            return new SimpleQuantity();
362        if ("Quantity".equals(name))
363            return new Quantity();
364        if ("uri".equals(name))
365            return new UriType();
366        if ("Annotation".equals(name))
367            return new Annotation();
368        if ("Extension".equals(name))
369            return new Extension();
370        if ("ContactDetail".equals(name))
371            return new ContactDetail();
372        if ("boolean".equals(name))
373            return new BooleanType();
374        if ("Signature".equals(name))
375            return new Signature();
376        if ("unsignedInt".equals(name))
377            return new UnsignedIntType();
378        if ("time".equals(name))
379            return new TimeType();
380        else
381            throw new FHIRException("Unknown Type Name '"+name+"'");
382    }
383
384    public static Base createResourceOrType(String name) throws FHIRException {
385      switch (name.hashCode()) {
386        case 487334413: return new Account();
387        case 851278306: return new ActivityDefinition();
388        case 516961236: return new Address();
389        case -329624856: return new AdverseEvent();
390        case 65759: return new Age();
391        case 1721380104: return new AllergyIntolerance();
392        case 438421327: return new Annotation();
393        case 192873343: return new Appointment();
394        case 1733332192: return new AppointmentResponse();
395        case 29963587: return new Attachment();
396        case -632949857: return new AuditEvent();
397        case 63955982: return new Basic();
398        case 1989867553: return new Binary();
399        case 1767264297: return new BodySite();
400        case 2000952482: return new Bundle();
401        case -871422185: return new CapabilityStatement();
402        case 57208314: return new CarePlan();
403        case 57320750: return new CareTeam();
404        case -883723257: return new ChargeItem();
405        case 65189916: return new Claim();
406        case 1488475261: return new ClaimResponse();
407        case -1268501092: return new ClinicalImpression();
408        case 1076953756: return new CodeSystem();
409        case -1153521791: return new CodeableConcept();
410        case 2023747466: return new Coding();
411        case -236322890: return new Communication();
412        case -1874423303: return new CommunicationRequest();
413        case 1287805733: return new CompartmentDefinition();
414        case 828944778: return new Composition();
415        case 57185780: return new ConceptMap();
416        case 1142656251: return new Condition();
417        case -1678813190: return new Consent();
418        case 973193329: return new ContactDetail();
419        case 1428236656: return new ContactPoint();
420        case -502303438: return new Contract();
421        case -227407685: return new Contributor();
422        case 65298671: return new Count();
423        case -287122936: return new Coverage();
424        case -1476174894: return new DataElement();
425        case -367870439: return new DataRequirement();
426        case 850563927: return new DetectedIssue();
427        case 2043677302: return new Device();
428        case 745969447: return new DeviceComponent();
429        case -949306426: return new DeviceMetric();
430        case 776138553: return new DeviceRequest();
431        case 491858238: return new DeviceUseStatement();
432        case -1122842661: return new DiagnosticReport();
433        case 353103893: return new Distance();
434        case 1922784394: return new DocumentManifest();
435        case -1202791344: return new DocumentReference();
436        case 2052815575: return new Dosage();
437        case -1927368268: return new Duration();
438        case -1605049009: return new ElementDefinition();
439        case -1197000094: return new EligibilityRequest();
440        case 1600636622: return new EligibilityResponse();
441        case -766867181: return new Encounter();
442        case 1805746613: return new Endpoint();
443        case -1377846581: return new EnrollmentRequest();
444        case 289362821: return new EnrollmentResponse();
445        case -1093178557: return new EpisodeOfCare();
446        case -1136815094: return new ExpansionProfile();
447        case -1001676601: return new ExplanationOfBenefit();
448        case 1391410207: return new Extension();
449        case 1260711798: return new FamilyMemberHistory();
450        case 2192268: return new Flag();
451        case 2224947: return new Goal();
452        case -180371167: return new GraphDefinition();
453        case 69076575: return new Group();
454        case 997117913: return new GuidanceResponse();
455        case 933423720: return new HealthcareService();
456        case 1592332600: return new HumanName();
457        case 375032009: return new Identifier();
458        case -5812857: return new ImagingManifest();
459        case -650580623: return new ImagingStudy();
460        case -2004863454: return new Immunization();
461        case 1728372347: return new ImmunizationRecommendation();
462        case 1410262602: return new ImplementationGuide();
463        case 1830861979: return new Library();
464        case 1841735333: return new Linkage();
465        case 2368702: return new ListResource();
466        case 1965687765: return new Location();
467        case -1691992770: return new Measure();
468        case 1681397778: return new MeasureReport();
469        case 74219460: return new Media();
470        case -302536977: return new Medication();
471        case -342579923: return new MedicationAdministration();
472        case -408244884: return new MedicationDispense();
473        case 1627523232: return new MedicationRequest();
474        case -2097348800: return new MedicationStatement();
475        case -2037697382: return new MessageDefinition();
476        case -1087398572: return new MessageHeader();
477        case 2394661: return new Meta();
478        case 74526880: return new Money();
479        case 369315063: return new NamingSystem();
480        case -540546990: return new Narrative();
481        case 1247831734: return new NutritionOrder();
482        case 1790214156: return new Observation();
483        case -2140710406: return new OperationDefinition();
484        case -526550005: return new OperationOutcome();
485        case 1343242579: return new Organization();
486        case 671337916: return new ParameterDefinition();
487        case -1842766326: return new Parameters();
488        case 873235173: return new Patient();
489        case 2082457694: return new PaymentNotice();
490        case 28778089: return new PaymentReconciliation();
491        case -1907858975: return new Period();
492        case -1907849355: return new Person();
493        case 1401244028: return new PlanDefinition();
494        case 738893626: return new Practitioner();
495        case -621058352: return new PractitionerRole();
496        case 908763827: return new Procedure();
497        case 737478748: return new ProcedureRequest();
498        case 8777024: return new ProcessRequest();
499        case 325021616: return new ProcessResponse();
500        case 2093211201: return new Provenance();
501        case -1220360021: return new Quantity();
502        case -218088061: return new Questionnaire();
503        case 269058788: return new QuestionnaireResponse();
504        case 78727453: return new Range();
505        case 78733291: return new Ratio();
506        case 1078812459: return new Reference();
507        case -1307317230: return new ReferralRequest();
508        case -330210563: return new RelatedArtifact();
509        case 846088000: return new RelatedPerson();
510        case 1445374288: return new RequestGroup();
511        case 1312904398: return new ResearchStudy();
512        case -1008013583: return new ResearchSubject();
513        case -766422255: return new RiskAssessment();
514        case 1824308900: return new SampledData();
515        case -633276745: return new Schedule();
516        case -912457023: return new SearchParameter();
517        case 1414192097: return new Sequence();
518        case 194378184: return new ServiceDefinition();
519        case -1217415016: return new Signature();
520        case -1097468803: return new SimpleQuantity();
521        case 2579998: return new Slot();
522        case -2068224216: return new Specimen();
523        case 1133777670: return new StructureDefinition();
524        case 1958247177: return new StructureMap();
525        case 505523517: return new Subscription();
526        case -1760959152: return new Substance();
527        case 383030819: return new SupplyDelivery();
528        case 665843328: return new SupplyRequest();
529        case 2599333: return new Task();
530        case -616289146: return new TestReport();
531        case -589453283: return new TestScript();
532        case -1789797270: return new Timing();
533        case 770498827: return new TriggerDefinition();
534        case 1071332590: return new UsageContext();
535        case -1345530543: return new ValueSet();
536        case -555387838: return new VisionPrescription();
537        case -1216012752: return new Base64BinaryType();
538        case 64711720: return new BooleanType();
539        case 3059181: return new CodeType();
540        case 3076014: return new DateType();
541        case 1792749467: return new DateTimeType();
542        case 1542263633: return new DecimalType();
543        case 3355: return new IdType();
544        case 1957570017: return new InstantType();
545        case 1958052158: return new IntegerType();
546        case 246938863: return new MarkdownType();
547        case 110026: return new OidType();
548        case -131262666: return new PositiveIntType();
549        case -891985903: return new StringType();
550        case 3560141: return new TimeType();
551        case 1145198778: return new UnsignedIntType();
552        case 116076: return new UriType();
553        case 3601339: return new UuidType();
554      default:
555        throw new FHIRException("Unknown Resource or Type Name '"+name+"'");
556    }
557  }
558
559
560}
561