001package org.hl7.fhir.r4.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 Thu, Sep 13, 2018 09:04-0400 for FHIR v3.5.0
033
034import java.util.*;
035
036import org.hl7.fhir.utilities.Utilities;
037import org.hl7.fhir.r4.model.Enumerations.*;
038import ca.uhn.fhir.model.api.annotation.ResourceDef;
039import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
040import ca.uhn.fhir.model.api.annotation.Child;
041import ca.uhn.fhir.model.api.annotation.ChildOrder;
042import ca.uhn.fhir.model.api.annotation.Description;
043import ca.uhn.fhir.model.api.annotation.Block;
044import org.hl7.fhir.instance.model.api.*;
045import org.hl7.fhir.exceptions.FHIRException;
046/**
047 * A set of rules of how FHIR is used to solve a particular problem. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.
048 */
049@ResourceDef(name="ImplementationGuide", profile="http://hl7.org/fhir/StructureDefinition/ImplementationGuide")
050@ChildOrder(names={"url", "version", "name", "title", "status", "experimental", "date", "publisher", "contact", "description", "useContext", "jurisdiction", "copyright", "packageId", "license", "fhirVersion", "dependsOn", "global", "definition", "manifest"})
051public class ImplementationGuide extends MetadataResource {
052
053    public enum SPDXLicense {
054        /**
055         * Not an open source license.
056         */
057        NOTOPENSOURCE, 
058        /**
059         * BSD Zero Clause License.
060         */
061        _0BSD, 
062        /**
063         * Attribution Assurance License.
064         */
065        AAL, 
066        /**
067         * Abstyles License.
068         */
069        ABSTYLES, 
070        /**
071         * Adobe Systems Incorporated Source Code License Agreement.
072         */
073        ADOBE2006, 
074        /**
075         * Adobe Glyph List License.
076         */
077        ADOBEGLYPH, 
078        /**
079         * Amazon Digital Services License.
080         */
081        ADSL, 
082        /**
083         * Academic Free License v1.1.
084         */
085        AFL1_1, 
086        /**
087         * Academic Free License v1.2.
088         */
089        AFL1_2, 
090        /**
091         * Academic Free License v2.0.
092         */
093        AFL2_0, 
094        /**
095         * Academic Free License v2.1.
096         */
097        AFL2_1, 
098        /**
099         * Academic Free License v3.0.
100         */
101        AFL3_0, 
102        /**
103         * Afmparse License.
104         */
105        AFMPARSE, 
106        /**
107         * Affero General Public License v1.0 only.
108         */
109        AGPL1_0ONLY, 
110        /**
111         * Affero General Public License v1.0 or later.
112         */
113        AGPL1_0ORLATER, 
114        /**
115         * GNU Affero General Public License v3.0 only.
116         */
117        AGPL3_0ONLY, 
118        /**
119         * GNU Affero General Public License v3.0 or later.
120         */
121        AGPL3_0ORLATER, 
122        /**
123         * Aladdin Free Public License.
124         */
125        ALADDIN, 
126        /**
127         * AMD's plpa_map.c License.
128         */
129        AMDPLPA, 
130        /**
131         * Apple MIT License.
132         */
133        AML, 
134        /**
135         * Academy of Motion Picture Arts and Sciences BSD.
136         */
137        AMPAS, 
138        /**
139         * ANTLR Software Rights Notice.
140         */
141        ANTLRPD, 
142        /**
143         * Apache License 1.0.
144         */
145        APACHE1_0, 
146        /**
147         * Apache License 1.1.
148         */
149        APACHE1_1, 
150        /**
151         * Apache License 2.0.
152         */
153        APACHE2_0, 
154        /**
155         * Adobe Postscript AFM License.
156         */
157        APAFML, 
158        /**
159         * Adaptive Public License 1.0.
160         */
161        APL1_0, 
162        /**
163         * Apple Public Source License 1.0.
164         */
165        APSL1_0, 
166        /**
167         * Apple Public Source License 1.1.
168         */
169        APSL1_1, 
170        /**
171         * Apple Public Source License 1.2.
172         */
173        APSL1_2, 
174        /**
175         * Apple Public Source License 2.0.
176         */
177        APSL2_0, 
178        /**
179         * Artistic License 1.0 w/clause 8.
180         */
181        ARTISTIC1_0CL8, 
182        /**
183         * Artistic License 1.0 (Perl).
184         */
185        ARTISTIC1_0PERL, 
186        /**
187         * Artistic License 1.0.
188         */
189        ARTISTIC1_0, 
190        /**
191         * Artistic License 2.0.
192         */
193        ARTISTIC2_0, 
194        /**
195         * Bahyph License.
196         */
197        BAHYPH, 
198        /**
199         * Barr License.
200         */
201        BARR, 
202        /**
203         * Beerware License.
204         */
205        BEERWARE, 
206        /**
207         * BitTorrent Open Source License v1.0.
208         */
209        BITTORRENT1_0, 
210        /**
211         * BitTorrent Open Source License v1.1.
212         */
213        BITTORRENT1_1, 
214        /**
215         * Borceux license.
216         */
217        BORCEUX, 
218        /**
219         * BSD 1-Clause License.
220         */
221        BSD1CLAUSE, 
222        /**
223         * BSD 2-Clause FreeBSD License.
224         */
225        BSD2CLAUSEFREEBSD, 
226        /**
227         * BSD 2-Clause NetBSD License.
228         */
229        BSD2CLAUSENETBSD, 
230        /**
231         * BSD-2-Clause Plus Patent License.
232         */
233        BSD2CLAUSEPATENT, 
234        /**
235         * BSD 2-Clause "Simplified" License.
236         */
237        BSD2CLAUSE, 
238        /**
239         * BSD with attribution.
240         */
241        BSD3CLAUSEATTRIBUTION, 
242        /**
243         * BSD 3-Clause Clear License.
244         */
245        BSD3CLAUSECLEAR, 
246        /**
247         * Lawrence Berkeley National Labs BSD variant license.
248         */
249        BSD3CLAUSELBNL, 
250        /**
251         * BSD 3-Clause No Nuclear License 2014.
252         */
253        BSD3CLAUSENONUCLEARLICENSE2014, 
254        /**
255         * BSD 3-Clause No Nuclear License.
256         */
257        BSD3CLAUSENONUCLEARLICENSE, 
258        /**
259         * BSD 3-Clause No Nuclear Warranty.
260         */
261        BSD3CLAUSENONUCLEARWARRANTY, 
262        /**
263         * BSD 3-Clause "New" or "Revised" License.
264         */
265        BSD3CLAUSE, 
266        /**
267         * BSD-4-Clause (University of California-Specific).
268         */
269        BSD4CLAUSEUC, 
270        /**
271         * BSD 4-Clause "Original" or "Old" License.
272         */
273        BSD4CLAUSE, 
274        /**
275         * BSD Protection License.
276         */
277        BSDPROTECTION, 
278        /**
279         * BSD Source Code Attribution.
280         */
281        BSDSOURCECODE, 
282        /**
283         * Boost Software License 1.0.
284         */
285        BSL1_0, 
286        /**
287         * bzip2 and libbzip2 License v1.0.5.
288         */
289        BZIP21_0_5, 
290        /**
291         * bzip2 and libbzip2 License v1.0.6.
292         */
293        BZIP21_0_6, 
294        /**
295         * Caldera License.
296         */
297        CALDERA, 
298        /**
299         * Computer Associates Trusted Open Source License 1.1.
300         */
301        CATOSL1_1, 
302        /**
303         * Creative Commons Attribution 1.0 Generic.
304         */
305        CCBY1_0, 
306        /**
307         * Creative Commons Attribution 2.0 Generic.
308         */
309        CCBY2_0, 
310        /**
311         * Creative Commons Attribution 2.5 Generic.
312         */
313        CCBY2_5, 
314        /**
315         * Creative Commons Attribution 3.0 Unported.
316         */
317        CCBY3_0, 
318        /**
319         * Creative Commons Attribution 4.0 International.
320         */
321        CCBY4_0, 
322        /**
323         * Creative Commons Attribution Non Commercial 1.0 Generic.
324         */
325        CCBYNC1_0, 
326        /**
327         * Creative Commons Attribution Non Commercial 2.0 Generic.
328         */
329        CCBYNC2_0, 
330        /**
331         * Creative Commons Attribution Non Commercial 2.5 Generic.
332         */
333        CCBYNC2_5, 
334        /**
335         * Creative Commons Attribution Non Commercial 3.0 Unported.
336         */
337        CCBYNC3_0, 
338        /**
339         * Creative Commons Attribution Non Commercial 4.0 International.
340         */
341        CCBYNC4_0, 
342        /**
343         * Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic.
344         */
345        CCBYNCND1_0, 
346        /**
347         * Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic.
348         */
349        CCBYNCND2_0, 
350        /**
351         * Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic.
352         */
353        CCBYNCND2_5, 
354        /**
355         * Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported.
356         */
357        CCBYNCND3_0, 
358        /**
359         * Creative Commons Attribution Non Commercial No Derivatives 4.0 International.
360         */
361        CCBYNCND4_0, 
362        /**
363         * Creative Commons Attribution Non Commercial Share Alike 1.0 Generic.
364         */
365        CCBYNCSA1_0, 
366        /**
367         * Creative Commons Attribution Non Commercial Share Alike 2.0 Generic.
368         */
369        CCBYNCSA2_0, 
370        /**
371         * Creative Commons Attribution Non Commercial Share Alike 2.5 Generic.
372         */
373        CCBYNCSA2_5, 
374        /**
375         * Creative Commons Attribution Non Commercial Share Alike 3.0 Unported.
376         */
377        CCBYNCSA3_0, 
378        /**
379         * Creative Commons Attribution Non Commercial Share Alike 4.0 International.
380         */
381        CCBYNCSA4_0, 
382        /**
383         * Creative Commons Attribution No Derivatives 1.0 Generic.
384         */
385        CCBYND1_0, 
386        /**
387         * Creative Commons Attribution No Derivatives 2.0 Generic.
388         */
389        CCBYND2_0, 
390        /**
391         * Creative Commons Attribution No Derivatives 2.5 Generic.
392         */
393        CCBYND2_5, 
394        /**
395         * Creative Commons Attribution No Derivatives 3.0 Unported.
396         */
397        CCBYND3_0, 
398        /**
399         * Creative Commons Attribution No Derivatives 4.0 International.
400         */
401        CCBYND4_0, 
402        /**
403         * Creative Commons Attribution Share Alike 1.0 Generic.
404         */
405        CCBYSA1_0, 
406        /**
407         * Creative Commons Attribution Share Alike 2.0 Generic.
408         */
409        CCBYSA2_0, 
410        /**
411         * Creative Commons Attribution Share Alike 2.5 Generic.
412         */
413        CCBYSA2_5, 
414        /**
415         * Creative Commons Attribution Share Alike 3.0 Unported.
416         */
417        CCBYSA3_0, 
418        /**
419         * Creative Commons Attribution Share Alike 4.0 International.
420         */
421        CCBYSA4_0, 
422        /**
423         * Creative Commons Zero v1.0 Universal.
424         */
425        CC01_0, 
426        /**
427         * Common Development and Distribution License 1.0.
428         */
429        CDDL1_0, 
430        /**
431         * Common Development and Distribution License 1.1.
432         */
433        CDDL1_1, 
434        /**
435         * Community Data License Agreement Permissive 1.0.
436         */
437        CDLAPERMISSIVE1_0, 
438        /**
439         * Community Data License Agreement Sharing 1.0.
440         */
441        CDLASHARING1_0, 
442        /**
443         * CeCILL Free Software License Agreement v1.0.
444         */
445        CECILL1_0, 
446        /**
447         * CeCILL Free Software License Agreement v1.1.
448         */
449        CECILL1_1, 
450        /**
451         * CeCILL Free Software License Agreement v2.0.
452         */
453        CECILL2_0, 
454        /**
455         * CeCILL Free Software License Agreement v2.1.
456         */
457        CECILL2_1, 
458        /**
459         * CeCILL-B Free Software License Agreement.
460         */
461        CECILLB, 
462        /**
463         * CeCILL-C Free Software License Agreement.
464         */
465        CECILLC, 
466        /**
467         * Clarified Artistic License.
468         */
469        CLARTISTIC, 
470        /**
471         * CNRI Jython License.
472         */
473        CNRIJYTHON, 
474        /**
475         * CNRI Python Open Source GPL Compatible License Agreement.
476         */
477        CNRIPYTHONGPLCOMPATIBLE, 
478        /**
479         * CNRI Python License.
480         */
481        CNRIPYTHON, 
482        /**
483         * Condor Public License v1.1.
484         */
485        CONDOR1_1, 
486        /**
487         * Common Public Attribution License 1.0.
488         */
489        CPAL1_0, 
490        /**
491         * Common Public License 1.0.
492         */
493        CPL1_0, 
494        /**
495         * Code Project Open License 1.02.
496         */
497        CPOL1_02, 
498        /**
499         * Crossword License.
500         */
501        CROSSWORD, 
502        /**
503         * CrystalStacker License.
504         */
505        CRYSTALSTACKER, 
506        /**
507         * CUA Office Public License v1.0.
508         */
509        CUAOPL1_0, 
510        /**
511         * Cube License.
512         */
513        CUBE, 
514        /**
515         * curl License.
516         */
517        CURL, 
518        /**
519         * Deutsche Freie Software Lizenz.
520         */
521        DFSL1_0, 
522        /**
523         * diffmark license.
524         */
525        DIFFMARK, 
526        /**
527         * DOC License.
528         */
529        DOC, 
530        /**
531         * Dotseqn License.
532         */
533        DOTSEQN, 
534        /**
535         * DSDP License.
536         */
537        DSDP, 
538        /**
539         * dvipdfm License.
540         */
541        DVIPDFM, 
542        /**
543         * Educational Community License v1.0.
544         */
545        ECL1_0, 
546        /**
547         * Educational Community License v2.0.
548         */
549        ECL2_0, 
550        /**
551         * Eiffel Forum License v1.0.
552         */
553        EFL1_0, 
554        /**
555         * Eiffel Forum License v2.0.
556         */
557        EFL2_0, 
558        /**
559         * eGenix.com Public License 1.1.0.
560         */
561        EGENIX, 
562        /**
563         * Entessa Public License v1.0.
564         */
565        ENTESSA, 
566        /**
567         * Eclipse Public License 1.0.
568         */
569        EPL1_0, 
570        /**
571         * Eclipse Public License 2.0.
572         */
573        EPL2_0, 
574        /**
575         * Erlang Public License v1.1.
576         */
577        ERLPL1_1, 
578        /**
579         * EU DataGrid Software License.
580         */
581        EUDATAGRID, 
582        /**
583         * European Union Public License 1.0.
584         */
585        EUPL1_0, 
586        /**
587         * European Union Public License 1.1.
588         */
589        EUPL1_1, 
590        /**
591         * European Union Public License 1.2.
592         */
593        EUPL1_2, 
594        /**
595         * Eurosym License.
596         */
597        EUROSYM, 
598        /**
599         * Fair License.
600         */
601        FAIR, 
602        /**
603         * Frameworx Open License 1.0.
604         */
605        FRAMEWORX1_0, 
606        /**
607         * FreeImage Public License v1.0.
608         */
609        FREEIMAGE, 
610        /**
611         * FSF All Permissive License.
612         */
613        FSFAP, 
614        /**
615         * FSF Unlimited License.
616         */
617        FSFUL, 
618        /**
619         * FSF Unlimited License (with License Retention).
620         */
621        FSFULLR, 
622        /**
623         * Freetype Project License.
624         */
625        FTL, 
626        /**
627         * GNU Free Documentation License v1.1 only.
628         */
629        GFDL1_1ONLY, 
630        /**
631         * GNU Free Documentation License v1.1 or later.
632         */
633        GFDL1_1ORLATER, 
634        /**
635         * GNU Free Documentation License v1.2 only.
636         */
637        GFDL1_2ONLY, 
638        /**
639         * GNU Free Documentation License v1.2 or later.
640         */
641        GFDL1_2ORLATER, 
642        /**
643         * GNU Free Documentation License v1.3 only.
644         */
645        GFDL1_3ONLY, 
646        /**
647         * GNU Free Documentation License v1.3 or later.
648         */
649        GFDL1_3ORLATER, 
650        /**
651         * Giftware License.
652         */
653        GIFTWARE, 
654        /**
655         * GL2PS License.
656         */
657        GL2PS, 
658        /**
659         * 3dfx Glide License.
660         */
661        GLIDE, 
662        /**
663         * Glulxe License.
664         */
665        GLULXE, 
666        /**
667         * gnuplot License.
668         */
669        GNUPLOT, 
670        /**
671         * GNU General Public License v1.0 only.
672         */
673        GPL1_0ONLY, 
674        /**
675         * GNU General Public License v1.0 or later.
676         */
677        GPL1_0ORLATER, 
678        /**
679         * GNU General Public License v2.0 only.
680         */
681        GPL2_0ONLY, 
682        /**
683         * GNU General Public License v2.0 or later.
684         */
685        GPL2_0ORLATER, 
686        /**
687         * GNU General Public License v3.0 only.
688         */
689        GPL3_0ONLY, 
690        /**
691         * GNU General Public License v3.0 or later.
692         */
693        GPL3_0ORLATER, 
694        /**
695         * gSOAP Public License v1.3b.
696         */
697        GSOAP1_3B, 
698        /**
699         * Haskell Language Report License.
700         */
701        HASKELLREPORT, 
702        /**
703         * Historical Permission Notice and Disclaimer.
704         */
705        HPND, 
706        /**
707         * IBM PowerPC Initialization and Boot Software.
708         */
709        IBMPIBS, 
710        /**
711         * ICU License.
712         */
713        ICU, 
714        /**
715         * Independent JPEG Group License.
716         */
717        IJG, 
718        /**
719         * ImageMagick License.
720         */
721        IMAGEMAGICK, 
722        /**
723         * iMatix Standard Function Library Agreement.
724         */
725        IMATIX, 
726        /**
727         * Imlib2 License.
728         */
729        IMLIB2, 
730        /**
731         * Info-ZIP License.
732         */
733        INFOZIP, 
734        /**
735         * Intel ACPI Software License Agreement.
736         */
737        INTELACPI, 
738        /**
739         * Intel Open Source License.
740         */
741        INTEL, 
742        /**
743         * Interbase Public License v1.0.
744         */
745        INTERBASE1_0, 
746        /**
747         * IPA Font License.
748         */
749        IPA, 
750        /**
751         * IBM Public License v1.0.
752         */
753        IPL1_0, 
754        /**
755         * ISC License.
756         */
757        ISC, 
758        /**
759         * JasPer License.
760         */
761        JASPER2_0, 
762        /**
763         * JSON License.
764         */
765        JSON, 
766        /**
767         * Licence Art Libre 1.2.
768         */
769        LAL1_2, 
770        /**
771         * Licence Art Libre 1.3.
772         */
773        LAL1_3, 
774        /**
775         * Latex2e License.
776         */
777        LATEX2E, 
778        /**
779         * Leptonica License.
780         */
781        LEPTONICA, 
782        /**
783         * GNU Library General Public License v2 only.
784         */
785        LGPL2_0ONLY, 
786        /**
787         * GNU Library General Public License v2 or later.
788         */
789        LGPL2_0ORLATER, 
790        /**
791         * GNU Lesser General Public License v2.1 only.
792         */
793        LGPL2_1ONLY, 
794        /**
795         * GNU Lesser General Public License v2.1 or later.
796         */
797        LGPL2_1ORLATER, 
798        /**
799         * GNU Lesser General Public License v3.0 only.
800         */
801        LGPL3_0ONLY, 
802        /**
803         * GNU Lesser General Public License v3.0 or later.
804         */
805        LGPL3_0ORLATER, 
806        /**
807         * Lesser General Public License For Linguistic Resources.
808         */
809        LGPLLR, 
810        /**
811         * libpng License.
812         */
813        LIBPNG, 
814        /**
815         * libtiff License.
816         */
817        LIBTIFF, 
818        /**
819         * Licence Libre du Québec – Permissive version 1.1.
820         */
821        LILIQP1_1, 
822        /**
823         * Licence Libre du Québec – Réciprocité version 1.1.
824         */
825        LILIQR1_1, 
826        /**
827         * Licence Libre du Québec – Réciprocité forte version 1.1.
828         */
829        LILIQRPLUS1_1, 
830        /**
831         * Linux Kernel Variant of OpenIB.org license.
832         */
833        LINUXOPENIB, 
834        /**
835         * Lucent Public License Version 1.0.
836         */
837        LPL1_0, 
838        /**
839         * Lucent Public License v1.02.
840         */
841        LPL1_02, 
842        /**
843         * LaTeX Project Public License v1.0.
844         */
845        LPPL1_0, 
846        /**
847         * LaTeX Project Public License v1.1.
848         */
849        LPPL1_1, 
850        /**
851         * LaTeX Project Public License v1.2.
852         */
853        LPPL1_2, 
854        /**
855         * LaTeX Project Public License v1.3a.
856         */
857        LPPL1_3A, 
858        /**
859         * LaTeX Project Public License v1.3c.
860         */
861        LPPL1_3C, 
862        /**
863         * MakeIndex License.
864         */
865        MAKEINDEX, 
866        /**
867         * MirOS License.
868         */
869        MIROS, 
870        /**
871         * MIT No Attribution.
872         */
873        MIT0, 
874        /**
875         * Enlightenment License (e16).
876         */
877        MITADVERTISING, 
878        /**
879         * CMU License.
880         */
881        MITCMU, 
882        /**
883         * enna License.
884         */
885        MITENNA, 
886        /**
887         * feh License.
888         */
889        MITFEH, 
890        /**
891         * MIT License.
892         */
893        MIT, 
894        /**
895         * MIT +no-false-attribs license.
896         */
897        MITNFA, 
898        /**
899         * Motosoto License.
900         */
901        MOTOSOTO, 
902        /**
903         * mpich2 License.
904         */
905        MPICH2, 
906        /**
907         * Mozilla Public License 1.0.
908         */
909        MPL1_0, 
910        /**
911         * Mozilla Public License 1.1.
912         */
913        MPL1_1, 
914        /**
915         * Mozilla Public License 2.0 (no copyleft exception).
916         */
917        MPL2_0NOCOPYLEFTEXCEPTION, 
918        /**
919         * Mozilla Public License 2.0.
920         */
921        MPL2_0, 
922        /**
923         * Microsoft Public License.
924         */
925        MSPL, 
926        /**
927         * Microsoft Reciprocal License.
928         */
929        MSRL, 
930        /**
931         * Matrix Template Library License.
932         */
933        MTLL, 
934        /**
935         * Multics License.
936         */
937        MULTICS, 
938        /**
939         * Mup License.
940         */
941        MUP, 
942        /**
943         * NASA Open Source Agreement 1.3.
944         */
945        NASA1_3, 
946        /**
947         * Naumen Public License.
948         */
949        NAUMEN, 
950        /**
951         * Net Boolean Public License v1.
952         */
953        NBPL1_0, 
954        /**
955         * University of Illinois/NCSA Open Source License.
956         */
957        NCSA, 
958        /**
959         * Net-SNMP License.
960         */
961        NETSNMP, 
962        /**
963         * NetCDF license.
964         */
965        NETCDF, 
966        /**
967         * Newsletr License.
968         */
969        NEWSLETR, 
970        /**
971         * Nethack General Public License.
972         */
973        NGPL, 
974        /**
975         * Norwegian Licence for Open Government Data.
976         */
977        NLOD1_0, 
978        /**
979         * No Limit Public License.
980         */
981        NLPL, 
982        /**
983         * Nokia Open Source License.
984         */
985        NOKIA, 
986        /**
987         * Netizen Open Source License.
988         */
989        NOSL, 
990        /**
991         * Noweb License.
992         */
993        NOWEB, 
994        /**
995         * Netscape Public License v1.0.
996         */
997        NPL1_0, 
998        /**
999         * Netscape Public License v1.1.
1000         */
1001        NPL1_1, 
1002        /**
1003         * Non-Profit Open Software License 3.0.
1004         */
1005        NPOSL3_0, 
1006        /**
1007         * NRL License.
1008         */
1009        NRL, 
1010        /**
1011         * NTP License.
1012         */
1013        NTP, 
1014        /**
1015         * Open CASCADE Technology Public License.
1016         */
1017        OCCTPL, 
1018        /**
1019         * OCLC Research Public License 2.0.
1020         */
1021        OCLC2_0, 
1022        /**
1023         * ODC Open Database License v1.0.
1024         */
1025        ODBL1_0, 
1026        /**
1027         * SIL Open Font License 1.0.
1028         */
1029        OFL1_0, 
1030        /**
1031         * SIL Open Font License 1.1.
1032         */
1033        OFL1_1, 
1034        /**
1035         * Open Group Test Suite License.
1036         */
1037        OGTSL, 
1038        /**
1039         * Open LDAP Public License v1.1.
1040         */
1041        OLDAP1_1, 
1042        /**
1043         * Open LDAP Public License v1.2.
1044         */
1045        OLDAP1_2, 
1046        /**
1047         * Open LDAP Public License v1.3.
1048         */
1049        OLDAP1_3, 
1050        /**
1051         * Open LDAP Public License v1.4.
1052         */
1053        OLDAP1_4, 
1054        /**
1055         * Open LDAP Public License v2.0.1.
1056         */
1057        OLDAP2_0_1, 
1058        /**
1059         * Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B).
1060         */
1061        OLDAP2_0, 
1062        /**
1063         * Open LDAP Public License v2.1.
1064         */
1065        OLDAP2_1, 
1066        /**
1067         * Open LDAP Public License v2.2.1.
1068         */
1069        OLDAP2_2_1, 
1070        /**
1071         * Open LDAP Public License 2.2.2.
1072         */
1073        OLDAP2_2_2, 
1074        /**
1075         * Open LDAP Public License v2.2.
1076         */
1077        OLDAP2_2, 
1078        /**
1079         * Open LDAP Public License v2.3.
1080         */
1081        OLDAP2_3, 
1082        /**
1083         * Open LDAP Public License v2.4.
1084         */
1085        OLDAP2_4, 
1086        /**
1087         * Open LDAP Public License v2.5.
1088         */
1089        OLDAP2_5, 
1090        /**
1091         * Open LDAP Public License v2.6.
1092         */
1093        OLDAP2_6, 
1094        /**
1095         * Open LDAP Public License v2.7.
1096         */
1097        OLDAP2_7, 
1098        /**
1099         * Open LDAP Public License v2.8.
1100         */
1101        OLDAP2_8, 
1102        /**
1103         * Open Market License.
1104         */
1105        OML, 
1106        /**
1107         * OpenSSL License.
1108         */
1109        OPENSSL, 
1110        /**
1111         * Open Public License v1.0.
1112         */
1113        OPL1_0, 
1114        /**
1115         * OSET Public License version 2.1.
1116         */
1117        OSETPL2_1, 
1118        /**
1119         * Open Software License 1.0.
1120         */
1121        OSL1_0, 
1122        /**
1123         * Open Software License 1.1.
1124         */
1125        OSL1_1, 
1126        /**
1127         * Open Software License 2.0.
1128         */
1129        OSL2_0, 
1130        /**
1131         * Open Software License 2.1.
1132         */
1133        OSL2_1, 
1134        /**
1135         * Open Software License 3.0.
1136         */
1137        OSL3_0, 
1138        /**
1139         * ODC Public Domain Dedication & License 1.0.
1140         */
1141        PDDL1_0, 
1142        /**
1143         * PHP License v3.0.
1144         */
1145        PHP3_0, 
1146        /**
1147         * PHP License v3.01.
1148         */
1149        PHP3_01, 
1150        /**
1151         * Plexus Classworlds License.
1152         */
1153        PLEXUS, 
1154        /**
1155         * PostgreSQL License.
1156         */
1157        POSTGRESQL, 
1158        /**
1159         * psfrag License.
1160         */
1161        PSFRAG, 
1162        /**
1163         * psutils License.
1164         */
1165        PSUTILS, 
1166        /**
1167         * Python License 2.0.
1168         */
1169        PYTHON2_0, 
1170        /**
1171         * Qhull License.
1172         */
1173        QHULL, 
1174        /**
1175         * Q Public License 1.0.
1176         */
1177        QPL1_0, 
1178        /**
1179         * Rdisc License.
1180         */
1181        RDISC, 
1182        /**
1183         * Red Hat eCos Public License v1.1.
1184         */
1185        RHECOS1_1, 
1186        /**
1187         * Reciprocal Public License 1.1.
1188         */
1189        RPL1_1, 
1190        /**
1191         * Reciprocal Public License 1.5.
1192         */
1193        RPL1_5, 
1194        /**
1195         * RealNetworks Public Source License v1.0.
1196         */
1197        RPSL1_0, 
1198        /**
1199         * RSA Message-Digest License.
1200         */
1201        RSAMD, 
1202        /**
1203         * Ricoh Source Code Public License.
1204         */
1205        RSCPL, 
1206        /**
1207         * Ruby License.
1208         */
1209        RUBY, 
1210        /**
1211         * Sax Public Domain Notice.
1212         */
1213        SAXPD, 
1214        /**
1215         * Saxpath License.
1216         */
1217        SAXPATH, 
1218        /**
1219         * SCEA Shared Source License.
1220         */
1221        SCEA, 
1222        /**
1223         * Sendmail License.
1224         */
1225        SENDMAIL, 
1226        /**
1227         * SGI Free Software License B v1.0.
1228         */
1229        SGIB1_0, 
1230        /**
1231         * SGI Free Software License B v1.1.
1232         */
1233        SGIB1_1, 
1234        /**
1235         * SGI Free Software License B v2.0.
1236         */
1237        SGIB2_0, 
1238        /**
1239         * Simple Public License 2.0.
1240         */
1241        SIMPL2_0, 
1242        /**
1243         * Sun Industry Standards Source License v1.2.
1244         */
1245        SISSL1_2, 
1246        /**
1247         * Sun Industry Standards Source License v1.1.
1248         */
1249        SISSL, 
1250        /**
1251         * Sleepycat License.
1252         */
1253        SLEEPYCAT, 
1254        /**
1255         * Standard ML of New Jersey License.
1256         */
1257        SMLNJ, 
1258        /**
1259         * Secure Messaging Protocol Public License.
1260         */
1261        SMPPL, 
1262        /**
1263         * SNIA Public License 1.1.
1264         */
1265        SNIA, 
1266        /**
1267         * Spencer License 86.
1268         */
1269        SPENCER86, 
1270        /**
1271         * Spencer License 94.
1272         */
1273        SPENCER94, 
1274        /**
1275         * Spencer License 99.
1276         */
1277        SPENCER99, 
1278        /**
1279         * Sun Public License v1.0.
1280         */
1281        SPL1_0, 
1282        /**
1283         * SugarCRM Public License v1.1.3.
1284         */
1285        SUGARCRM1_1_3, 
1286        /**
1287         * Scheme Widget Library (SWL) Software License Agreement.
1288         */
1289        SWL, 
1290        /**
1291         * TCL/TK License.
1292         */
1293        TCL, 
1294        /**
1295         * TCP Wrappers License.
1296         */
1297        TCPWRAPPERS, 
1298        /**
1299         * TMate Open Source License.
1300         */
1301        TMATE, 
1302        /**
1303         * TORQUE v2.5+ Software License v1.1.
1304         */
1305        TORQUE1_1, 
1306        /**
1307         * Trusster Open Source License.
1308         */
1309        TOSL, 
1310        /**
1311         * Unicode License Agreement - Data Files and Software (2015).
1312         */
1313        UNICODEDFS2015, 
1314        /**
1315         * Unicode License Agreement - Data Files and Software (2016).
1316         */
1317        UNICODEDFS2016, 
1318        /**
1319         * Unicode Terms of Use.
1320         */
1321        UNICODETOU, 
1322        /**
1323         * The Unlicense.
1324         */
1325        UNLICENSE, 
1326        /**
1327         * Universal Permissive License v1.0.
1328         */
1329        UPL1_0, 
1330        /**
1331         * Vim License.
1332         */
1333        VIM, 
1334        /**
1335         * VOSTROM Public License for Open Source.
1336         */
1337        VOSTROM, 
1338        /**
1339         * Vovida Software License v1.0.
1340         */
1341        VSL1_0, 
1342        /**
1343         * W3C Software Notice and License (1998-07-20).
1344         */
1345        W3C19980720, 
1346        /**
1347         * W3C Software Notice and Document License (2015-05-13).
1348         */
1349        W3C20150513, 
1350        /**
1351         * W3C Software Notice and License (2002-12-31).
1352         */
1353        W3C, 
1354        /**
1355         * Sybase Open Watcom Public License 1.0.
1356         */
1357        WATCOM1_0, 
1358        /**
1359         * Wsuipa License.
1360         */
1361        WSUIPA, 
1362        /**
1363         * Do What The F*ck You Want To Public License.
1364         */
1365        WTFPL, 
1366        /**
1367         * X11 License.
1368         */
1369        X11, 
1370        /**
1371         * Xerox License.
1372         */
1373        XEROX, 
1374        /**
1375         * XFree86 License 1.1.
1376         */
1377        XFREE861_1, 
1378        /**
1379         * xinetd License.
1380         */
1381        XINETD, 
1382        /**
1383         * X.Net License.
1384         */
1385        XNET, 
1386        /**
1387         * XPP License.
1388         */
1389        XPP, 
1390        /**
1391         * XSkat License.
1392         */
1393        XSKAT, 
1394        /**
1395         * Yahoo! Public License v1.0.
1396         */
1397        YPL1_0, 
1398        /**
1399         * Yahoo! Public License v1.1.
1400         */
1401        YPL1_1, 
1402        /**
1403         * Zed License.
1404         */
1405        ZED, 
1406        /**
1407         * Zend License v2.0.
1408         */
1409        ZEND2_0, 
1410        /**
1411         * Zimbra Public License v1.3.
1412         */
1413        ZIMBRA1_3, 
1414        /**
1415         * Zimbra Public License v1.4.
1416         */
1417        ZIMBRA1_4, 
1418        /**
1419         * zlib/libpng License with Acknowledgement.
1420         */
1421        ZLIBACKNOWLEDGEMENT, 
1422        /**
1423         * zlib License.
1424         */
1425        ZLIB, 
1426        /**
1427         * Zope Public License 1.1.
1428         */
1429        ZPL1_1, 
1430        /**
1431         * Zope Public License 2.0.
1432         */
1433        ZPL2_0, 
1434        /**
1435         * Zope Public License 2.1.
1436         */
1437        ZPL2_1, 
1438        /**
1439         * added to help the parsers with the generic types
1440         */
1441        NULL;
1442        public static SPDXLicense fromCode(String codeString) throws FHIRException {
1443            if (codeString == null || "".equals(codeString))
1444                return null;
1445        if ("not-open-source".equals(codeString))
1446          return NOTOPENSOURCE;
1447        if ("0BSD".equals(codeString))
1448          return _0BSD;
1449        if ("AAL".equals(codeString))
1450          return AAL;
1451        if ("Abstyles".equals(codeString))
1452          return ABSTYLES;
1453        if ("Adobe-2006".equals(codeString))
1454          return ADOBE2006;
1455        if ("Adobe-Glyph".equals(codeString))
1456          return ADOBEGLYPH;
1457        if ("ADSL".equals(codeString))
1458          return ADSL;
1459        if ("AFL-1.1".equals(codeString))
1460          return AFL1_1;
1461        if ("AFL-1.2".equals(codeString))
1462          return AFL1_2;
1463        if ("AFL-2.0".equals(codeString))
1464          return AFL2_0;
1465        if ("AFL-2.1".equals(codeString))
1466          return AFL2_1;
1467        if ("AFL-3.0".equals(codeString))
1468          return AFL3_0;
1469        if ("Afmparse".equals(codeString))
1470          return AFMPARSE;
1471        if ("AGPL-1.0-only".equals(codeString))
1472          return AGPL1_0ONLY;
1473        if ("AGPL-1.0-or-later".equals(codeString))
1474          return AGPL1_0ORLATER;
1475        if ("AGPL-3.0-only".equals(codeString))
1476          return AGPL3_0ONLY;
1477        if ("AGPL-3.0-or-later".equals(codeString))
1478          return AGPL3_0ORLATER;
1479        if ("Aladdin".equals(codeString))
1480          return ALADDIN;
1481        if ("AMDPLPA".equals(codeString))
1482          return AMDPLPA;
1483        if ("AML".equals(codeString))
1484          return AML;
1485        if ("AMPAS".equals(codeString))
1486          return AMPAS;
1487        if ("ANTLR-PD".equals(codeString))
1488          return ANTLRPD;
1489        if ("Apache-1.0".equals(codeString))
1490          return APACHE1_0;
1491        if ("Apache-1.1".equals(codeString))
1492          return APACHE1_1;
1493        if ("Apache-2.0".equals(codeString))
1494          return APACHE2_0;
1495        if ("APAFML".equals(codeString))
1496          return APAFML;
1497        if ("APL-1.0".equals(codeString))
1498          return APL1_0;
1499        if ("APSL-1.0".equals(codeString))
1500          return APSL1_0;
1501        if ("APSL-1.1".equals(codeString))
1502          return APSL1_1;
1503        if ("APSL-1.2".equals(codeString))
1504          return APSL1_2;
1505        if ("APSL-2.0".equals(codeString))
1506          return APSL2_0;
1507        if ("Artistic-1.0-cl8".equals(codeString))
1508          return ARTISTIC1_0CL8;
1509        if ("Artistic-1.0-Perl".equals(codeString))
1510          return ARTISTIC1_0PERL;
1511        if ("Artistic-1.0".equals(codeString))
1512          return ARTISTIC1_0;
1513        if ("Artistic-2.0".equals(codeString))
1514          return ARTISTIC2_0;
1515        if ("Bahyph".equals(codeString))
1516          return BAHYPH;
1517        if ("Barr".equals(codeString))
1518          return BARR;
1519        if ("Beerware".equals(codeString))
1520          return BEERWARE;
1521        if ("BitTorrent-1.0".equals(codeString))
1522          return BITTORRENT1_0;
1523        if ("BitTorrent-1.1".equals(codeString))
1524          return BITTORRENT1_1;
1525        if ("Borceux".equals(codeString))
1526          return BORCEUX;
1527        if ("BSD-1-Clause".equals(codeString))
1528          return BSD1CLAUSE;
1529        if ("BSD-2-Clause-FreeBSD".equals(codeString))
1530          return BSD2CLAUSEFREEBSD;
1531        if ("BSD-2-Clause-NetBSD".equals(codeString))
1532          return BSD2CLAUSENETBSD;
1533        if ("BSD-2-Clause-Patent".equals(codeString))
1534          return BSD2CLAUSEPATENT;
1535        if ("BSD-2-Clause".equals(codeString))
1536          return BSD2CLAUSE;
1537        if ("BSD-3-Clause-Attribution".equals(codeString))
1538          return BSD3CLAUSEATTRIBUTION;
1539        if ("BSD-3-Clause-Clear".equals(codeString))
1540          return BSD3CLAUSECLEAR;
1541        if ("BSD-3-Clause-LBNL".equals(codeString))
1542          return BSD3CLAUSELBNL;
1543        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
1544          return BSD3CLAUSENONUCLEARLICENSE2014;
1545        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
1546          return BSD3CLAUSENONUCLEARLICENSE;
1547        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
1548          return BSD3CLAUSENONUCLEARWARRANTY;
1549        if ("BSD-3-Clause".equals(codeString))
1550          return BSD3CLAUSE;
1551        if ("BSD-4-Clause-UC".equals(codeString))
1552          return BSD4CLAUSEUC;
1553        if ("BSD-4-Clause".equals(codeString))
1554          return BSD4CLAUSE;
1555        if ("BSD-Protection".equals(codeString))
1556          return BSDPROTECTION;
1557        if ("BSD-Source-Code".equals(codeString))
1558          return BSDSOURCECODE;
1559        if ("BSL-1.0".equals(codeString))
1560          return BSL1_0;
1561        if ("bzip2-1.0.5".equals(codeString))
1562          return BZIP21_0_5;
1563        if ("bzip2-1.0.6".equals(codeString))
1564          return BZIP21_0_6;
1565        if ("Caldera".equals(codeString))
1566          return CALDERA;
1567        if ("CATOSL-1.1".equals(codeString))
1568          return CATOSL1_1;
1569        if ("CC-BY-1.0".equals(codeString))
1570          return CCBY1_0;
1571        if ("CC-BY-2.0".equals(codeString))
1572          return CCBY2_0;
1573        if ("CC-BY-2.5".equals(codeString))
1574          return CCBY2_5;
1575        if ("CC-BY-3.0".equals(codeString))
1576          return CCBY3_0;
1577        if ("CC-BY-4.0".equals(codeString))
1578          return CCBY4_0;
1579        if ("CC-BY-NC-1.0".equals(codeString))
1580          return CCBYNC1_0;
1581        if ("CC-BY-NC-2.0".equals(codeString))
1582          return CCBYNC2_0;
1583        if ("CC-BY-NC-2.5".equals(codeString))
1584          return CCBYNC2_5;
1585        if ("CC-BY-NC-3.0".equals(codeString))
1586          return CCBYNC3_0;
1587        if ("CC-BY-NC-4.0".equals(codeString))
1588          return CCBYNC4_0;
1589        if ("CC-BY-NC-ND-1.0".equals(codeString))
1590          return CCBYNCND1_0;
1591        if ("CC-BY-NC-ND-2.0".equals(codeString))
1592          return CCBYNCND2_0;
1593        if ("CC-BY-NC-ND-2.5".equals(codeString))
1594          return CCBYNCND2_5;
1595        if ("CC-BY-NC-ND-3.0".equals(codeString))
1596          return CCBYNCND3_0;
1597        if ("CC-BY-NC-ND-4.0".equals(codeString))
1598          return CCBYNCND4_0;
1599        if ("CC-BY-NC-SA-1.0".equals(codeString))
1600          return CCBYNCSA1_0;
1601        if ("CC-BY-NC-SA-2.0".equals(codeString))
1602          return CCBYNCSA2_0;
1603        if ("CC-BY-NC-SA-2.5".equals(codeString))
1604          return CCBYNCSA2_5;
1605        if ("CC-BY-NC-SA-3.0".equals(codeString))
1606          return CCBYNCSA3_0;
1607        if ("CC-BY-NC-SA-4.0".equals(codeString))
1608          return CCBYNCSA4_0;
1609        if ("CC-BY-ND-1.0".equals(codeString))
1610          return CCBYND1_0;
1611        if ("CC-BY-ND-2.0".equals(codeString))
1612          return CCBYND2_0;
1613        if ("CC-BY-ND-2.5".equals(codeString))
1614          return CCBYND2_5;
1615        if ("CC-BY-ND-3.0".equals(codeString))
1616          return CCBYND3_0;
1617        if ("CC-BY-ND-4.0".equals(codeString))
1618          return CCBYND4_0;
1619        if ("CC-BY-SA-1.0".equals(codeString))
1620          return CCBYSA1_0;
1621        if ("CC-BY-SA-2.0".equals(codeString))
1622          return CCBYSA2_0;
1623        if ("CC-BY-SA-2.5".equals(codeString))
1624          return CCBYSA2_5;
1625        if ("CC-BY-SA-3.0".equals(codeString))
1626          return CCBYSA3_0;
1627        if ("CC-BY-SA-4.0".equals(codeString))
1628          return CCBYSA4_0;
1629        if ("CC0-1.0".equals(codeString))
1630          return CC01_0;
1631        if ("CDDL-1.0".equals(codeString))
1632          return CDDL1_0;
1633        if ("CDDL-1.1".equals(codeString))
1634          return CDDL1_1;
1635        if ("CDLA-Permissive-1.0".equals(codeString))
1636          return CDLAPERMISSIVE1_0;
1637        if ("CDLA-Sharing-1.0".equals(codeString))
1638          return CDLASHARING1_0;
1639        if ("CECILL-1.0".equals(codeString))
1640          return CECILL1_0;
1641        if ("CECILL-1.1".equals(codeString))
1642          return CECILL1_1;
1643        if ("CECILL-2.0".equals(codeString))
1644          return CECILL2_0;
1645        if ("CECILL-2.1".equals(codeString))
1646          return CECILL2_1;
1647        if ("CECILL-B".equals(codeString))
1648          return CECILLB;
1649        if ("CECILL-C".equals(codeString))
1650          return CECILLC;
1651        if ("ClArtistic".equals(codeString))
1652          return CLARTISTIC;
1653        if ("CNRI-Jython".equals(codeString))
1654          return CNRIJYTHON;
1655        if ("CNRI-Python-GPL-Compatible".equals(codeString))
1656          return CNRIPYTHONGPLCOMPATIBLE;
1657        if ("CNRI-Python".equals(codeString))
1658          return CNRIPYTHON;
1659        if ("Condor-1.1".equals(codeString))
1660          return CONDOR1_1;
1661        if ("CPAL-1.0".equals(codeString))
1662          return CPAL1_0;
1663        if ("CPL-1.0".equals(codeString))
1664          return CPL1_0;
1665        if ("CPOL-1.02".equals(codeString))
1666          return CPOL1_02;
1667        if ("Crossword".equals(codeString))
1668          return CROSSWORD;
1669        if ("CrystalStacker".equals(codeString))
1670          return CRYSTALSTACKER;
1671        if ("CUA-OPL-1.0".equals(codeString))
1672          return CUAOPL1_0;
1673        if ("Cube".equals(codeString))
1674          return CUBE;
1675        if ("curl".equals(codeString))
1676          return CURL;
1677        if ("D-FSL-1.0".equals(codeString))
1678          return DFSL1_0;
1679        if ("diffmark".equals(codeString))
1680          return DIFFMARK;
1681        if ("DOC".equals(codeString))
1682          return DOC;
1683        if ("Dotseqn".equals(codeString))
1684          return DOTSEQN;
1685        if ("DSDP".equals(codeString))
1686          return DSDP;
1687        if ("dvipdfm".equals(codeString))
1688          return DVIPDFM;
1689        if ("ECL-1.0".equals(codeString))
1690          return ECL1_0;
1691        if ("ECL-2.0".equals(codeString))
1692          return ECL2_0;
1693        if ("EFL-1.0".equals(codeString))
1694          return EFL1_0;
1695        if ("EFL-2.0".equals(codeString))
1696          return EFL2_0;
1697        if ("eGenix".equals(codeString))
1698          return EGENIX;
1699        if ("Entessa".equals(codeString))
1700          return ENTESSA;
1701        if ("EPL-1.0".equals(codeString))
1702          return EPL1_0;
1703        if ("EPL-2.0".equals(codeString))
1704          return EPL2_0;
1705        if ("ErlPL-1.1".equals(codeString))
1706          return ERLPL1_1;
1707        if ("EUDatagrid".equals(codeString))
1708          return EUDATAGRID;
1709        if ("EUPL-1.0".equals(codeString))
1710          return EUPL1_0;
1711        if ("EUPL-1.1".equals(codeString))
1712          return EUPL1_1;
1713        if ("EUPL-1.2".equals(codeString))
1714          return EUPL1_2;
1715        if ("Eurosym".equals(codeString))
1716          return EUROSYM;
1717        if ("Fair".equals(codeString))
1718          return FAIR;
1719        if ("Frameworx-1.0".equals(codeString))
1720          return FRAMEWORX1_0;
1721        if ("FreeImage".equals(codeString))
1722          return FREEIMAGE;
1723        if ("FSFAP".equals(codeString))
1724          return FSFAP;
1725        if ("FSFUL".equals(codeString))
1726          return FSFUL;
1727        if ("FSFULLR".equals(codeString))
1728          return FSFULLR;
1729        if ("FTL".equals(codeString))
1730          return FTL;
1731        if ("GFDL-1.1-only".equals(codeString))
1732          return GFDL1_1ONLY;
1733        if ("GFDL-1.1-or-later".equals(codeString))
1734          return GFDL1_1ORLATER;
1735        if ("GFDL-1.2-only".equals(codeString))
1736          return GFDL1_2ONLY;
1737        if ("GFDL-1.2-or-later".equals(codeString))
1738          return GFDL1_2ORLATER;
1739        if ("GFDL-1.3-only".equals(codeString))
1740          return GFDL1_3ONLY;
1741        if ("GFDL-1.3-or-later".equals(codeString))
1742          return GFDL1_3ORLATER;
1743        if ("Giftware".equals(codeString))
1744          return GIFTWARE;
1745        if ("GL2PS".equals(codeString))
1746          return GL2PS;
1747        if ("Glide".equals(codeString))
1748          return GLIDE;
1749        if ("Glulxe".equals(codeString))
1750          return GLULXE;
1751        if ("gnuplot".equals(codeString))
1752          return GNUPLOT;
1753        if ("GPL-1.0-only".equals(codeString))
1754          return GPL1_0ONLY;
1755        if ("GPL-1.0-or-later".equals(codeString))
1756          return GPL1_0ORLATER;
1757        if ("GPL-2.0-only".equals(codeString))
1758          return GPL2_0ONLY;
1759        if ("GPL-2.0-or-later".equals(codeString))
1760          return GPL2_0ORLATER;
1761        if ("GPL-3.0-only".equals(codeString))
1762          return GPL3_0ONLY;
1763        if ("GPL-3.0-or-later".equals(codeString))
1764          return GPL3_0ORLATER;
1765        if ("gSOAP-1.3b".equals(codeString))
1766          return GSOAP1_3B;
1767        if ("HaskellReport".equals(codeString))
1768          return HASKELLREPORT;
1769        if ("HPND".equals(codeString))
1770          return HPND;
1771        if ("IBM-pibs".equals(codeString))
1772          return IBMPIBS;
1773        if ("ICU".equals(codeString))
1774          return ICU;
1775        if ("IJG".equals(codeString))
1776          return IJG;
1777        if ("ImageMagick".equals(codeString))
1778          return IMAGEMAGICK;
1779        if ("iMatix".equals(codeString))
1780          return IMATIX;
1781        if ("Imlib2".equals(codeString))
1782          return IMLIB2;
1783        if ("Info-ZIP".equals(codeString))
1784          return INFOZIP;
1785        if ("Intel-ACPI".equals(codeString))
1786          return INTELACPI;
1787        if ("Intel".equals(codeString))
1788          return INTEL;
1789        if ("Interbase-1.0".equals(codeString))
1790          return INTERBASE1_0;
1791        if ("IPA".equals(codeString))
1792          return IPA;
1793        if ("IPL-1.0".equals(codeString))
1794          return IPL1_0;
1795        if ("ISC".equals(codeString))
1796          return ISC;
1797        if ("JasPer-2.0".equals(codeString))
1798          return JASPER2_0;
1799        if ("JSON".equals(codeString))
1800          return JSON;
1801        if ("LAL-1.2".equals(codeString))
1802          return LAL1_2;
1803        if ("LAL-1.3".equals(codeString))
1804          return LAL1_3;
1805        if ("Latex2e".equals(codeString))
1806          return LATEX2E;
1807        if ("Leptonica".equals(codeString))
1808          return LEPTONICA;
1809        if ("LGPL-2.0-only".equals(codeString))
1810          return LGPL2_0ONLY;
1811        if ("LGPL-2.0-or-later".equals(codeString))
1812          return LGPL2_0ORLATER;
1813        if ("LGPL-2.1-only".equals(codeString))
1814          return LGPL2_1ONLY;
1815        if ("LGPL-2.1-or-later".equals(codeString))
1816          return LGPL2_1ORLATER;
1817        if ("LGPL-3.0-only".equals(codeString))
1818          return LGPL3_0ONLY;
1819        if ("LGPL-3.0-or-later".equals(codeString))
1820          return LGPL3_0ORLATER;
1821        if ("LGPLLR".equals(codeString))
1822          return LGPLLR;
1823        if ("Libpng".equals(codeString))
1824          return LIBPNG;
1825        if ("libtiff".equals(codeString))
1826          return LIBTIFF;
1827        if ("LiLiQ-P-1.1".equals(codeString))
1828          return LILIQP1_1;
1829        if ("LiLiQ-R-1.1".equals(codeString))
1830          return LILIQR1_1;
1831        if ("LiLiQ-Rplus-1.1".equals(codeString))
1832          return LILIQRPLUS1_1;
1833        if ("Linux-OpenIB".equals(codeString))
1834          return LINUXOPENIB;
1835        if ("LPL-1.0".equals(codeString))
1836          return LPL1_0;
1837        if ("LPL-1.02".equals(codeString))
1838          return LPL1_02;
1839        if ("LPPL-1.0".equals(codeString))
1840          return LPPL1_0;
1841        if ("LPPL-1.1".equals(codeString))
1842          return LPPL1_1;
1843        if ("LPPL-1.2".equals(codeString))
1844          return LPPL1_2;
1845        if ("LPPL-1.3a".equals(codeString))
1846          return LPPL1_3A;
1847        if ("LPPL-1.3c".equals(codeString))
1848          return LPPL1_3C;
1849        if ("MakeIndex".equals(codeString))
1850          return MAKEINDEX;
1851        if ("MirOS".equals(codeString))
1852          return MIROS;
1853        if ("MIT-0".equals(codeString))
1854          return MIT0;
1855        if ("MIT-advertising".equals(codeString))
1856          return MITADVERTISING;
1857        if ("MIT-CMU".equals(codeString))
1858          return MITCMU;
1859        if ("MIT-enna".equals(codeString))
1860          return MITENNA;
1861        if ("MIT-feh".equals(codeString))
1862          return MITFEH;
1863        if ("MIT".equals(codeString))
1864          return MIT;
1865        if ("MITNFA".equals(codeString))
1866          return MITNFA;
1867        if ("Motosoto".equals(codeString))
1868          return MOTOSOTO;
1869        if ("mpich2".equals(codeString))
1870          return MPICH2;
1871        if ("MPL-1.0".equals(codeString))
1872          return MPL1_0;
1873        if ("MPL-1.1".equals(codeString))
1874          return MPL1_1;
1875        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
1876          return MPL2_0NOCOPYLEFTEXCEPTION;
1877        if ("MPL-2.0".equals(codeString))
1878          return MPL2_0;
1879        if ("MS-PL".equals(codeString))
1880          return MSPL;
1881        if ("MS-RL".equals(codeString))
1882          return MSRL;
1883        if ("MTLL".equals(codeString))
1884          return MTLL;
1885        if ("Multics".equals(codeString))
1886          return MULTICS;
1887        if ("Mup".equals(codeString))
1888          return MUP;
1889        if ("NASA-1.3".equals(codeString))
1890          return NASA1_3;
1891        if ("Naumen".equals(codeString))
1892          return NAUMEN;
1893        if ("NBPL-1.0".equals(codeString))
1894          return NBPL1_0;
1895        if ("NCSA".equals(codeString))
1896          return NCSA;
1897        if ("Net-SNMP".equals(codeString))
1898          return NETSNMP;
1899        if ("NetCDF".equals(codeString))
1900          return NETCDF;
1901        if ("Newsletr".equals(codeString))
1902          return NEWSLETR;
1903        if ("NGPL".equals(codeString))
1904          return NGPL;
1905        if ("NLOD-1.0".equals(codeString))
1906          return NLOD1_0;
1907        if ("NLPL".equals(codeString))
1908          return NLPL;
1909        if ("Nokia".equals(codeString))
1910          return NOKIA;
1911        if ("NOSL".equals(codeString))
1912          return NOSL;
1913        if ("Noweb".equals(codeString))
1914          return NOWEB;
1915        if ("NPL-1.0".equals(codeString))
1916          return NPL1_0;
1917        if ("NPL-1.1".equals(codeString))
1918          return NPL1_1;
1919        if ("NPOSL-3.0".equals(codeString))
1920          return NPOSL3_0;
1921        if ("NRL".equals(codeString))
1922          return NRL;
1923        if ("NTP".equals(codeString))
1924          return NTP;
1925        if ("OCCT-PL".equals(codeString))
1926          return OCCTPL;
1927        if ("OCLC-2.0".equals(codeString))
1928          return OCLC2_0;
1929        if ("ODbL-1.0".equals(codeString))
1930          return ODBL1_0;
1931        if ("OFL-1.0".equals(codeString))
1932          return OFL1_0;
1933        if ("OFL-1.1".equals(codeString))
1934          return OFL1_1;
1935        if ("OGTSL".equals(codeString))
1936          return OGTSL;
1937        if ("OLDAP-1.1".equals(codeString))
1938          return OLDAP1_1;
1939        if ("OLDAP-1.2".equals(codeString))
1940          return OLDAP1_2;
1941        if ("OLDAP-1.3".equals(codeString))
1942          return OLDAP1_3;
1943        if ("OLDAP-1.4".equals(codeString))
1944          return OLDAP1_4;
1945        if ("OLDAP-2.0.1".equals(codeString))
1946          return OLDAP2_0_1;
1947        if ("OLDAP-2.0".equals(codeString))
1948          return OLDAP2_0;
1949        if ("OLDAP-2.1".equals(codeString))
1950          return OLDAP2_1;
1951        if ("OLDAP-2.2.1".equals(codeString))
1952          return OLDAP2_2_1;
1953        if ("OLDAP-2.2.2".equals(codeString))
1954          return OLDAP2_2_2;
1955        if ("OLDAP-2.2".equals(codeString))
1956          return OLDAP2_2;
1957        if ("OLDAP-2.3".equals(codeString))
1958          return OLDAP2_3;
1959        if ("OLDAP-2.4".equals(codeString))
1960          return OLDAP2_4;
1961        if ("OLDAP-2.5".equals(codeString))
1962          return OLDAP2_5;
1963        if ("OLDAP-2.6".equals(codeString))
1964          return OLDAP2_6;
1965        if ("OLDAP-2.7".equals(codeString))
1966          return OLDAP2_7;
1967        if ("OLDAP-2.8".equals(codeString))
1968          return OLDAP2_8;
1969        if ("OML".equals(codeString))
1970          return OML;
1971        if ("OpenSSL".equals(codeString))
1972          return OPENSSL;
1973        if ("OPL-1.0".equals(codeString))
1974          return OPL1_0;
1975        if ("OSET-PL-2.1".equals(codeString))
1976          return OSETPL2_1;
1977        if ("OSL-1.0".equals(codeString))
1978          return OSL1_0;
1979        if ("OSL-1.1".equals(codeString))
1980          return OSL1_1;
1981        if ("OSL-2.0".equals(codeString))
1982          return OSL2_0;
1983        if ("OSL-2.1".equals(codeString))
1984          return OSL2_1;
1985        if ("OSL-3.0".equals(codeString))
1986          return OSL3_0;
1987        if ("PDDL-1.0".equals(codeString))
1988          return PDDL1_0;
1989        if ("PHP-3.0".equals(codeString))
1990          return PHP3_0;
1991        if ("PHP-3.01".equals(codeString))
1992          return PHP3_01;
1993        if ("Plexus".equals(codeString))
1994          return PLEXUS;
1995        if ("PostgreSQL".equals(codeString))
1996          return POSTGRESQL;
1997        if ("psfrag".equals(codeString))
1998          return PSFRAG;
1999        if ("psutils".equals(codeString))
2000          return PSUTILS;
2001        if ("Python-2.0".equals(codeString))
2002          return PYTHON2_0;
2003        if ("Qhull".equals(codeString))
2004          return QHULL;
2005        if ("QPL-1.0".equals(codeString))
2006          return QPL1_0;
2007        if ("Rdisc".equals(codeString))
2008          return RDISC;
2009        if ("RHeCos-1.1".equals(codeString))
2010          return RHECOS1_1;
2011        if ("RPL-1.1".equals(codeString))
2012          return RPL1_1;
2013        if ("RPL-1.5".equals(codeString))
2014          return RPL1_5;
2015        if ("RPSL-1.0".equals(codeString))
2016          return RPSL1_0;
2017        if ("RSA-MD".equals(codeString))
2018          return RSAMD;
2019        if ("RSCPL".equals(codeString))
2020          return RSCPL;
2021        if ("Ruby".equals(codeString))
2022          return RUBY;
2023        if ("SAX-PD".equals(codeString))
2024          return SAXPD;
2025        if ("Saxpath".equals(codeString))
2026          return SAXPATH;
2027        if ("SCEA".equals(codeString))
2028          return SCEA;
2029        if ("Sendmail".equals(codeString))
2030          return SENDMAIL;
2031        if ("SGI-B-1.0".equals(codeString))
2032          return SGIB1_0;
2033        if ("SGI-B-1.1".equals(codeString))
2034          return SGIB1_1;
2035        if ("SGI-B-2.0".equals(codeString))
2036          return SGIB2_0;
2037        if ("SimPL-2.0".equals(codeString))
2038          return SIMPL2_0;
2039        if ("SISSL-1.2".equals(codeString))
2040          return SISSL1_2;
2041        if ("SISSL".equals(codeString))
2042          return SISSL;
2043        if ("Sleepycat".equals(codeString))
2044          return SLEEPYCAT;
2045        if ("SMLNJ".equals(codeString))
2046          return SMLNJ;
2047        if ("SMPPL".equals(codeString))
2048          return SMPPL;
2049        if ("SNIA".equals(codeString))
2050          return SNIA;
2051        if ("Spencer-86".equals(codeString))
2052          return SPENCER86;
2053        if ("Spencer-94".equals(codeString))
2054          return SPENCER94;
2055        if ("Spencer-99".equals(codeString))
2056          return SPENCER99;
2057        if ("SPL-1.0".equals(codeString))
2058          return SPL1_0;
2059        if ("SugarCRM-1.1.3".equals(codeString))
2060          return SUGARCRM1_1_3;
2061        if ("SWL".equals(codeString))
2062          return SWL;
2063        if ("TCL".equals(codeString))
2064          return TCL;
2065        if ("TCP-wrappers".equals(codeString))
2066          return TCPWRAPPERS;
2067        if ("TMate".equals(codeString))
2068          return TMATE;
2069        if ("TORQUE-1.1".equals(codeString))
2070          return TORQUE1_1;
2071        if ("TOSL".equals(codeString))
2072          return TOSL;
2073        if ("Unicode-DFS-2015".equals(codeString))
2074          return UNICODEDFS2015;
2075        if ("Unicode-DFS-2016".equals(codeString))
2076          return UNICODEDFS2016;
2077        if ("Unicode-TOU".equals(codeString))
2078          return UNICODETOU;
2079        if ("Unlicense".equals(codeString))
2080          return UNLICENSE;
2081        if ("UPL-1.0".equals(codeString))
2082          return UPL1_0;
2083        if ("Vim".equals(codeString))
2084          return VIM;
2085        if ("VOSTROM".equals(codeString))
2086          return VOSTROM;
2087        if ("VSL-1.0".equals(codeString))
2088          return VSL1_0;
2089        if ("W3C-19980720".equals(codeString))
2090          return W3C19980720;
2091        if ("W3C-20150513".equals(codeString))
2092          return W3C20150513;
2093        if ("W3C".equals(codeString))
2094          return W3C;
2095        if ("Watcom-1.0".equals(codeString))
2096          return WATCOM1_0;
2097        if ("Wsuipa".equals(codeString))
2098          return WSUIPA;
2099        if ("WTFPL".equals(codeString))
2100          return WTFPL;
2101        if ("X11".equals(codeString))
2102          return X11;
2103        if ("Xerox".equals(codeString))
2104          return XEROX;
2105        if ("XFree86-1.1".equals(codeString))
2106          return XFREE861_1;
2107        if ("xinetd".equals(codeString))
2108          return XINETD;
2109        if ("Xnet".equals(codeString))
2110          return XNET;
2111        if ("xpp".equals(codeString))
2112          return XPP;
2113        if ("XSkat".equals(codeString))
2114          return XSKAT;
2115        if ("YPL-1.0".equals(codeString))
2116          return YPL1_0;
2117        if ("YPL-1.1".equals(codeString))
2118          return YPL1_1;
2119        if ("Zed".equals(codeString))
2120          return ZED;
2121        if ("Zend-2.0".equals(codeString))
2122          return ZEND2_0;
2123        if ("Zimbra-1.3".equals(codeString))
2124          return ZIMBRA1_3;
2125        if ("Zimbra-1.4".equals(codeString))
2126          return ZIMBRA1_4;
2127        if ("zlib-acknowledgement".equals(codeString))
2128          return ZLIBACKNOWLEDGEMENT;
2129        if ("Zlib".equals(codeString))
2130          return ZLIB;
2131        if ("ZPL-1.1".equals(codeString))
2132          return ZPL1_1;
2133        if ("ZPL-2.0".equals(codeString))
2134          return ZPL2_0;
2135        if ("ZPL-2.1".equals(codeString))
2136          return ZPL2_1;
2137        if (Configuration.isAcceptInvalidEnums())
2138          return null;
2139        else
2140          throw new FHIRException("Unknown SPDXLicense code '"+codeString+"'");
2141        }
2142        public String toCode() {
2143          switch (this) {
2144            case NOTOPENSOURCE: return "not-open-source";
2145            case _0BSD: return "0BSD";
2146            case AAL: return "AAL";
2147            case ABSTYLES: return "Abstyles";
2148            case ADOBE2006: return "Adobe-2006";
2149            case ADOBEGLYPH: return "Adobe-Glyph";
2150            case ADSL: return "ADSL";
2151            case AFL1_1: return "AFL-1.1";
2152            case AFL1_2: return "AFL-1.2";
2153            case AFL2_0: return "AFL-2.0";
2154            case AFL2_1: return "AFL-2.1";
2155            case AFL3_0: return "AFL-3.0";
2156            case AFMPARSE: return "Afmparse";
2157            case AGPL1_0ONLY: return "AGPL-1.0-only";
2158            case AGPL1_0ORLATER: return "AGPL-1.0-or-later";
2159            case AGPL3_0ONLY: return "AGPL-3.0-only";
2160            case AGPL3_0ORLATER: return "AGPL-3.0-or-later";
2161            case ALADDIN: return "Aladdin";
2162            case AMDPLPA: return "AMDPLPA";
2163            case AML: return "AML";
2164            case AMPAS: return "AMPAS";
2165            case ANTLRPD: return "ANTLR-PD";
2166            case APACHE1_0: return "Apache-1.0";
2167            case APACHE1_1: return "Apache-1.1";
2168            case APACHE2_0: return "Apache-2.0";
2169            case APAFML: return "APAFML";
2170            case APL1_0: return "APL-1.0";
2171            case APSL1_0: return "APSL-1.0";
2172            case APSL1_1: return "APSL-1.1";
2173            case APSL1_2: return "APSL-1.2";
2174            case APSL2_0: return "APSL-2.0";
2175            case ARTISTIC1_0CL8: return "Artistic-1.0-cl8";
2176            case ARTISTIC1_0PERL: return "Artistic-1.0-Perl";
2177            case ARTISTIC1_0: return "Artistic-1.0";
2178            case ARTISTIC2_0: return "Artistic-2.0";
2179            case BAHYPH: return "Bahyph";
2180            case BARR: return "Barr";
2181            case BEERWARE: return "Beerware";
2182            case BITTORRENT1_0: return "BitTorrent-1.0";
2183            case BITTORRENT1_1: return "BitTorrent-1.1";
2184            case BORCEUX: return "Borceux";
2185            case BSD1CLAUSE: return "BSD-1-Clause";
2186            case BSD2CLAUSEFREEBSD: return "BSD-2-Clause-FreeBSD";
2187            case BSD2CLAUSENETBSD: return "BSD-2-Clause-NetBSD";
2188            case BSD2CLAUSEPATENT: return "BSD-2-Clause-Patent";
2189            case BSD2CLAUSE: return "BSD-2-Clause";
2190            case BSD3CLAUSEATTRIBUTION: return "BSD-3-Clause-Attribution";
2191            case BSD3CLAUSECLEAR: return "BSD-3-Clause-Clear";
2192            case BSD3CLAUSELBNL: return "BSD-3-Clause-LBNL";
2193            case BSD3CLAUSENONUCLEARLICENSE2014: return "BSD-3-Clause-No-Nuclear-License-2014";
2194            case BSD3CLAUSENONUCLEARLICENSE: return "BSD-3-Clause-No-Nuclear-License";
2195            case BSD3CLAUSENONUCLEARWARRANTY: return "BSD-3-Clause-No-Nuclear-Warranty";
2196            case BSD3CLAUSE: return "BSD-3-Clause";
2197            case BSD4CLAUSEUC: return "BSD-4-Clause-UC";
2198            case BSD4CLAUSE: return "BSD-4-Clause";
2199            case BSDPROTECTION: return "BSD-Protection";
2200            case BSDSOURCECODE: return "BSD-Source-Code";
2201            case BSL1_0: return "BSL-1.0";
2202            case BZIP21_0_5: return "bzip2-1.0.5";
2203            case BZIP21_0_6: return "bzip2-1.0.6";
2204            case CALDERA: return "Caldera";
2205            case CATOSL1_1: return "CATOSL-1.1";
2206            case CCBY1_0: return "CC-BY-1.0";
2207            case CCBY2_0: return "CC-BY-2.0";
2208            case CCBY2_5: return "CC-BY-2.5";
2209            case CCBY3_0: return "CC-BY-3.0";
2210            case CCBY4_0: return "CC-BY-4.0";
2211            case CCBYNC1_0: return "CC-BY-NC-1.0";
2212            case CCBYNC2_0: return "CC-BY-NC-2.0";
2213            case CCBYNC2_5: return "CC-BY-NC-2.5";
2214            case CCBYNC3_0: return "CC-BY-NC-3.0";
2215            case CCBYNC4_0: return "CC-BY-NC-4.0";
2216            case CCBYNCND1_0: return "CC-BY-NC-ND-1.0";
2217            case CCBYNCND2_0: return "CC-BY-NC-ND-2.0";
2218            case CCBYNCND2_5: return "CC-BY-NC-ND-2.5";
2219            case CCBYNCND3_0: return "CC-BY-NC-ND-3.0";
2220            case CCBYNCND4_0: return "CC-BY-NC-ND-4.0";
2221            case CCBYNCSA1_0: return "CC-BY-NC-SA-1.0";
2222            case CCBYNCSA2_0: return "CC-BY-NC-SA-2.0";
2223            case CCBYNCSA2_5: return "CC-BY-NC-SA-2.5";
2224            case CCBYNCSA3_0: return "CC-BY-NC-SA-3.0";
2225            case CCBYNCSA4_0: return "CC-BY-NC-SA-4.0";
2226            case CCBYND1_0: return "CC-BY-ND-1.0";
2227            case CCBYND2_0: return "CC-BY-ND-2.0";
2228            case CCBYND2_5: return "CC-BY-ND-2.5";
2229            case CCBYND3_0: return "CC-BY-ND-3.0";
2230            case CCBYND4_0: return "CC-BY-ND-4.0";
2231            case CCBYSA1_0: return "CC-BY-SA-1.0";
2232            case CCBYSA2_0: return "CC-BY-SA-2.0";
2233            case CCBYSA2_5: return "CC-BY-SA-2.5";
2234            case CCBYSA3_0: return "CC-BY-SA-3.0";
2235            case CCBYSA4_0: return "CC-BY-SA-4.0";
2236            case CC01_0: return "CC0-1.0";
2237            case CDDL1_0: return "CDDL-1.0";
2238            case CDDL1_1: return "CDDL-1.1";
2239            case CDLAPERMISSIVE1_0: return "CDLA-Permissive-1.0";
2240            case CDLASHARING1_0: return "CDLA-Sharing-1.0";
2241            case CECILL1_0: return "CECILL-1.0";
2242            case CECILL1_1: return "CECILL-1.1";
2243            case CECILL2_0: return "CECILL-2.0";
2244            case CECILL2_1: return "CECILL-2.1";
2245            case CECILLB: return "CECILL-B";
2246            case CECILLC: return "CECILL-C";
2247            case CLARTISTIC: return "ClArtistic";
2248            case CNRIJYTHON: return "CNRI-Jython";
2249            case CNRIPYTHONGPLCOMPATIBLE: return "CNRI-Python-GPL-Compatible";
2250            case CNRIPYTHON: return "CNRI-Python";
2251            case CONDOR1_1: return "Condor-1.1";
2252            case CPAL1_0: return "CPAL-1.0";
2253            case CPL1_0: return "CPL-1.0";
2254            case CPOL1_02: return "CPOL-1.02";
2255            case CROSSWORD: return "Crossword";
2256            case CRYSTALSTACKER: return "CrystalStacker";
2257            case CUAOPL1_0: return "CUA-OPL-1.0";
2258            case CUBE: return "Cube";
2259            case CURL: return "curl";
2260            case DFSL1_0: return "D-FSL-1.0";
2261            case DIFFMARK: return "diffmark";
2262            case DOC: return "DOC";
2263            case DOTSEQN: return "Dotseqn";
2264            case DSDP: return "DSDP";
2265            case DVIPDFM: return "dvipdfm";
2266            case ECL1_0: return "ECL-1.0";
2267            case ECL2_0: return "ECL-2.0";
2268            case EFL1_0: return "EFL-1.0";
2269            case EFL2_0: return "EFL-2.0";
2270            case EGENIX: return "eGenix";
2271            case ENTESSA: return "Entessa";
2272            case EPL1_0: return "EPL-1.0";
2273            case EPL2_0: return "EPL-2.0";
2274            case ERLPL1_1: return "ErlPL-1.1";
2275            case EUDATAGRID: return "EUDatagrid";
2276            case EUPL1_0: return "EUPL-1.0";
2277            case EUPL1_1: return "EUPL-1.1";
2278            case EUPL1_2: return "EUPL-1.2";
2279            case EUROSYM: return "Eurosym";
2280            case FAIR: return "Fair";
2281            case FRAMEWORX1_0: return "Frameworx-1.0";
2282            case FREEIMAGE: return "FreeImage";
2283            case FSFAP: return "FSFAP";
2284            case FSFUL: return "FSFUL";
2285            case FSFULLR: return "FSFULLR";
2286            case FTL: return "FTL";
2287            case GFDL1_1ONLY: return "GFDL-1.1-only";
2288            case GFDL1_1ORLATER: return "GFDL-1.1-or-later";
2289            case GFDL1_2ONLY: return "GFDL-1.2-only";
2290            case GFDL1_2ORLATER: return "GFDL-1.2-or-later";
2291            case GFDL1_3ONLY: return "GFDL-1.3-only";
2292            case GFDL1_3ORLATER: return "GFDL-1.3-or-later";
2293            case GIFTWARE: return "Giftware";
2294            case GL2PS: return "GL2PS";
2295            case GLIDE: return "Glide";
2296            case GLULXE: return "Glulxe";
2297            case GNUPLOT: return "gnuplot";
2298            case GPL1_0ONLY: return "GPL-1.0-only";
2299            case GPL1_0ORLATER: return "GPL-1.0-or-later";
2300            case GPL2_0ONLY: return "GPL-2.0-only";
2301            case GPL2_0ORLATER: return "GPL-2.0-or-later";
2302            case GPL3_0ONLY: return "GPL-3.0-only";
2303            case GPL3_0ORLATER: return "GPL-3.0-or-later";
2304            case GSOAP1_3B: return "gSOAP-1.3b";
2305            case HASKELLREPORT: return "HaskellReport";
2306            case HPND: return "HPND";
2307            case IBMPIBS: return "IBM-pibs";
2308            case ICU: return "ICU";
2309            case IJG: return "IJG";
2310            case IMAGEMAGICK: return "ImageMagick";
2311            case IMATIX: return "iMatix";
2312            case IMLIB2: return "Imlib2";
2313            case INFOZIP: return "Info-ZIP";
2314            case INTELACPI: return "Intel-ACPI";
2315            case INTEL: return "Intel";
2316            case INTERBASE1_0: return "Interbase-1.0";
2317            case IPA: return "IPA";
2318            case IPL1_0: return "IPL-1.0";
2319            case ISC: return "ISC";
2320            case JASPER2_0: return "JasPer-2.0";
2321            case JSON: return "JSON";
2322            case LAL1_2: return "LAL-1.2";
2323            case LAL1_3: return "LAL-1.3";
2324            case LATEX2E: return "Latex2e";
2325            case LEPTONICA: return "Leptonica";
2326            case LGPL2_0ONLY: return "LGPL-2.0-only";
2327            case LGPL2_0ORLATER: return "LGPL-2.0-or-later";
2328            case LGPL2_1ONLY: return "LGPL-2.1-only";
2329            case LGPL2_1ORLATER: return "LGPL-2.1-or-later";
2330            case LGPL3_0ONLY: return "LGPL-3.0-only";
2331            case LGPL3_0ORLATER: return "LGPL-3.0-or-later";
2332            case LGPLLR: return "LGPLLR";
2333            case LIBPNG: return "Libpng";
2334            case LIBTIFF: return "libtiff";
2335            case LILIQP1_1: return "LiLiQ-P-1.1";
2336            case LILIQR1_1: return "LiLiQ-R-1.1";
2337            case LILIQRPLUS1_1: return "LiLiQ-Rplus-1.1";
2338            case LINUXOPENIB: return "Linux-OpenIB";
2339            case LPL1_0: return "LPL-1.0";
2340            case LPL1_02: return "LPL-1.02";
2341            case LPPL1_0: return "LPPL-1.0";
2342            case LPPL1_1: return "LPPL-1.1";
2343            case LPPL1_2: return "LPPL-1.2";
2344            case LPPL1_3A: return "LPPL-1.3a";
2345            case LPPL1_3C: return "LPPL-1.3c";
2346            case MAKEINDEX: return "MakeIndex";
2347            case MIROS: return "MirOS";
2348            case MIT0: return "MIT-0";
2349            case MITADVERTISING: return "MIT-advertising";
2350            case MITCMU: return "MIT-CMU";
2351            case MITENNA: return "MIT-enna";
2352            case MITFEH: return "MIT-feh";
2353            case MIT: return "MIT";
2354            case MITNFA: return "MITNFA";
2355            case MOTOSOTO: return "Motosoto";
2356            case MPICH2: return "mpich2";
2357            case MPL1_0: return "MPL-1.0";
2358            case MPL1_1: return "MPL-1.1";
2359            case MPL2_0NOCOPYLEFTEXCEPTION: return "MPL-2.0-no-copyleft-exception";
2360            case MPL2_0: return "MPL-2.0";
2361            case MSPL: return "MS-PL";
2362            case MSRL: return "MS-RL";
2363            case MTLL: return "MTLL";
2364            case MULTICS: return "Multics";
2365            case MUP: return "Mup";
2366            case NASA1_3: return "NASA-1.3";
2367            case NAUMEN: return "Naumen";
2368            case NBPL1_0: return "NBPL-1.0";
2369            case NCSA: return "NCSA";
2370            case NETSNMP: return "Net-SNMP";
2371            case NETCDF: return "NetCDF";
2372            case NEWSLETR: return "Newsletr";
2373            case NGPL: return "NGPL";
2374            case NLOD1_0: return "NLOD-1.0";
2375            case NLPL: return "NLPL";
2376            case NOKIA: return "Nokia";
2377            case NOSL: return "NOSL";
2378            case NOWEB: return "Noweb";
2379            case NPL1_0: return "NPL-1.0";
2380            case NPL1_1: return "NPL-1.1";
2381            case NPOSL3_0: return "NPOSL-3.0";
2382            case NRL: return "NRL";
2383            case NTP: return "NTP";
2384            case OCCTPL: return "OCCT-PL";
2385            case OCLC2_0: return "OCLC-2.0";
2386            case ODBL1_0: return "ODbL-1.0";
2387            case OFL1_0: return "OFL-1.0";
2388            case OFL1_1: return "OFL-1.1";
2389            case OGTSL: return "OGTSL";
2390            case OLDAP1_1: return "OLDAP-1.1";
2391            case OLDAP1_2: return "OLDAP-1.2";
2392            case OLDAP1_3: return "OLDAP-1.3";
2393            case OLDAP1_4: return "OLDAP-1.4";
2394            case OLDAP2_0_1: return "OLDAP-2.0.1";
2395            case OLDAP2_0: return "OLDAP-2.0";
2396            case OLDAP2_1: return "OLDAP-2.1";
2397            case OLDAP2_2_1: return "OLDAP-2.2.1";
2398            case OLDAP2_2_2: return "OLDAP-2.2.2";
2399            case OLDAP2_2: return "OLDAP-2.2";
2400            case OLDAP2_3: return "OLDAP-2.3";
2401            case OLDAP2_4: return "OLDAP-2.4";
2402            case OLDAP2_5: return "OLDAP-2.5";
2403            case OLDAP2_6: return "OLDAP-2.6";
2404            case OLDAP2_7: return "OLDAP-2.7";
2405            case OLDAP2_8: return "OLDAP-2.8";
2406            case OML: return "OML";
2407            case OPENSSL: return "OpenSSL";
2408            case OPL1_0: return "OPL-1.0";
2409            case OSETPL2_1: return "OSET-PL-2.1";
2410            case OSL1_0: return "OSL-1.0";
2411            case OSL1_1: return "OSL-1.1";
2412            case OSL2_0: return "OSL-2.0";
2413            case OSL2_1: return "OSL-2.1";
2414            case OSL3_0: return "OSL-3.0";
2415            case PDDL1_0: return "PDDL-1.0";
2416            case PHP3_0: return "PHP-3.0";
2417            case PHP3_01: return "PHP-3.01";
2418            case PLEXUS: return "Plexus";
2419            case POSTGRESQL: return "PostgreSQL";
2420            case PSFRAG: return "psfrag";
2421            case PSUTILS: return "psutils";
2422            case PYTHON2_0: return "Python-2.0";
2423            case QHULL: return "Qhull";
2424            case QPL1_0: return "QPL-1.0";
2425            case RDISC: return "Rdisc";
2426            case RHECOS1_1: return "RHeCos-1.1";
2427            case RPL1_1: return "RPL-1.1";
2428            case RPL1_5: return "RPL-1.5";
2429            case RPSL1_0: return "RPSL-1.0";
2430            case RSAMD: return "RSA-MD";
2431            case RSCPL: return "RSCPL";
2432            case RUBY: return "Ruby";
2433            case SAXPD: return "SAX-PD";
2434            case SAXPATH: return "Saxpath";
2435            case SCEA: return "SCEA";
2436            case SENDMAIL: return "Sendmail";
2437            case SGIB1_0: return "SGI-B-1.0";
2438            case SGIB1_1: return "SGI-B-1.1";
2439            case SGIB2_0: return "SGI-B-2.0";
2440            case SIMPL2_0: return "SimPL-2.0";
2441            case SISSL1_2: return "SISSL-1.2";
2442            case SISSL: return "SISSL";
2443            case SLEEPYCAT: return "Sleepycat";
2444            case SMLNJ: return "SMLNJ";
2445            case SMPPL: return "SMPPL";
2446            case SNIA: return "SNIA";
2447            case SPENCER86: return "Spencer-86";
2448            case SPENCER94: return "Spencer-94";
2449            case SPENCER99: return "Spencer-99";
2450            case SPL1_0: return "SPL-1.0";
2451            case SUGARCRM1_1_3: return "SugarCRM-1.1.3";
2452            case SWL: return "SWL";
2453            case TCL: return "TCL";
2454            case TCPWRAPPERS: return "TCP-wrappers";
2455            case TMATE: return "TMate";
2456            case TORQUE1_1: return "TORQUE-1.1";
2457            case TOSL: return "TOSL";
2458            case UNICODEDFS2015: return "Unicode-DFS-2015";
2459            case UNICODEDFS2016: return "Unicode-DFS-2016";
2460            case UNICODETOU: return "Unicode-TOU";
2461            case UNLICENSE: return "Unlicense";
2462            case UPL1_0: return "UPL-1.0";
2463            case VIM: return "Vim";
2464            case VOSTROM: return "VOSTROM";
2465            case VSL1_0: return "VSL-1.0";
2466            case W3C19980720: return "W3C-19980720";
2467            case W3C20150513: return "W3C-20150513";
2468            case W3C: return "W3C";
2469            case WATCOM1_0: return "Watcom-1.0";
2470            case WSUIPA: return "Wsuipa";
2471            case WTFPL: return "WTFPL";
2472            case X11: return "X11";
2473            case XEROX: return "Xerox";
2474            case XFREE861_1: return "XFree86-1.1";
2475            case XINETD: return "xinetd";
2476            case XNET: return "Xnet";
2477            case XPP: return "xpp";
2478            case XSKAT: return "XSkat";
2479            case YPL1_0: return "YPL-1.0";
2480            case YPL1_1: return "YPL-1.1";
2481            case ZED: return "Zed";
2482            case ZEND2_0: return "Zend-2.0";
2483            case ZIMBRA1_3: return "Zimbra-1.3";
2484            case ZIMBRA1_4: return "Zimbra-1.4";
2485            case ZLIBACKNOWLEDGEMENT: return "zlib-acknowledgement";
2486            case ZLIB: return "Zlib";
2487            case ZPL1_1: return "ZPL-1.1";
2488            case ZPL2_0: return "ZPL-2.0";
2489            case ZPL2_1: return "ZPL-2.1";
2490            default: return "?";
2491          }
2492        }
2493        public String getSystem() {
2494          switch (this) {
2495            case NOTOPENSOURCE: return "http://hl7.org/fhir/spdx-license";
2496            case _0BSD: return "http://hl7.org/fhir/spdx-license";
2497            case AAL: return "http://hl7.org/fhir/spdx-license";
2498            case ABSTYLES: return "http://hl7.org/fhir/spdx-license";
2499            case ADOBE2006: return "http://hl7.org/fhir/spdx-license";
2500            case ADOBEGLYPH: return "http://hl7.org/fhir/spdx-license";
2501            case ADSL: return "http://hl7.org/fhir/spdx-license";
2502            case AFL1_1: return "http://hl7.org/fhir/spdx-license";
2503            case AFL1_2: return "http://hl7.org/fhir/spdx-license";
2504            case AFL2_0: return "http://hl7.org/fhir/spdx-license";
2505            case AFL2_1: return "http://hl7.org/fhir/spdx-license";
2506            case AFL3_0: return "http://hl7.org/fhir/spdx-license";
2507            case AFMPARSE: return "http://hl7.org/fhir/spdx-license";
2508            case AGPL1_0ONLY: return "http://hl7.org/fhir/spdx-license";
2509            case AGPL1_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2510            case AGPL3_0ONLY: return "http://hl7.org/fhir/spdx-license";
2511            case AGPL3_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2512            case ALADDIN: return "http://hl7.org/fhir/spdx-license";
2513            case AMDPLPA: return "http://hl7.org/fhir/spdx-license";
2514            case AML: return "http://hl7.org/fhir/spdx-license";
2515            case AMPAS: return "http://hl7.org/fhir/spdx-license";
2516            case ANTLRPD: return "http://hl7.org/fhir/spdx-license";
2517            case APACHE1_0: return "http://hl7.org/fhir/spdx-license";
2518            case APACHE1_1: return "http://hl7.org/fhir/spdx-license";
2519            case APACHE2_0: return "http://hl7.org/fhir/spdx-license";
2520            case APAFML: return "http://hl7.org/fhir/spdx-license";
2521            case APL1_0: return "http://hl7.org/fhir/spdx-license";
2522            case APSL1_0: return "http://hl7.org/fhir/spdx-license";
2523            case APSL1_1: return "http://hl7.org/fhir/spdx-license";
2524            case APSL1_2: return "http://hl7.org/fhir/spdx-license";
2525            case APSL2_0: return "http://hl7.org/fhir/spdx-license";
2526            case ARTISTIC1_0CL8: return "http://hl7.org/fhir/spdx-license";
2527            case ARTISTIC1_0PERL: return "http://hl7.org/fhir/spdx-license";
2528            case ARTISTIC1_0: return "http://hl7.org/fhir/spdx-license";
2529            case ARTISTIC2_0: return "http://hl7.org/fhir/spdx-license";
2530            case BAHYPH: return "http://hl7.org/fhir/spdx-license";
2531            case BARR: return "http://hl7.org/fhir/spdx-license";
2532            case BEERWARE: return "http://hl7.org/fhir/spdx-license";
2533            case BITTORRENT1_0: return "http://hl7.org/fhir/spdx-license";
2534            case BITTORRENT1_1: return "http://hl7.org/fhir/spdx-license";
2535            case BORCEUX: return "http://hl7.org/fhir/spdx-license";
2536            case BSD1CLAUSE: return "http://hl7.org/fhir/spdx-license";
2537            case BSD2CLAUSEFREEBSD: return "http://hl7.org/fhir/spdx-license";
2538            case BSD2CLAUSENETBSD: return "http://hl7.org/fhir/spdx-license";
2539            case BSD2CLAUSEPATENT: return "http://hl7.org/fhir/spdx-license";
2540            case BSD2CLAUSE: return "http://hl7.org/fhir/spdx-license";
2541            case BSD3CLAUSEATTRIBUTION: return "http://hl7.org/fhir/spdx-license";
2542            case BSD3CLAUSECLEAR: return "http://hl7.org/fhir/spdx-license";
2543            case BSD3CLAUSELBNL: return "http://hl7.org/fhir/spdx-license";
2544            case BSD3CLAUSENONUCLEARLICENSE2014: return "http://hl7.org/fhir/spdx-license";
2545            case BSD3CLAUSENONUCLEARLICENSE: return "http://hl7.org/fhir/spdx-license";
2546            case BSD3CLAUSENONUCLEARWARRANTY: return "http://hl7.org/fhir/spdx-license";
2547            case BSD3CLAUSE: return "http://hl7.org/fhir/spdx-license";
2548            case BSD4CLAUSEUC: return "http://hl7.org/fhir/spdx-license";
2549            case BSD4CLAUSE: return "http://hl7.org/fhir/spdx-license";
2550            case BSDPROTECTION: return "http://hl7.org/fhir/spdx-license";
2551            case BSDSOURCECODE: return "http://hl7.org/fhir/spdx-license";
2552            case BSL1_0: return "http://hl7.org/fhir/spdx-license";
2553            case BZIP21_0_5: return "http://hl7.org/fhir/spdx-license";
2554            case BZIP21_0_6: return "http://hl7.org/fhir/spdx-license";
2555            case CALDERA: return "http://hl7.org/fhir/spdx-license";
2556            case CATOSL1_1: return "http://hl7.org/fhir/spdx-license";
2557            case CCBY1_0: return "http://hl7.org/fhir/spdx-license";
2558            case CCBY2_0: return "http://hl7.org/fhir/spdx-license";
2559            case CCBY2_5: return "http://hl7.org/fhir/spdx-license";
2560            case CCBY3_0: return "http://hl7.org/fhir/spdx-license";
2561            case CCBY4_0: return "http://hl7.org/fhir/spdx-license";
2562            case CCBYNC1_0: return "http://hl7.org/fhir/spdx-license";
2563            case CCBYNC2_0: return "http://hl7.org/fhir/spdx-license";
2564            case CCBYNC2_5: return "http://hl7.org/fhir/spdx-license";
2565            case CCBYNC3_0: return "http://hl7.org/fhir/spdx-license";
2566            case CCBYNC4_0: return "http://hl7.org/fhir/spdx-license";
2567            case CCBYNCND1_0: return "http://hl7.org/fhir/spdx-license";
2568            case CCBYNCND2_0: return "http://hl7.org/fhir/spdx-license";
2569            case CCBYNCND2_5: return "http://hl7.org/fhir/spdx-license";
2570            case CCBYNCND3_0: return "http://hl7.org/fhir/spdx-license";
2571            case CCBYNCND4_0: return "http://hl7.org/fhir/spdx-license";
2572            case CCBYNCSA1_0: return "http://hl7.org/fhir/spdx-license";
2573            case CCBYNCSA2_0: return "http://hl7.org/fhir/spdx-license";
2574            case CCBYNCSA2_5: return "http://hl7.org/fhir/spdx-license";
2575            case CCBYNCSA3_0: return "http://hl7.org/fhir/spdx-license";
2576            case CCBYNCSA4_0: return "http://hl7.org/fhir/spdx-license";
2577            case CCBYND1_0: return "http://hl7.org/fhir/spdx-license";
2578            case CCBYND2_0: return "http://hl7.org/fhir/spdx-license";
2579            case CCBYND2_5: return "http://hl7.org/fhir/spdx-license";
2580            case CCBYND3_0: return "http://hl7.org/fhir/spdx-license";
2581            case CCBYND4_0: return "http://hl7.org/fhir/spdx-license";
2582            case CCBYSA1_0: return "http://hl7.org/fhir/spdx-license";
2583            case CCBYSA2_0: return "http://hl7.org/fhir/spdx-license";
2584            case CCBYSA2_5: return "http://hl7.org/fhir/spdx-license";
2585            case CCBYSA3_0: return "http://hl7.org/fhir/spdx-license";
2586            case CCBYSA4_0: return "http://hl7.org/fhir/spdx-license";
2587            case CC01_0: return "http://hl7.org/fhir/spdx-license";
2588            case CDDL1_0: return "http://hl7.org/fhir/spdx-license";
2589            case CDDL1_1: return "http://hl7.org/fhir/spdx-license";
2590            case CDLAPERMISSIVE1_0: return "http://hl7.org/fhir/spdx-license";
2591            case CDLASHARING1_0: return "http://hl7.org/fhir/spdx-license";
2592            case CECILL1_0: return "http://hl7.org/fhir/spdx-license";
2593            case CECILL1_1: return "http://hl7.org/fhir/spdx-license";
2594            case CECILL2_0: return "http://hl7.org/fhir/spdx-license";
2595            case CECILL2_1: return "http://hl7.org/fhir/spdx-license";
2596            case CECILLB: return "http://hl7.org/fhir/spdx-license";
2597            case CECILLC: return "http://hl7.org/fhir/spdx-license";
2598            case CLARTISTIC: return "http://hl7.org/fhir/spdx-license";
2599            case CNRIJYTHON: return "http://hl7.org/fhir/spdx-license";
2600            case CNRIPYTHONGPLCOMPATIBLE: return "http://hl7.org/fhir/spdx-license";
2601            case CNRIPYTHON: return "http://hl7.org/fhir/spdx-license";
2602            case CONDOR1_1: return "http://hl7.org/fhir/spdx-license";
2603            case CPAL1_0: return "http://hl7.org/fhir/spdx-license";
2604            case CPL1_0: return "http://hl7.org/fhir/spdx-license";
2605            case CPOL1_02: return "http://hl7.org/fhir/spdx-license";
2606            case CROSSWORD: return "http://hl7.org/fhir/spdx-license";
2607            case CRYSTALSTACKER: return "http://hl7.org/fhir/spdx-license";
2608            case CUAOPL1_0: return "http://hl7.org/fhir/spdx-license";
2609            case CUBE: return "http://hl7.org/fhir/spdx-license";
2610            case CURL: return "http://hl7.org/fhir/spdx-license";
2611            case DFSL1_0: return "http://hl7.org/fhir/spdx-license";
2612            case DIFFMARK: return "http://hl7.org/fhir/spdx-license";
2613            case DOC: return "http://hl7.org/fhir/spdx-license";
2614            case DOTSEQN: return "http://hl7.org/fhir/spdx-license";
2615            case DSDP: return "http://hl7.org/fhir/spdx-license";
2616            case DVIPDFM: return "http://hl7.org/fhir/spdx-license";
2617            case ECL1_0: return "http://hl7.org/fhir/spdx-license";
2618            case ECL2_0: return "http://hl7.org/fhir/spdx-license";
2619            case EFL1_0: return "http://hl7.org/fhir/spdx-license";
2620            case EFL2_0: return "http://hl7.org/fhir/spdx-license";
2621            case EGENIX: return "http://hl7.org/fhir/spdx-license";
2622            case ENTESSA: return "http://hl7.org/fhir/spdx-license";
2623            case EPL1_0: return "http://hl7.org/fhir/spdx-license";
2624            case EPL2_0: return "http://hl7.org/fhir/spdx-license";
2625            case ERLPL1_1: return "http://hl7.org/fhir/spdx-license";
2626            case EUDATAGRID: return "http://hl7.org/fhir/spdx-license";
2627            case EUPL1_0: return "http://hl7.org/fhir/spdx-license";
2628            case EUPL1_1: return "http://hl7.org/fhir/spdx-license";
2629            case EUPL1_2: return "http://hl7.org/fhir/spdx-license";
2630            case EUROSYM: return "http://hl7.org/fhir/spdx-license";
2631            case FAIR: return "http://hl7.org/fhir/spdx-license";
2632            case FRAMEWORX1_0: return "http://hl7.org/fhir/spdx-license";
2633            case FREEIMAGE: return "http://hl7.org/fhir/spdx-license";
2634            case FSFAP: return "http://hl7.org/fhir/spdx-license";
2635            case FSFUL: return "http://hl7.org/fhir/spdx-license";
2636            case FSFULLR: return "http://hl7.org/fhir/spdx-license";
2637            case FTL: return "http://hl7.org/fhir/spdx-license";
2638            case GFDL1_1ONLY: return "http://hl7.org/fhir/spdx-license";
2639            case GFDL1_1ORLATER: return "http://hl7.org/fhir/spdx-license";
2640            case GFDL1_2ONLY: return "http://hl7.org/fhir/spdx-license";
2641            case GFDL1_2ORLATER: return "http://hl7.org/fhir/spdx-license";
2642            case GFDL1_3ONLY: return "http://hl7.org/fhir/spdx-license";
2643            case GFDL1_3ORLATER: return "http://hl7.org/fhir/spdx-license";
2644            case GIFTWARE: return "http://hl7.org/fhir/spdx-license";
2645            case GL2PS: return "http://hl7.org/fhir/spdx-license";
2646            case GLIDE: return "http://hl7.org/fhir/spdx-license";
2647            case GLULXE: return "http://hl7.org/fhir/spdx-license";
2648            case GNUPLOT: return "http://hl7.org/fhir/spdx-license";
2649            case GPL1_0ONLY: return "http://hl7.org/fhir/spdx-license";
2650            case GPL1_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2651            case GPL2_0ONLY: return "http://hl7.org/fhir/spdx-license";
2652            case GPL2_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2653            case GPL3_0ONLY: return "http://hl7.org/fhir/spdx-license";
2654            case GPL3_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2655            case GSOAP1_3B: return "http://hl7.org/fhir/spdx-license";
2656            case HASKELLREPORT: return "http://hl7.org/fhir/spdx-license";
2657            case HPND: return "http://hl7.org/fhir/spdx-license";
2658            case IBMPIBS: return "http://hl7.org/fhir/spdx-license";
2659            case ICU: return "http://hl7.org/fhir/spdx-license";
2660            case IJG: return "http://hl7.org/fhir/spdx-license";
2661            case IMAGEMAGICK: return "http://hl7.org/fhir/spdx-license";
2662            case IMATIX: return "http://hl7.org/fhir/spdx-license";
2663            case IMLIB2: return "http://hl7.org/fhir/spdx-license";
2664            case INFOZIP: return "http://hl7.org/fhir/spdx-license";
2665            case INTELACPI: return "http://hl7.org/fhir/spdx-license";
2666            case INTEL: return "http://hl7.org/fhir/spdx-license";
2667            case INTERBASE1_0: return "http://hl7.org/fhir/spdx-license";
2668            case IPA: return "http://hl7.org/fhir/spdx-license";
2669            case IPL1_0: return "http://hl7.org/fhir/spdx-license";
2670            case ISC: return "http://hl7.org/fhir/spdx-license";
2671            case JASPER2_0: return "http://hl7.org/fhir/spdx-license";
2672            case JSON: return "http://hl7.org/fhir/spdx-license";
2673            case LAL1_2: return "http://hl7.org/fhir/spdx-license";
2674            case LAL1_3: return "http://hl7.org/fhir/spdx-license";
2675            case LATEX2E: return "http://hl7.org/fhir/spdx-license";
2676            case LEPTONICA: return "http://hl7.org/fhir/spdx-license";
2677            case LGPL2_0ONLY: return "http://hl7.org/fhir/spdx-license";
2678            case LGPL2_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2679            case LGPL2_1ONLY: return "http://hl7.org/fhir/spdx-license";
2680            case LGPL2_1ORLATER: return "http://hl7.org/fhir/spdx-license";
2681            case LGPL3_0ONLY: return "http://hl7.org/fhir/spdx-license";
2682            case LGPL3_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2683            case LGPLLR: return "http://hl7.org/fhir/spdx-license";
2684            case LIBPNG: return "http://hl7.org/fhir/spdx-license";
2685            case LIBTIFF: return "http://hl7.org/fhir/spdx-license";
2686            case LILIQP1_1: return "http://hl7.org/fhir/spdx-license";
2687            case LILIQR1_1: return "http://hl7.org/fhir/spdx-license";
2688            case LILIQRPLUS1_1: return "http://hl7.org/fhir/spdx-license";
2689            case LINUXOPENIB: return "http://hl7.org/fhir/spdx-license";
2690            case LPL1_0: return "http://hl7.org/fhir/spdx-license";
2691            case LPL1_02: return "http://hl7.org/fhir/spdx-license";
2692            case LPPL1_0: return "http://hl7.org/fhir/spdx-license";
2693            case LPPL1_1: return "http://hl7.org/fhir/spdx-license";
2694            case LPPL1_2: return "http://hl7.org/fhir/spdx-license";
2695            case LPPL1_3A: return "http://hl7.org/fhir/spdx-license";
2696            case LPPL1_3C: return "http://hl7.org/fhir/spdx-license";
2697            case MAKEINDEX: return "http://hl7.org/fhir/spdx-license";
2698            case MIROS: return "http://hl7.org/fhir/spdx-license";
2699            case MIT0: return "http://hl7.org/fhir/spdx-license";
2700            case MITADVERTISING: return "http://hl7.org/fhir/spdx-license";
2701            case MITCMU: return "http://hl7.org/fhir/spdx-license";
2702            case MITENNA: return "http://hl7.org/fhir/spdx-license";
2703            case MITFEH: return "http://hl7.org/fhir/spdx-license";
2704            case MIT: return "http://hl7.org/fhir/spdx-license";
2705            case MITNFA: return "http://hl7.org/fhir/spdx-license";
2706            case MOTOSOTO: return "http://hl7.org/fhir/spdx-license";
2707            case MPICH2: return "http://hl7.org/fhir/spdx-license";
2708            case MPL1_0: return "http://hl7.org/fhir/spdx-license";
2709            case MPL1_1: return "http://hl7.org/fhir/spdx-license";
2710            case MPL2_0NOCOPYLEFTEXCEPTION: return "http://hl7.org/fhir/spdx-license";
2711            case MPL2_0: return "http://hl7.org/fhir/spdx-license";
2712            case MSPL: return "http://hl7.org/fhir/spdx-license";
2713            case MSRL: return "http://hl7.org/fhir/spdx-license";
2714            case MTLL: return "http://hl7.org/fhir/spdx-license";
2715            case MULTICS: return "http://hl7.org/fhir/spdx-license";
2716            case MUP: return "http://hl7.org/fhir/spdx-license";
2717            case NASA1_3: return "http://hl7.org/fhir/spdx-license";
2718            case NAUMEN: return "http://hl7.org/fhir/spdx-license";
2719            case NBPL1_0: return "http://hl7.org/fhir/spdx-license";
2720            case NCSA: return "http://hl7.org/fhir/spdx-license";
2721            case NETSNMP: return "http://hl7.org/fhir/spdx-license";
2722            case NETCDF: return "http://hl7.org/fhir/spdx-license";
2723            case NEWSLETR: return "http://hl7.org/fhir/spdx-license";
2724            case NGPL: return "http://hl7.org/fhir/spdx-license";
2725            case NLOD1_0: return "http://hl7.org/fhir/spdx-license";
2726            case NLPL: return "http://hl7.org/fhir/spdx-license";
2727            case NOKIA: return "http://hl7.org/fhir/spdx-license";
2728            case NOSL: return "http://hl7.org/fhir/spdx-license";
2729            case NOWEB: return "http://hl7.org/fhir/spdx-license";
2730            case NPL1_0: return "http://hl7.org/fhir/spdx-license";
2731            case NPL1_1: return "http://hl7.org/fhir/spdx-license";
2732            case NPOSL3_0: return "http://hl7.org/fhir/spdx-license";
2733            case NRL: return "http://hl7.org/fhir/spdx-license";
2734            case NTP: return "http://hl7.org/fhir/spdx-license";
2735            case OCCTPL: return "http://hl7.org/fhir/spdx-license";
2736            case OCLC2_0: return "http://hl7.org/fhir/spdx-license";
2737            case ODBL1_0: return "http://hl7.org/fhir/spdx-license";
2738            case OFL1_0: return "http://hl7.org/fhir/spdx-license";
2739            case OFL1_1: return "http://hl7.org/fhir/spdx-license";
2740            case OGTSL: return "http://hl7.org/fhir/spdx-license";
2741            case OLDAP1_1: return "http://hl7.org/fhir/spdx-license";
2742            case OLDAP1_2: return "http://hl7.org/fhir/spdx-license";
2743            case OLDAP1_3: return "http://hl7.org/fhir/spdx-license";
2744            case OLDAP1_4: return "http://hl7.org/fhir/spdx-license";
2745            case OLDAP2_0_1: return "http://hl7.org/fhir/spdx-license";
2746            case OLDAP2_0: return "http://hl7.org/fhir/spdx-license";
2747            case OLDAP2_1: return "http://hl7.org/fhir/spdx-license";
2748            case OLDAP2_2_1: return "http://hl7.org/fhir/spdx-license";
2749            case OLDAP2_2_2: return "http://hl7.org/fhir/spdx-license";
2750            case OLDAP2_2: return "http://hl7.org/fhir/spdx-license";
2751            case OLDAP2_3: return "http://hl7.org/fhir/spdx-license";
2752            case OLDAP2_4: return "http://hl7.org/fhir/spdx-license";
2753            case OLDAP2_5: return "http://hl7.org/fhir/spdx-license";
2754            case OLDAP2_6: return "http://hl7.org/fhir/spdx-license";
2755            case OLDAP2_7: return "http://hl7.org/fhir/spdx-license";
2756            case OLDAP2_8: return "http://hl7.org/fhir/spdx-license";
2757            case OML: return "http://hl7.org/fhir/spdx-license";
2758            case OPENSSL: return "http://hl7.org/fhir/spdx-license";
2759            case OPL1_0: return "http://hl7.org/fhir/spdx-license";
2760            case OSETPL2_1: return "http://hl7.org/fhir/spdx-license";
2761            case OSL1_0: return "http://hl7.org/fhir/spdx-license";
2762            case OSL1_1: return "http://hl7.org/fhir/spdx-license";
2763            case OSL2_0: return "http://hl7.org/fhir/spdx-license";
2764            case OSL2_1: return "http://hl7.org/fhir/spdx-license";
2765            case OSL3_0: return "http://hl7.org/fhir/spdx-license";
2766            case PDDL1_0: return "http://hl7.org/fhir/spdx-license";
2767            case PHP3_0: return "http://hl7.org/fhir/spdx-license";
2768            case PHP3_01: return "http://hl7.org/fhir/spdx-license";
2769            case PLEXUS: return "http://hl7.org/fhir/spdx-license";
2770            case POSTGRESQL: return "http://hl7.org/fhir/spdx-license";
2771            case PSFRAG: return "http://hl7.org/fhir/spdx-license";
2772            case PSUTILS: return "http://hl7.org/fhir/spdx-license";
2773            case PYTHON2_0: return "http://hl7.org/fhir/spdx-license";
2774            case QHULL: return "http://hl7.org/fhir/spdx-license";
2775            case QPL1_0: return "http://hl7.org/fhir/spdx-license";
2776            case RDISC: return "http://hl7.org/fhir/spdx-license";
2777            case RHECOS1_1: return "http://hl7.org/fhir/spdx-license";
2778            case RPL1_1: return "http://hl7.org/fhir/spdx-license";
2779            case RPL1_5: return "http://hl7.org/fhir/spdx-license";
2780            case RPSL1_0: return "http://hl7.org/fhir/spdx-license";
2781            case RSAMD: return "http://hl7.org/fhir/spdx-license";
2782            case RSCPL: return "http://hl7.org/fhir/spdx-license";
2783            case RUBY: return "http://hl7.org/fhir/spdx-license";
2784            case SAXPD: return "http://hl7.org/fhir/spdx-license";
2785            case SAXPATH: return "http://hl7.org/fhir/spdx-license";
2786            case SCEA: return "http://hl7.org/fhir/spdx-license";
2787            case SENDMAIL: return "http://hl7.org/fhir/spdx-license";
2788            case SGIB1_0: return "http://hl7.org/fhir/spdx-license";
2789            case SGIB1_1: return "http://hl7.org/fhir/spdx-license";
2790            case SGIB2_0: return "http://hl7.org/fhir/spdx-license";
2791            case SIMPL2_0: return "http://hl7.org/fhir/spdx-license";
2792            case SISSL1_2: return "http://hl7.org/fhir/spdx-license";
2793            case SISSL: return "http://hl7.org/fhir/spdx-license";
2794            case SLEEPYCAT: return "http://hl7.org/fhir/spdx-license";
2795            case SMLNJ: return "http://hl7.org/fhir/spdx-license";
2796            case SMPPL: return "http://hl7.org/fhir/spdx-license";
2797            case SNIA: return "http://hl7.org/fhir/spdx-license";
2798            case SPENCER86: return "http://hl7.org/fhir/spdx-license";
2799            case SPENCER94: return "http://hl7.org/fhir/spdx-license";
2800            case SPENCER99: return "http://hl7.org/fhir/spdx-license";
2801            case SPL1_0: return "http://hl7.org/fhir/spdx-license";
2802            case SUGARCRM1_1_3: return "http://hl7.org/fhir/spdx-license";
2803            case SWL: return "http://hl7.org/fhir/spdx-license";
2804            case TCL: return "http://hl7.org/fhir/spdx-license";
2805            case TCPWRAPPERS: return "http://hl7.org/fhir/spdx-license";
2806            case TMATE: return "http://hl7.org/fhir/spdx-license";
2807            case TORQUE1_1: return "http://hl7.org/fhir/spdx-license";
2808            case TOSL: return "http://hl7.org/fhir/spdx-license";
2809            case UNICODEDFS2015: return "http://hl7.org/fhir/spdx-license";
2810            case UNICODEDFS2016: return "http://hl7.org/fhir/spdx-license";
2811            case UNICODETOU: return "http://hl7.org/fhir/spdx-license";
2812            case UNLICENSE: return "http://hl7.org/fhir/spdx-license";
2813            case UPL1_0: return "http://hl7.org/fhir/spdx-license";
2814            case VIM: return "http://hl7.org/fhir/spdx-license";
2815            case VOSTROM: return "http://hl7.org/fhir/spdx-license";
2816            case VSL1_0: return "http://hl7.org/fhir/spdx-license";
2817            case W3C19980720: return "http://hl7.org/fhir/spdx-license";
2818            case W3C20150513: return "http://hl7.org/fhir/spdx-license";
2819            case W3C: return "http://hl7.org/fhir/spdx-license";
2820            case WATCOM1_0: return "http://hl7.org/fhir/spdx-license";
2821            case WSUIPA: return "http://hl7.org/fhir/spdx-license";
2822            case WTFPL: return "http://hl7.org/fhir/spdx-license";
2823            case X11: return "http://hl7.org/fhir/spdx-license";
2824            case XEROX: return "http://hl7.org/fhir/spdx-license";
2825            case XFREE861_1: return "http://hl7.org/fhir/spdx-license";
2826            case XINETD: return "http://hl7.org/fhir/spdx-license";
2827            case XNET: return "http://hl7.org/fhir/spdx-license";
2828            case XPP: return "http://hl7.org/fhir/spdx-license";
2829            case XSKAT: return "http://hl7.org/fhir/spdx-license";
2830            case YPL1_0: return "http://hl7.org/fhir/spdx-license";
2831            case YPL1_1: return "http://hl7.org/fhir/spdx-license";
2832            case ZED: return "http://hl7.org/fhir/spdx-license";
2833            case ZEND2_0: return "http://hl7.org/fhir/spdx-license";
2834            case ZIMBRA1_3: return "http://hl7.org/fhir/spdx-license";
2835            case ZIMBRA1_4: return "http://hl7.org/fhir/spdx-license";
2836            case ZLIBACKNOWLEDGEMENT: return "http://hl7.org/fhir/spdx-license";
2837            case ZLIB: return "http://hl7.org/fhir/spdx-license";
2838            case ZPL1_1: return "http://hl7.org/fhir/spdx-license";
2839            case ZPL2_0: return "http://hl7.org/fhir/spdx-license";
2840            case ZPL2_1: return "http://hl7.org/fhir/spdx-license";
2841            default: return "?";
2842          }
2843        }
2844        public String getDefinition() {
2845          switch (this) {
2846            case NOTOPENSOURCE: return "Not an open source license.";
2847            case _0BSD: return "BSD Zero Clause License.";
2848            case AAL: return "Attribution Assurance License.";
2849            case ABSTYLES: return "Abstyles License.";
2850            case ADOBE2006: return "Adobe Systems Incorporated Source Code License Agreement.";
2851            case ADOBEGLYPH: return "Adobe Glyph List License.";
2852            case ADSL: return "Amazon Digital Services License.";
2853            case AFL1_1: return "Academic Free License v1.1.";
2854            case AFL1_2: return "Academic Free License v1.2.";
2855            case AFL2_0: return "Academic Free License v2.0.";
2856            case AFL2_1: return "Academic Free License v2.1.";
2857            case AFL3_0: return "Academic Free License v3.0.";
2858            case AFMPARSE: return "Afmparse License.";
2859            case AGPL1_0ONLY: return "Affero General Public License v1.0 only.";
2860            case AGPL1_0ORLATER: return "Affero General Public License v1.0 or later.";
2861            case AGPL3_0ONLY: return "GNU Affero General Public License v3.0 only.";
2862            case AGPL3_0ORLATER: return "GNU Affero General Public License v3.0 or later.";
2863            case ALADDIN: return "Aladdin Free Public License.";
2864            case AMDPLPA: return "AMD's plpa_map.c License.";
2865            case AML: return "Apple MIT License.";
2866            case AMPAS: return "Academy of Motion Picture Arts and Sciences BSD.";
2867            case ANTLRPD: return "ANTLR Software Rights Notice.";
2868            case APACHE1_0: return "Apache License 1.0.";
2869            case APACHE1_1: return "Apache License 1.1.";
2870            case APACHE2_0: return "Apache License 2.0.";
2871            case APAFML: return "Adobe Postscript AFM License.";
2872            case APL1_0: return "Adaptive Public License 1.0.";
2873            case APSL1_0: return "Apple Public Source License 1.0.";
2874            case APSL1_1: return "Apple Public Source License 1.1.";
2875            case APSL1_2: return "Apple Public Source License 1.2.";
2876            case APSL2_0: return "Apple Public Source License 2.0.";
2877            case ARTISTIC1_0CL8: return "Artistic License 1.0 w/clause 8.";
2878            case ARTISTIC1_0PERL: return "Artistic License 1.0 (Perl).";
2879            case ARTISTIC1_0: return "Artistic License 1.0.";
2880            case ARTISTIC2_0: return "Artistic License 2.0.";
2881            case BAHYPH: return "Bahyph License.";
2882            case BARR: return "Barr License.";
2883            case BEERWARE: return "Beerware License.";
2884            case BITTORRENT1_0: return "BitTorrent Open Source License v1.0.";
2885            case BITTORRENT1_1: return "BitTorrent Open Source License v1.1.";
2886            case BORCEUX: return "Borceux license.";
2887            case BSD1CLAUSE: return "BSD 1-Clause License.";
2888            case BSD2CLAUSEFREEBSD: return "BSD 2-Clause FreeBSD License.";
2889            case BSD2CLAUSENETBSD: return "BSD 2-Clause NetBSD License.";
2890            case BSD2CLAUSEPATENT: return "BSD-2-Clause Plus Patent License.";
2891            case BSD2CLAUSE: return "BSD 2-Clause \"Simplified\" License.";
2892            case BSD3CLAUSEATTRIBUTION: return "BSD with attribution.";
2893            case BSD3CLAUSECLEAR: return "BSD 3-Clause Clear License.";
2894            case BSD3CLAUSELBNL: return "Lawrence Berkeley National Labs BSD variant license.";
2895            case BSD3CLAUSENONUCLEARLICENSE2014: return "BSD 3-Clause No Nuclear License 2014.";
2896            case BSD3CLAUSENONUCLEARLICENSE: return "BSD 3-Clause No Nuclear License.";
2897            case BSD3CLAUSENONUCLEARWARRANTY: return "BSD 3-Clause No Nuclear Warranty.";
2898            case BSD3CLAUSE: return "BSD 3-Clause \"New\" or \"Revised\" License.";
2899            case BSD4CLAUSEUC: return "BSD-4-Clause (University of California-Specific).";
2900            case BSD4CLAUSE: return "BSD 4-Clause \"Original\" or \"Old\" License.";
2901            case BSDPROTECTION: return "BSD Protection License.";
2902            case BSDSOURCECODE: return "BSD Source Code Attribution.";
2903            case BSL1_0: return "Boost Software License 1.0.";
2904            case BZIP21_0_5: return "bzip2 and libbzip2 License v1.0.5.";
2905            case BZIP21_0_6: return "bzip2 and libbzip2 License v1.0.6.";
2906            case CALDERA: return "Caldera License.";
2907            case CATOSL1_1: return "Computer Associates Trusted Open Source License 1.1.";
2908            case CCBY1_0: return "Creative Commons Attribution 1.0 Generic.";
2909            case CCBY2_0: return "Creative Commons Attribution 2.0 Generic.";
2910            case CCBY2_5: return "Creative Commons Attribution 2.5 Generic.";
2911            case CCBY3_0: return "Creative Commons Attribution 3.0 Unported.";
2912            case CCBY4_0: return "Creative Commons Attribution 4.0 International.";
2913            case CCBYNC1_0: return "Creative Commons Attribution Non Commercial 1.0 Generic.";
2914            case CCBYNC2_0: return "Creative Commons Attribution Non Commercial 2.0 Generic.";
2915            case CCBYNC2_5: return "Creative Commons Attribution Non Commercial 2.5 Generic.";
2916            case CCBYNC3_0: return "Creative Commons Attribution Non Commercial 3.0 Unported.";
2917            case CCBYNC4_0: return "Creative Commons Attribution Non Commercial 4.0 International.";
2918            case CCBYNCND1_0: return "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic.";
2919            case CCBYNCND2_0: return "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic.";
2920            case CCBYNCND2_5: return "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic.";
2921            case CCBYNCND3_0: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported.";
2922            case CCBYNCND4_0: return "Creative Commons Attribution Non Commercial No Derivatives 4.0 International.";
2923            case CCBYNCSA1_0: return "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic.";
2924            case CCBYNCSA2_0: return "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic.";
2925            case CCBYNCSA2_5: return "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic.";
2926            case CCBYNCSA3_0: return "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported.";
2927            case CCBYNCSA4_0: return "Creative Commons Attribution Non Commercial Share Alike 4.0 International.";
2928            case CCBYND1_0: return "Creative Commons Attribution No Derivatives 1.0 Generic.";
2929            case CCBYND2_0: return "Creative Commons Attribution No Derivatives 2.0 Generic.";
2930            case CCBYND2_5: return "Creative Commons Attribution No Derivatives 2.5 Generic.";
2931            case CCBYND3_0: return "Creative Commons Attribution No Derivatives 3.0 Unported.";
2932            case CCBYND4_0: return "Creative Commons Attribution No Derivatives 4.0 International.";
2933            case CCBYSA1_0: return "Creative Commons Attribution Share Alike 1.0 Generic.";
2934            case CCBYSA2_0: return "Creative Commons Attribution Share Alike 2.0 Generic.";
2935            case CCBYSA2_5: return "Creative Commons Attribution Share Alike 2.5 Generic.";
2936            case CCBYSA3_0: return "Creative Commons Attribution Share Alike 3.0 Unported.";
2937            case CCBYSA4_0: return "Creative Commons Attribution Share Alike 4.0 International.";
2938            case CC01_0: return "Creative Commons Zero v1.0 Universal.";
2939            case CDDL1_0: return "Common Development and Distribution License 1.0.";
2940            case CDDL1_1: return "Common Development and Distribution License 1.1.";
2941            case CDLAPERMISSIVE1_0: return "Community Data License Agreement Permissive 1.0.";
2942            case CDLASHARING1_0: return "Community Data License Agreement Sharing 1.0.";
2943            case CECILL1_0: return "CeCILL Free Software License Agreement v1.0.";
2944            case CECILL1_1: return "CeCILL Free Software License Agreement v1.1.";
2945            case CECILL2_0: return "CeCILL Free Software License Agreement v2.0.";
2946            case CECILL2_1: return "CeCILL Free Software License Agreement v2.1.";
2947            case CECILLB: return "CeCILL-B Free Software License Agreement.";
2948            case CECILLC: return "CeCILL-C Free Software License Agreement.";
2949            case CLARTISTIC: return "Clarified Artistic License.";
2950            case CNRIJYTHON: return "CNRI Jython License.";
2951            case CNRIPYTHONGPLCOMPATIBLE: return "CNRI Python Open Source GPL Compatible License Agreement.";
2952            case CNRIPYTHON: return "CNRI Python License.";
2953            case CONDOR1_1: return "Condor Public License v1.1.";
2954            case CPAL1_0: return "Common Public Attribution License 1.0.";
2955            case CPL1_0: return "Common Public License 1.0.";
2956            case CPOL1_02: return "Code Project Open License 1.02.";
2957            case CROSSWORD: return "Crossword License.";
2958            case CRYSTALSTACKER: return "CrystalStacker License.";
2959            case CUAOPL1_0: return "CUA Office Public License v1.0.";
2960            case CUBE: return "Cube License.";
2961            case CURL: return "curl License.";
2962            case DFSL1_0: return "Deutsche Freie Software Lizenz.";
2963            case DIFFMARK: return "diffmark license.";
2964            case DOC: return "DOC License.";
2965            case DOTSEQN: return "Dotseqn License.";
2966            case DSDP: return "DSDP License.";
2967            case DVIPDFM: return "dvipdfm License.";
2968            case ECL1_0: return "Educational Community License v1.0.";
2969            case ECL2_0: return "Educational Community License v2.0.";
2970            case EFL1_0: return "Eiffel Forum License v1.0.";
2971            case EFL2_0: return "Eiffel Forum License v2.0.";
2972            case EGENIX: return "eGenix.com Public License 1.1.0.";
2973            case ENTESSA: return "Entessa Public License v1.0.";
2974            case EPL1_0: return "Eclipse Public License 1.0.";
2975            case EPL2_0: return "Eclipse Public License 2.0.";
2976            case ERLPL1_1: return "Erlang Public License v1.1.";
2977            case EUDATAGRID: return "EU DataGrid Software License.";
2978            case EUPL1_0: return "European Union Public License 1.0.";
2979            case EUPL1_1: return "European Union Public License 1.1.";
2980            case EUPL1_2: return "European Union Public License 1.2.";
2981            case EUROSYM: return "Eurosym License.";
2982            case FAIR: return "Fair License.";
2983            case FRAMEWORX1_0: return "Frameworx Open License 1.0.";
2984            case FREEIMAGE: return "FreeImage Public License v1.0.";
2985            case FSFAP: return "FSF All Permissive License.";
2986            case FSFUL: return "FSF Unlimited License.";
2987            case FSFULLR: return "FSF Unlimited License (with License Retention).";
2988            case FTL: return "Freetype Project License.";
2989            case GFDL1_1ONLY: return "GNU Free Documentation License v1.1 only.";
2990            case GFDL1_1ORLATER: return "GNU Free Documentation License v1.1 or later.";
2991            case GFDL1_2ONLY: return "GNU Free Documentation License v1.2 only.";
2992            case GFDL1_2ORLATER: return "GNU Free Documentation License v1.2 or later.";
2993            case GFDL1_3ONLY: return "GNU Free Documentation License v1.3 only.";
2994            case GFDL1_3ORLATER: return "GNU Free Documentation License v1.3 or later.";
2995            case GIFTWARE: return "Giftware License.";
2996            case GL2PS: return "GL2PS License.";
2997            case GLIDE: return "3dfx Glide License.";
2998            case GLULXE: return "Glulxe License.";
2999            case GNUPLOT: return "gnuplot License.";
3000            case GPL1_0ONLY: return "GNU General Public License v1.0 only.";
3001            case GPL1_0ORLATER: return "GNU General Public License v1.0 or later.";
3002            case GPL2_0ONLY: return "GNU General Public License v2.0 only.";
3003            case GPL2_0ORLATER: return "GNU General Public License v2.0 or later.";
3004            case GPL3_0ONLY: return "GNU General Public License v3.0 only.";
3005            case GPL3_0ORLATER: return "GNU General Public License v3.0 or later.";
3006            case GSOAP1_3B: return "gSOAP Public License v1.3b.";
3007            case HASKELLREPORT: return "Haskell Language Report License.";
3008            case HPND: return "Historical Permission Notice and Disclaimer.";
3009            case IBMPIBS: return "IBM PowerPC Initialization and Boot Software.";
3010            case ICU: return "ICU License.";
3011            case IJG: return "Independent JPEG Group License.";
3012            case IMAGEMAGICK: return "ImageMagick License.";
3013            case IMATIX: return "iMatix Standard Function Library Agreement.";
3014            case IMLIB2: return "Imlib2 License.";
3015            case INFOZIP: return "Info-ZIP License.";
3016            case INTELACPI: return "Intel ACPI Software License Agreement.";
3017            case INTEL: return "Intel Open Source License.";
3018            case INTERBASE1_0: return "Interbase Public License v1.0.";
3019            case IPA: return "IPA Font License.";
3020            case IPL1_0: return "IBM Public License v1.0.";
3021            case ISC: return "ISC License.";
3022            case JASPER2_0: return "JasPer License.";
3023            case JSON: return "JSON License.";
3024            case LAL1_2: return "Licence Art Libre 1.2.";
3025            case LAL1_3: return "Licence Art Libre 1.3.";
3026            case LATEX2E: return "Latex2e License.";
3027            case LEPTONICA: return "Leptonica License.";
3028            case LGPL2_0ONLY: return "GNU Library General Public License v2 only.";
3029            case LGPL2_0ORLATER: return "GNU Library General Public License v2 or later.";
3030            case LGPL2_1ONLY: return "GNU Lesser General Public License v2.1 only.";
3031            case LGPL2_1ORLATER: return "GNU Lesser General Public License v2.1 or later.";
3032            case LGPL3_0ONLY: return "GNU Lesser General Public License v3.0 only.";
3033            case LGPL3_0ORLATER: return "GNU Lesser General Public License v3.0 or later.";
3034            case LGPLLR: return "Lesser General Public License For Linguistic Resources.";
3035            case LIBPNG: return "libpng License.";
3036            case LIBTIFF: return "libtiff License.";
3037            case LILIQP1_1: return "Licence Libre du Québec – Permissive version 1.1.";
3038            case LILIQR1_1: return "Licence Libre du Québec – Réciprocité version 1.1.";
3039            case LILIQRPLUS1_1: return "Licence Libre du Québec – Réciprocité forte version 1.1.";
3040            case LINUXOPENIB: return "Linux Kernel Variant of OpenIB.org license.";
3041            case LPL1_0: return "Lucent Public License Version 1.0.";
3042            case LPL1_02: return "Lucent Public License v1.02.";
3043            case LPPL1_0: return "LaTeX Project Public License v1.0.";
3044            case LPPL1_1: return "LaTeX Project Public License v1.1.";
3045            case LPPL1_2: return "LaTeX Project Public License v1.2.";
3046            case LPPL1_3A: return "LaTeX Project Public License v1.3a.";
3047            case LPPL1_3C: return "LaTeX Project Public License v1.3c.";
3048            case MAKEINDEX: return "MakeIndex License.";
3049            case MIROS: return "MirOS License.";
3050            case MIT0: return "MIT No Attribution.";
3051            case MITADVERTISING: return "Enlightenment License (e16).";
3052            case MITCMU: return "CMU License.";
3053            case MITENNA: return "enna License.";
3054            case MITFEH: return "feh License.";
3055            case MIT: return "MIT License.";
3056            case MITNFA: return "MIT +no-false-attribs license.";
3057            case MOTOSOTO: return "Motosoto License.";
3058            case MPICH2: return "mpich2 License.";
3059            case MPL1_0: return "Mozilla Public License 1.0.";
3060            case MPL1_1: return "Mozilla Public License 1.1.";
3061            case MPL2_0NOCOPYLEFTEXCEPTION: return "Mozilla Public License 2.0 (no copyleft exception).";
3062            case MPL2_0: return "Mozilla Public License 2.0.";
3063            case MSPL: return "Microsoft Public License.";
3064            case MSRL: return "Microsoft Reciprocal License.";
3065            case MTLL: return "Matrix Template Library License.";
3066            case MULTICS: return "Multics License.";
3067            case MUP: return "Mup License.";
3068            case NASA1_3: return "NASA Open Source Agreement 1.3.";
3069            case NAUMEN: return "Naumen Public License.";
3070            case NBPL1_0: return "Net Boolean Public License v1.";
3071            case NCSA: return "University of Illinois/NCSA Open Source License.";
3072            case NETSNMP: return "Net-SNMP License.";
3073            case NETCDF: return "NetCDF license.";
3074            case NEWSLETR: return "Newsletr License.";
3075            case NGPL: return "Nethack General Public License.";
3076            case NLOD1_0: return "Norwegian Licence for Open Government Data.";
3077            case NLPL: return "No Limit Public License.";
3078            case NOKIA: return "Nokia Open Source License.";
3079            case NOSL: return "Netizen Open Source License.";
3080            case NOWEB: return "Noweb License.";
3081            case NPL1_0: return "Netscape Public License v1.0.";
3082            case NPL1_1: return "Netscape Public License v1.1.";
3083            case NPOSL3_0: return "Non-Profit Open Software License 3.0.";
3084            case NRL: return "NRL License.";
3085            case NTP: return "NTP License.";
3086            case OCCTPL: return "Open CASCADE Technology Public License.";
3087            case OCLC2_0: return "OCLC Research Public License 2.0.";
3088            case ODBL1_0: return "ODC Open Database License v1.0.";
3089            case OFL1_0: return "SIL Open Font License 1.0.";
3090            case OFL1_1: return "SIL Open Font License 1.1.";
3091            case OGTSL: return "Open Group Test Suite License.";
3092            case OLDAP1_1: return "Open LDAP Public License v1.1.";
3093            case OLDAP1_2: return "Open LDAP Public License v1.2.";
3094            case OLDAP1_3: return "Open LDAP Public License v1.3.";
3095            case OLDAP1_4: return "Open LDAP Public License v1.4.";
3096            case OLDAP2_0_1: return "Open LDAP Public License v2.0.1.";
3097            case OLDAP2_0: return "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B).";
3098            case OLDAP2_1: return "Open LDAP Public License v2.1.";
3099            case OLDAP2_2_1: return "Open LDAP Public License v2.2.1.";
3100            case OLDAP2_2_2: return "Open LDAP Public License 2.2.2.";
3101            case OLDAP2_2: return "Open LDAP Public License v2.2.";
3102            case OLDAP2_3: return "Open LDAP Public License v2.3.";
3103            case OLDAP2_4: return "Open LDAP Public License v2.4.";
3104            case OLDAP2_5: return "Open LDAP Public License v2.5.";
3105            case OLDAP2_6: return "Open LDAP Public License v2.6.";
3106            case OLDAP2_7: return "Open LDAP Public License v2.7.";
3107            case OLDAP2_8: return "Open LDAP Public License v2.8.";
3108            case OML: return "Open Market License.";
3109            case OPENSSL: return "OpenSSL License.";
3110            case OPL1_0: return "Open Public License v1.0.";
3111            case OSETPL2_1: return "OSET Public License version 2.1.";
3112            case OSL1_0: return "Open Software License 1.0.";
3113            case OSL1_1: return "Open Software License 1.1.";
3114            case OSL2_0: return "Open Software License 2.0.";
3115            case OSL2_1: return "Open Software License 2.1.";
3116            case OSL3_0: return "Open Software License 3.0.";
3117            case PDDL1_0: return "ODC Public Domain Dedication & License 1.0.";
3118            case PHP3_0: return "PHP License v3.0.";
3119            case PHP3_01: return "PHP License v3.01.";
3120            case PLEXUS: return "Plexus Classworlds License.";
3121            case POSTGRESQL: return "PostgreSQL License.";
3122            case PSFRAG: return "psfrag License.";
3123            case PSUTILS: return "psutils License.";
3124            case PYTHON2_0: return "Python License 2.0.";
3125            case QHULL: return "Qhull License.";
3126            case QPL1_0: return "Q Public License 1.0.";
3127            case RDISC: return "Rdisc License.";
3128            case RHECOS1_1: return "Red Hat eCos Public License v1.1.";
3129            case RPL1_1: return "Reciprocal Public License 1.1.";
3130            case RPL1_5: return "Reciprocal Public License 1.5.";
3131            case RPSL1_0: return "RealNetworks Public Source License v1.0.";
3132            case RSAMD: return "RSA Message-Digest License.";
3133            case RSCPL: return "Ricoh Source Code Public License.";
3134            case RUBY: return "Ruby License.";
3135            case SAXPD: return "Sax Public Domain Notice.";
3136            case SAXPATH: return "Saxpath License.";
3137            case SCEA: return "SCEA Shared Source License.";
3138            case SENDMAIL: return "Sendmail License.";
3139            case SGIB1_0: return "SGI Free Software License B v1.0.";
3140            case SGIB1_1: return "SGI Free Software License B v1.1.";
3141            case SGIB2_0: return "SGI Free Software License B v2.0.";
3142            case SIMPL2_0: return "Simple Public License 2.0.";
3143            case SISSL1_2: return "Sun Industry Standards Source License v1.2.";
3144            case SISSL: return "Sun Industry Standards Source License v1.1.";
3145            case SLEEPYCAT: return "Sleepycat License.";
3146            case SMLNJ: return "Standard ML of New Jersey License.";
3147            case SMPPL: return "Secure Messaging Protocol Public License.";
3148            case SNIA: return "SNIA Public License 1.1.";
3149            case SPENCER86: return "Spencer License 86.";
3150            case SPENCER94: return "Spencer License 94.";
3151            case SPENCER99: return "Spencer License 99.";
3152            case SPL1_0: return "Sun Public License v1.0.";
3153            case SUGARCRM1_1_3: return "SugarCRM Public License v1.1.3.";
3154            case SWL: return "Scheme Widget Library (SWL) Software License Agreement.";
3155            case TCL: return "TCL/TK License.";
3156            case TCPWRAPPERS: return "TCP Wrappers License.";
3157            case TMATE: return "TMate Open Source License.";
3158            case TORQUE1_1: return "TORQUE v2.5+ Software License v1.1.";
3159            case TOSL: return "Trusster Open Source License.";
3160            case UNICODEDFS2015: return "Unicode License Agreement - Data Files and Software (2015).";
3161            case UNICODEDFS2016: return "Unicode License Agreement - Data Files and Software (2016).";
3162            case UNICODETOU: return "Unicode Terms of Use.";
3163            case UNLICENSE: return "The Unlicense.";
3164            case UPL1_0: return "Universal Permissive License v1.0.";
3165            case VIM: return "Vim License.";
3166            case VOSTROM: return "VOSTROM Public License for Open Source.";
3167            case VSL1_0: return "Vovida Software License v1.0.";
3168            case W3C19980720: return "W3C Software Notice and License (1998-07-20).";
3169            case W3C20150513: return "W3C Software Notice and Document License (2015-05-13).";
3170            case W3C: return "W3C Software Notice and License (2002-12-31).";
3171            case WATCOM1_0: return "Sybase Open Watcom Public License 1.0.";
3172            case WSUIPA: return "Wsuipa License.";
3173            case WTFPL: return "Do What The F*ck You Want To Public License.";
3174            case X11: return "X11 License.";
3175            case XEROX: return "Xerox License.";
3176            case XFREE861_1: return "XFree86 License 1.1.";
3177            case XINETD: return "xinetd License.";
3178            case XNET: return "X.Net License.";
3179            case XPP: return "XPP License.";
3180            case XSKAT: return "XSkat License.";
3181            case YPL1_0: return "Yahoo! Public License v1.0.";
3182            case YPL1_1: return "Yahoo! Public License v1.1.";
3183            case ZED: return "Zed License.";
3184            case ZEND2_0: return "Zend License v2.0.";
3185            case ZIMBRA1_3: return "Zimbra Public License v1.3.";
3186            case ZIMBRA1_4: return "Zimbra Public License v1.4.";
3187            case ZLIBACKNOWLEDGEMENT: return "zlib/libpng License with Acknowledgement.";
3188            case ZLIB: return "zlib License.";
3189            case ZPL1_1: return "Zope Public License 1.1.";
3190            case ZPL2_0: return "Zope Public License 2.0.";
3191            case ZPL2_1: return "Zope Public License 2.1.";
3192            default: return "?";
3193          }
3194        }
3195        public String getDisplay() {
3196          switch (this) {
3197            case NOTOPENSOURCE: return "Not open source";
3198            case _0BSD: return "BSD Zero Clause License";
3199            case AAL: return "Attribution Assurance License";
3200            case ABSTYLES: return "Abstyles License";
3201            case ADOBE2006: return "Adobe Systems Incorporated Source Code License Agreement";
3202            case ADOBEGLYPH: return "Adobe Glyph List License";
3203            case ADSL: return "Amazon Digital Services License";
3204            case AFL1_1: return "Academic Free License v1.1";
3205            case AFL1_2: return "Academic Free License v1.2";
3206            case AFL2_0: return "Academic Free License v2.0";
3207            case AFL2_1: return "Academic Free License v2.1";
3208            case AFL3_0: return "Academic Free License v3.0";
3209            case AFMPARSE: return "Afmparse License";
3210            case AGPL1_0ONLY: return "Affero General Public License v1.0 only";
3211            case AGPL1_0ORLATER: return "Affero General Public License v1.0 or later";
3212            case AGPL3_0ONLY: return "GNU Affero General Public License v3.0 only";
3213            case AGPL3_0ORLATER: return "GNU Affero General Public License v3.0 or later";
3214            case ALADDIN: return "Aladdin Free Public License";
3215            case AMDPLPA: return "AMD's plpa_map.c License";
3216            case AML: return "Apple MIT License";
3217            case AMPAS: return "Academy of Motion Picture Arts and Sciences BSD";
3218            case ANTLRPD: return "ANTLR Software Rights Notice";
3219            case APACHE1_0: return "Apache License 1.0";
3220            case APACHE1_1: return "Apache License 1.1";
3221            case APACHE2_0: return "Apache License 2.0";
3222            case APAFML: return "Adobe Postscript AFM License";
3223            case APL1_0: return "Adaptive Public License 1.0";
3224            case APSL1_0: return "Apple Public Source License 1.0";
3225            case APSL1_1: return "Apple Public Source License 1.1";
3226            case APSL1_2: return "Apple Public Source License 1.2";
3227            case APSL2_0: return "Apple Public Source License 2.0";
3228            case ARTISTIC1_0CL8: return "Artistic License 1.0 w/clause 8";
3229            case ARTISTIC1_0PERL: return "Artistic License 1.0 (Perl)";
3230            case ARTISTIC1_0: return "Artistic License 1.0";
3231            case ARTISTIC2_0: return "Artistic License 2.0";
3232            case BAHYPH: return "Bahyph License";
3233            case BARR: return "Barr License";
3234            case BEERWARE: return "Beerware License";
3235            case BITTORRENT1_0: return "BitTorrent Open Source License v1.0";
3236            case BITTORRENT1_1: return "BitTorrent Open Source License v1.1";
3237            case BORCEUX: return "Borceux license";
3238            case BSD1CLAUSE: return "BSD 1-Clause License";
3239            case BSD2CLAUSEFREEBSD: return "BSD 2-Clause FreeBSD License";
3240            case BSD2CLAUSENETBSD: return "BSD 2-Clause NetBSD License";
3241            case BSD2CLAUSEPATENT: return "BSD-2-Clause Plus Patent License";
3242            case BSD2CLAUSE: return "BSD 2-Clause \"Simplified\" License";
3243            case BSD3CLAUSEATTRIBUTION: return "BSD with attribution";
3244            case BSD3CLAUSECLEAR: return "BSD 3-Clause Clear License";
3245            case BSD3CLAUSELBNL: return "Lawrence Berkeley National Labs BSD variant license";
3246            case BSD3CLAUSENONUCLEARLICENSE2014: return "BSD 3-Clause No Nuclear License 2014";
3247            case BSD3CLAUSENONUCLEARLICENSE: return "BSD 3-Clause No Nuclear License";
3248            case BSD3CLAUSENONUCLEARWARRANTY: return "BSD 3-Clause No Nuclear Warranty";
3249            case BSD3CLAUSE: return "BSD 3-Clause \"New\" or \"Revised\" License";
3250            case BSD4CLAUSEUC: return "BSD-4-Clause (University of California-Specific)";
3251            case BSD4CLAUSE: return "BSD 4-Clause \"Original\" or \"Old\" License";
3252            case BSDPROTECTION: return "BSD Protection License";
3253            case BSDSOURCECODE: return "BSD Source Code Attribution";
3254            case BSL1_0: return "Boost Software License 1.0";
3255            case BZIP21_0_5: return "bzip2 and libbzip2 License v1.0.5";
3256            case BZIP21_0_6: return "bzip2 and libbzip2 License v1.0.6";
3257            case CALDERA: return "Caldera License";
3258            case CATOSL1_1: return "Computer Associates Trusted Open Source License 1.1";
3259            case CCBY1_0: return "Creative Commons Attribution 1.0 Generic";
3260            case CCBY2_0: return "Creative Commons Attribution 2.0 Generic";
3261            case CCBY2_5: return "Creative Commons Attribution 2.5 Generic";
3262            case CCBY3_0: return "Creative Commons Attribution 3.0 Unported";
3263            case CCBY4_0: return "Creative Commons Attribution 4.0 International";
3264            case CCBYNC1_0: return "Creative Commons Attribution Non Commercial 1.0 Generic";
3265            case CCBYNC2_0: return "Creative Commons Attribution Non Commercial 2.0 Generic";
3266            case CCBYNC2_5: return "Creative Commons Attribution Non Commercial 2.5 Generic";
3267            case CCBYNC3_0: return "Creative Commons Attribution Non Commercial 3.0 Unported";
3268            case CCBYNC4_0: return "Creative Commons Attribution Non Commercial 4.0 International";
3269            case CCBYNCND1_0: return "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic";
3270            case CCBYNCND2_0: return "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic";
3271            case CCBYNCND2_5: return "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic";
3272            case CCBYNCND3_0: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported";
3273            case CCBYNCND4_0: return "Creative Commons Attribution Non Commercial No Derivatives 4.0 International";
3274            case CCBYNCSA1_0: return "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic";
3275            case CCBYNCSA2_0: return "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic";
3276            case CCBYNCSA2_5: return "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic";
3277            case CCBYNCSA3_0: return "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported";
3278            case CCBYNCSA4_0: return "Creative Commons Attribution Non Commercial Share Alike 4.0 International";
3279            case CCBYND1_0: return "Creative Commons Attribution No Derivatives 1.0 Generic";
3280            case CCBYND2_0: return "Creative Commons Attribution No Derivatives 2.0 Generic";
3281            case CCBYND2_5: return "Creative Commons Attribution No Derivatives 2.5 Generic";
3282            case CCBYND3_0: return "Creative Commons Attribution No Derivatives 3.0 Unported";
3283            case CCBYND4_0: return "Creative Commons Attribution No Derivatives 4.0 International";
3284            case CCBYSA1_0: return "Creative Commons Attribution Share Alike 1.0 Generic";
3285            case CCBYSA2_0: return "Creative Commons Attribution Share Alike 2.0 Generic";
3286            case CCBYSA2_5: return "Creative Commons Attribution Share Alike 2.5 Generic";
3287            case CCBYSA3_0: return "Creative Commons Attribution Share Alike 3.0 Unported";
3288            case CCBYSA4_0: return "Creative Commons Attribution Share Alike 4.0 International";
3289            case CC01_0: return "Creative Commons Zero v1.0 Universal";
3290            case CDDL1_0: return "Common Development and Distribution License 1.0";
3291            case CDDL1_1: return "Common Development and Distribution License 1.1";
3292            case CDLAPERMISSIVE1_0: return "Community Data License Agreement Permissive 1.0";
3293            case CDLASHARING1_0: return "Community Data License Agreement Sharing 1.0";
3294            case CECILL1_0: return "CeCILL Free Software License Agreement v1.0";
3295            case CECILL1_1: return "CeCILL Free Software License Agreement v1.1";
3296            case CECILL2_0: return "CeCILL Free Software License Agreement v2.0";
3297            case CECILL2_1: return "CeCILL Free Software License Agreement v2.1";
3298            case CECILLB: return "CeCILL-B Free Software License Agreement";
3299            case CECILLC: return "CeCILL-C Free Software License Agreement";
3300            case CLARTISTIC: return "Clarified Artistic License";
3301            case CNRIJYTHON: return "CNRI Jython License";
3302            case CNRIPYTHONGPLCOMPATIBLE: return "CNRI Python Open Source GPL Compatible License Agreement";
3303            case CNRIPYTHON: return "CNRI Python License";
3304            case CONDOR1_1: return "Condor Public License v1.1";
3305            case CPAL1_0: return "Common Public Attribution License 1.0";
3306            case CPL1_0: return "Common Public License 1.0";
3307            case CPOL1_02: return "Code Project Open License 1.02";
3308            case CROSSWORD: return "Crossword License";
3309            case CRYSTALSTACKER: return "CrystalStacker License";
3310            case CUAOPL1_0: return "CUA Office Public License v1.0";
3311            case CUBE: return "Cube License";
3312            case CURL: return "curl License";
3313            case DFSL1_0: return "Deutsche Freie Software Lizenz";
3314            case DIFFMARK: return "diffmark license";
3315            case DOC: return "DOC License";
3316            case DOTSEQN: return "Dotseqn License";
3317            case DSDP: return "DSDP License";
3318            case DVIPDFM: return "dvipdfm License";
3319            case ECL1_0: return "Educational Community License v1.0";
3320            case ECL2_0: return "Educational Community License v2.0";
3321            case EFL1_0: return "Eiffel Forum License v1.0";
3322            case EFL2_0: return "Eiffel Forum License v2.0";
3323            case EGENIX: return "eGenix.com Public License 1.1.0";
3324            case ENTESSA: return "Entessa Public License v1.0";
3325            case EPL1_0: return "Eclipse Public License 1.0";
3326            case EPL2_0: return "Eclipse Public License 2.0";
3327            case ERLPL1_1: return "Erlang Public License v1.1";
3328            case EUDATAGRID: return "EU DataGrid Software License";
3329            case EUPL1_0: return "European Union Public License 1.0";
3330            case EUPL1_1: return "European Union Public License 1.1";
3331            case EUPL1_2: return "European Union Public License 1.2";
3332            case EUROSYM: return "Eurosym License";
3333            case FAIR: return "Fair License";
3334            case FRAMEWORX1_0: return "Frameworx Open License 1.0";
3335            case FREEIMAGE: return "FreeImage Public License v1.0";
3336            case FSFAP: return "FSF All Permissive License";
3337            case FSFUL: return "FSF Unlimited License";
3338            case FSFULLR: return "FSF Unlimited License (with License Retention)";
3339            case FTL: return "Freetype Project License";
3340            case GFDL1_1ONLY: return "GNU Free Documentation License v1.1 only";
3341            case GFDL1_1ORLATER: return "GNU Free Documentation License v1.1 or later";
3342            case GFDL1_2ONLY: return "GNU Free Documentation License v1.2 only";
3343            case GFDL1_2ORLATER: return "GNU Free Documentation License v1.2 or later";
3344            case GFDL1_3ONLY: return "GNU Free Documentation License v1.3 only";
3345            case GFDL1_3ORLATER: return "GNU Free Documentation License v1.3 or later";
3346            case GIFTWARE: return "Giftware License";
3347            case GL2PS: return "GL2PS License";
3348            case GLIDE: return "3dfx Glide License";
3349            case GLULXE: return "Glulxe License";
3350            case GNUPLOT: return "gnuplot License";
3351            case GPL1_0ONLY: return "GNU General Public License v1.0 only";
3352            case GPL1_0ORLATER: return "GNU General Public License v1.0 or later";
3353            case GPL2_0ONLY: return "GNU General Public License v2.0 only";
3354            case GPL2_0ORLATER: return "GNU General Public License v2.0 or later";
3355            case GPL3_0ONLY: return "GNU General Public License v3.0 only";
3356            case GPL3_0ORLATER: return "GNU General Public License v3.0 or later";
3357            case GSOAP1_3B: return "gSOAP Public License v1.3b";
3358            case HASKELLREPORT: return "Haskell Language Report License";
3359            case HPND: return "Historical Permission Notice and Disclaimer";
3360            case IBMPIBS: return "IBM PowerPC Initialization and Boot Software";
3361            case ICU: return "ICU License";
3362            case IJG: return "Independent JPEG Group License";
3363            case IMAGEMAGICK: return "ImageMagick License";
3364            case IMATIX: return "iMatix Standard Function Library Agreement";
3365            case IMLIB2: return "Imlib2 License";
3366            case INFOZIP: return "Info-ZIP License";
3367            case INTELACPI: return "Intel ACPI Software License Agreement";
3368            case INTEL: return "Intel Open Source License";
3369            case INTERBASE1_0: return "Interbase Public License v1.0";
3370            case IPA: return "IPA Font License";
3371            case IPL1_0: return "IBM Public License v1.0";
3372            case ISC: return "ISC License";
3373            case JASPER2_0: return "JasPer License";
3374            case JSON: return "JSON License";
3375            case LAL1_2: return "Licence Art Libre 1.2";
3376            case LAL1_3: return "Licence Art Libre 1.3";
3377            case LATEX2E: return "Latex2e License";
3378            case LEPTONICA: return "Leptonica License";
3379            case LGPL2_0ONLY: return "GNU Library General Public License v2 only";
3380            case LGPL2_0ORLATER: return "GNU Library General Public License v2 or later";
3381            case LGPL2_1ONLY: return "GNU Lesser General Public License v2.1 only";
3382            case LGPL2_1ORLATER: return "GNU Lesser General Public License v2.1 or later";
3383            case LGPL3_0ONLY: return "GNU Lesser General Public License v3.0 only";
3384            case LGPL3_0ORLATER: return "GNU Lesser General Public License v3.0 or later";
3385            case LGPLLR: return "Lesser General Public License For Linguistic Resources";
3386            case LIBPNG: return "libpng License";
3387            case LIBTIFF: return "libtiff License";
3388            case LILIQP1_1: return "Licence Libre du Québec – Permissive version 1.1";
3389            case LILIQR1_1: return "Licence Libre du Québec – Réciprocité version 1.1";
3390            case LILIQRPLUS1_1: return "Licence Libre du Québec – Réciprocité forte version 1.1";
3391            case LINUXOPENIB: return "Linux Kernel Variant of OpenIB.org license";
3392            case LPL1_0: return "Lucent Public License Version 1.0";
3393            case LPL1_02: return "Lucent Public License v1.02";
3394            case LPPL1_0: return "LaTeX Project Public License v1.0";
3395            case LPPL1_1: return "LaTeX Project Public License v1.1";
3396            case LPPL1_2: return "LaTeX Project Public License v1.2";
3397            case LPPL1_3A: return "LaTeX Project Public License v1.3a";
3398            case LPPL1_3C: return "LaTeX Project Public License v1.3c";
3399            case MAKEINDEX: return "MakeIndex License";
3400            case MIROS: return "MirOS License";
3401            case MIT0: return "MIT No Attribution";
3402            case MITADVERTISING: return "Enlightenment License (e16)";
3403            case MITCMU: return "CMU License";
3404            case MITENNA: return "enna License";
3405            case MITFEH: return "feh License";
3406            case MIT: return "MIT License";
3407            case MITNFA: return "MIT +no-false-attribs license";
3408            case MOTOSOTO: return "Motosoto License";
3409            case MPICH2: return "mpich2 License";
3410            case MPL1_0: return "Mozilla Public License 1.0";
3411            case MPL1_1: return "Mozilla Public License 1.1";
3412            case MPL2_0NOCOPYLEFTEXCEPTION: return "Mozilla Public License 2.0 (no copyleft exception)";
3413            case MPL2_0: return "Mozilla Public License 2.0";
3414            case MSPL: return "Microsoft Public License";
3415            case MSRL: return "Microsoft Reciprocal License";
3416            case MTLL: return "Matrix Template Library License";
3417            case MULTICS: return "Multics License";
3418            case MUP: return "Mup License";
3419            case NASA1_3: return "NASA Open Source Agreement 1.3";
3420            case NAUMEN: return "Naumen Public License";
3421            case NBPL1_0: return "Net Boolean Public License v1";
3422            case NCSA: return "University of Illinois/NCSA Open Source License";
3423            case NETSNMP: return "Net-SNMP License";
3424            case NETCDF: return "NetCDF license";
3425            case NEWSLETR: return "Newsletr License";
3426            case NGPL: return "Nethack General Public License";
3427            case NLOD1_0: return "Norwegian Licence for Open Government Data";
3428            case NLPL: return "No Limit Public License";
3429            case NOKIA: return "Nokia Open Source License";
3430            case NOSL: return "Netizen Open Source License";
3431            case NOWEB: return "Noweb License";
3432            case NPL1_0: return "Netscape Public License v1.0";
3433            case NPL1_1: return "Netscape Public License v1.1";
3434            case NPOSL3_0: return "Non-Profit Open Software License 3.0";
3435            case NRL: return "NRL License";
3436            case NTP: return "NTP License";
3437            case OCCTPL: return "Open CASCADE Technology Public License";
3438            case OCLC2_0: return "OCLC Research Public License 2.0";
3439            case ODBL1_0: return "ODC Open Database License v1.0";
3440            case OFL1_0: return "SIL Open Font License 1.0";
3441            case OFL1_1: return "SIL Open Font License 1.1";
3442            case OGTSL: return "Open Group Test Suite License";
3443            case OLDAP1_1: return "Open LDAP Public License v1.1";
3444            case OLDAP1_2: return "Open LDAP Public License v1.2";
3445            case OLDAP1_3: return "Open LDAP Public License v1.3";
3446            case OLDAP1_4: return "Open LDAP Public License v1.4";
3447            case OLDAP2_0_1: return "Open LDAP Public License v2.0.1";
3448            case OLDAP2_0: return "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)";
3449            case OLDAP2_1: return "Open LDAP Public License v2.1";
3450            case OLDAP2_2_1: return "Open LDAP Public License v2.2.1";
3451            case OLDAP2_2_2: return "Open LDAP Public License 2.2.2";
3452            case OLDAP2_2: return "Open LDAP Public License v2.2";
3453            case OLDAP2_3: return "Open LDAP Public License v2.3";
3454            case OLDAP2_4: return "Open LDAP Public License v2.4";
3455            case OLDAP2_5: return "Open LDAP Public License v2.5";
3456            case OLDAP2_6: return "Open LDAP Public License v2.6";
3457            case OLDAP2_7: return "Open LDAP Public License v2.7";
3458            case OLDAP2_8: return "Open LDAP Public License v2.8";
3459            case OML: return "Open Market License";
3460            case OPENSSL: return "OpenSSL License";
3461            case OPL1_0: return "Open Public License v1.0";
3462            case OSETPL2_1: return "OSET Public License version 2.1";
3463            case OSL1_0: return "Open Software License 1.0";
3464            case OSL1_1: return "Open Software License 1.1";
3465            case OSL2_0: return "Open Software License 2.0";
3466            case OSL2_1: return "Open Software License 2.1";
3467            case OSL3_0: return "Open Software License 3.0";
3468            case PDDL1_0: return "ODC Public Domain Dedication & License 1.0";
3469            case PHP3_0: return "PHP License v3.0";
3470            case PHP3_01: return "PHP License v3.01";
3471            case PLEXUS: return "Plexus Classworlds License";
3472            case POSTGRESQL: return "PostgreSQL License";
3473            case PSFRAG: return "psfrag License";
3474            case PSUTILS: return "psutils License";
3475            case PYTHON2_0: return "Python License 2.0";
3476            case QHULL: return "Qhull License";
3477            case QPL1_0: return "Q Public License 1.0";
3478            case RDISC: return "Rdisc License";
3479            case RHECOS1_1: return "Red Hat eCos Public License v1.1";
3480            case RPL1_1: return "Reciprocal Public License 1.1";
3481            case RPL1_5: return "Reciprocal Public License 1.5";
3482            case RPSL1_0: return "RealNetworks Public Source License v1.0";
3483            case RSAMD: return "RSA Message-Digest License";
3484            case RSCPL: return "Ricoh Source Code Public License";
3485            case RUBY: return "Ruby License";
3486            case SAXPD: return "Sax Public Domain Notice";
3487            case SAXPATH: return "Saxpath License";
3488            case SCEA: return "SCEA Shared Source License";
3489            case SENDMAIL: return "Sendmail License";
3490            case SGIB1_0: return "SGI Free Software License B v1.0";
3491            case SGIB1_1: return "SGI Free Software License B v1.1";
3492            case SGIB2_0: return "SGI Free Software License B v2.0";
3493            case SIMPL2_0: return "Simple Public License 2.0";
3494            case SISSL1_2: return "Sun Industry Standards Source License v1.2";
3495            case SISSL: return "Sun Industry Standards Source License v1.1";
3496            case SLEEPYCAT: return "Sleepycat License";
3497            case SMLNJ: return "Standard ML of New Jersey License";
3498            case SMPPL: return "Secure Messaging Protocol Public License";
3499            case SNIA: return "SNIA Public License 1.1";
3500            case SPENCER86: return "Spencer License 86";
3501            case SPENCER94: return "Spencer License 94";
3502            case SPENCER99: return "Spencer License 99";
3503            case SPL1_0: return "Sun Public License v1.0";
3504            case SUGARCRM1_1_3: return "SugarCRM Public License v1.1.3";
3505            case SWL: return "Scheme Widget Library (SWL) Software License Agreement";
3506            case TCL: return "TCL/TK License";
3507            case TCPWRAPPERS: return "TCP Wrappers License";
3508            case TMATE: return "TMate Open Source License";
3509            case TORQUE1_1: return "TORQUE v2.5+ Software License v1.1";
3510            case TOSL: return "Trusster Open Source License";
3511            case UNICODEDFS2015: return "Unicode License Agreement - Data Files and Software (2015)";
3512            case UNICODEDFS2016: return "Unicode License Agreement - Data Files and Software (2016)";
3513            case UNICODETOU: return "Unicode Terms of Use";
3514            case UNLICENSE: return "The Unlicense";
3515            case UPL1_0: return "Universal Permissive License v1.0";
3516            case VIM: return "Vim License";
3517            case VOSTROM: return "VOSTROM Public License for Open Source";
3518            case VSL1_0: return "Vovida Software License v1.0";
3519            case W3C19980720: return "W3C Software Notice and License (1998-07-20)";
3520            case W3C20150513: return "W3C Software Notice and Document License (2015-05-13)";
3521            case W3C: return "W3C Software Notice and License (2002-12-31)";
3522            case WATCOM1_0: return "Sybase Open Watcom Public License 1.0";
3523            case WSUIPA: return "Wsuipa License";
3524            case WTFPL: return "Do What The F*ck You Want To Public License";
3525            case X11: return "X11 License";
3526            case XEROX: return "Xerox License";
3527            case XFREE861_1: return "XFree86 License 1.1";
3528            case XINETD: return "xinetd License";
3529            case XNET: return "X.Net License";
3530            case XPP: return "XPP License";
3531            case XSKAT: return "XSkat License";
3532            case YPL1_0: return "Yahoo! Public License v1.0";
3533            case YPL1_1: return "Yahoo! Public License v1.1";
3534            case ZED: return "Zed License";
3535            case ZEND2_0: return "Zend License v2.0";
3536            case ZIMBRA1_3: return "Zimbra Public License v1.3";
3537            case ZIMBRA1_4: return "Zimbra Public License v1.4";
3538            case ZLIBACKNOWLEDGEMENT: return "zlib/libpng License with Acknowledgement";
3539            case ZLIB: return "zlib License";
3540            case ZPL1_1: return "Zope Public License 1.1";
3541            case ZPL2_0: return "Zope Public License 2.0";
3542            case ZPL2_1: return "Zope Public License 2.1";
3543            default: return "?";
3544          }
3545        }
3546    }
3547
3548  public static class SPDXLicenseEnumFactory implements EnumFactory<SPDXLicense> {
3549    public SPDXLicense fromCode(String codeString) throws IllegalArgumentException {
3550      if (codeString == null || "".equals(codeString))
3551            if (codeString == null || "".equals(codeString))
3552                return null;
3553        if ("not-open-source".equals(codeString))
3554          return SPDXLicense.NOTOPENSOURCE;
3555        if ("0BSD".equals(codeString))
3556          return SPDXLicense._0BSD;
3557        if ("AAL".equals(codeString))
3558          return SPDXLicense.AAL;
3559        if ("Abstyles".equals(codeString))
3560          return SPDXLicense.ABSTYLES;
3561        if ("Adobe-2006".equals(codeString))
3562          return SPDXLicense.ADOBE2006;
3563        if ("Adobe-Glyph".equals(codeString))
3564          return SPDXLicense.ADOBEGLYPH;
3565        if ("ADSL".equals(codeString))
3566          return SPDXLicense.ADSL;
3567        if ("AFL-1.1".equals(codeString))
3568          return SPDXLicense.AFL1_1;
3569        if ("AFL-1.2".equals(codeString))
3570          return SPDXLicense.AFL1_2;
3571        if ("AFL-2.0".equals(codeString))
3572          return SPDXLicense.AFL2_0;
3573        if ("AFL-2.1".equals(codeString))
3574          return SPDXLicense.AFL2_1;
3575        if ("AFL-3.0".equals(codeString))
3576          return SPDXLicense.AFL3_0;
3577        if ("Afmparse".equals(codeString))
3578          return SPDXLicense.AFMPARSE;
3579        if ("AGPL-1.0-only".equals(codeString))
3580          return SPDXLicense.AGPL1_0ONLY;
3581        if ("AGPL-1.0-or-later".equals(codeString))
3582          return SPDXLicense.AGPL1_0ORLATER;
3583        if ("AGPL-3.0-only".equals(codeString))
3584          return SPDXLicense.AGPL3_0ONLY;
3585        if ("AGPL-3.0-or-later".equals(codeString))
3586          return SPDXLicense.AGPL3_0ORLATER;
3587        if ("Aladdin".equals(codeString))
3588          return SPDXLicense.ALADDIN;
3589        if ("AMDPLPA".equals(codeString))
3590          return SPDXLicense.AMDPLPA;
3591        if ("AML".equals(codeString))
3592          return SPDXLicense.AML;
3593        if ("AMPAS".equals(codeString))
3594          return SPDXLicense.AMPAS;
3595        if ("ANTLR-PD".equals(codeString))
3596          return SPDXLicense.ANTLRPD;
3597        if ("Apache-1.0".equals(codeString))
3598          return SPDXLicense.APACHE1_0;
3599        if ("Apache-1.1".equals(codeString))
3600          return SPDXLicense.APACHE1_1;
3601        if ("Apache-2.0".equals(codeString))
3602          return SPDXLicense.APACHE2_0;
3603        if ("APAFML".equals(codeString))
3604          return SPDXLicense.APAFML;
3605        if ("APL-1.0".equals(codeString))
3606          return SPDXLicense.APL1_0;
3607        if ("APSL-1.0".equals(codeString))
3608          return SPDXLicense.APSL1_0;
3609        if ("APSL-1.1".equals(codeString))
3610          return SPDXLicense.APSL1_1;
3611        if ("APSL-1.2".equals(codeString))
3612          return SPDXLicense.APSL1_2;
3613        if ("APSL-2.0".equals(codeString))
3614          return SPDXLicense.APSL2_0;
3615        if ("Artistic-1.0-cl8".equals(codeString))
3616          return SPDXLicense.ARTISTIC1_0CL8;
3617        if ("Artistic-1.0-Perl".equals(codeString))
3618          return SPDXLicense.ARTISTIC1_0PERL;
3619        if ("Artistic-1.0".equals(codeString))
3620          return SPDXLicense.ARTISTIC1_0;
3621        if ("Artistic-2.0".equals(codeString))
3622          return SPDXLicense.ARTISTIC2_0;
3623        if ("Bahyph".equals(codeString))
3624          return SPDXLicense.BAHYPH;
3625        if ("Barr".equals(codeString))
3626          return SPDXLicense.BARR;
3627        if ("Beerware".equals(codeString))
3628          return SPDXLicense.BEERWARE;
3629        if ("BitTorrent-1.0".equals(codeString))
3630          return SPDXLicense.BITTORRENT1_0;
3631        if ("BitTorrent-1.1".equals(codeString))
3632          return SPDXLicense.BITTORRENT1_1;
3633        if ("Borceux".equals(codeString))
3634          return SPDXLicense.BORCEUX;
3635        if ("BSD-1-Clause".equals(codeString))
3636          return SPDXLicense.BSD1CLAUSE;
3637        if ("BSD-2-Clause-FreeBSD".equals(codeString))
3638          return SPDXLicense.BSD2CLAUSEFREEBSD;
3639        if ("BSD-2-Clause-NetBSD".equals(codeString))
3640          return SPDXLicense.BSD2CLAUSENETBSD;
3641        if ("BSD-2-Clause-Patent".equals(codeString))
3642          return SPDXLicense.BSD2CLAUSEPATENT;
3643        if ("BSD-2-Clause".equals(codeString))
3644          return SPDXLicense.BSD2CLAUSE;
3645        if ("BSD-3-Clause-Attribution".equals(codeString))
3646          return SPDXLicense.BSD3CLAUSEATTRIBUTION;
3647        if ("BSD-3-Clause-Clear".equals(codeString))
3648          return SPDXLicense.BSD3CLAUSECLEAR;
3649        if ("BSD-3-Clause-LBNL".equals(codeString))
3650          return SPDXLicense.BSD3CLAUSELBNL;
3651        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
3652          return SPDXLicense.BSD3CLAUSENONUCLEARLICENSE2014;
3653        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
3654          return SPDXLicense.BSD3CLAUSENONUCLEARLICENSE;
3655        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
3656          return SPDXLicense.BSD3CLAUSENONUCLEARWARRANTY;
3657        if ("BSD-3-Clause".equals(codeString))
3658          return SPDXLicense.BSD3CLAUSE;
3659        if ("BSD-4-Clause-UC".equals(codeString))
3660          return SPDXLicense.BSD4CLAUSEUC;
3661        if ("BSD-4-Clause".equals(codeString))
3662          return SPDXLicense.BSD4CLAUSE;
3663        if ("BSD-Protection".equals(codeString))
3664          return SPDXLicense.BSDPROTECTION;
3665        if ("BSD-Source-Code".equals(codeString))
3666          return SPDXLicense.BSDSOURCECODE;
3667        if ("BSL-1.0".equals(codeString))
3668          return SPDXLicense.BSL1_0;
3669        if ("bzip2-1.0.5".equals(codeString))
3670          return SPDXLicense.BZIP21_0_5;
3671        if ("bzip2-1.0.6".equals(codeString))
3672          return SPDXLicense.BZIP21_0_6;
3673        if ("Caldera".equals(codeString))
3674          return SPDXLicense.CALDERA;
3675        if ("CATOSL-1.1".equals(codeString))
3676          return SPDXLicense.CATOSL1_1;
3677        if ("CC-BY-1.0".equals(codeString))
3678          return SPDXLicense.CCBY1_0;
3679        if ("CC-BY-2.0".equals(codeString))
3680          return SPDXLicense.CCBY2_0;
3681        if ("CC-BY-2.5".equals(codeString))
3682          return SPDXLicense.CCBY2_5;
3683        if ("CC-BY-3.0".equals(codeString))
3684          return SPDXLicense.CCBY3_0;
3685        if ("CC-BY-4.0".equals(codeString))
3686          return SPDXLicense.CCBY4_0;
3687        if ("CC-BY-NC-1.0".equals(codeString))
3688          return SPDXLicense.CCBYNC1_0;
3689        if ("CC-BY-NC-2.0".equals(codeString))
3690          return SPDXLicense.CCBYNC2_0;
3691        if ("CC-BY-NC-2.5".equals(codeString))
3692          return SPDXLicense.CCBYNC2_5;
3693        if ("CC-BY-NC-3.0".equals(codeString))
3694          return SPDXLicense.CCBYNC3_0;
3695        if ("CC-BY-NC-4.0".equals(codeString))
3696          return SPDXLicense.CCBYNC4_0;
3697        if ("CC-BY-NC-ND-1.0".equals(codeString))
3698          return SPDXLicense.CCBYNCND1_0;
3699        if ("CC-BY-NC-ND-2.0".equals(codeString))
3700          return SPDXLicense.CCBYNCND2_0;
3701        if ("CC-BY-NC-ND-2.5".equals(codeString))
3702          return SPDXLicense.CCBYNCND2_5;
3703        if ("CC-BY-NC-ND-3.0".equals(codeString))
3704          return SPDXLicense.CCBYNCND3_0;
3705        if ("CC-BY-NC-ND-4.0".equals(codeString))
3706          return SPDXLicense.CCBYNCND4_0;
3707        if ("CC-BY-NC-SA-1.0".equals(codeString))
3708          return SPDXLicense.CCBYNCSA1_0;
3709        if ("CC-BY-NC-SA-2.0".equals(codeString))
3710          return SPDXLicense.CCBYNCSA2_0;
3711        if ("CC-BY-NC-SA-2.5".equals(codeString))
3712          return SPDXLicense.CCBYNCSA2_5;
3713        if ("CC-BY-NC-SA-3.0".equals(codeString))
3714          return SPDXLicense.CCBYNCSA3_0;
3715        if ("CC-BY-NC-SA-4.0".equals(codeString))
3716          return SPDXLicense.CCBYNCSA4_0;
3717        if ("CC-BY-ND-1.0".equals(codeString))
3718          return SPDXLicense.CCBYND1_0;
3719        if ("CC-BY-ND-2.0".equals(codeString))
3720          return SPDXLicense.CCBYND2_0;
3721        if ("CC-BY-ND-2.5".equals(codeString))
3722          return SPDXLicense.CCBYND2_5;
3723        if ("CC-BY-ND-3.0".equals(codeString))
3724          return SPDXLicense.CCBYND3_0;
3725        if ("CC-BY-ND-4.0".equals(codeString))
3726          return SPDXLicense.CCBYND4_0;
3727        if ("CC-BY-SA-1.0".equals(codeString))
3728          return SPDXLicense.CCBYSA1_0;
3729        if ("CC-BY-SA-2.0".equals(codeString))
3730          return SPDXLicense.CCBYSA2_0;
3731        if ("CC-BY-SA-2.5".equals(codeString))
3732          return SPDXLicense.CCBYSA2_5;
3733        if ("CC-BY-SA-3.0".equals(codeString))
3734          return SPDXLicense.CCBYSA3_0;
3735        if ("CC-BY-SA-4.0".equals(codeString))
3736          return SPDXLicense.CCBYSA4_0;
3737        if ("CC0-1.0".equals(codeString))
3738          return SPDXLicense.CC01_0;
3739        if ("CDDL-1.0".equals(codeString))
3740          return SPDXLicense.CDDL1_0;
3741        if ("CDDL-1.1".equals(codeString))
3742          return SPDXLicense.CDDL1_1;
3743        if ("CDLA-Permissive-1.0".equals(codeString))
3744          return SPDXLicense.CDLAPERMISSIVE1_0;
3745        if ("CDLA-Sharing-1.0".equals(codeString))
3746          return SPDXLicense.CDLASHARING1_0;
3747        if ("CECILL-1.0".equals(codeString))
3748          return SPDXLicense.CECILL1_0;
3749        if ("CECILL-1.1".equals(codeString))
3750          return SPDXLicense.CECILL1_1;
3751        if ("CECILL-2.0".equals(codeString))
3752          return SPDXLicense.CECILL2_0;
3753        if ("CECILL-2.1".equals(codeString))
3754          return SPDXLicense.CECILL2_1;
3755        if ("CECILL-B".equals(codeString))
3756          return SPDXLicense.CECILLB;
3757        if ("CECILL-C".equals(codeString))
3758          return SPDXLicense.CECILLC;
3759        if ("ClArtistic".equals(codeString))
3760          return SPDXLicense.CLARTISTIC;
3761        if ("CNRI-Jython".equals(codeString))
3762          return SPDXLicense.CNRIJYTHON;
3763        if ("CNRI-Python-GPL-Compatible".equals(codeString))
3764          return SPDXLicense.CNRIPYTHONGPLCOMPATIBLE;
3765        if ("CNRI-Python".equals(codeString))
3766          return SPDXLicense.CNRIPYTHON;
3767        if ("Condor-1.1".equals(codeString))
3768          return SPDXLicense.CONDOR1_1;
3769        if ("CPAL-1.0".equals(codeString))
3770          return SPDXLicense.CPAL1_0;
3771        if ("CPL-1.0".equals(codeString))
3772          return SPDXLicense.CPL1_0;
3773        if ("CPOL-1.02".equals(codeString))
3774          return SPDXLicense.CPOL1_02;
3775        if ("Crossword".equals(codeString))
3776          return SPDXLicense.CROSSWORD;
3777        if ("CrystalStacker".equals(codeString))
3778          return SPDXLicense.CRYSTALSTACKER;
3779        if ("CUA-OPL-1.0".equals(codeString))
3780          return SPDXLicense.CUAOPL1_0;
3781        if ("Cube".equals(codeString))
3782          return SPDXLicense.CUBE;
3783        if ("curl".equals(codeString))
3784          return SPDXLicense.CURL;
3785        if ("D-FSL-1.0".equals(codeString))
3786          return SPDXLicense.DFSL1_0;
3787        if ("diffmark".equals(codeString))
3788          return SPDXLicense.DIFFMARK;
3789        if ("DOC".equals(codeString))
3790          return SPDXLicense.DOC;
3791        if ("Dotseqn".equals(codeString))
3792          return SPDXLicense.DOTSEQN;
3793        if ("DSDP".equals(codeString))
3794          return SPDXLicense.DSDP;
3795        if ("dvipdfm".equals(codeString))
3796          return SPDXLicense.DVIPDFM;
3797        if ("ECL-1.0".equals(codeString))
3798          return SPDXLicense.ECL1_0;
3799        if ("ECL-2.0".equals(codeString))
3800          return SPDXLicense.ECL2_0;
3801        if ("EFL-1.0".equals(codeString))
3802          return SPDXLicense.EFL1_0;
3803        if ("EFL-2.0".equals(codeString))
3804          return SPDXLicense.EFL2_0;
3805        if ("eGenix".equals(codeString))
3806          return SPDXLicense.EGENIX;
3807        if ("Entessa".equals(codeString))
3808          return SPDXLicense.ENTESSA;
3809        if ("EPL-1.0".equals(codeString))
3810          return SPDXLicense.EPL1_0;
3811        if ("EPL-2.0".equals(codeString))
3812          return SPDXLicense.EPL2_0;
3813        if ("ErlPL-1.1".equals(codeString))
3814          return SPDXLicense.ERLPL1_1;
3815        if ("EUDatagrid".equals(codeString))
3816          return SPDXLicense.EUDATAGRID;
3817        if ("EUPL-1.0".equals(codeString))
3818          return SPDXLicense.EUPL1_0;
3819        if ("EUPL-1.1".equals(codeString))
3820          return SPDXLicense.EUPL1_1;
3821        if ("EUPL-1.2".equals(codeString))
3822          return SPDXLicense.EUPL1_2;
3823        if ("Eurosym".equals(codeString))
3824          return SPDXLicense.EUROSYM;
3825        if ("Fair".equals(codeString))
3826          return SPDXLicense.FAIR;
3827        if ("Frameworx-1.0".equals(codeString))
3828          return SPDXLicense.FRAMEWORX1_0;
3829        if ("FreeImage".equals(codeString))
3830          return SPDXLicense.FREEIMAGE;
3831        if ("FSFAP".equals(codeString))
3832          return SPDXLicense.FSFAP;
3833        if ("FSFUL".equals(codeString))
3834          return SPDXLicense.FSFUL;
3835        if ("FSFULLR".equals(codeString))
3836          return SPDXLicense.FSFULLR;
3837        if ("FTL".equals(codeString))
3838          return SPDXLicense.FTL;
3839        if ("GFDL-1.1-only".equals(codeString))
3840          return SPDXLicense.GFDL1_1ONLY;
3841        if ("GFDL-1.1-or-later".equals(codeString))
3842          return SPDXLicense.GFDL1_1ORLATER;
3843        if ("GFDL-1.2-only".equals(codeString))
3844          return SPDXLicense.GFDL1_2ONLY;
3845        if ("GFDL-1.2-or-later".equals(codeString))
3846          return SPDXLicense.GFDL1_2ORLATER;
3847        if ("GFDL-1.3-only".equals(codeString))
3848          return SPDXLicense.GFDL1_3ONLY;
3849        if ("GFDL-1.3-or-later".equals(codeString))
3850          return SPDXLicense.GFDL1_3ORLATER;
3851        if ("Giftware".equals(codeString))
3852          return SPDXLicense.GIFTWARE;
3853        if ("GL2PS".equals(codeString))
3854          return SPDXLicense.GL2PS;
3855        if ("Glide".equals(codeString))
3856          return SPDXLicense.GLIDE;
3857        if ("Glulxe".equals(codeString))
3858          return SPDXLicense.GLULXE;
3859        if ("gnuplot".equals(codeString))
3860          return SPDXLicense.GNUPLOT;
3861        if ("GPL-1.0-only".equals(codeString))
3862          return SPDXLicense.GPL1_0ONLY;
3863        if ("GPL-1.0-or-later".equals(codeString))
3864          return SPDXLicense.GPL1_0ORLATER;
3865        if ("GPL-2.0-only".equals(codeString))
3866          return SPDXLicense.GPL2_0ONLY;
3867        if ("GPL-2.0-or-later".equals(codeString))
3868          return SPDXLicense.GPL2_0ORLATER;
3869        if ("GPL-3.0-only".equals(codeString))
3870          return SPDXLicense.GPL3_0ONLY;
3871        if ("GPL-3.0-or-later".equals(codeString))
3872          return SPDXLicense.GPL3_0ORLATER;
3873        if ("gSOAP-1.3b".equals(codeString))
3874          return SPDXLicense.GSOAP1_3B;
3875        if ("HaskellReport".equals(codeString))
3876          return SPDXLicense.HASKELLREPORT;
3877        if ("HPND".equals(codeString))
3878          return SPDXLicense.HPND;
3879        if ("IBM-pibs".equals(codeString))
3880          return SPDXLicense.IBMPIBS;
3881        if ("ICU".equals(codeString))
3882          return SPDXLicense.ICU;
3883        if ("IJG".equals(codeString))
3884          return SPDXLicense.IJG;
3885        if ("ImageMagick".equals(codeString))
3886          return SPDXLicense.IMAGEMAGICK;
3887        if ("iMatix".equals(codeString))
3888          return SPDXLicense.IMATIX;
3889        if ("Imlib2".equals(codeString))
3890          return SPDXLicense.IMLIB2;
3891        if ("Info-ZIP".equals(codeString))
3892          return SPDXLicense.INFOZIP;
3893        if ("Intel-ACPI".equals(codeString))
3894          return SPDXLicense.INTELACPI;
3895        if ("Intel".equals(codeString))
3896          return SPDXLicense.INTEL;
3897        if ("Interbase-1.0".equals(codeString))
3898          return SPDXLicense.INTERBASE1_0;
3899        if ("IPA".equals(codeString))
3900          return SPDXLicense.IPA;
3901        if ("IPL-1.0".equals(codeString))
3902          return SPDXLicense.IPL1_0;
3903        if ("ISC".equals(codeString))
3904          return SPDXLicense.ISC;
3905        if ("JasPer-2.0".equals(codeString))
3906          return SPDXLicense.JASPER2_0;
3907        if ("JSON".equals(codeString))
3908          return SPDXLicense.JSON;
3909        if ("LAL-1.2".equals(codeString))
3910          return SPDXLicense.LAL1_2;
3911        if ("LAL-1.3".equals(codeString))
3912          return SPDXLicense.LAL1_3;
3913        if ("Latex2e".equals(codeString))
3914          return SPDXLicense.LATEX2E;
3915        if ("Leptonica".equals(codeString))
3916          return SPDXLicense.LEPTONICA;
3917        if ("LGPL-2.0-only".equals(codeString))
3918          return SPDXLicense.LGPL2_0ONLY;
3919        if ("LGPL-2.0-or-later".equals(codeString))
3920          return SPDXLicense.LGPL2_0ORLATER;
3921        if ("LGPL-2.1-only".equals(codeString))
3922          return SPDXLicense.LGPL2_1ONLY;
3923        if ("LGPL-2.1-or-later".equals(codeString))
3924          return SPDXLicense.LGPL2_1ORLATER;
3925        if ("LGPL-3.0-only".equals(codeString))
3926          return SPDXLicense.LGPL3_0ONLY;
3927        if ("LGPL-3.0-or-later".equals(codeString))
3928          return SPDXLicense.LGPL3_0ORLATER;
3929        if ("LGPLLR".equals(codeString))
3930          return SPDXLicense.LGPLLR;
3931        if ("Libpng".equals(codeString))
3932          return SPDXLicense.LIBPNG;
3933        if ("libtiff".equals(codeString))
3934          return SPDXLicense.LIBTIFF;
3935        if ("LiLiQ-P-1.1".equals(codeString))
3936          return SPDXLicense.LILIQP1_1;
3937        if ("LiLiQ-R-1.1".equals(codeString))
3938          return SPDXLicense.LILIQR1_1;
3939        if ("LiLiQ-Rplus-1.1".equals(codeString))
3940          return SPDXLicense.LILIQRPLUS1_1;
3941        if ("Linux-OpenIB".equals(codeString))
3942          return SPDXLicense.LINUXOPENIB;
3943        if ("LPL-1.0".equals(codeString))
3944          return SPDXLicense.LPL1_0;
3945        if ("LPL-1.02".equals(codeString))
3946          return SPDXLicense.LPL1_02;
3947        if ("LPPL-1.0".equals(codeString))
3948          return SPDXLicense.LPPL1_0;
3949        if ("LPPL-1.1".equals(codeString))
3950          return SPDXLicense.LPPL1_1;
3951        if ("LPPL-1.2".equals(codeString))
3952          return SPDXLicense.LPPL1_2;
3953        if ("LPPL-1.3a".equals(codeString))
3954          return SPDXLicense.LPPL1_3A;
3955        if ("LPPL-1.3c".equals(codeString))
3956          return SPDXLicense.LPPL1_3C;
3957        if ("MakeIndex".equals(codeString))
3958          return SPDXLicense.MAKEINDEX;
3959        if ("MirOS".equals(codeString))
3960          return SPDXLicense.MIROS;
3961        if ("MIT-0".equals(codeString))
3962          return SPDXLicense.MIT0;
3963        if ("MIT-advertising".equals(codeString))
3964          return SPDXLicense.MITADVERTISING;
3965        if ("MIT-CMU".equals(codeString))
3966          return SPDXLicense.MITCMU;
3967        if ("MIT-enna".equals(codeString))
3968          return SPDXLicense.MITENNA;
3969        if ("MIT-feh".equals(codeString))
3970          return SPDXLicense.MITFEH;
3971        if ("MIT".equals(codeString))
3972          return SPDXLicense.MIT;
3973        if ("MITNFA".equals(codeString))
3974          return SPDXLicense.MITNFA;
3975        if ("Motosoto".equals(codeString))
3976          return SPDXLicense.MOTOSOTO;
3977        if ("mpich2".equals(codeString))
3978          return SPDXLicense.MPICH2;
3979        if ("MPL-1.0".equals(codeString))
3980          return SPDXLicense.MPL1_0;
3981        if ("MPL-1.1".equals(codeString))
3982          return SPDXLicense.MPL1_1;
3983        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
3984          return SPDXLicense.MPL2_0NOCOPYLEFTEXCEPTION;
3985        if ("MPL-2.0".equals(codeString))
3986          return SPDXLicense.MPL2_0;
3987        if ("MS-PL".equals(codeString))
3988          return SPDXLicense.MSPL;
3989        if ("MS-RL".equals(codeString))
3990          return SPDXLicense.MSRL;
3991        if ("MTLL".equals(codeString))
3992          return SPDXLicense.MTLL;
3993        if ("Multics".equals(codeString))
3994          return SPDXLicense.MULTICS;
3995        if ("Mup".equals(codeString))
3996          return SPDXLicense.MUP;
3997        if ("NASA-1.3".equals(codeString))
3998          return SPDXLicense.NASA1_3;
3999        if ("Naumen".equals(codeString))
4000          return SPDXLicense.NAUMEN;
4001        if ("NBPL-1.0".equals(codeString))
4002          return SPDXLicense.NBPL1_0;
4003        if ("NCSA".equals(codeString))
4004          return SPDXLicense.NCSA;
4005        if ("Net-SNMP".equals(codeString))
4006          return SPDXLicense.NETSNMP;
4007        if ("NetCDF".equals(codeString))
4008          return SPDXLicense.NETCDF;
4009        if ("Newsletr".equals(codeString))
4010          return SPDXLicense.NEWSLETR;
4011        if ("NGPL".equals(codeString))
4012          return SPDXLicense.NGPL;
4013        if ("NLOD-1.0".equals(codeString))
4014          return SPDXLicense.NLOD1_0;
4015        if ("NLPL".equals(codeString))
4016          return SPDXLicense.NLPL;
4017        if ("Nokia".equals(codeString))
4018          return SPDXLicense.NOKIA;
4019        if ("NOSL".equals(codeString))
4020          return SPDXLicense.NOSL;
4021        if ("Noweb".equals(codeString))
4022          return SPDXLicense.NOWEB;
4023        if ("NPL-1.0".equals(codeString))
4024          return SPDXLicense.NPL1_0;
4025        if ("NPL-1.1".equals(codeString))
4026          return SPDXLicense.NPL1_1;
4027        if ("NPOSL-3.0".equals(codeString))
4028          return SPDXLicense.NPOSL3_0;
4029        if ("NRL".equals(codeString))
4030          return SPDXLicense.NRL;
4031        if ("NTP".equals(codeString))
4032          return SPDXLicense.NTP;
4033        if ("OCCT-PL".equals(codeString))
4034          return SPDXLicense.OCCTPL;
4035        if ("OCLC-2.0".equals(codeString))
4036          return SPDXLicense.OCLC2_0;
4037        if ("ODbL-1.0".equals(codeString))
4038          return SPDXLicense.ODBL1_0;
4039        if ("OFL-1.0".equals(codeString))
4040          return SPDXLicense.OFL1_0;
4041        if ("OFL-1.1".equals(codeString))
4042          return SPDXLicense.OFL1_1;
4043        if ("OGTSL".equals(codeString))
4044          return SPDXLicense.OGTSL;
4045        if ("OLDAP-1.1".equals(codeString))
4046          return SPDXLicense.OLDAP1_1;
4047        if ("OLDAP-1.2".equals(codeString))
4048          return SPDXLicense.OLDAP1_2;
4049        if ("OLDAP-1.3".equals(codeString))
4050          return SPDXLicense.OLDAP1_3;
4051        if ("OLDAP-1.4".equals(codeString))
4052          return SPDXLicense.OLDAP1_4;
4053        if ("OLDAP-2.0.1".equals(codeString))
4054          return SPDXLicense.OLDAP2_0_1;
4055        if ("OLDAP-2.0".equals(codeString))
4056          return SPDXLicense.OLDAP2_0;
4057        if ("OLDAP-2.1".equals(codeString))
4058          return SPDXLicense.OLDAP2_1;
4059        if ("OLDAP-2.2.1".equals(codeString))
4060          return SPDXLicense.OLDAP2_2_1;
4061        if ("OLDAP-2.2.2".equals(codeString))
4062          return SPDXLicense.OLDAP2_2_2;
4063        if ("OLDAP-2.2".equals(codeString))
4064          return SPDXLicense.OLDAP2_2;
4065        if ("OLDAP-2.3".equals(codeString))
4066          return SPDXLicense.OLDAP2_3;
4067        if ("OLDAP-2.4".equals(codeString))
4068          return SPDXLicense.OLDAP2_4;
4069        if ("OLDAP-2.5".equals(codeString))
4070          return SPDXLicense.OLDAP2_5;
4071        if ("OLDAP-2.6".equals(codeString))
4072          return SPDXLicense.OLDAP2_6;
4073        if ("OLDAP-2.7".equals(codeString))
4074          return SPDXLicense.OLDAP2_7;
4075        if ("OLDAP-2.8".equals(codeString))
4076          return SPDXLicense.OLDAP2_8;
4077        if ("OML".equals(codeString))
4078          return SPDXLicense.OML;
4079        if ("OpenSSL".equals(codeString))
4080          return SPDXLicense.OPENSSL;
4081        if ("OPL-1.0".equals(codeString))
4082          return SPDXLicense.OPL1_0;
4083        if ("OSET-PL-2.1".equals(codeString))
4084          return SPDXLicense.OSETPL2_1;
4085        if ("OSL-1.0".equals(codeString))
4086          return SPDXLicense.OSL1_0;
4087        if ("OSL-1.1".equals(codeString))
4088          return SPDXLicense.OSL1_1;
4089        if ("OSL-2.0".equals(codeString))
4090          return SPDXLicense.OSL2_0;
4091        if ("OSL-2.1".equals(codeString))
4092          return SPDXLicense.OSL2_1;
4093        if ("OSL-3.0".equals(codeString))
4094          return SPDXLicense.OSL3_0;
4095        if ("PDDL-1.0".equals(codeString))
4096          return SPDXLicense.PDDL1_0;
4097        if ("PHP-3.0".equals(codeString))
4098          return SPDXLicense.PHP3_0;
4099        if ("PHP-3.01".equals(codeString))
4100          return SPDXLicense.PHP3_01;
4101        if ("Plexus".equals(codeString))
4102          return SPDXLicense.PLEXUS;
4103        if ("PostgreSQL".equals(codeString))
4104          return SPDXLicense.POSTGRESQL;
4105        if ("psfrag".equals(codeString))
4106          return SPDXLicense.PSFRAG;
4107        if ("psutils".equals(codeString))
4108          return SPDXLicense.PSUTILS;
4109        if ("Python-2.0".equals(codeString))
4110          return SPDXLicense.PYTHON2_0;
4111        if ("Qhull".equals(codeString))
4112          return SPDXLicense.QHULL;
4113        if ("QPL-1.0".equals(codeString))
4114          return SPDXLicense.QPL1_0;
4115        if ("Rdisc".equals(codeString))
4116          return SPDXLicense.RDISC;
4117        if ("RHeCos-1.1".equals(codeString))
4118          return SPDXLicense.RHECOS1_1;
4119        if ("RPL-1.1".equals(codeString))
4120          return SPDXLicense.RPL1_1;
4121        if ("RPL-1.5".equals(codeString))
4122          return SPDXLicense.RPL1_5;
4123        if ("RPSL-1.0".equals(codeString))
4124          return SPDXLicense.RPSL1_0;
4125        if ("RSA-MD".equals(codeString))
4126          return SPDXLicense.RSAMD;
4127        if ("RSCPL".equals(codeString))
4128          return SPDXLicense.RSCPL;
4129        if ("Ruby".equals(codeString))
4130          return SPDXLicense.RUBY;
4131        if ("SAX-PD".equals(codeString))
4132          return SPDXLicense.SAXPD;
4133        if ("Saxpath".equals(codeString))
4134          return SPDXLicense.SAXPATH;
4135        if ("SCEA".equals(codeString))
4136          return SPDXLicense.SCEA;
4137        if ("Sendmail".equals(codeString))
4138          return SPDXLicense.SENDMAIL;
4139        if ("SGI-B-1.0".equals(codeString))
4140          return SPDXLicense.SGIB1_0;
4141        if ("SGI-B-1.1".equals(codeString))
4142          return SPDXLicense.SGIB1_1;
4143        if ("SGI-B-2.0".equals(codeString))
4144          return SPDXLicense.SGIB2_0;
4145        if ("SimPL-2.0".equals(codeString))
4146          return SPDXLicense.SIMPL2_0;
4147        if ("SISSL-1.2".equals(codeString))
4148          return SPDXLicense.SISSL1_2;
4149        if ("SISSL".equals(codeString))
4150          return SPDXLicense.SISSL;
4151        if ("Sleepycat".equals(codeString))
4152          return SPDXLicense.SLEEPYCAT;
4153        if ("SMLNJ".equals(codeString))
4154          return SPDXLicense.SMLNJ;
4155        if ("SMPPL".equals(codeString))
4156          return SPDXLicense.SMPPL;
4157        if ("SNIA".equals(codeString))
4158          return SPDXLicense.SNIA;
4159        if ("Spencer-86".equals(codeString))
4160          return SPDXLicense.SPENCER86;
4161        if ("Spencer-94".equals(codeString))
4162          return SPDXLicense.SPENCER94;
4163        if ("Spencer-99".equals(codeString))
4164          return SPDXLicense.SPENCER99;
4165        if ("SPL-1.0".equals(codeString))
4166          return SPDXLicense.SPL1_0;
4167        if ("SugarCRM-1.1.3".equals(codeString))
4168          return SPDXLicense.SUGARCRM1_1_3;
4169        if ("SWL".equals(codeString))
4170          return SPDXLicense.SWL;
4171        if ("TCL".equals(codeString))
4172          return SPDXLicense.TCL;
4173        if ("TCP-wrappers".equals(codeString))
4174          return SPDXLicense.TCPWRAPPERS;
4175        if ("TMate".equals(codeString))
4176          return SPDXLicense.TMATE;
4177        if ("TORQUE-1.1".equals(codeString))
4178          return SPDXLicense.TORQUE1_1;
4179        if ("TOSL".equals(codeString))
4180          return SPDXLicense.TOSL;
4181        if ("Unicode-DFS-2015".equals(codeString))
4182          return SPDXLicense.UNICODEDFS2015;
4183        if ("Unicode-DFS-2016".equals(codeString))
4184          return SPDXLicense.UNICODEDFS2016;
4185        if ("Unicode-TOU".equals(codeString))
4186          return SPDXLicense.UNICODETOU;
4187        if ("Unlicense".equals(codeString))
4188          return SPDXLicense.UNLICENSE;
4189        if ("UPL-1.0".equals(codeString))
4190          return SPDXLicense.UPL1_0;
4191        if ("Vim".equals(codeString))
4192          return SPDXLicense.VIM;
4193        if ("VOSTROM".equals(codeString))
4194          return SPDXLicense.VOSTROM;
4195        if ("VSL-1.0".equals(codeString))
4196          return SPDXLicense.VSL1_0;
4197        if ("W3C-19980720".equals(codeString))
4198          return SPDXLicense.W3C19980720;
4199        if ("W3C-20150513".equals(codeString))
4200          return SPDXLicense.W3C20150513;
4201        if ("W3C".equals(codeString))
4202          return SPDXLicense.W3C;
4203        if ("Watcom-1.0".equals(codeString))
4204          return SPDXLicense.WATCOM1_0;
4205        if ("Wsuipa".equals(codeString))
4206          return SPDXLicense.WSUIPA;
4207        if ("WTFPL".equals(codeString))
4208          return SPDXLicense.WTFPL;
4209        if ("X11".equals(codeString))
4210          return SPDXLicense.X11;
4211        if ("Xerox".equals(codeString))
4212          return SPDXLicense.XEROX;
4213        if ("XFree86-1.1".equals(codeString))
4214          return SPDXLicense.XFREE861_1;
4215        if ("xinetd".equals(codeString))
4216          return SPDXLicense.XINETD;
4217        if ("Xnet".equals(codeString))
4218          return SPDXLicense.XNET;
4219        if ("xpp".equals(codeString))
4220          return SPDXLicense.XPP;
4221        if ("XSkat".equals(codeString))
4222          return SPDXLicense.XSKAT;
4223        if ("YPL-1.0".equals(codeString))
4224          return SPDXLicense.YPL1_0;
4225        if ("YPL-1.1".equals(codeString))
4226          return SPDXLicense.YPL1_1;
4227        if ("Zed".equals(codeString))
4228          return SPDXLicense.ZED;
4229        if ("Zend-2.0".equals(codeString))
4230          return SPDXLicense.ZEND2_0;
4231        if ("Zimbra-1.3".equals(codeString))
4232          return SPDXLicense.ZIMBRA1_3;
4233        if ("Zimbra-1.4".equals(codeString))
4234          return SPDXLicense.ZIMBRA1_4;
4235        if ("zlib-acknowledgement".equals(codeString))
4236          return SPDXLicense.ZLIBACKNOWLEDGEMENT;
4237        if ("Zlib".equals(codeString))
4238          return SPDXLicense.ZLIB;
4239        if ("ZPL-1.1".equals(codeString))
4240          return SPDXLicense.ZPL1_1;
4241        if ("ZPL-2.0".equals(codeString))
4242          return SPDXLicense.ZPL2_0;
4243        if ("ZPL-2.1".equals(codeString))
4244          return SPDXLicense.ZPL2_1;
4245        throw new IllegalArgumentException("Unknown SPDXLicense code '"+codeString+"'");
4246        }
4247        public Enumeration<SPDXLicense> fromType(Base code) throws FHIRException {
4248          if (code == null)
4249            return null;
4250          if (code.isEmpty())
4251            return new Enumeration<SPDXLicense>(this);
4252          String codeString = ((PrimitiveType) code).asStringValue();
4253          if (codeString == null || "".equals(codeString))
4254            return null;
4255        if ("not-open-source".equals(codeString))
4256          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOTOPENSOURCE);
4257        if ("0BSD".equals(codeString))
4258          return new Enumeration<SPDXLicense>(this, SPDXLicense._0BSD);
4259        if ("AAL".equals(codeString))
4260          return new Enumeration<SPDXLicense>(this, SPDXLicense.AAL);
4261        if ("Abstyles".equals(codeString))
4262          return new Enumeration<SPDXLicense>(this, SPDXLicense.ABSTYLES);
4263        if ("Adobe-2006".equals(codeString))
4264          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADOBE2006);
4265        if ("Adobe-Glyph".equals(codeString))
4266          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADOBEGLYPH);
4267        if ("ADSL".equals(codeString))
4268          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADSL);
4269        if ("AFL-1.1".equals(codeString))
4270          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL1_1);
4271        if ("AFL-1.2".equals(codeString))
4272          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL1_2);
4273        if ("AFL-2.0".equals(codeString))
4274          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL2_0);
4275        if ("AFL-2.1".equals(codeString))
4276          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL2_1);
4277        if ("AFL-3.0".equals(codeString))
4278          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL3_0);
4279        if ("Afmparse".equals(codeString))
4280          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFMPARSE);
4281        if ("AGPL-1.0-only".equals(codeString))
4282          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL1_0ONLY);
4283        if ("AGPL-1.0-or-later".equals(codeString))
4284          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL1_0ORLATER);
4285        if ("AGPL-3.0-only".equals(codeString))
4286          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL3_0ONLY);
4287        if ("AGPL-3.0-or-later".equals(codeString))
4288          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL3_0ORLATER);
4289        if ("Aladdin".equals(codeString))
4290          return new Enumeration<SPDXLicense>(this, SPDXLicense.ALADDIN);
4291        if ("AMDPLPA".equals(codeString))
4292          return new Enumeration<SPDXLicense>(this, SPDXLicense.AMDPLPA);
4293        if ("AML".equals(codeString))
4294          return new Enumeration<SPDXLicense>(this, SPDXLicense.AML);
4295        if ("AMPAS".equals(codeString))
4296          return new Enumeration<SPDXLicense>(this, SPDXLicense.AMPAS);
4297        if ("ANTLR-PD".equals(codeString))
4298          return new Enumeration<SPDXLicense>(this, SPDXLicense.ANTLRPD);
4299        if ("Apache-1.0".equals(codeString))
4300          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE1_0);
4301        if ("Apache-1.1".equals(codeString))
4302          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE1_1);
4303        if ("Apache-2.0".equals(codeString))
4304          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE2_0);
4305        if ("APAFML".equals(codeString))
4306          return new Enumeration<SPDXLicense>(this, SPDXLicense.APAFML);
4307        if ("APL-1.0".equals(codeString))
4308          return new Enumeration<SPDXLicense>(this, SPDXLicense.APL1_0);
4309        if ("APSL-1.0".equals(codeString))
4310          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL1_0);
4311        if ("APSL-1.1".equals(codeString))
4312          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL1_1);
4313        if ("APSL-1.2".equals(codeString))
4314          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL1_2);
4315        if ("APSL-2.0".equals(codeString))
4316          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL2_0);
4317        if ("Artistic-1.0-cl8".equals(codeString))
4318          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC1_0CL8);
4319        if ("Artistic-1.0-Perl".equals(codeString))
4320          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC1_0PERL);
4321        if ("Artistic-1.0".equals(codeString))
4322          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC1_0);
4323        if ("Artistic-2.0".equals(codeString))
4324          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC2_0);
4325        if ("Bahyph".equals(codeString))
4326          return new Enumeration<SPDXLicense>(this, SPDXLicense.BAHYPH);
4327        if ("Barr".equals(codeString))
4328          return new Enumeration<SPDXLicense>(this, SPDXLicense.BARR);
4329        if ("Beerware".equals(codeString))
4330          return new Enumeration<SPDXLicense>(this, SPDXLicense.BEERWARE);
4331        if ("BitTorrent-1.0".equals(codeString))
4332          return new Enumeration<SPDXLicense>(this, SPDXLicense.BITTORRENT1_0);
4333        if ("BitTorrent-1.1".equals(codeString))
4334          return new Enumeration<SPDXLicense>(this, SPDXLicense.BITTORRENT1_1);
4335        if ("Borceux".equals(codeString))
4336          return new Enumeration<SPDXLicense>(this, SPDXLicense.BORCEUX);
4337        if ("BSD-1-Clause".equals(codeString))
4338          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD1CLAUSE);
4339        if ("BSD-2-Clause-FreeBSD".equals(codeString))
4340          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSEFREEBSD);
4341        if ("BSD-2-Clause-NetBSD".equals(codeString))
4342          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSENETBSD);
4343        if ("BSD-2-Clause-Patent".equals(codeString))
4344          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSEPATENT);
4345        if ("BSD-2-Clause".equals(codeString))
4346          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSE);
4347        if ("BSD-3-Clause-Attribution".equals(codeString))
4348          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSEATTRIBUTION);
4349        if ("BSD-3-Clause-Clear".equals(codeString))
4350          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSECLEAR);
4351        if ("BSD-3-Clause-LBNL".equals(codeString))
4352          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSELBNL);
4353        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
4354          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSENONUCLEARLICENSE2014);
4355        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
4356          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSENONUCLEARLICENSE);
4357        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
4358          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSENONUCLEARWARRANTY);
4359        if ("BSD-3-Clause".equals(codeString))
4360          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSE);
4361        if ("BSD-4-Clause-UC".equals(codeString))
4362          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD4CLAUSEUC);
4363        if ("BSD-4-Clause".equals(codeString))
4364          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD4CLAUSE);
4365        if ("BSD-Protection".equals(codeString))
4366          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSDPROTECTION);
4367        if ("BSD-Source-Code".equals(codeString))
4368          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSDSOURCECODE);
4369        if ("BSL-1.0".equals(codeString))
4370          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSL1_0);
4371        if ("bzip2-1.0.5".equals(codeString))
4372          return new Enumeration<SPDXLicense>(this, SPDXLicense.BZIP21_0_5);
4373        if ("bzip2-1.0.6".equals(codeString))
4374          return new Enumeration<SPDXLicense>(this, SPDXLicense.BZIP21_0_6);
4375        if ("Caldera".equals(codeString))
4376          return new Enumeration<SPDXLicense>(this, SPDXLicense.CALDERA);
4377        if ("CATOSL-1.1".equals(codeString))
4378          return new Enumeration<SPDXLicense>(this, SPDXLicense.CATOSL1_1);
4379        if ("CC-BY-1.0".equals(codeString))
4380          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY1_0);
4381        if ("CC-BY-2.0".equals(codeString))
4382          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY2_0);
4383        if ("CC-BY-2.5".equals(codeString))
4384          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY2_5);
4385        if ("CC-BY-3.0".equals(codeString))
4386          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY3_0);
4387        if ("CC-BY-4.0".equals(codeString))
4388          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY4_0);
4389        if ("CC-BY-NC-1.0".equals(codeString))
4390          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC1_0);
4391        if ("CC-BY-NC-2.0".equals(codeString))
4392          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC2_0);
4393        if ("CC-BY-NC-2.5".equals(codeString))
4394          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC2_5);
4395        if ("CC-BY-NC-3.0".equals(codeString))
4396          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC3_0);
4397        if ("CC-BY-NC-4.0".equals(codeString))
4398          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC4_0);
4399        if ("CC-BY-NC-ND-1.0".equals(codeString))
4400          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND1_0);
4401        if ("CC-BY-NC-ND-2.0".equals(codeString))
4402          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND2_0);
4403        if ("CC-BY-NC-ND-2.5".equals(codeString))
4404          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND2_5);
4405        if ("CC-BY-NC-ND-3.0".equals(codeString))
4406          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND3_0);
4407        if ("CC-BY-NC-ND-4.0".equals(codeString))
4408          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND4_0);
4409        if ("CC-BY-NC-SA-1.0".equals(codeString))
4410          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA1_0);
4411        if ("CC-BY-NC-SA-2.0".equals(codeString))
4412          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA2_0);
4413        if ("CC-BY-NC-SA-2.5".equals(codeString))
4414          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA2_5);
4415        if ("CC-BY-NC-SA-3.0".equals(codeString))
4416          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA3_0);
4417        if ("CC-BY-NC-SA-4.0".equals(codeString))
4418          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA4_0);
4419        if ("CC-BY-ND-1.0".equals(codeString))
4420          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND1_0);
4421        if ("CC-BY-ND-2.0".equals(codeString))
4422          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND2_0);
4423        if ("CC-BY-ND-2.5".equals(codeString))
4424          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND2_5);
4425        if ("CC-BY-ND-3.0".equals(codeString))
4426          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND3_0);
4427        if ("CC-BY-ND-4.0".equals(codeString))
4428          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND4_0);
4429        if ("CC-BY-SA-1.0".equals(codeString))
4430          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA1_0);
4431        if ("CC-BY-SA-2.0".equals(codeString))
4432          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA2_0);
4433        if ("CC-BY-SA-2.5".equals(codeString))
4434          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA2_5);
4435        if ("CC-BY-SA-3.0".equals(codeString))
4436          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA3_0);
4437        if ("CC-BY-SA-4.0".equals(codeString))
4438          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA4_0);
4439        if ("CC0-1.0".equals(codeString))
4440          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC01_0);
4441        if ("CDDL-1.0".equals(codeString))
4442          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDDL1_0);
4443        if ("CDDL-1.1".equals(codeString))
4444          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDDL1_1);
4445        if ("CDLA-Permissive-1.0".equals(codeString))
4446          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLAPERMISSIVE1_0);
4447        if ("CDLA-Sharing-1.0".equals(codeString))
4448          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLASHARING1_0);
4449        if ("CECILL-1.0".equals(codeString))
4450          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL1_0);
4451        if ("CECILL-1.1".equals(codeString))
4452          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL1_1);
4453        if ("CECILL-2.0".equals(codeString))
4454          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL2_0);
4455        if ("CECILL-2.1".equals(codeString))
4456          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL2_1);
4457        if ("CECILL-B".equals(codeString))
4458          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILLB);
4459        if ("CECILL-C".equals(codeString))
4460          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILLC);
4461        if ("ClArtistic".equals(codeString))
4462          return new Enumeration<SPDXLicense>(this, SPDXLicense.CLARTISTIC);
4463        if ("CNRI-Jython".equals(codeString))
4464          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRIJYTHON);
4465        if ("CNRI-Python-GPL-Compatible".equals(codeString))
4466          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRIPYTHONGPLCOMPATIBLE);
4467        if ("CNRI-Python".equals(codeString))
4468          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRIPYTHON);
4469        if ("Condor-1.1".equals(codeString))
4470          return new Enumeration<SPDXLicense>(this, SPDXLicense.CONDOR1_1);
4471        if ("CPAL-1.0".equals(codeString))
4472          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPAL1_0);
4473        if ("CPL-1.0".equals(codeString))
4474          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPL1_0);
4475        if ("CPOL-1.02".equals(codeString))
4476          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPOL1_02);
4477        if ("Crossword".equals(codeString))
4478          return new Enumeration<SPDXLicense>(this, SPDXLicense.CROSSWORD);
4479        if ("CrystalStacker".equals(codeString))
4480          return new Enumeration<SPDXLicense>(this, SPDXLicense.CRYSTALSTACKER);
4481        if ("CUA-OPL-1.0".equals(codeString))
4482          return new Enumeration<SPDXLicense>(this, SPDXLicense.CUAOPL1_0);
4483        if ("Cube".equals(codeString))
4484          return new Enumeration<SPDXLicense>(this, SPDXLicense.CUBE);
4485        if ("curl".equals(codeString))
4486          return new Enumeration<SPDXLicense>(this, SPDXLicense.CURL);
4487        if ("D-FSL-1.0".equals(codeString))
4488          return new Enumeration<SPDXLicense>(this, SPDXLicense.DFSL1_0);
4489        if ("diffmark".equals(codeString))
4490          return new Enumeration<SPDXLicense>(this, SPDXLicense.DIFFMARK);
4491        if ("DOC".equals(codeString))
4492          return new Enumeration<SPDXLicense>(this, SPDXLicense.DOC);
4493        if ("Dotseqn".equals(codeString))
4494          return new Enumeration<SPDXLicense>(this, SPDXLicense.DOTSEQN);
4495        if ("DSDP".equals(codeString))
4496          return new Enumeration<SPDXLicense>(this, SPDXLicense.DSDP);
4497        if ("dvipdfm".equals(codeString))
4498          return new Enumeration<SPDXLicense>(this, SPDXLicense.DVIPDFM);
4499        if ("ECL-1.0".equals(codeString))
4500          return new Enumeration<SPDXLicense>(this, SPDXLicense.ECL1_0);
4501        if ("ECL-2.0".equals(codeString))
4502          return new Enumeration<SPDXLicense>(this, SPDXLicense.ECL2_0);
4503        if ("EFL-1.0".equals(codeString))
4504          return new Enumeration<SPDXLicense>(this, SPDXLicense.EFL1_0);
4505        if ("EFL-2.0".equals(codeString))
4506          return new Enumeration<SPDXLicense>(this, SPDXLicense.EFL2_0);
4507        if ("eGenix".equals(codeString))
4508          return new Enumeration<SPDXLicense>(this, SPDXLicense.EGENIX);
4509        if ("Entessa".equals(codeString))
4510          return new Enumeration<SPDXLicense>(this, SPDXLicense.ENTESSA);
4511        if ("EPL-1.0".equals(codeString))
4512          return new Enumeration<SPDXLicense>(this, SPDXLicense.EPL1_0);
4513        if ("EPL-2.0".equals(codeString))
4514          return new Enumeration<SPDXLicense>(this, SPDXLicense.EPL2_0);
4515        if ("ErlPL-1.1".equals(codeString))
4516          return new Enumeration<SPDXLicense>(this, SPDXLicense.ERLPL1_1);
4517        if ("EUDatagrid".equals(codeString))
4518          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUDATAGRID);
4519        if ("EUPL-1.0".equals(codeString))
4520          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL1_0);
4521        if ("EUPL-1.1".equals(codeString))
4522          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL1_1);
4523        if ("EUPL-1.2".equals(codeString))
4524          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL1_2);
4525        if ("Eurosym".equals(codeString))
4526          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUROSYM);
4527        if ("Fair".equals(codeString))
4528          return new Enumeration<SPDXLicense>(this, SPDXLicense.FAIR);
4529        if ("Frameworx-1.0".equals(codeString))
4530          return new Enumeration<SPDXLicense>(this, SPDXLicense.FRAMEWORX1_0);
4531        if ("FreeImage".equals(codeString))
4532          return new Enumeration<SPDXLicense>(this, SPDXLicense.FREEIMAGE);
4533        if ("FSFAP".equals(codeString))
4534          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFAP);
4535        if ("FSFUL".equals(codeString))
4536          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFUL);
4537        if ("FSFULLR".equals(codeString))
4538          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFULLR);
4539        if ("FTL".equals(codeString))
4540          return new Enumeration<SPDXLicense>(this, SPDXLicense.FTL);
4541        if ("GFDL-1.1-only".equals(codeString))
4542          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_1ONLY);
4543        if ("GFDL-1.1-or-later".equals(codeString))
4544          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_1ORLATER);
4545        if ("GFDL-1.2-only".equals(codeString))
4546          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_2ONLY);
4547        if ("GFDL-1.2-or-later".equals(codeString))
4548          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_2ORLATER);
4549        if ("GFDL-1.3-only".equals(codeString))
4550          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_3ONLY);
4551        if ("GFDL-1.3-or-later".equals(codeString))
4552          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_3ORLATER);
4553        if ("Giftware".equals(codeString))
4554          return new Enumeration<SPDXLicense>(this, SPDXLicense.GIFTWARE);
4555        if ("GL2PS".equals(codeString))
4556          return new Enumeration<SPDXLicense>(this, SPDXLicense.GL2PS);
4557        if ("Glide".equals(codeString))
4558          return new Enumeration<SPDXLicense>(this, SPDXLicense.GLIDE);
4559        if ("Glulxe".equals(codeString))
4560          return new Enumeration<SPDXLicense>(this, SPDXLicense.GLULXE);
4561        if ("gnuplot".equals(codeString))
4562          return new Enumeration<SPDXLicense>(this, SPDXLicense.GNUPLOT);
4563        if ("GPL-1.0-only".equals(codeString))
4564          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL1_0ONLY);
4565        if ("GPL-1.0-or-later".equals(codeString))
4566          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL1_0ORLATER);
4567        if ("GPL-2.0-only".equals(codeString))
4568          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL2_0ONLY);
4569        if ("GPL-2.0-or-later".equals(codeString))
4570          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL2_0ORLATER);
4571        if ("GPL-3.0-only".equals(codeString))
4572          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL3_0ONLY);
4573        if ("GPL-3.0-or-later".equals(codeString))
4574          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL3_0ORLATER);
4575        if ("gSOAP-1.3b".equals(codeString))
4576          return new Enumeration<SPDXLicense>(this, SPDXLicense.GSOAP1_3B);
4577        if ("HaskellReport".equals(codeString))
4578          return new Enumeration<SPDXLicense>(this, SPDXLicense.HASKELLREPORT);
4579        if ("HPND".equals(codeString))
4580          return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND);
4581        if ("IBM-pibs".equals(codeString))
4582          return new Enumeration<SPDXLicense>(this, SPDXLicense.IBMPIBS);
4583        if ("ICU".equals(codeString))
4584          return new Enumeration<SPDXLicense>(this, SPDXLicense.ICU);
4585        if ("IJG".equals(codeString))
4586          return new Enumeration<SPDXLicense>(this, SPDXLicense.IJG);
4587        if ("ImageMagick".equals(codeString))
4588          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMAGEMAGICK);
4589        if ("iMatix".equals(codeString))
4590          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMATIX);
4591        if ("Imlib2".equals(codeString))
4592          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMLIB2);
4593        if ("Info-ZIP".equals(codeString))
4594          return new Enumeration<SPDXLicense>(this, SPDXLicense.INFOZIP);
4595        if ("Intel-ACPI".equals(codeString))
4596          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTELACPI);
4597        if ("Intel".equals(codeString))
4598          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTEL);
4599        if ("Interbase-1.0".equals(codeString))
4600          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTERBASE1_0);
4601        if ("IPA".equals(codeString))
4602          return new Enumeration<SPDXLicense>(this, SPDXLicense.IPA);
4603        if ("IPL-1.0".equals(codeString))
4604          return new Enumeration<SPDXLicense>(this, SPDXLicense.IPL1_0);
4605        if ("ISC".equals(codeString))
4606          return new Enumeration<SPDXLicense>(this, SPDXLicense.ISC);
4607        if ("JasPer-2.0".equals(codeString))
4608          return new Enumeration<SPDXLicense>(this, SPDXLicense.JASPER2_0);
4609        if ("JSON".equals(codeString))
4610          return new Enumeration<SPDXLicense>(this, SPDXLicense.JSON);
4611        if ("LAL-1.2".equals(codeString))
4612          return new Enumeration<SPDXLicense>(this, SPDXLicense.LAL1_2);
4613        if ("LAL-1.3".equals(codeString))
4614          return new Enumeration<SPDXLicense>(this, SPDXLicense.LAL1_3);
4615        if ("Latex2e".equals(codeString))
4616          return new Enumeration<SPDXLicense>(this, SPDXLicense.LATEX2E);
4617        if ("Leptonica".equals(codeString))
4618          return new Enumeration<SPDXLicense>(this, SPDXLicense.LEPTONICA);
4619        if ("LGPL-2.0-only".equals(codeString))
4620          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_0ONLY);
4621        if ("LGPL-2.0-or-later".equals(codeString))
4622          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_0ORLATER);
4623        if ("LGPL-2.1-only".equals(codeString))
4624          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_1ONLY);
4625        if ("LGPL-2.1-or-later".equals(codeString))
4626          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_1ORLATER);
4627        if ("LGPL-3.0-only".equals(codeString))
4628          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL3_0ONLY);
4629        if ("LGPL-3.0-or-later".equals(codeString))
4630          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL3_0ORLATER);
4631        if ("LGPLLR".equals(codeString))
4632          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPLLR);
4633        if ("Libpng".equals(codeString))
4634          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBPNG);
4635        if ("libtiff".equals(codeString))
4636          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBTIFF);
4637        if ("LiLiQ-P-1.1".equals(codeString))
4638          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQP1_1);
4639        if ("LiLiQ-R-1.1".equals(codeString))
4640          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQR1_1);
4641        if ("LiLiQ-Rplus-1.1".equals(codeString))
4642          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQRPLUS1_1);
4643        if ("Linux-OpenIB".equals(codeString))
4644          return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUXOPENIB);
4645        if ("LPL-1.0".equals(codeString))
4646          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPL1_0);
4647        if ("LPL-1.02".equals(codeString))
4648          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPL1_02);
4649        if ("LPPL-1.0".equals(codeString))
4650          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_0);
4651        if ("LPPL-1.1".equals(codeString))
4652          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_1);
4653        if ("LPPL-1.2".equals(codeString))
4654          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_2);
4655        if ("LPPL-1.3a".equals(codeString))
4656          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_3A);
4657        if ("LPPL-1.3c".equals(codeString))
4658          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_3C);
4659        if ("MakeIndex".equals(codeString))
4660          return new Enumeration<SPDXLicense>(this, SPDXLicense.MAKEINDEX);
4661        if ("MirOS".equals(codeString))
4662          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIROS);
4663        if ("MIT-0".equals(codeString))
4664          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT0);
4665        if ("MIT-advertising".equals(codeString))
4666          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITADVERTISING);
4667        if ("MIT-CMU".equals(codeString))
4668          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITCMU);
4669        if ("MIT-enna".equals(codeString))
4670          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITENNA);
4671        if ("MIT-feh".equals(codeString))
4672          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITFEH);
4673        if ("MIT".equals(codeString))
4674          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT);
4675        if ("MITNFA".equals(codeString))
4676          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITNFA);
4677        if ("Motosoto".equals(codeString))
4678          return new Enumeration<SPDXLicense>(this, SPDXLicense.MOTOSOTO);
4679        if ("mpich2".equals(codeString))
4680          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPICH2);
4681        if ("MPL-1.0".equals(codeString))
4682          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL1_0);
4683        if ("MPL-1.1".equals(codeString))
4684          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL1_1);
4685        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
4686          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL2_0NOCOPYLEFTEXCEPTION);
4687        if ("MPL-2.0".equals(codeString))
4688          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL2_0);
4689        if ("MS-PL".equals(codeString))
4690          return new Enumeration<SPDXLicense>(this, SPDXLicense.MSPL);
4691        if ("MS-RL".equals(codeString))
4692          return new Enumeration<SPDXLicense>(this, SPDXLicense.MSRL);
4693        if ("MTLL".equals(codeString))
4694          return new Enumeration<SPDXLicense>(this, SPDXLicense.MTLL);
4695        if ("Multics".equals(codeString))
4696          return new Enumeration<SPDXLicense>(this, SPDXLicense.MULTICS);
4697        if ("Mup".equals(codeString))
4698          return new Enumeration<SPDXLicense>(this, SPDXLicense.MUP);
4699        if ("NASA-1.3".equals(codeString))
4700          return new Enumeration<SPDXLicense>(this, SPDXLicense.NASA1_3);
4701        if ("Naumen".equals(codeString))
4702          return new Enumeration<SPDXLicense>(this, SPDXLicense.NAUMEN);
4703        if ("NBPL-1.0".equals(codeString))
4704          return new Enumeration<SPDXLicense>(this, SPDXLicense.NBPL1_0);
4705        if ("NCSA".equals(codeString))
4706          return new Enumeration<SPDXLicense>(this, SPDXLicense.NCSA);
4707        if ("Net-SNMP".equals(codeString))
4708          return new Enumeration<SPDXLicense>(this, SPDXLicense.NETSNMP);
4709        if ("NetCDF".equals(codeString))
4710          return new Enumeration<SPDXLicense>(this, SPDXLicense.NETCDF);
4711        if ("Newsletr".equals(codeString))
4712          return new Enumeration<SPDXLicense>(this, SPDXLicense.NEWSLETR);
4713        if ("NGPL".equals(codeString))
4714          return new Enumeration<SPDXLicense>(this, SPDXLicense.NGPL);
4715        if ("NLOD-1.0".equals(codeString))
4716          return new Enumeration<SPDXLicense>(this, SPDXLicense.NLOD1_0);
4717        if ("NLPL".equals(codeString))
4718          return new Enumeration<SPDXLicense>(this, SPDXLicense.NLPL);
4719        if ("Nokia".equals(codeString))
4720          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOKIA);
4721        if ("NOSL".equals(codeString))
4722          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOSL);
4723        if ("Noweb".equals(codeString))
4724          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOWEB);
4725        if ("NPL-1.0".equals(codeString))
4726          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPL1_0);
4727        if ("NPL-1.1".equals(codeString))
4728          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPL1_1);
4729        if ("NPOSL-3.0".equals(codeString))
4730          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPOSL3_0);
4731        if ("NRL".equals(codeString))
4732          return new Enumeration<SPDXLicense>(this, SPDXLicense.NRL);
4733        if ("NTP".equals(codeString))
4734          return new Enumeration<SPDXLicense>(this, SPDXLicense.NTP);
4735        if ("OCCT-PL".equals(codeString))
4736          return new Enumeration<SPDXLicense>(this, SPDXLicense.OCCTPL);
4737        if ("OCLC-2.0".equals(codeString))
4738          return new Enumeration<SPDXLicense>(this, SPDXLicense.OCLC2_0);
4739        if ("ODbL-1.0".equals(codeString))
4740          return new Enumeration<SPDXLicense>(this, SPDXLicense.ODBL1_0);
4741        if ("OFL-1.0".equals(codeString))
4742          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL1_0);
4743        if ("OFL-1.1".equals(codeString))
4744          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL1_1);
4745        if ("OGTSL".equals(codeString))
4746          return new Enumeration<SPDXLicense>(this, SPDXLicense.OGTSL);
4747        if ("OLDAP-1.1".equals(codeString))
4748          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_1);
4749        if ("OLDAP-1.2".equals(codeString))
4750          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_2);
4751        if ("OLDAP-1.3".equals(codeString))
4752          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_3);
4753        if ("OLDAP-1.4".equals(codeString))
4754          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_4);
4755        if ("OLDAP-2.0.1".equals(codeString))
4756          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_0_1);
4757        if ("OLDAP-2.0".equals(codeString))
4758          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_0);
4759        if ("OLDAP-2.1".equals(codeString))
4760          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_1);
4761        if ("OLDAP-2.2.1".equals(codeString))
4762          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_2_1);
4763        if ("OLDAP-2.2.2".equals(codeString))
4764          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_2_2);
4765        if ("OLDAP-2.2".equals(codeString))
4766          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_2);
4767        if ("OLDAP-2.3".equals(codeString))
4768          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_3);
4769        if ("OLDAP-2.4".equals(codeString))
4770          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_4);
4771        if ("OLDAP-2.5".equals(codeString))
4772          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_5);
4773        if ("OLDAP-2.6".equals(codeString))
4774          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_6);
4775        if ("OLDAP-2.7".equals(codeString))
4776          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_7);
4777        if ("OLDAP-2.8".equals(codeString))
4778          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_8);
4779        if ("OML".equals(codeString))
4780          return new Enumeration<SPDXLicense>(this, SPDXLicense.OML);
4781        if ("OpenSSL".equals(codeString))
4782          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPENSSL);
4783        if ("OPL-1.0".equals(codeString))
4784          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPL1_0);
4785        if ("OSET-PL-2.1".equals(codeString))
4786          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSETPL2_1);
4787        if ("OSL-1.0".equals(codeString))
4788          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL1_0);
4789        if ("OSL-1.1".equals(codeString))
4790          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL1_1);
4791        if ("OSL-2.0".equals(codeString))
4792          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL2_0);
4793        if ("OSL-2.1".equals(codeString))
4794          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL2_1);
4795        if ("OSL-3.0".equals(codeString))
4796          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL3_0);
4797        if ("PDDL-1.0".equals(codeString))
4798          return new Enumeration<SPDXLicense>(this, SPDXLicense.PDDL1_0);
4799        if ("PHP-3.0".equals(codeString))
4800          return new Enumeration<SPDXLicense>(this, SPDXLicense.PHP3_0);
4801        if ("PHP-3.01".equals(codeString))
4802          return new Enumeration<SPDXLicense>(this, SPDXLicense.PHP3_01);
4803        if ("Plexus".equals(codeString))
4804          return new Enumeration<SPDXLicense>(this, SPDXLicense.PLEXUS);
4805        if ("PostgreSQL".equals(codeString))
4806          return new Enumeration<SPDXLicense>(this, SPDXLicense.POSTGRESQL);
4807        if ("psfrag".equals(codeString))
4808          return new Enumeration<SPDXLicense>(this, SPDXLicense.PSFRAG);
4809        if ("psutils".equals(codeString))
4810          return new Enumeration<SPDXLicense>(this, SPDXLicense.PSUTILS);
4811        if ("Python-2.0".equals(codeString))
4812          return new Enumeration<SPDXLicense>(this, SPDXLicense.PYTHON2_0);
4813        if ("Qhull".equals(codeString))
4814          return new Enumeration<SPDXLicense>(this, SPDXLicense.QHULL);
4815        if ("QPL-1.0".equals(codeString))
4816          return new Enumeration<SPDXLicense>(this, SPDXLicense.QPL1_0);
4817        if ("Rdisc".equals(codeString))
4818          return new Enumeration<SPDXLicense>(this, SPDXLicense.RDISC);
4819        if ("RHeCos-1.1".equals(codeString))
4820          return new Enumeration<SPDXLicense>(this, SPDXLicense.RHECOS1_1);
4821        if ("RPL-1.1".equals(codeString))
4822          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPL1_1);
4823        if ("RPL-1.5".equals(codeString))
4824          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPL1_5);
4825        if ("RPSL-1.0".equals(codeString))
4826          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPSL1_0);
4827        if ("RSA-MD".equals(codeString))
4828          return new Enumeration<SPDXLicense>(this, SPDXLicense.RSAMD);
4829        if ("RSCPL".equals(codeString))
4830          return new Enumeration<SPDXLicense>(this, SPDXLicense.RSCPL);
4831        if ("Ruby".equals(codeString))
4832          return new Enumeration<SPDXLicense>(this, SPDXLicense.RUBY);
4833        if ("SAX-PD".equals(codeString))
4834          return new Enumeration<SPDXLicense>(this, SPDXLicense.SAXPD);
4835        if ("Saxpath".equals(codeString))
4836          return new Enumeration<SPDXLicense>(this, SPDXLicense.SAXPATH);
4837        if ("SCEA".equals(codeString))
4838          return new Enumeration<SPDXLicense>(this, SPDXLicense.SCEA);
4839        if ("Sendmail".equals(codeString))
4840          return new Enumeration<SPDXLicense>(this, SPDXLicense.SENDMAIL);
4841        if ("SGI-B-1.0".equals(codeString))
4842          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGIB1_0);
4843        if ("SGI-B-1.1".equals(codeString))
4844          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGIB1_1);
4845        if ("SGI-B-2.0".equals(codeString))
4846          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGIB2_0);
4847        if ("SimPL-2.0".equals(codeString))
4848          return new Enumeration<SPDXLicense>(this, SPDXLicense.SIMPL2_0);
4849        if ("SISSL-1.2".equals(codeString))
4850          return new Enumeration<SPDXLicense>(this, SPDXLicense.SISSL1_2);
4851        if ("SISSL".equals(codeString))
4852          return new Enumeration<SPDXLicense>(this, SPDXLicense.SISSL);
4853        if ("Sleepycat".equals(codeString))
4854          return new Enumeration<SPDXLicense>(this, SPDXLicense.SLEEPYCAT);
4855        if ("SMLNJ".equals(codeString))
4856          return new Enumeration<SPDXLicense>(this, SPDXLicense.SMLNJ);
4857        if ("SMPPL".equals(codeString))
4858          return new Enumeration<SPDXLicense>(this, SPDXLicense.SMPPL);
4859        if ("SNIA".equals(codeString))
4860          return new Enumeration<SPDXLicense>(this, SPDXLicense.SNIA);
4861        if ("Spencer-86".equals(codeString))
4862          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER86);
4863        if ("Spencer-94".equals(codeString))
4864          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER94);
4865        if ("Spencer-99".equals(codeString))
4866          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER99);
4867        if ("SPL-1.0".equals(codeString))
4868          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPL1_0);
4869        if ("SugarCRM-1.1.3".equals(codeString))
4870          return new Enumeration<SPDXLicense>(this, SPDXLicense.SUGARCRM1_1_3);
4871        if ("SWL".equals(codeString))
4872          return new Enumeration<SPDXLicense>(this, SPDXLicense.SWL);
4873        if ("TCL".equals(codeString))
4874          return new Enumeration<SPDXLicense>(this, SPDXLicense.TCL);
4875        if ("TCP-wrappers".equals(codeString))
4876          return new Enumeration<SPDXLicense>(this, SPDXLicense.TCPWRAPPERS);
4877        if ("TMate".equals(codeString))
4878          return new Enumeration<SPDXLicense>(this, SPDXLicense.TMATE);
4879        if ("TORQUE-1.1".equals(codeString))
4880          return new Enumeration<SPDXLicense>(this, SPDXLicense.TORQUE1_1);
4881        if ("TOSL".equals(codeString))
4882          return new Enumeration<SPDXLicense>(this, SPDXLicense.TOSL);
4883        if ("Unicode-DFS-2015".equals(codeString))
4884          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODEDFS2015);
4885        if ("Unicode-DFS-2016".equals(codeString))
4886          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODEDFS2016);
4887        if ("Unicode-TOU".equals(codeString))
4888          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODETOU);
4889        if ("Unlicense".equals(codeString))
4890          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNLICENSE);
4891        if ("UPL-1.0".equals(codeString))
4892          return new Enumeration<SPDXLicense>(this, SPDXLicense.UPL1_0);
4893        if ("Vim".equals(codeString))
4894          return new Enumeration<SPDXLicense>(this, SPDXLicense.VIM);
4895        if ("VOSTROM".equals(codeString))
4896          return new Enumeration<SPDXLicense>(this, SPDXLicense.VOSTROM);
4897        if ("VSL-1.0".equals(codeString))
4898          return new Enumeration<SPDXLicense>(this, SPDXLicense.VSL1_0);
4899        if ("W3C-19980720".equals(codeString))
4900          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C19980720);
4901        if ("W3C-20150513".equals(codeString))
4902          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C20150513);
4903        if ("W3C".equals(codeString))
4904          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C);
4905        if ("Watcom-1.0".equals(codeString))
4906          return new Enumeration<SPDXLicense>(this, SPDXLicense.WATCOM1_0);
4907        if ("Wsuipa".equals(codeString))
4908          return new Enumeration<SPDXLicense>(this, SPDXLicense.WSUIPA);
4909        if ("WTFPL".equals(codeString))
4910          return new Enumeration<SPDXLicense>(this, SPDXLicense.WTFPL);
4911        if ("X11".equals(codeString))
4912          return new Enumeration<SPDXLicense>(this, SPDXLicense.X11);
4913        if ("Xerox".equals(codeString))
4914          return new Enumeration<SPDXLicense>(this, SPDXLicense.XEROX);
4915        if ("XFree86-1.1".equals(codeString))
4916          return new Enumeration<SPDXLicense>(this, SPDXLicense.XFREE861_1);
4917        if ("xinetd".equals(codeString))
4918          return new Enumeration<SPDXLicense>(this, SPDXLicense.XINETD);
4919        if ("Xnet".equals(codeString))
4920          return new Enumeration<SPDXLicense>(this, SPDXLicense.XNET);
4921        if ("xpp".equals(codeString))
4922          return new Enumeration<SPDXLicense>(this, SPDXLicense.XPP);
4923        if ("XSkat".equals(codeString))
4924          return new Enumeration<SPDXLicense>(this, SPDXLicense.XSKAT);
4925        if ("YPL-1.0".equals(codeString))
4926          return new Enumeration<SPDXLicense>(this, SPDXLicense.YPL1_0);
4927        if ("YPL-1.1".equals(codeString))
4928          return new Enumeration<SPDXLicense>(this, SPDXLicense.YPL1_1);
4929        if ("Zed".equals(codeString))
4930          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZED);
4931        if ("Zend-2.0".equals(codeString))
4932          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZEND2_0);
4933        if ("Zimbra-1.3".equals(codeString))
4934          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZIMBRA1_3);
4935        if ("Zimbra-1.4".equals(codeString))
4936          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZIMBRA1_4);
4937        if ("zlib-acknowledgement".equals(codeString))
4938          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZLIBACKNOWLEDGEMENT);
4939        if ("Zlib".equals(codeString))
4940          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZLIB);
4941        if ("ZPL-1.1".equals(codeString))
4942          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL1_1);
4943        if ("ZPL-2.0".equals(codeString))
4944          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL2_0);
4945        if ("ZPL-2.1".equals(codeString))
4946          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL2_1);
4947        throw new FHIRException("Unknown SPDXLicense code '"+codeString+"'");
4948        }
4949    public String toCode(SPDXLicense code) {
4950      if (code == SPDXLicense.NOTOPENSOURCE)
4951        return "not-open-source";
4952      if (code == SPDXLicense._0BSD)
4953        return "0BSD";
4954      if (code == SPDXLicense.AAL)
4955        return "AAL";
4956      if (code == SPDXLicense.ABSTYLES)
4957        return "Abstyles";
4958      if (code == SPDXLicense.ADOBE2006)
4959        return "Adobe-2006";
4960      if (code == SPDXLicense.ADOBEGLYPH)
4961        return "Adobe-Glyph";
4962      if (code == SPDXLicense.ADSL)
4963        return "ADSL";
4964      if (code == SPDXLicense.AFL1_1)
4965        return "AFL-1.1";
4966      if (code == SPDXLicense.AFL1_2)
4967        return "AFL-1.2";
4968      if (code == SPDXLicense.AFL2_0)
4969        return "AFL-2.0";
4970      if (code == SPDXLicense.AFL2_1)
4971        return "AFL-2.1";
4972      if (code == SPDXLicense.AFL3_0)
4973        return "AFL-3.0";
4974      if (code == SPDXLicense.AFMPARSE)
4975        return "Afmparse";
4976      if (code == SPDXLicense.AGPL1_0ONLY)
4977        return "AGPL-1.0-only";
4978      if (code == SPDXLicense.AGPL1_0ORLATER)
4979        return "AGPL-1.0-or-later";
4980      if (code == SPDXLicense.AGPL3_0ONLY)
4981        return "AGPL-3.0-only";
4982      if (code == SPDXLicense.AGPL3_0ORLATER)
4983        return "AGPL-3.0-or-later";
4984      if (code == SPDXLicense.ALADDIN)
4985        return "Aladdin";
4986      if (code == SPDXLicense.AMDPLPA)
4987        return "AMDPLPA";
4988      if (code == SPDXLicense.AML)
4989        return "AML";
4990      if (code == SPDXLicense.AMPAS)
4991        return "AMPAS";
4992      if (code == SPDXLicense.ANTLRPD)
4993        return "ANTLR-PD";
4994      if (code == SPDXLicense.APACHE1_0)
4995        return "Apache-1.0";
4996      if (code == SPDXLicense.APACHE1_1)
4997        return "Apache-1.1";
4998      if (code == SPDXLicense.APACHE2_0)
4999        return "Apache-2.0";
5000      if (code == SPDXLicense.APAFML)
5001        return "APAFML";
5002      if (code == SPDXLicense.APL1_0)
5003        return "APL-1.0";
5004      if (code == SPDXLicense.APSL1_0)
5005        return "APSL-1.0";
5006      if (code == SPDXLicense.APSL1_1)
5007        return "APSL-1.1";
5008      if (code == SPDXLicense.APSL1_2)
5009        return "APSL-1.2";
5010      if (code == SPDXLicense.APSL2_0)
5011        return "APSL-2.0";
5012      if (code == SPDXLicense.ARTISTIC1_0CL8)
5013        return "Artistic-1.0-cl8";
5014      if (code == SPDXLicense.ARTISTIC1_0PERL)
5015        return "Artistic-1.0-Perl";
5016      if (code == SPDXLicense.ARTISTIC1_0)
5017        return "Artistic-1.0";
5018      if (code == SPDXLicense.ARTISTIC2_0)
5019        return "Artistic-2.0";
5020      if (code == SPDXLicense.BAHYPH)
5021        return "Bahyph";
5022      if (code == SPDXLicense.BARR)
5023        return "Barr";
5024      if (code == SPDXLicense.BEERWARE)
5025        return "Beerware";
5026      if (code == SPDXLicense.BITTORRENT1_0)
5027        return "BitTorrent-1.0";
5028      if (code == SPDXLicense.BITTORRENT1_1)
5029        return "BitTorrent-1.1";
5030      if (code == SPDXLicense.BORCEUX)
5031        return "Borceux";
5032      if (code == SPDXLicense.BSD1CLAUSE)
5033        return "BSD-1-Clause";
5034      if (code == SPDXLicense.BSD2CLAUSEFREEBSD)
5035        return "BSD-2-Clause-FreeBSD";
5036      if (code == SPDXLicense.BSD2CLAUSENETBSD)
5037        return "BSD-2-Clause-NetBSD";
5038      if (code == SPDXLicense.BSD2CLAUSEPATENT)
5039        return "BSD-2-Clause-Patent";
5040      if (code == SPDXLicense.BSD2CLAUSE)
5041        return "BSD-2-Clause";
5042      if (code == SPDXLicense.BSD3CLAUSEATTRIBUTION)
5043        return "BSD-3-Clause-Attribution";
5044      if (code == SPDXLicense.BSD3CLAUSECLEAR)
5045        return "BSD-3-Clause-Clear";
5046      if (code == SPDXLicense.BSD3CLAUSELBNL)
5047        return "BSD-3-Clause-LBNL";
5048      if (code == SPDXLicense.BSD3CLAUSENONUCLEARLICENSE2014)
5049        return "BSD-3-Clause-No-Nuclear-License-2014";
5050      if (code == SPDXLicense.BSD3CLAUSENONUCLEARLICENSE)
5051        return "BSD-3-Clause-No-Nuclear-License";
5052      if (code == SPDXLicense.BSD3CLAUSENONUCLEARWARRANTY)
5053        return "BSD-3-Clause-No-Nuclear-Warranty";
5054      if (code == SPDXLicense.BSD3CLAUSE)
5055        return "BSD-3-Clause";
5056      if (code == SPDXLicense.BSD4CLAUSEUC)
5057        return "BSD-4-Clause-UC";
5058      if (code == SPDXLicense.BSD4CLAUSE)
5059        return "BSD-4-Clause";
5060      if (code == SPDXLicense.BSDPROTECTION)
5061        return "BSD-Protection";
5062      if (code == SPDXLicense.BSDSOURCECODE)
5063        return "BSD-Source-Code";
5064      if (code == SPDXLicense.BSL1_0)
5065        return "BSL-1.0";
5066      if (code == SPDXLicense.BZIP21_0_5)
5067        return "bzip2-1.0.5";
5068      if (code == SPDXLicense.BZIP21_0_6)
5069        return "bzip2-1.0.6";
5070      if (code == SPDXLicense.CALDERA)
5071        return "Caldera";
5072      if (code == SPDXLicense.CATOSL1_1)
5073        return "CATOSL-1.1";
5074      if (code == SPDXLicense.CCBY1_0)
5075        return "CC-BY-1.0";
5076      if (code == SPDXLicense.CCBY2_0)
5077        return "CC-BY-2.0";
5078      if (code == SPDXLicense.CCBY2_5)
5079        return "CC-BY-2.5";
5080      if (code == SPDXLicense.CCBY3_0)
5081        return "CC-BY-3.0";
5082      if (code == SPDXLicense.CCBY4_0)
5083        return "CC-BY-4.0";
5084      if (code == SPDXLicense.CCBYNC1_0)
5085        return "CC-BY-NC-1.0";
5086      if (code == SPDXLicense.CCBYNC2_0)
5087        return "CC-BY-NC-2.0";
5088      if (code == SPDXLicense.CCBYNC2_5)
5089        return "CC-BY-NC-2.5";
5090      if (code == SPDXLicense.CCBYNC3_0)
5091        return "CC-BY-NC-3.0";
5092      if (code == SPDXLicense.CCBYNC4_0)
5093        return "CC-BY-NC-4.0";
5094      if (code == SPDXLicense.CCBYNCND1_0)
5095        return "CC-BY-NC-ND-1.0";
5096      if (code == SPDXLicense.CCBYNCND2_0)
5097        return "CC-BY-NC-ND-2.0";
5098      if (code == SPDXLicense.CCBYNCND2_5)
5099        return "CC-BY-NC-ND-2.5";
5100      if (code == SPDXLicense.CCBYNCND3_0)
5101        return "CC-BY-NC-ND-3.0";
5102      if (code == SPDXLicense.CCBYNCND4_0)
5103        return "CC-BY-NC-ND-4.0";
5104      if (code == SPDXLicense.CCBYNCSA1_0)
5105        return "CC-BY-NC-SA-1.0";
5106      if (code == SPDXLicense.CCBYNCSA2_0)
5107        return "CC-BY-NC-SA-2.0";
5108      if (code == SPDXLicense.CCBYNCSA2_5)
5109        return "CC-BY-NC-SA-2.5";
5110      if (code == SPDXLicense.CCBYNCSA3_0)
5111        return "CC-BY-NC-SA-3.0";
5112      if (code == SPDXLicense.CCBYNCSA4_0)
5113        return "CC-BY-NC-SA-4.0";
5114      if (code == SPDXLicense.CCBYND1_0)
5115        return "CC-BY-ND-1.0";
5116      if (code == SPDXLicense.CCBYND2_0)
5117        return "CC-BY-ND-2.0";
5118      if (code == SPDXLicense.CCBYND2_5)
5119        return "CC-BY-ND-2.5";
5120      if (code == SPDXLicense.CCBYND3_0)
5121        return "CC-BY-ND-3.0";
5122      if (code == SPDXLicense.CCBYND4_0)
5123        return "CC-BY-ND-4.0";
5124      if (code == SPDXLicense.CCBYSA1_0)
5125        return "CC-BY-SA-1.0";
5126      if (code == SPDXLicense.CCBYSA2_0)
5127        return "CC-BY-SA-2.0";
5128      if (code == SPDXLicense.CCBYSA2_5)
5129        return "CC-BY-SA-2.5";
5130      if (code == SPDXLicense.CCBYSA3_0)
5131        return "CC-BY-SA-3.0";
5132      if (code == SPDXLicense.CCBYSA4_0)
5133        return "CC-BY-SA-4.0";
5134      if (code == SPDXLicense.CC01_0)
5135        return "CC0-1.0";
5136      if (code == SPDXLicense.CDDL1_0)
5137        return "CDDL-1.0";
5138      if (code == SPDXLicense.CDDL1_1)
5139        return "CDDL-1.1";
5140      if (code == SPDXLicense.CDLAPERMISSIVE1_0)
5141        return "CDLA-Permissive-1.0";
5142      if (code == SPDXLicense.CDLASHARING1_0)
5143        return "CDLA-Sharing-1.0";
5144      if (code == SPDXLicense.CECILL1_0)
5145        return "CECILL-1.0";
5146      if (code == SPDXLicense.CECILL1_1)
5147        return "CECILL-1.1";
5148      if (code == SPDXLicense.CECILL2_0)
5149        return "CECILL-2.0";
5150      if (code == SPDXLicense.CECILL2_1)
5151        return "CECILL-2.1";
5152      if (code == SPDXLicense.CECILLB)
5153        return "CECILL-B";
5154      if (code == SPDXLicense.CECILLC)
5155        return "CECILL-C";
5156      if (code == SPDXLicense.CLARTISTIC)
5157        return "ClArtistic";
5158      if (code == SPDXLicense.CNRIJYTHON)
5159        return "CNRI-Jython";
5160      if (code == SPDXLicense.CNRIPYTHONGPLCOMPATIBLE)
5161        return "CNRI-Python-GPL-Compatible";
5162      if (code == SPDXLicense.CNRIPYTHON)
5163        return "CNRI-Python";
5164      if (code == SPDXLicense.CONDOR1_1)
5165        return "Condor-1.1";
5166      if (code == SPDXLicense.CPAL1_0)
5167        return "CPAL-1.0";
5168      if (code == SPDXLicense.CPL1_0)
5169        return "CPL-1.0";
5170      if (code == SPDXLicense.CPOL1_02)
5171        return "CPOL-1.02";
5172      if (code == SPDXLicense.CROSSWORD)
5173        return "Crossword";
5174      if (code == SPDXLicense.CRYSTALSTACKER)
5175        return "CrystalStacker";
5176      if (code == SPDXLicense.CUAOPL1_0)
5177        return "CUA-OPL-1.0";
5178      if (code == SPDXLicense.CUBE)
5179        return "Cube";
5180      if (code == SPDXLicense.CURL)
5181        return "curl";
5182      if (code == SPDXLicense.DFSL1_0)
5183        return "D-FSL-1.0";
5184      if (code == SPDXLicense.DIFFMARK)
5185        return "diffmark";
5186      if (code == SPDXLicense.DOC)
5187        return "DOC";
5188      if (code == SPDXLicense.DOTSEQN)
5189        return "Dotseqn";
5190      if (code == SPDXLicense.DSDP)
5191        return "DSDP";
5192      if (code == SPDXLicense.DVIPDFM)
5193        return "dvipdfm";
5194      if (code == SPDXLicense.ECL1_0)
5195        return "ECL-1.0";
5196      if (code == SPDXLicense.ECL2_0)
5197        return "ECL-2.0";
5198      if (code == SPDXLicense.EFL1_0)
5199        return "EFL-1.0";
5200      if (code == SPDXLicense.EFL2_0)
5201        return "EFL-2.0";
5202      if (code == SPDXLicense.EGENIX)
5203        return "eGenix";
5204      if (code == SPDXLicense.ENTESSA)
5205        return "Entessa";
5206      if (code == SPDXLicense.EPL1_0)
5207        return "EPL-1.0";
5208      if (code == SPDXLicense.EPL2_0)
5209        return "EPL-2.0";
5210      if (code == SPDXLicense.ERLPL1_1)
5211        return "ErlPL-1.1";
5212      if (code == SPDXLicense.EUDATAGRID)
5213        return "EUDatagrid";
5214      if (code == SPDXLicense.EUPL1_0)
5215        return "EUPL-1.0";
5216      if (code == SPDXLicense.EUPL1_1)
5217        return "EUPL-1.1";
5218      if (code == SPDXLicense.EUPL1_2)
5219        return "EUPL-1.2";
5220      if (code == SPDXLicense.EUROSYM)
5221        return "Eurosym";
5222      if (code == SPDXLicense.FAIR)
5223        return "Fair";
5224      if (code == SPDXLicense.FRAMEWORX1_0)
5225        return "Frameworx-1.0";
5226      if (code == SPDXLicense.FREEIMAGE)
5227        return "FreeImage";
5228      if (code == SPDXLicense.FSFAP)
5229        return "FSFAP";
5230      if (code == SPDXLicense.FSFUL)
5231        return "FSFUL";
5232      if (code == SPDXLicense.FSFULLR)
5233        return "FSFULLR";
5234      if (code == SPDXLicense.FTL)
5235        return "FTL";
5236      if (code == SPDXLicense.GFDL1_1ONLY)
5237        return "GFDL-1.1-only";
5238      if (code == SPDXLicense.GFDL1_1ORLATER)
5239        return "GFDL-1.1-or-later";
5240      if (code == SPDXLicense.GFDL1_2ONLY)
5241        return "GFDL-1.2-only";
5242      if (code == SPDXLicense.GFDL1_2ORLATER)
5243        return "GFDL-1.2-or-later";
5244      if (code == SPDXLicense.GFDL1_3ONLY)
5245        return "GFDL-1.3-only";
5246      if (code == SPDXLicense.GFDL1_3ORLATER)
5247        return "GFDL-1.3-or-later";
5248      if (code == SPDXLicense.GIFTWARE)
5249        return "Giftware";
5250      if (code == SPDXLicense.GL2PS)
5251        return "GL2PS";
5252      if (code == SPDXLicense.GLIDE)
5253        return "Glide";
5254      if (code == SPDXLicense.GLULXE)
5255        return "Glulxe";
5256      if (code == SPDXLicense.GNUPLOT)
5257        return "gnuplot";
5258      if (code == SPDXLicense.GPL1_0ONLY)
5259        return "GPL-1.0-only";
5260      if (code == SPDXLicense.GPL1_0ORLATER)
5261        return "GPL-1.0-or-later";
5262      if (code == SPDXLicense.GPL2_0ONLY)
5263        return "GPL-2.0-only";
5264      if (code == SPDXLicense.GPL2_0ORLATER)
5265        return "GPL-2.0-or-later";
5266      if (code == SPDXLicense.GPL3_0ONLY)
5267        return "GPL-3.0-only";
5268      if (code == SPDXLicense.GPL3_0ORLATER)
5269        return "GPL-3.0-or-later";
5270      if (code == SPDXLicense.GSOAP1_3B)
5271        return "gSOAP-1.3b";
5272      if (code == SPDXLicense.HASKELLREPORT)
5273        return "HaskellReport";
5274      if (code == SPDXLicense.HPND)
5275        return "HPND";
5276      if (code == SPDXLicense.IBMPIBS)
5277        return "IBM-pibs";
5278      if (code == SPDXLicense.ICU)
5279        return "ICU";
5280      if (code == SPDXLicense.IJG)
5281        return "IJG";
5282      if (code == SPDXLicense.IMAGEMAGICK)
5283        return "ImageMagick";
5284      if (code == SPDXLicense.IMATIX)
5285        return "iMatix";
5286      if (code == SPDXLicense.IMLIB2)
5287        return "Imlib2";
5288      if (code == SPDXLicense.INFOZIP)
5289        return "Info-ZIP";
5290      if (code == SPDXLicense.INTELACPI)
5291        return "Intel-ACPI";
5292      if (code == SPDXLicense.INTEL)
5293        return "Intel";
5294      if (code == SPDXLicense.INTERBASE1_0)
5295        return "Interbase-1.0";
5296      if (code == SPDXLicense.IPA)
5297        return "IPA";
5298      if (code == SPDXLicense.IPL1_0)
5299        return "IPL-1.0";
5300      if (code == SPDXLicense.ISC)
5301        return "ISC";
5302      if (code == SPDXLicense.JASPER2_0)
5303        return "JasPer-2.0";
5304      if (code == SPDXLicense.JSON)
5305        return "JSON";
5306      if (code == SPDXLicense.LAL1_2)
5307        return "LAL-1.2";
5308      if (code == SPDXLicense.LAL1_3)
5309        return "LAL-1.3";
5310      if (code == SPDXLicense.LATEX2E)
5311        return "Latex2e";
5312      if (code == SPDXLicense.LEPTONICA)
5313        return "Leptonica";
5314      if (code == SPDXLicense.LGPL2_0ONLY)
5315        return "LGPL-2.0-only";
5316      if (code == SPDXLicense.LGPL2_0ORLATER)
5317        return "LGPL-2.0-or-later";
5318      if (code == SPDXLicense.LGPL2_1ONLY)
5319        return "LGPL-2.1-only";
5320      if (code == SPDXLicense.LGPL2_1ORLATER)
5321        return "LGPL-2.1-or-later";
5322      if (code == SPDXLicense.LGPL3_0ONLY)
5323        return "LGPL-3.0-only";
5324      if (code == SPDXLicense.LGPL3_0ORLATER)
5325        return "LGPL-3.0-or-later";
5326      if (code == SPDXLicense.LGPLLR)
5327        return "LGPLLR";
5328      if (code == SPDXLicense.LIBPNG)
5329        return "Libpng";
5330      if (code == SPDXLicense.LIBTIFF)
5331        return "libtiff";
5332      if (code == SPDXLicense.LILIQP1_1)
5333        return "LiLiQ-P-1.1";
5334      if (code == SPDXLicense.LILIQR1_1)
5335        return "LiLiQ-R-1.1";
5336      if (code == SPDXLicense.LILIQRPLUS1_1)
5337        return "LiLiQ-Rplus-1.1";
5338      if (code == SPDXLicense.LINUXOPENIB)
5339        return "Linux-OpenIB";
5340      if (code == SPDXLicense.LPL1_0)
5341        return "LPL-1.0";
5342      if (code == SPDXLicense.LPL1_02)
5343        return "LPL-1.02";
5344      if (code == SPDXLicense.LPPL1_0)
5345        return "LPPL-1.0";
5346      if (code == SPDXLicense.LPPL1_1)
5347        return "LPPL-1.1";
5348      if (code == SPDXLicense.LPPL1_2)
5349        return "LPPL-1.2";
5350      if (code == SPDXLicense.LPPL1_3A)
5351        return "LPPL-1.3a";
5352      if (code == SPDXLicense.LPPL1_3C)
5353        return "LPPL-1.3c";
5354      if (code == SPDXLicense.MAKEINDEX)
5355        return "MakeIndex";
5356      if (code == SPDXLicense.MIROS)
5357        return "MirOS";
5358      if (code == SPDXLicense.MIT0)
5359        return "MIT-0";
5360      if (code == SPDXLicense.MITADVERTISING)
5361        return "MIT-advertising";
5362      if (code == SPDXLicense.MITCMU)
5363        return "MIT-CMU";
5364      if (code == SPDXLicense.MITENNA)
5365        return "MIT-enna";
5366      if (code == SPDXLicense.MITFEH)
5367        return "MIT-feh";
5368      if (code == SPDXLicense.MIT)
5369        return "MIT";
5370      if (code == SPDXLicense.MITNFA)
5371        return "MITNFA";
5372      if (code == SPDXLicense.MOTOSOTO)
5373        return "Motosoto";
5374      if (code == SPDXLicense.MPICH2)
5375        return "mpich2";
5376      if (code == SPDXLicense.MPL1_0)
5377        return "MPL-1.0";
5378      if (code == SPDXLicense.MPL1_1)
5379        return "MPL-1.1";
5380      if (code == SPDXLicense.MPL2_0NOCOPYLEFTEXCEPTION)
5381        return "MPL-2.0-no-copyleft-exception";
5382      if (code == SPDXLicense.MPL2_0)
5383        return "MPL-2.0";
5384      if (code == SPDXLicense.MSPL)
5385        return "MS-PL";
5386      if (code == SPDXLicense.MSRL)
5387        return "MS-RL";
5388      if (code == SPDXLicense.MTLL)
5389        return "MTLL";
5390      if (code == SPDXLicense.MULTICS)
5391        return "Multics";
5392      if (code == SPDXLicense.MUP)
5393        return "Mup";
5394      if (code == SPDXLicense.NASA1_3)
5395        return "NASA-1.3";
5396      if (code == SPDXLicense.NAUMEN)
5397        return "Naumen";
5398      if (code == SPDXLicense.NBPL1_0)
5399        return "NBPL-1.0";
5400      if (code == SPDXLicense.NCSA)
5401        return "NCSA";
5402      if (code == SPDXLicense.NETSNMP)
5403        return "Net-SNMP";
5404      if (code == SPDXLicense.NETCDF)
5405        return "NetCDF";
5406      if (code == SPDXLicense.NEWSLETR)
5407        return "Newsletr";
5408      if (code == SPDXLicense.NGPL)
5409        return "NGPL";
5410      if (code == SPDXLicense.NLOD1_0)
5411        return "NLOD-1.0";
5412      if (code == SPDXLicense.NLPL)
5413        return "NLPL";
5414      if (code == SPDXLicense.NOKIA)
5415        return "Nokia";
5416      if (code == SPDXLicense.NOSL)
5417        return "NOSL";
5418      if (code == SPDXLicense.NOWEB)
5419        return "Noweb";
5420      if (code == SPDXLicense.NPL1_0)
5421        return "NPL-1.0";
5422      if (code == SPDXLicense.NPL1_1)
5423        return "NPL-1.1";
5424      if (code == SPDXLicense.NPOSL3_0)
5425        return "NPOSL-3.0";
5426      if (code == SPDXLicense.NRL)
5427        return "NRL";
5428      if (code == SPDXLicense.NTP)
5429        return "NTP";
5430      if (code == SPDXLicense.OCCTPL)
5431        return "OCCT-PL";
5432      if (code == SPDXLicense.OCLC2_0)
5433        return "OCLC-2.0";
5434      if (code == SPDXLicense.ODBL1_0)
5435        return "ODbL-1.0";
5436      if (code == SPDXLicense.OFL1_0)
5437        return "OFL-1.0";
5438      if (code == SPDXLicense.OFL1_1)
5439        return "OFL-1.1";
5440      if (code == SPDXLicense.OGTSL)
5441        return "OGTSL";
5442      if (code == SPDXLicense.OLDAP1_1)
5443        return "OLDAP-1.1";
5444      if (code == SPDXLicense.OLDAP1_2)
5445        return "OLDAP-1.2";
5446      if (code == SPDXLicense.OLDAP1_3)
5447        return "OLDAP-1.3";
5448      if (code == SPDXLicense.OLDAP1_4)
5449        return "OLDAP-1.4";
5450      if (code == SPDXLicense.OLDAP2_0_1)
5451        return "OLDAP-2.0.1";
5452      if (code == SPDXLicense.OLDAP2_0)
5453        return "OLDAP-2.0";
5454      if (code == SPDXLicense.OLDAP2_1)
5455        return "OLDAP-2.1";
5456      if (code == SPDXLicense.OLDAP2_2_1)
5457        return "OLDAP-2.2.1";
5458      if (code == SPDXLicense.OLDAP2_2_2)
5459        return "OLDAP-2.2.2";
5460      if (code == SPDXLicense.OLDAP2_2)
5461        return "OLDAP-2.2";
5462      if (code == SPDXLicense.OLDAP2_3)
5463        return "OLDAP-2.3";
5464      if (code == SPDXLicense.OLDAP2_4)
5465        return "OLDAP-2.4";
5466      if (code == SPDXLicense.OLDAP2_5)
5467        return "OLDAP-2.5";
5468      if (code == SPDXLicense.OLDAP2_6)
5469        return "OLDAP-2.6";
5470      if (code == SPDXLicense.OLDAP2_7)
5471        return "OLDAP-2.7";
5472      if (code == SPDXLicense.OLDAP2_8)
5473        return "OLDAP-2.8";
5474      if (code == SPDXLicense.OML)
5475        return "OML";
5476      if (code == SPDXLicense.OPENSSL)
5477        return "OpenSSL";
5478      if (code == SPDXLicense.OPL1_0)
5479        return "OPL-1.0";
5480      if (code == SPDXLicense.OSETPL2_1)
5481        return "OSET-PL-2.1";
5482      if (code == SPDXLicense.OSL1_0)
5483        return "OSL-1.0";
5484      if (code == SPDXLicense.OSL1_1)
5485        return "OSL-1.1";
5486      if (code == SPDXLicense.OSL2_0)
5487        return "OSL-2.0";
5488      if (code == SPDXLicense.OSL2_1)
5489        return "OSL-2.1";
5490      if (code == SPDXLicense.OSL3_0)
5491        return "OSL-3.0";
5492      if (code == SPDXLicense.PDDL1_0)
5493        return "PDDL-1.0";
5494      if (code == SPDXLicense.PHP3_0)
5495        return "PHP-3.0";
5496      if (code == SPDXLicense.PHP3_01)
5497        return "PHP-3.01";
5498      if (code == SPDXLicense.PLEXUS)
5499        return "Plexus";
5500      if (code == SPDXLicense.POSTGRESQL)
5501        return "PostgreSQL";
5502      if (code == SPDXLicense.PSFRAG)
5503        return "psfrag";
5504      if (code == SPDXLicense.PSUTILS)
5505        return "psutils";
5506      if (code == SPDXLicense.PYTHON2_0)
5507        return "Python-2.0";
5508      if (code == SPDXLicense.QHULL)
5509        return "Qhull";
5510      if (code == SPDXLicense.QPL1_0)
5511        return "QPL-1.0";
5512      if (code == SPDXLicense.RDISC)
5513        return "Rdisc";
5514      if (code == SPDXLicense.RHECOS1_1)
5515        return "RHeCos-1.1";
5516      if (code == SPDXLicense.RPL1_1)
5517        return "RPL-1.1";
5518      if (code == SPDXLicense.RPL1_5)
5519        return "RPL-1.5";
5520      if (code == SPDXLicense.RPSL1_0)
5521        return "RPSL-1.0";
5522      if (code == SPDXLicense.RSAMD)
5523        return "RSA-MD";
5524      if (code == SPDXLicense.RSCPL)
5525        return "RSCPL";
5526      if (code == SPDXLicense.RUBY)
5527        return "Ruby";
5528      if (code == SPDXLicense.SAXPD)
5529        return "SAX-PD";
5530      if (code == SPDXLicense.SAXPATH)
5531        return "Saxpath";
5532      if (code == SPDXLicense.SCEA)
5533        return "SCEA";
5534      if (code == SPDXLicense.SENDMAIL)
5535        return "Sendmail";
5536      if (code == SPDXLicense.SGIB1_0)
5537        return "SGI-B-1.0";
5538      if (code == SPDXLicense.SGIB1_1)
5539        return "SGI-B-1.1";
5540      if (code == SPDXLicense.SGIB2_0)
5541        return "SGI-B-2.0";
5542      if (code == SPDXLicense.SIMPL2_0)
5543        return "SimPL-2.0";
5544      if (code == SPDXLicense.SISSL1_2)
5545        return "SISSL-1.2";
5546      if (code == SPDXLicense.SISSL)
5547        return "SISSL";
5548      if (code == SPDXLicense.SLEEPYCAT)
5549        return "Sleepycat";
5550      if (code == SPDXLicense.SMLNJ)
5551        return "SMLNJ";
5552      if (code == SPDXLicense.SMPPL)
5553        return "SMPPL";
5554      if (code == SPDXLicense.SNIA)
5555        return "SNIA";
5556      if (code == SPDXLicense.SPENCER86)
5557        return "Spencer-86";
5558      if (code == SPDXLicense.SPENCER94)
5559        return "Spencer-94";
5560      if (code == SPDXLicense.SPENCER99)
5561        return "Spencer-99";
5562      if (code == SPDXLicense.SPL1_0)
5563        return "SPL-1.0";
5564      if (code == SPDXLicense.SUGARCRM1_1_3)
5565        return "SugarCRM-1.1.3";
5566      if (code == SPDXLicense.SWL)
5567        return "SWL";
5568      if (code == SPDXLicense.TCL)
5569        return "TCL";
5570      if (code == SPDXLicense.TCPWRAPPERS)
5571        return "TCP-wrappers";
5572      if (code == SPDXLicense.TMATE)
5573        return "TMate";
5574      if (code == SPDXLicense.TORQUE1_1)
5575        return "TORQUE-1.1";
5576      if (code == SPDXLicense.TOSL)
5577        return "TOSL";
5578      if (code == SPDXLicense.UNICODEDFS2015)
5579        return "Unicode-DFS-2015";
5580      if (code == SPDXLicense.UNICODEDFS2016)
5581        return "Unicode-DFS-2016";
5582      if (code == SPDXLicense.UNICODETOU)
5583        return "Unicode-TOU";
5584      if (code == SPDXLicense.UNLICENSE)
5585        return "Unlicense";
5586      if (code == SPDXLicense.UPL1_0)
5587        return "UPL-1.0";
5588      if (code == SPDXLicense.VIM)
5589        return "Vim";
5590      if (code == SPDXLicense.VOSTROM)
5591        return "VOSTROM";
5592      if (code == SPDXLicense.VSL1_0)
5593        return "VSL-1.0";
5594      if (code == SPDXLicense.W3C19980720)
5595        return "W3C-19980720";
5596      if (code == SPDXLicense.W3C20150513)
5597        return "W3C-20150513";
5598      if (code == SPDXLicense.W3C)
5599        return "W3C";
5600      if (code == SPDXLicense.WATCOM1_0)
5601        return "Watcom-1.0";
5602      if (code == SPDXLicense.WSUIPA)
5603        return "Wsuipa";
5604      if (code == SPDXLicense.WTFPL)
5605        return "WTFPL";
5606      if (code == SPDXLicense.X11)
5607        return "X11";
5608      if (code == SPDXLicense.XEROX)
5609        return "Xerox";
5610      if (code == SPDXLicense.XFREE861_1)
5611        return "XFree86-1.1";
5612      if (code == SPDXLicense.XINETD)
5613        return "xinetd";
5614      if (code == SPDXLicense.XNET)
5615        return "Xnet";
5616      if (code == SPDXLicense.XPP)
5617        return "xpp";
5618      if (code == SPDXLicense.XSKAT)
5619        return "XSkat";
5620      if (code == SPDXLicense.YPL1_0)
5621        return "YPL-1.0";
5622      if (code == SPDXLicense.YPL1_1)
5623        return "YPL-1.1";
5624      if (code == SPDXLicense.ZED)
5625        return "Zed";
5626      if (code == SPDXLicense.ZEND2_0)
5627        return "Zend-2.0";
5628      if (code == SPDXLicense.ZIMBRA1_3)
5629        return "Zimbra-1.3";
5630      if (code == SPDXLicense.ZIMBRA1_4)
5631        return "Zimbra-1.4";
5632      if (code == SPDXLicense.ZLIBACKNOWLEDGEMENT)
5633        return "zlib-acknowledgement";
5634      if (code == SPDXLicense.ZLIB)
5635        return "Zlib";
5636      if (code == SPDXLicense.ZPL1_1)
5637        return "ZPL-1.1";
5638      if (code == SPDXLicense.ZPL2_0)
5639        return "ZPL-2.0";
5640      if (code == SPDXLicense.ZPL2_1)
5641        return "ZPL-2.1";
5642      return "?";
5643      }
5644    public String toSystem(SPDXLicense code) {
5645      return code.getSystem();
5646      }
5647    }
5648
5649    public enum GuidePageGeneration {
5650        /**
5651         * Page is proper xhtml with no templating.  Will be brought across unchanged for standard post-processing.
5652         */
5653        HTML, 
5654        /**
5655         * Page is markdown with templating.  Will use the template to create a file that imports the markdown file prior to post-processing.
5656         */
5657        MARKDOWN, 
5658        /**
5659         * Page is xml with templating.  Will use the template to create a file that imports the source file and run the nominated XSLT transform (see parameters) if present prior to post-processing.
5660         */
5661        XML, 
5662        /**
5663         * Page will be generated by the publication process - no source to bring across.
5664         */
5665        GENERATED, 
5666        /**
5667         * added to help the parsers with the generic types
5668         */
5669        NULL;
5670        public static GuidePageGeneration fromCode(String codeString) throws FHIRException {
5671            if (codeString == null || "".equals(codeString))
5672                return null;
5673        if ("html".equals(codeString))
5674          return HTML;
5675        if ("markdown".equals(codeString))
5676          return MARKDOWN;
5677        if ("xml".equals(codeString))
5678          return XML;
5679        if ("generated".equals(codeString))
5680          return GENERATED;
5681        if (Configuration.isAcceptInvalidEnums())
5682          return null;
5683        else
5684          throw new FHIRException("Unknown GuidePageGeneration code '"+codeString+"'");
5685        }
5686        public String toCode() {
5687          switch (this) {
5688            case HTML: return "html";
5689            case MARKDOWN: return "markdown";
5690            case XML: return "xml";
5691            case GENERATED: return "generated";
5692            default: return "?";
5693          }
5694        }
5695        public String getSystem() {
5696          switch (this) {
5697            case HTML: return "http://hl7.org/fhir/guide-page-generation";
5698            case MARKDOWN: return "http://hl7.org/fhir/guide-page-generation";
5699            case XML: return "http://hl7.org/fhir/guide-page-generation";
5700            case GENERATED: return "http://hl7.org/fhir/guide-page-generation";
5701            default: return "?";
5702          }
5703        }
5704        public String getDefinition() {
5705          switch (this) {
5706            case HTML: return "Page is proper xhtml with no templating.  Will be brought across unchanged for standard post-processing.";
5707            case MARKDOWN: return "Page is markdown with templating.  Will use the template to create a file that imports the markdown file prior to post-processing.";
5708            case XML: return "Page is xml with templating.  Will use the template to create a file that imports the source file and run the nominated XSLT transform (see parameters) if present prior to post-processing.";
5709            case GENERATED: return "Page will be generated by the publication process - no source to bring across.";
5710            default: return "?";
5711          }
5712        }
5713        public String getDisplay() {
5714          switch (this) {
5715            case HTML: return "HTML";
5716            case MARKDOWN: return "Markdown";
5717            case XML: return "XML";
5718            case GENERATED: return "Generated";
5719            default: return "?";
5720          }
5721        }
5722    }
5723
5724  public static class GuidePageGenerationEnumFactory implements EnumFactory<GuidePageGeneration> {
5725    public GuidePageGeneration fromCode(String codeString) throws IllegalArgumentException {
5726      if (codeString == null || "".equals(codeString))
5727            if (codeString == null || "".equals(codeString))
5728                return null;
5729        if ("html".equals(codeString))
5730          return GuidePageGeneration.HTML;
5731        if ("markdown".equals(codeString))
5732          return GuidePageGeneration.MARKDOWN;
5733        if ("xml".equals(codeString))
5734          return GuidePageGeneration.XML;
5735        if ("generated".equals(codeString))
5736          return GuidePageGeneration.GENERATED;
5737        throw new IllegalArgumentException("Unknown GuidePageGeneration code '"+codeString+"'");
5738        }
5739        public Enumeration<GuidePageGeneration> fromType(Base code) throws FHIRException {
5740          if (code == null)
5741            return null;
5742          if (code.isEmpty())
5743            return new Enumeration<GuidePageGeneration>(this);
5744          String codeString = ((PrimitiveType) code).asStringValue();
5745          if (codeString == null || "".equals(codeString))
5746            return null;
5747        if ("html".equals(codeString))
5748          return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.HTML);
5749        if ("markdown".equals(codeString))
5750          return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.MARKDOWN);
5751        if ("xml".equals(codeString))
5752          return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.XML);
5753        if ("generated".equals(codeString))
5754          return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.GENERATED);
5755        throw new FHIRException("Unknown GuidePageGeneration code '"+codeString+"'");
5756        }
5757    public String toCode(GuidePageGeneration code) {
5758      if (code == GuidePageGeneration.HTML)
5759        return "html";
5760      if (code == GuidePageGeneration.MARKDOWN)
5761        return "markdown";
5762      if (code == GuidePageGeneration.XML)
5763        return "xml";
5764      if (code == GuidePageGeneration.GENERATED)
5765        return "generated";
5766      return "?";
5767      }
5768    public String toSystem(GuidePageGeneration code) {
5769      return code.getSystem();
5770      }
5771    }
5772
5773    public enum GuideParameterCode {
5774        /**
5775         * If the value of this boolean 0..1 parameter is "true" then all conformance resources will have any specified [Resource].version overwritten with the ImplementationGuide.version.
5776         */
5777        APPLYBUSINESSVERSION, 
5778        /**
5779         * If the value of this boolean 0..1 parameter is "true" then all conformance resources will have any specified [Resource].jurisdiction overwritten with the ImplementationGuide.jurisdiction.
5780         */
5781        APPLYJURISDICTION, 
5782        /**
5783         * The value of this string 0..* parameter is a subfolder of the build context's location that is to be scanned to load resources. Scope is (if present) a particular resource type.
5784         */
5785        PATHRESOURCE, 
5786        /**
5787         * The value of this string 0..1 parameter is a subfolder of the build context's location that contains files that are part of the html content processed by the builder.
5788         */
5789        PATHPAGES, 
5790        /**
5791         * The value of this string 0..1 parameter is a subfolder of the build context's location that is used as the terminology cache. If this is not present, the terminology cache is on the local system, not under version control.
5792         */
5793        PATHTXCACHE, 
5794        /**
5795         * The value of this string 0..* parameter is a parameter (name=value) when expanding value sets for this implementation guide. This is particularly used to specify the versions of published terminologies such as SNOMED CT.
5796         */
5797        EXPANSIONPARAMETER, 
5798        /**
5799         * The value of this string 0..1 parameter is either "warning" or "error" (default = "error"). If the value is "warning" then IG build tools allow the IG to be considered successfully build even when there is no internal broken links.
5800         */
5801        RULEBROKENLINKS, 
5802        /**
5803         * The value of this boolean 0..1 parameter specifies whether the IG publisher creates examples in XML format. If not present, the Publication Tool decides whether to generate XML.
5804         */
5805        GENERATEXML, 
5806        /**
5807         * The value of this boolean 0..1 parameter specifies whether the IG publisher creates examples in JSON format. If not present, the Publication Tool decides whether to generate JSON.
5808         */
5809        GENERATEJSON, 
5810        /**
5811         * The value of this boolean 0..1 parameter specifies whether the IG publisher creates examples in Turtle format. If not present, the Publication Tool decides whether to generate Turtle.
5812         */
5813        GENERATETURTLE, 
5814        /**
5815         * The value of this string singleton parameter is the name of the file to use as the builder template for each generated page (see templating).
5816         */
5817        HTMLTEMPLATE, 
5818        /**
5819         * added to help the parsers with the generic types
5820         */
5821        NULL;
5822        public static GuideParameterCode fromCode(String codeString) throws FHIRException {
5823            if (codeString == null || "".equals(codeString))
5824                return null;
5825        if ("apply-business-version".equals(codeString))
5826          return APPLYBUSINESSVERSION;
5827        if ("apply-jurisdiction".equals(codeString))
5828          return APPLYJURISDICTION;
5829        if ("path-resource".equals(codeString))
5830          return PATHRESOURCE;
5831        if ("path-pages".equals(codeString))
5832          return PATHPAGES;
5833        if ("path-tx-cache".equals(codeString))
5834          return PATHTXCACHE;
5835        if ("expansion-parameter".equals(codeString))
5836          return EXPANSIONPARAMETER;
5837        if ("rule-broken-links".equals(codeString))
5838          return RULEBROKENLINKS;
5839        if ("generate-xml".equals(codeString))
5840          return GENERATEXML;
5841        if ("generate-json".equals(codeString))
5842          return GENERATEJSON;
5843        if ("generate-turtle".equals(codeString))
5844          return GENERATETURTLE;
5845        if ("html-template".equals(codeString))
5846          return HTMLTEMPLATE;
5847        if (Configuration.isAcceptInvalidEnums())
5848          return null;
5849        else
5850          throw new FHIRException("Unknown GuideParameterCode code '"+codeString+"'");
5851        }
5852        public String toCode() {
5853          switch (this) {
5854            case APPLYBUSINESSVERSION: return "apply-business-version";
5855            case APPLYJURISDICTION: return "apply-jurisdiction";
5856            case PATHRESOURCE: return "path-resource";
5857            case PATHPAGES: return "path-pages";
5858            case PATHTXCACHE: return "path-tx-cache";
5859            case EXPANSIONPARAMETER: return "expansion-parameter";
5860            case RULEBROKENLINKS: return "rule-broken-links";
5861            case GENERATEXML: return "generate-xml";
5862            case GENERATEJSON: return "generate-json";
5863            case GENERATETURTLE: return "generate-turtle";
5864            case HTMLTEMPLATE: return "html-template";
5865            default: return "?";
5866          }
5867        }
5868        public String getSystem() {
5869          switch (this) {
5870            case APPLYBUSINESSVERSION: return "http://hl7.org/fhir/guide-parameter-code";
5871            case APPLYJURISDICTION: return "http://hl7.org/fhir/guide-parameter-code";
5872            case PATHRESOURCE: return "http://hl7.org/fhir/guide-parameter-code";
5873            case PATHPAGES: return "http://hl7.org/fhir/guide-parameter-code";
5874            case PATHTXCACHE: return "http://hl7.org/fhir/guide-parameter-code";
5875            case EXPANSIONPARAMETER: return "http://hl7.org/fhir/guide-parameter-code";
5876            case RULEBROKENLINKS: return "http://hl7.org/fhir/guide-parameter-code";
5877            case GENERATEXML: return "http://hl7.org/fhir/guide-parameter-code";
5878            case GENERATEJSON: return "http://hl7.org/fhir/guide-parameter-code";
5879            case GENERATETURTLE: return "http://hl7.org/fhir/guide-parameter-code";
5880            case HTMLTEMPLATE: return "http://hl7.org/fhir/guide-parameter-code";
5881            default: return "?";
5882          }
5883        }
5884        public String getDefinition() {
5885          switch (this) {
5886            case APPLYBUSINESSVERSION: return "If the value of this boolean 0..1 parameter is \"true\" then all conformance resources will have any specified [Resource].version overwritten with the ImplementationGuide.version.";
5887            case APPLYJURISDICTION: return "If the value of this boolean 0..1 parameter is \"true\" then all conformance resources will have any specified [Resource].jurisdiction overwritten with the ImplementationGuide.jurisdiction.";
5888            case PATHRESOURCE: return "The value of this string 0..* parameter is a subfolder of the build context's location that is to be scanned to load resources. Scope is (if present) a particular resource type.";
5889            case PATHPAGES: return "The value of this string 0..1 parameter is a subfolder of the build context's location that contains files that are part of the html content processed by the builder.";
5890            case PATHTXCACHE: return "The value of this string 0..1 parameter is a subfolder of the build context's location that is used as the terminology cache. If this is not present, the terminology cache is on the local system, not under version control.";
5891            case EXPANSIONPARAMETER: return "The value of this string 0..* parameter is a parameter (name=value) when expanding value sets for this implementation guide. This is particularly used to specify the versions of published terminologies such as SNOMED CT.";
5892            case RULEBROKENLINKS: return "The value of this string 0..1 parameter is either \"warning\" or \"error\" (default = \"error\"). If the value is \"warning\" then IG build tools allow the IG to be considered successfully build even when there is no internal broken links.";
5893            case GENERATEXML: return "The value of this boolean 0..1 parameter specifies whether the IG publisher creates examples in XML format. If not present, the Publication Tool decides whether to generate XML.";
5894            case GENERATEJSON: return "The value of this boolean 0..1 parameter specifies whether the IG publisher creates examples in JSON format. If not present, the Publication Tool decides whether to generate JSON.";
5895            case GENERATETURTLE: return "The value of this boolean 0..1 parameter specifies whether the IG publisher creates examples in Turtle format. If not present, the Publication Tool decides whether to generate Turtle.";
5896            case HTMLTEMPLATE: return "The value of this string singleton parameter is the name of the file to use as the builder template for each generated page (see templating).";
5897            default: return "?";
5898          }
5899        }
5900        public String getDisplay() {
5901          switch (this) {
5902            case APPLYBUSINESSVERSION: return "Apply Business Version";
5903            case APPLYJURISDICTION: return "Apply Jurisdiction";
5904            case PATHRESOURCE: return "Resource Path";
5905            case PATHPAGES: return "Pages Path";
5906            case PATHTXCACHE: return "Terminology Cache Path";
5907            case EXPANSIONPARAMETER: return "Expansion Profile";
5908            case RULEBROKENLINKS: return "Broken Links Rule";
5909            case GENERATEXML: return "Generate XML";
5910            case GENERATEJSON: return "Generate JSON";
5911            case GENERATETURTLE: return "Generate Turtle";
5912            case HTMLTEMPLATE: return "HTML Template";
5913            default: return "?";
5914          }
5915        }
5916    }
5917
5918  public static class GuideParameterCodeEnumFactory implements EnumFactory<GuideParameterCode> {
5919    public GuideParameterCode fromCode(String codeString) throws IllegalArgumentException {
5920      if (codeString == null || "".equals(codeString))
5921            if (codeString == null || "".equals(codeString))
5922                return null;
5923        if ("apply-business-version".equals(codeString))
5924          return GuideParameterCode.APPLYBUSINESSVERSION;
5925        if ("apply-jurisdiction".equals(codeString))
5926          return GuideParameterCode.APPLYJURISDICTION;
5927        if ("path-resource".equals(codeString))
5928          return GuideParameterCode.PATHRESOURCE;
5929        if ("path-pages".equals(codeString))
5930          return GuideParameterCode.PATHPAGES;
5931        if ("path-tx-cache".equals(codeString))
5932          return GuideParameterCode.PATHTXCACHE;
5933        if ("expansion-parameter".equals(codeString))
5934          return GuideParameterCode.EXPANSIONPARAMETER;
5935        if ("rule-broken-links".equals(codeString))
5936          return GuideParameterCode.RULEBROKENLINKS;
5937        if ("generate-xml".equals(codeString))
5938          return GuideParameterCode.GENERATEXML;
5939        if ("generate-json".equals(codeString))
5940          return GuideParameterCode.GENERATEJSON;
5941        if ("generate-turtle".equals(codeString))
5942          return GuideParameterCode.GENERATETURTLE;
5943        if ("html-template".equals(codeString))
5944          return GuideParameterCode.HTMLTEMPLATE;
5945        throw new IllegalArgumentException("Unknown GuideParameterCode code '"+codeString+"'");
5946        }
5947        public Enumeration<GuideParameterCode> fromType(Base code) throws FHIRException {
5948          if (code == null)
5949            return null;
5950          if (code.isEmpty())
5951            return new Enumeration<GuideParameterCode>(this);
5952          String codeString = ((PrimitiveType) code).asStringValue();
5953          if (codeString == null || "".equals(codeString))
5954            return null;
5955        if ("apply-business-version".equals(codeString))
5956          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.APPLYBUSINESSVERSION);
5957        if ("apply-jurisdiction".equals(codeString))
5958          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.APPLYJURISDICTION);
5959        if ("path-resource".equals(codeString))
5960          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.PATHRESOURCE);
5961        if ("path-pages".equals(codeString))
5962          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.PATHPAGES);
5963        if ("path-tx-cache".equals(codeString))
5964          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.PATHTXCACHE);
5965        if ("expansion-parameter".equals(codeString))
5966          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.EXPANSIONPARAMETER);
5967        if ("rule-broken-links".equals(codeString))
5968          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.RULEBROKENLINKS);
5969        if ("generate-xml".equals(codeString))
5970          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.GENERATEXML);
5971        if ("generate-json".equals(codeString))
5972          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.GENERATEJSON);
5973        if ("generate-turtle".equals(codeString))
5974          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.GENERATETURTLE);
5975        if ("html-template".equals(codeString))
5976          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.HTMLTEMPLATE);
5977        throw new FHIRException("Unknown GuideParameterCode code '"+codeString+"'");
5978        }
5979    public String toCode(GuideParameterCode code) {
5980      if (code == GuideParameterCode.APPLYBUSINESSVERSION)
5981        return "apply-business-version";
5982      if (code == GuideParameterCode.APPLYJURISDICTION)
5983        return "apply-jurisdiction";
5984      if (code == GuideParameterCode.PATHRESOURCE)
5985        return "path-resource";
5986      if (code == GuideParameterCode.PATHPAGES)
5987        return "path-pages";
5988      if (code == GuideParameterCode.PATHTXCACHE)
5989        return "path-tx-cache";
5990      if (code == GuideParameterCode.EXPANSIONPARAMETER)
5991        return "expansion-parameter";
5992      if (code == GuideParameterCode.RULEBROKENLINKS)
5993        return "rule-broken-links";
5994      if (code == GuideParameterCode.GENERATEXML)
5995        return "generate-xml";
5996      if (code == GuideParameterCode.GENERATEJSON)
5997        return "generate-json";
5998      if (code == GuideParameterCode.GENERATETURTLE)
5999        return "generate-turtle";
6000      if (code == GuideParameterCode.HTMLTEMPLATE)
6001        return "html-template";
6002      return "?";
6003      }
6004    public String toSystem(GuideParameterCode code) {
6005      return code.getSystem();
6006      }
6007    }
6008
6009    @Block()
6010    public static class ImplementationGuideDependsOnComponent extends BackboneElement implements IBaseBackboneElement {
6011        /**
6012         * The canonical URL of the Implementation guide for the dependency.
6013         */
6014        @Child(name = "uri", type = {CanonicalType.class}, order=1, min=1, max=1, modifier=false, summary=true)
6015        @Description(shortDefinition="Identity of the IG that this depends on", formalDefinition="The canonical URL of the Implementation guide for the dependency." )
6016        protected CanonicalType uri;
6017
6018        /**
6019         * The NPM package name for the Implementation Guide that this IG depends on.
6020         */
6021        @Child(name = "packageId", type = {IdType.class}, order=2, min=0, max=1, modifier=false, summary=true)
6022        @Description(shortDefinition="NPM Package name for IG this depends on", formalDefinition="The NPM package name for the Implementation Guide that this IG depends on." )
6023        protected IdType packageId;
6024
6025        /**
6026         * The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
6027         */
6028        @Child(name = "version", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
6029        @Description(shortDefinition="Version of the IG", formalDefinition="The version of the IG that is depended on, when the correct version is required to understand the IG correctly." )
6030        protected StringType version;
6031
6032        private static final long serialVersionUID = -215808797L;
6033
6034    /**
6035     * Constructor
6036     */
6037      public ImplementationGuideDependsOnComponent() {
6038        super();
6039      }
6040
6041    /**
6042     * Constructor
6043     */
6044      public ImplementationGuideDependsOnComponent(CanonicalType uri) {
6045        super();
6046        this.uri = uri;
6047      }
6048
6049        /**
6050         * @return {@link #uri} (The canonical URL of the Implementation guide for the dependency.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value
6051         */
6052        public CanonicalType getUriElement() { 
6053          if (this.uri == null)
6054            if (Configuration.errorOnAutoCreate())
6055              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.uri");
6056            else if (Configuration.doAutoCreate())
6057              this.uri = new CanonicalType(); // bb
6058          return this.uri;
6059        }
6060
6061        public boolean hasUriElement() { 
6062          return this.uri != null && !this.uri.isEmpty();
6063        }
6064
6065        public boolean hasUri() { 
6066          return this.uri != null && !this.uri.isEmpty();
6067        }
6068
6069        /**
6070         * @param value {@link #uri} (The canonical URL of the Implementation guide for the dependency.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value
6071         */
6072        public ImplementationGuideDependsOnComponent setUriElement(CanonicalType value) { 
6073          this.uri = value;
6074          return this;
6075        }
6076
6077        /**
6078         * @return The canonical URL of the Implementation guide for the dependency.
6079         */
6080        public String getUri() { 
6081          return this.uri == null ? null : this.uri.getValue();
6082        }
6083
6084        /**
6085         * @param value The canonical URL of the Implementation guide for the dependency.
6086         */
6087        public ImplementationGuideDependsOnComponent setUri(String value) { 
6088            if (this.uri == null)
6089              this.uri = new CanonicalType();
6090            this.uri.setValue(value);
6091          return this;
6092        }
6093
6094        /**
6095         * @return {@link #packageId} (The NPM package name for the Implementation Guide that this IG depends on.). This is the underlying object with id, value and extensions. The accessor "getPackageId" gives direct access to the value
6096         */
6097        public IdType getPackageIdElement() { 
6098          if (this.packageId == null)
6099            if (Configuration.errorOnAutoCreate())
6100              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.packageId");
6101            else if (Configuration.doAutoCreate())
6102              this.packageId = new IdType(); // bb
6103          return this.packageId;
6104        }
6105
6106        public boolean hasPackageIdElement() { 
6107          return this.packageId != null && !this.packageId.isEmpty();
6108        }
6109
6110        public boolean hasPackageId() { 
6111          return this.packageId != null && !this.packageId.isEmpty();
6112        }
6113
6114        /**
6115         * @param value {@link #packageId} (The NPM package name for the Implementation Guide that this IG depends on.). This is the underlying object with id, value and extensions. The accessor "getPackageId" gives direct access to the value
6116         */
6117        public ImplementationGuideDependsOnComponent setPackageIdElement(IdType value) { 
6118          this.packageId = value;
6119          return this;
6120        }
6121
6122        /**
6123         * @return The NPM package name for the Implementation Guide that this IG depends on.
6124         */
6125        public String getPackageId() { 
6126          return this.packageId == null ? null : this.packageId.getValue();
6127        }
6128
6129        /**
6130         * @param value The NPM package name for the Implementation Guide that this IG depends on.
6131         */
6132        public ImplementationGuideDependsOnComponent setPackageId(String value) { 
6133          if (Utilities.noString(value))
6134            this.packageId = null;
6135          else {
6136            if (this.packageId == null)
6137              this.packageId = new IdType();
6138            this.packageId.setValue(value);
6139          }
6140          return this;
6141        }
6142
6143        /**
6144         * @return {@link #version} (The version of the IG that is depended on, when the correct version is required to understand the IG correctly.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
6145         */
6146        public StringType getVersionElement() { 
6147          if (this.version == null)
6148            if (Configuration.errorOnAutoCreate())
6149              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.version");
6150            else if (Configuration.doAutoCreate())
6151              this.version = new StringType(); // bb
6152          return this.version;
6153        }
6154
6155        public boolean hasVersionElement() { 
6156          return this.version != null && !this.version.isEmpty();
6157        }
6158
6159        public boolean hasVersion() { 
6160          return this.version != null && !this.version.isEmpty();
6161        }
6162
6163        /**
6164         * @param value {@link #version} (The version of the IG that is depended on, when the correct version is required to understand the IG correctly.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
6165         */
6166        public ImplementationGuideDependsOnComponent setVersionElement(StringType value) { 
6167          this.version = value;
6168          return this;
6169        }
6170
6171        /**
6172         * @return The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
6173         */
6174        public String getVersion() { 
6175          return this.version == null ? null : this.version.getValue();
6176        }
6177
6178        /**
6179         * @param value The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
6180         */
6181        public ImplementationGuideDependsOnComponent setVersion(String value) { 
6182          if (Utilities.noString(value))
6183            this.version = null;
6184          else {
6185            if (this.version == null)
6186              this.version = new StringType();
6187            this.version.setValue(value);
6188          }
6189          return this;
6190        }
6191
6192        protected void listChildren(List<Property> children) {
6193          super.listChildren(children);
6194          children.add(new Property("uri", "canonical(ImplementationGuide)", "The canonical URL of the Implementation guide for the dependency.", 0, 1, uri));
6195          children.add(new Property("packageId", "id", "The NPM package name for the Implementation Guide that this IG depends on.", 0, 1, packageId));
6196          children.add(new Property("version", "string", "The version of the IG that is depended on, when the correct version is required to understand the IG correctly.", 0, 1, version));
6197        }
6198
6199        @Override
6200        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6201          switch (_hash) {
6202          case 116076: /*uri*/  return new Property("uri", "canonical(ImplementationGuide)", "The canonical URL of the Implementation guide for the dependency.", 0, 1, uri);
6203          case 1802060801: /*packageId*/  return new Property("packageId", "id", "The NPM package name for the Implementation Guide that this IG depends on.", 0, 1, packageId);
6204          case 351608024: /*version*/  return new Property("version", "string", "The version of the IG that is depended on, when the correct version is required to understand the IG correctly.", 0, 1, version);
6205          default: return super.getNamedProperty(_hash, _name, _checkValid);
6206          }
6207
6208        }
6209
6210      @Override
6211      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6212        switch (hash) {
6213        case 116076: /*uri*/ return this.uri == null ? new Base[0] : new Base[] {this.uri}; // CanonicalType
6214        case 1802060801: /*packageId*/ return this.packageId == null ? new Base[0] : new Base[] {this.packageId}; // IdType
6215        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
6216        default: return super.getProperty(hash, name, checkValid);
6217        }
6218
6219      }
6220
6221      @Override
6222      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6223        switch (hash) {
6224        case 116076: // uri
6225          this.uri = castToCanonical(value); // CanonicalType
6226          return value;
6227        case 1802060801: // packageId
6228          this.packageId = castToId(value); // IdType
6229          return value;
6230        case 351608024: // version
6231          this.version = castToString(value); // StringType
6232          return value;
6233        default: return super.setProperty(hash, name, value);
6234        }
6235
6236      }
6237
6238      @Override
6239      public Base setProperty(String name, Base value) throws FHIRException {
6240        if (name.equals("uri")) {
6241          this.uri = castToCanonical(value); // CanonicalType
6242        } else if (name.equals("packageId")) {
6243          this.packageId = castToId(value); // IdType
6244        } else if (name.equals("version")) {
6245          this.version = castToString(value); // StringType
6246        } else
6247          return super.setProperty(name, value);
6248        return value;
6249      }
6250
6251      @Override
6252      public Base makeProperty(int hash, String name) throws FHIRException {
6253        switch (hash) {
6254        case 116076:  return getUriElement();
6255        case 1802060801:  return getPackageIdElement();
6256        case 351608024:  return getVersionElement();
6257        default: return super.makeProperty(hash, name);
6258        }
6259
6260      }
6261
6262      @Override
6263      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6264        switch (hash) {
6265        case 116076: /*uri*/ return new String[] {"canonical"};
6266        case 1802060801: /*packageId*/ return new String[] {"id"};
6267        case 351608024: /*version*/ return new String[] {"string"};
6268        default: return super.getTypesForProperty(hash, name);
6269        }
6270
6271      }
6272
6273      @Override
6274      public Base addChild(String name) throws FHIRException {
6275        if (name.equals("uri")) {
6276          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.uri");
6277        }
6278        else if (name.equals("packageId")) {
6279          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.packageId");
6280        }
6281        else if (name.equals("version")) {
6282          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.version");
6283        }
6284        else
6285          return super.addChild(name);
6286      }
6287
6288      public ImplementationGuideDependsOnComponent copy() {
6289        ImplementationGuideDependsOnComponent dst = new ImplementationGuideDependsOnComponent();
6290        copyValues(dst);
6291        dst.uri = uri == null ? null : uri.copy();
6292        dst.packageId = packageId == null ? null : packageId.copy();
6293        dst.version = version == null ? null : version.copy();
6294        return dst;
6295      }
6296
6297      @Override
6298      public boolean equalsDeep(Base other_) {
6299        if (!super.equalsDeep(other_))
6300          return false;
6301        if (!(other_ instanceof ImplementationGuideDependsOnComponent))
6302          return false;
6303        ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
6304        return compareDeep(uri, o.uri, true) && compareDeep(packageId, o.packageId, true) && compareDeep(version, o.version, true)
6305          ;
6306      }
6307
6308      @Override
6309      public boolean equalsShallow(Base other_) {
6310        if (!super.equalsShallow(other_))
6311          return false;
6312        if (!(other_ instanceof ImplementationGuideDependsOnComponent))
6313          return false;
6314        ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
6315        return compareValues(packageId, o.packageId, true) && compareValues(version, o.version, true);
6316      }
6317
6318      public boolean isEmpty() {
6319        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(uri, packageId, version
6320          );
6321      }
6322
6323  public String fhirType() {
6324    return "ImplementationGuide.dependsOn";
6325
6326  }
6327
6328  }
6329
6330    @Block()
6331    public static class ImplementationGuideGlobalComponent extends BackboneElement implements IBaseBackboneElement {
6332        /**
6333         * The type of resource that all instances must conform to.
6334         */
6335        @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
6336        @Description(shortDefinition="Type this profile applies to", formalDefinition="The type of resource that all instances must conform to." )
6337        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types")
6338        protected CodeType type;
6339
6340        /**
6341         * A reference to the profile that all instances must conform to.
6342         */
6343        @Child(name = "profile", type = {CanonicalType.class}, order=2, min=1, max=1, modifier=false, summary=true)
6344        @Description(shortDefinition="Profile that all resources must conform to", formalDefinition="A reference to the profile that all instances must conform to." )
6345        protected CanonicalType profile;
6346
6347        private static final long serialVersionUID = 33894666L;
6348
6349    /**
6350     * Constructor
6351     */
6352      public ImplementationGuideGlobalComponent() {
6353        super();
6354      }
6355
6356    /**
6357     * Constructor
6358     */
6359      public ImplementationGuideGlobalComponent(CodeType type, CanonicalType profile) {
6360        super();
6361        this.type = type;
6362        this.profile = profile;
6363      }
6364
6365        /**
6366         * @return {@link #type} (The type of resource that all instances must conform to.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
6367         */
6368        public CodeType getTypeElement() { 
6369          if (this.type == null)
6370            if (Configuration.errorOnAutoCreate())
6371              throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.type");
6372            else if (Configuration.doAutoCreate())
6373              this.type = new CodeType(); // bb
6374          return this.type;
6375        }
6376
6377        public boolean hasTypeElement() { 
6378          return this.type != null && !this.type.isEmpty();
6379        }
6380
6381        public boolean hasType() { 
6382          return this.type != null && !this.type.isEmpty();
6383        }
6384
6385        /**
6386         * @param value {@link #type} (The type of resource that all instances must conform to.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
6387         */
6388        public ImplementationGuideGlobalComponent setTypeElement(CodeType value) { 
6389          this.type = value;
6390          return this;
6391        }
6392
6393        /**
6394         * @return The type of resource that all instances must conform to.
6395         */
6396        public String getType() { 
6397          return this.type == null ? null : this.type.getValue();
6398        }
6399
6400        /**
6401         * @param value The type of resource that all instances must conform to.
6402         */
6403        public ImplementationGuideGlobalComponent setType(String value) { 
6404            if (this.type == null)
6405              this.type = new CodeType();
6406            this.type.setValue(value);
6407          return this;
6408        }
6409
6410        /**
6411         * @return {@link #profile} (A reference to the profile that all instances must conform to.). This is the underlying object with id, value and extensions. The accessor "getProfile" gives direct access to the value
6412         */
6413        public CanonicalType getProfileElement() { 
6414          if (this.profile == null)
6415            if (Configuration.errorOnAutoCreate())
6416              throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.profile");
6417            else if (Configuration.doAutoCreate())
6418              this.profile = new CanonicalType(); // bb
6419          return this.profile;
6420        }
6421
6422        public boolean hasProfileElement() { 
6423          return this.profile != null && !this.profile.isEmpty();
6424        }
6425
6426        public boolean hasProfile() { 
6427          return this.profile != null && !this.profile.isEmpty();
6428        }
6429
6430        /**
6431         * @param value {@link #profile} (A reference to the profile that all instances must conform to.). This is the underlying object with id, value and extensions. The accessor "getProfile" gives direct access to the value
6432         */
6433        public ImplementationGuideGlobalComponent setProfileElement(CanonicalType value) { 
6434          this.profile = value;
6435          return this;
6436        }
6437
6438        /**
6439         * @return A reference to the profile that all instances must conform to.
6440         */
6441        public String getProfile() { 
6442          return this.profile == null ? null : this.profile.getValue();
6443        }
6444
6445        /**
6446         * @param value A reference to the profile that all instances must conform to.
6447         */
6448        public ImplementationGuideGlobalComponent setProfile(String value) { 
6449            if (this.profile == null)
6450              this.profile = new CanonicalType();
6451            this.profile.setValue(value);
6452          return this;
6453        }
6454
6455        protected void listChildren(List<Property> children) {
6456          super.listChildren(children);
6457          children.add(new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1, type));
6458          children.add(new Property("profile", "canonical(StructureDefinition)", "A reference to the profile that all instances must conform to.", 0, 1, profile));
6459        }
6460
6461        @Override
6462        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6463          switch (_hash) {
6464          case 3575610: /*type*/  return new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1, type);
6465          case -309425751: /*profile*/  return new Property("profile", "canonical(StructureDefinition)", "A reference to the profile that all instances must conform to.", 0, 1, profile);
6466          default: return super.getNamedProperty(_hash, _name, _checkValid);
6467          }
6468
6469        }
6470
6471      @Override
6472      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6473        switch (hash) {
6474        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeType
6475        case -309425751: /*profile*/ return this.profile == null ? new Base[0] : new Base[] {this.profile}; // CanonicalType
6476        default: return super.getProperty(hash, name, checkValid);
6477        }
6478
6479      }
6480
6481      @Override
6482      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6483        switch (hash) {
6484        case 3575610: // type
6485          this.type = castToCode(value); // CodeType
6486          return value;
6487        case -309425751: // profile
6488          this.profile = castToCanonical(value); // CanonicalType
6489          return value;
6490        default: return super.setProperty(hash, name, value);
6491        }
6492
6493      }
6494
6495      @Override
6496      public Base setProperty(String name, Base value) throws FHIRException {
6497        if (name.equals("type")) {
6498          this.type = castToCode(value); // CodeType
6499        } else if (name.equals("profile")) {
6500          this.profile = castToCanonical(value); // CanonicalType
6501        } else
6502          return super.setProperty(name, value);
6503        return value;
6504      }
6505
6506      @Override
6507      public Base makeProperty(int hash, String name) throws FHIRException {
6508        switch (hash) {
6509        case 3575610:  return getTypeElement();
6510        case -309425751:  return getProfileElement();
6511        default: return super.makeProperty(hash, name);
6512        }
6513
6514      }
6515
6516      @Override
6517      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6518        switch (hash) {
6519        case 3575610: /*type*/ return new String[] {"code"};
6520        case -309425751: /*profile*/ return new String[] {"canonical"};
6521        default: return super.getTypesForProperty(hash, name);
6522        }
6523
6524      }
6525
6526      @Override
6527      public Base addChild(String name) throws FHIRException {
6528        if (name.equals("type")) {
6529          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.type");
6530        }
6531        else if (name.equals("profile")) {
6532          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.profile");
6533        }
6534        else
6535          return super.addChild(name);
6536      }
6537
6538      public ImplementationGuideGlobalComponent copy() {
6539        ImplementationGuideGlobalComponent dst = new ImplementationGuideGlobalComponent();
6540        copyValues(dst);
6541        dst.type = type == null ? null : type.copy();
6542        dst.profile = profile == null ? null : profile.copy();
6543        return dst;
6544      }
6545
6546      @Override
6547      public boolean equalsDeep(Base other_) {
6548        if (!super.equalsDeep(other_))
6549          return false;
6550        if (!(other_ instanceof ImplementationGuideGlobalComponent))
6551          return false;
6552        ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
6553        return compareDeep(type, o.type, true) && compareDeep(profile, o.profile, true);
6554      }
6555
6556      @Override
6557      public boolean equalsShallow(Base other_) {
6558        if (!super.equalsShallow(other_))
6559          return false;
6560        if (!(other_ instanceof ImplementationGuideGlobalComponent))
6561          return false;
6562        ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
6563        return compareValues(type, o.type, true);
6564      }
6565
6566      public boolean isEmpty() {
6567        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, profile);
6568      }
6569
6570  public String fhirType() {
6571    return "ImplementationGuide.global";
6572
6573  }
6574
6575  }
6576
6577    @Block()
6578    public static class ImplementationGuideDefinitionComponent extends BackboneElement implements IBaseBackboneElement {
6579        /**
6580         * A logical group of resources. Logical groups can be used when building pages.
6581         */
6582        @Child(name = "package", type = {}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6583        @Description(shortDefinition="Grouping used to present related resources in the IG", formalDefinition="A logical group of resources. Logical groups can be used when building pages." )
6584        protected List<ImplementationGuideDefinitionPackageComponent> package_;
6585
6586        /**
6587         * A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.
6588         */
6589        @Child(name = "resource", type = {}, order=2, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6590        @Description(shortDefinition="Resource in the implementation guide", formalDefinition="A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource." )
6591        protected List<ImplementationGuideDefinitionResourceComponent> resource;
6592
6593        /**
6594         * A page / section in the implementation guide. The root page is the implementation guide home page.
6595         */
6596        @Child(name = "page", type = {}, order=3, min=0, max=1, modifier=false, summary=false)
6597        @Description(shortDefinition="Page/Section in the Guide", formalDefinition="A page / section in the implementation guide. The root page is the implementation guide home page." )
6598        protected ImplementationGuideDefinitionPageComponent page;
6599
6600        /**
6601         * Defines how IG is built by tools.
6602         */
6603        @Child(name = "parameter", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6604        @Description(shortDefinition="Defines how IG is built by tools", formalDefinition="Defines how IG is built by tools." )
6605        protected List<ImplementationGuideDefinitionParameterComponent> parameter;
6606
6607        /**
6608         * A template for building resources.
6609         */
6610        @Child(name = "template", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6611        @Description(shortDefinition="A template for building resources", formalDefinition="A template for building resources." )
6612        protected List<ImplementationGuideDefinitionTemplateComponent> template;
6613
6614        private static final long serialVersionUID = 1395079915L;
6615
6616    /**
6617     * Constructor
6618     */
6619      public ImplementationGuideDefinitionComponent() {
6620        super();
6621      }
6622
6623        /**
6624         * @return {@link #package_} (A logical group of resources. Logical groups can be used when building pages.)
6625         */
6626        public List<ImplementationGuideDefinitionPackageComponent> getPackage() { 
6627          if (this.package_ == null)
6628            this.package_ = new ArrayList<ImplementationGuideDefinitionPackageComponent>();
6629          return this.package_;
6630        }
6631
6632        /**
6633         * @return Returns a reference to <code>this</code> for easy method chaining
6634         */
6635        public ImplementationGuideDefinitionComponent setPackage(List<ImplementationGuideDefinitionPackageComponent> thePackage) { 
6636          this.package_ = thePackage;
6637          return this;
6638        }
6639
6640        public boolean hasPackage() { 
6641          if (this.package_ == null)
6642            return false;
6643          for (ImplementationGuideDefinitionPackageComponent item : this.package_)
6644            if (!item.isEmpty())
6645              return true;
6646          return false;
6647        }
6648
6649        public ImplementationGuideDefinitionPackageComponent addPackage() { //3
6650          ImplementationGuideDefinitionPackageComponent t = new ImplementationGuideDefinitionPackageComponent();
6651          if (this.package_ == null)
6652            this.package_ = new ArrayList<ImplementationGuideDefinitionPackageComponent>();
6653          this.package_.add(t);
6654          return t;
6655        }
6656
6657        public ImplementationGuideDefinitionComponent addPackage(ImplementationGuideDefinitionPackageComponent t) { //3
6658          if (t == null)
6659            return this;
6660          if (this.package_ == null)
6661            this.package_ = new ArrayList<ImplementationGuideDefinitionPackageComponent>();
6662          this.package_.add(t);
6663          return this;
6664        }
6665
6666        /**
6667         * @return The first repetition of repeating field {@link #package_}, creating it if it does not already exist
6668         */
6669        public ImplementationGuideDefinitionPackageComponent getPackageFirstRep() { 
6670          if (getPackage().isEmpty()) {
6671            addPackage();
6672          }
6673          return getPackage().get(0);
6674        }
6675
6676        /**
6677         * @return {@link #resource} (A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.)
6678         */
6679        public List<ImplementationGuideDefinitionResourceComponent> getResource() { 
6680          if (this.resource == null)
6681            this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
6682          return this.resource;
6683        }
6684
6685        /**
6686         * @return Returns a reference to <code>this</code> for easy method chaining
6687         */
6688        public ImplementationGuideDefinitionComponent setResource(List<ImplementationGuideDefinitionResourceComponent> theResource) { 
6689          this.resource = theResource;
6690          return this;
6691        }
6692
6693        public boolean hasResource() { 
6694          if (this.resource == null)
6695            return false;
6696          for (ImplementationGuideDefinitionResourceComponent item : this.resource)
6697            if (!item.isEmpty())
6698              return true;
6699          return false;
6700        }
6701
6702        public ImplementationGuideDefinitionResourceComponent addResource() { //3
6703          ImplementationGuideDefinitionResourceComponent t = new ImplementationGuideDefinitionResourceComponent();
6704          if (this.resource == null)
6705            this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
6706          this.resource.add(t);
6707          return t;
6708        }
6709
6710        public ImplementationGuideDefinitionComponent addResource(ImplementationGuideDefinitionResourceComponent t) { //3
6711          if (t == null)
6712            return this;
6713          if (this.resource == null)
6714            this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
6715          this.resource.add(t);
6716          return this;
6717        }
6718
6719        /**
6720         * @return The first repetition of repeating field {@link #resource}, creating it if it does not already exist
6721         */
6722        public ImplementationGuideDefinitionResourceComponent getResourceFirstRep() { 
6723          if (getResource().isEmpty()) {
6724            addResource();
6725          }
6726          return getResource().get(0);
6727        }
6728
6729        /**
6730         * @return {@link #page} (A page / section in the implementation guide. The root page is the implementation guide home page.)
6731         */
6732        public ImplementationGuideDefinitionPageComponent getPage() { 
6733          if (this.page == null)
6734            if (Configuration.errorOnAutoCreate())
6735              throw new Error("Attempt to auto-create ImplementationGuideDefinitionComponent.page");
6736            else if (Configuration.doAutoCreate())
6737              this.page = new ImplementationGuideDefinitionPageComponent(); // cc
6738          return this.page;
6739        }
6740
6741        public boolean hasPage() { 
6742          return this.page != null && !this.page.isEmpty();
6743        }
6744
6745        /**
6746         * @param value {@link #page} (A page / section in the implementation guide. The root page is the implementation guide home page.)
6747         */
6748        public ImplementationGuideDefinitionComponent setPage(ImplementationGuideDefinitionPageComponent value) { 
6749          this.page = value;
6750          return this;
6751        }
6752
6753        /**
6754         * @return {@link #parameter} (Defines how IG is built by tools.)
6755         */
6756        public List<ImplementationGuideDefinitionParameterComponent> getParameter() { 
6757          if (this.parameter == null)
6758            this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
6759          return this.parameter;
6760        }
6761
6762        /**
6763         * @return Returns a reference to <code>this</code> for easy method chaining
6764         */
6765        public ImplementationGuideDefinitionComponent setParameter(List<ImplementationGuideDefinitionParameterComponent> theParameter) { 
6766          this.parameter = theParameter;
6767          return this;
6768        }
6769
6770        public boolean hasParameter() { 
6771          if (this.parameter == null)
6772            return false;
6773          for (ImplementationGuideDefinitionParameterComponent item : this.parameter)
6774            if (!item.isEmpty())
6775              return true;
6776          return false;
6777        }
6778
6779        public ImplementationGuideDefinitionParameterComponent addParameter() { //3
6780          ImplementationGuideDefinitionParameterComponent t = new ImplementationGuideDefinitionParameterComponent();
6781          if (this.parameter == null)
6782            this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
6783          this.parameter.add(t);
6784          return t;
6785        }
6786
6787        public ImplementationGuideDefinitionComponent addParameter(ImplementationGuideDefinitionParameterComponent t) { //3
6788          if (t == null)
6789            return this;
6790          if (this.parameter == null)
6791            this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
6792          this.parameter.add(t);
6793          return this;
6794        }
6795
6796        /**
6797         * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist
6798         */
6799        public ImplementationGuideDefinitionParameterComponent getParameterFirstRep() { 
6800          if (getParameter().isEmpty()) {
6801            addParameter();
6802          }
6803          return getParameter().get(0);
6804        }
6805
6806        /**
6807         * @return {@link #template} (A template for building resources.)
6808         */
6809        public List<ImplementationGuideDefinitionTemplateComponent> getTemplate() { 
6810          if (this.template == null)
6811            this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
6812          return this.template;
6813        }
6814
6815        /**
6816         * @return Returns a reference to <code>this</code> for easy method chaining
6817         */
6818        public ImplementationGuideDefinitionComponent setTemplate(List<ImplementationGuideDefinitionTemplateComponent> theTemplate) { 
6819          this.template = theTemplate;
6820          return this;
6821        }
6822
6823        public boolean hasTemplate() { 
6824          if (this.template == null)
6825            return false;
6826          for (ImplementationGuideDefinitionTemplateComponent item : this.template)
6827            if (!item.isEmpty())
6828              return true;
6829          return false;
6830        }
6831
6832        public ImplementationGuideDefinitionTemplateComponent addTemplate() { //3
6833          ImplementationGuideDefinitionTemplateComponent t = new ImplementationGuideDefinitionTemplateComponent();
6834          if (this.template == null)
6835            this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
6836          this.template.add(t);
6837          return t;
6838        }
6839
6840        public ImplementationGuideDefinitionComponent addTemplate(ImplementationGuideDefinitionTemplateComponent t) { //3
6841          if (t == null)
6842            return this;
6843          if (this.template == null)
6844            this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
6845          this.template.add(t);
6846          return this;
6847        }
6848
6849        /**
6850         * @return The first repetition of repeating field {@link #template}, creating it if it does not already exist
6851         */
6852        public ImplementationGuideDefinitionTemplateComponent getTemplateFirstRep() { 
6853          if (getTemplate().isEmpty()) {
6854            addTemplate();
6855          }
6856          return getTemplate().get(0);
6857        }
6858
6859        protected void listChildren(List<Property> children) {
6860          super.listChildren(children);
6861          children.add(new Property("package", "", "A logical group of resources. Logical groups can be used when building pages.", 0, java.lang.Integer.MAX_VALUE, package_));
6862          children.add(new Property("resource", "", "A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.", 0, java.lang.Integer.MAX_VALUE, resource));
6863          children.add(new Property("page", "", "A page / section in the implementation guide. The root page is the implementation guide home page.", 0, 1, page));
6864          children.add(new Property("parameter", "", "Defines how IG is built by tools.", 0, java.lang.Integer.MAX_VALUE, parameter));
6865          children.add(new Property("template", "", "A template for building resources.", 0, java.lang.Integer.MAX_VALUE, template));
6866        }
6867
6868        @Override
6869        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6870          switch (_hash) {
6871          case -807062458: /*package*/  return new Property("package", "", "A logical group of resources. Logical groups can be used when building pages.", 0, java.lang.Integer.MAX_VALUE, package_);
6872          case -341064690: /*resource*/  return new Property("resource", "", "A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.", 0, java.lang.Integer.MAX_VALUE, resource);
6873          case 3433103: /*page*/  return new Property("page", "", "A page / section in the implementation guide. The root page is the implementation guide home page.", 0, 1, page);
6874          case 1954460585: /*parameter*/  return new Property("parameter", "", "Defines how IG is built by tools.", 0, java.lang.Integer.MAX_VALUE, parameter);
6875          case -1321546630: /*template*/  return new Property("template", "", "A template for building resources.", 0, java.lang.Integer.MAX_VALUE, template);
6876          default: return super.getNamedProperty(_hash, _name, _checkValid);
6877          }
6878
6879        }
6880
6881      @Override
6882      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6883        switch (hash) {
6884        case -807062458: /*package*/ return this.package_ == null ? new Base[0] : this.package_.toArray(new Base[this.package_.size()]); // ImplementationGuideDefinitionPackageComponent
6885        case -341064690: /*resource*/ return this.resource == null ? new Base[0] : this.resource.toArray(new Base[this.resource.size()]); // ImplementationGuideDefinitionResourceComponent
6886        case 3433103: /*page*/ return this.page == null ? new Base[0] : new Base[] {this.page}; // ImplementationGuideDefinitionPageComponent
6887        case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // ImplementationGuideDefinitionParameterComponent
6888        case -1321546630: /*template*/ return this.template == null ? new Base[0] : this.template.toArray(new Base[this.template.size()]); // ImplementationGuideDefinitionTemplateComponent
6889        default: return super.getProperty(hash, name, checkValid);
6890        }
6891
6892      }
6893
6894      @Override
6895      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6896        switch (hash) {
6897        case -807062458: // package
6898          this.getPackage().add((ImplementationGuideDefinitionPackageComponent) value); // ImplementationGuideDefinitionPackageComponent
6899          return value;
6900        case -341064690: // resource
6901          this.getResource().add((ImplementationGuideDefinitionResourceComponent) value); // ImplementationGuideDefinitionResourceComponent
6902          return value;
6903        case 3433103: // page
6904          this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
6905          return value;
6906        case 1954460585: // parameter
6907          this.getParameter().add((ImplementationGuideDefinitionParameterComponent) value); // ImplementationGuideDefinitionParameterComponent
6908          return value;
6909        case -1321546630: // template
6910          this.getTemplate().add((ImplementationGuideDefinitionTemplateComponent) value); // ImplementationGuideDefinitionTemplateComponent
6911          return value;
6912        default: return super.setProperty(hash, name, value);
6913        }
6914
6915      }
6916
6917      @Override
6918      public Base setProperty(String name, Base value) throws FHIRException {
6919        if (name.equals("package")) {
6920          this.getPackage().add((ImplementationGuideDefinitionPackageComponent) value);
6921        } else if (name.equals("resource")) {
6922          this.getResource().add((ImplementationGuideDefinitionResourceComponent) value);
6923        } else if (name.equals("page")) {
6924          this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
6925        } else if (name.equals("parameter")) {
6926          this.getParameter().add((ImplementationGuideDefinitionParameterComponent) value);
6927        } else if (name.equals("template")) {
6928          this.getTemplate().add((ImplementationGuideDefinitionTemplateComponent) value);
6929        } else
6930          return super.setProperty(name, value);
6931        return value;
6932      }
6933
6934      @Override
6935      public Base makeProperty(int hash, String name) throws FHIRException {
6936        switch (hash) {
6937        case -807062458:  return addPackage(); 
6938        case -341064690:  return addResource(); 
6939        case 3433103:  return getPage(); 
6940        case 1954460585:  return addParameter(); 
6941        case -1321546630:  return addTemplate(); 
6942        default: return super.makeProperty(hash, name);
6943        }
6944
6945      }
6946
6947      @Override
6948      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6949        switch (hash) {
6950        case -807062458: /*package*/ return new String[] {};
6951        case -341064690: /*resource*/ return new String[] {};
6952        case 3433103: /*page*/ return new String[] {};
6953        case 1954460585: /*parameter*/ return new String[] {};
6954        case -1321546630: /*template*/ return new String[] {};
6955        default: return super.getTypesForProperty(hash, name);
6956        }
6957
6958      }
6959
6960      @Override
6961      public Base addChild(String name) throws FHIRException {
6962        if (name.equals("package")) {
6963          return addPackage();
6964        }
6965        else if (name.equals("resource")) {
6966          return addResource();
6967        }
6968        else if (name.equals("page")) {
6969          this.page = new ImplementationGuideDefinitionPageComponent();
6970          return this.page;
6971        }
6972        else if (name.equals("parameter")) {
6973          return addParameter();
6974        }
6975        else if (name.equals("template")) {
6976          return addTemplate();
6977        }
6978        else
6979          return super.addChild(name);
6980      }
6981
6982      public ImplementationGuideDefinitionComponent copy() {
6983        ImplementationGuideDefinitionComponent dst = new ImplementationGuideDefinitionComponent();
6984        copyValues(dst);
6985        if (package_ != null) {
6986          dst.package_ = new ArrayList<ImplementationGuideDefinitionPackageComponent>();
6987          for (ImplementationGuideDefinitionPackageComponent i : package_)
6988            dst.package_.add(i.copy());
6989        };
6990        if (resource != null) {
6991          dst.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
6992          for (ImplementationGuideDefinitionResourceComponent i : resource)
6993            dst.resource.add(i.copy());
6994        };
6995        dst.page = page == null ? null : page.copy();
6996        if (parameter != null) {
6997          dst.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
6998          for (ImplementationGuideDefinitionParameterComponent i : parameter)
6999            dst.parameter.add(i.copy());
7000        };
7001        if (template != null) {
7002          dst.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
7003          for (ImplementationGuideDefinitionTemplateComponent i : template)
7004            dst.template.add(i.copy());
7005        };
7006        return dst;
7007      }
7008
7009      @Override
7010      public boolean equalsDeep(Base other_) {
7011        if (!super.equalsDeep(other_))
7012          return false;
7013        if (!(other_ instanceof ImplementationGuideDefinitionComponent))
7014          return false;
7015        ImplementationGuideDefinitionComponent o = (ImplementationGuideDefinitionComponent) other_;
7016        return compareDeep(package_, o.package_, true) && compareDeep(resource, o.resource, true) && compareDeep(page, o.page, true)
7017           && compareDeep(parameter, o.parameter, true) && compareDeep(template, o.template, true);
7018      }
7019
7020      @Override
7021      public boolean equalsShallow(Base other_) {
7022        if (!super.equalsShallow(other_))
7023          return false;
7024        if (!(other_ instanceof ImplementationGuideDefinitionComponent))
7025          return false;
7026        ImplementationGuideDefinitionComponent o = (ImplementationGuideDefinitionComponent) other_;
7027        return true;
7028      }
7029
7030      public boolean isEmpty() {
7031        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(package_, resource, page
7032          , parameter, template);
7033      }
7034
7035  public String fhirType() {
7036    return "ImplementationGuide.definition";
7037
7038  }
7039
7040  }
7041
7042    @Block()
7043    public static class ImplementationGuideDefinitionPackageComponent extends BackboneElement implements IBaseBackboneElement {
7044        /**
7045         * The human-readable title to display for the package of resources when rendering the implementation guide.
7046         */
7047        @Child(name = "name", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
7048        @Description(shortDefinition="Descriptive name for the package", formalDefinition="The human-readable title to display for the package of resources when rendering the implementation guide." )
7049        protected StringType name;
7050
7051        /**
7052         * Human readable text describing the package.
7053         */
7054        @Child(name = "description", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
7055        @Description(shortDefinition="Human readable text describing the package", formalDefinition="Human readable text describing the package." )
7056        protected StringType description;
7057
7058        private static final long serialVersionUID = -1105523499L;
7059
7060    /**
7061     * Constructor
7062     */
7063      public ImplementationGuideDefinitionPackageComponent() {
7064        super();
7065      }
7066
7067    /**
7068     * Constructor
7069     */
7070      public ImplementationGuideDefinitionPackageComponent(StringType name) {
7071        super();
7072        this.name = name;
7073      }
7074
7075        /**
7076         * @return {@link #name} (The human-readable title to display for the package of resources when rendering the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
7077         */
7078        public StringType getNameElement() { 
7079          if (this.name == null)
7080            if (Configuration.errorOnAutoCreate())
7081              throw new Error("Attempt to auto-create ImplementationGuideDefinitionPackageComponent.name");
7082            else if (Configuration.doAutoCreate())
7083              this.name = new StringType(); // bb
7084          return this.name;
7085        }
7086
7087        public boolean hasNameElement() { 
7088          return this.name != null && !this.name.isEmpty();
7089        }
7090
7091        public boolean hasName() { 
7092          return this.name != null && !this.name.isEmpty();
7093        }
7094
7095        /**
7096         * @param value {@link #name} (The human-readable title to display for the package of resources when rendering the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
7097         */
7098        public ImplementationGuideDefinitionPackageComponent setNameElement(StringType value) { 
7099          this.name = value;
7100          return this;
7101        }
7102
7103        /**
7104         * @return The human-readable title to display for the package of resources when rendering the implementation guide.
7105         */
7106        public String getName() { 
7107          return this.name == null ? null : this.name.getValue();
7108        }
7109
7110        /**
7111         * @param value The human-readable title to display for the package of resources when rendering the implementation guide.
7112         */
7113        public ImplementationGuideDefinitionPackageComponent setName(String value) { 
7114            if (this.name == null)
7115              this.name = new StringType();
7116            this.name.setValue(value);
7117          return this;
7118        }
7119
7120        /**
7121         * @return {@link #description} (Human readable text describing the package.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
7122         */
7123        public StringType getDescriptionElement() { 
7124          if (this.description == null)
7125            if (Configuration.errorOnAutoCreate())
7126              throw new Error("Attempt to auto-create ImplementationGuideDefinitionPackageComponent.description");
7127            else if (Configuration.doAutoCreate())
7128              this.description = new StringType(); // bb
7129          return this.description;
7130        }
7131
7132        public boolean hasDescriptionElement() { 
7133          return this.description != null && !this.description.isEmpty();
7134        }
7135
7136        public boolean hasDescription() { 
7137          return this.description != null && !this.description.isEmpty();
7138        }
7139
7140        /**
7141         * @param value {@link #description} (Human readable text describing the package.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
7142         */
7143        public ImplementationGuideDefinitionPackageComponent setDescriptionElement(StringType value) { 
7144          this.description = value;
7145          return this;
7146        }
7147
7148        /**
7149         * @return Human readable text describing the package.
7150         */
7151        public String getDescription() { 
7152          return this.description == null ? null : this.description.getValue();
7153        }
7154
7155        /**
7156         * @param value Human readable text describing the package.
7157         */
7158        public ImplementationGuideDefinitionPackageComponent setDescription(String value) { 
7159          if (Utilities.noString(value))
7160            this.description = null;
7161          else {
7162            if (this.description == null)
7163              this.description = new StringType();
7164            this.description.setValue(value);
7165          }
7166          return this;
7167        }
7168
7169        protected void listChildren(List<Property> children) {
7170          super.listChildren(children);
7171          children.add(new Property("name", "string", "The human-readable title to display for the package of resources when rendering the implementation guide.", 0, 1, name));
7172          children.add(new Property("description", "string", "Human readable text describing the package.", 0, 1, description));
7173        }
7174
7175        @Override
7176        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
7177          switch (_hash) {
7178          case 3373707: /*name*/  return new Property("name", "string", "The human-readable title to display for the package of resources when rendering the implementation guide.", 0, 1, name);
7179          case -1724546052: /*description*/  return new Property("description", "string", "Human readable text describing the package.", 0, 1, description);
7180          default: return super.getNamedProperty(_hash, _name, _checkValid);
7181          }
7182
7183        }
7184
7185      @Override
7186      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
7187        switch (hash) {
7188        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
7189        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
7190        default: return super.getProperty(hash, name, checkValid);
7191        }
7192
7193      }
7194
7195      @Override
7196      public Base setProperty(int hash, String name, Base value) throws FHIRException {
7197        switch (hash) {
7198        case 3373707: // name
7199          this.name = castToString(value); // StringType
7200          return value;
7201        case -1724546052: // description
7202          this.description = castToString(value); // StringType
7203          return value;
7204        default: return super.setProperty(hash, name, value);
7205        }
7206
7207      }
7208
7209      @Override
7210      public Base setProperty(String name, Base value) throws FHIRException {
7211        if (name.equals("name")) {
7212          this.name = castToString(value); // StringType
7213        } else if (name.equals("description")) {
7214          this.description = castToString(value); // StringType
7215        } else
7216          return super.setProperty(name, value);
7217        return value;
7218      }
7219
7220      @Override
7221      public Base makeProperty(int hash, String name) throws FHIRException {
7222        switch (hash) {
7223        case 3373707:  return getNameElement();
7224        case -1724546052:  return getDescriptionElement();
7225        default: return super.makeProperty(hash, name);
7226        }
7227
7228      }
7229
7230      @Override
7231      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
7232        switch (hash) {
7233        case 3373707: /*name*/ return new String[] {"string"};
7234        case -1724546052: /*description*/ return new String[] {"string"};
7235        default: return super.getTypesForProperty(hash, name);
7236        }
7237
7238      }
7239
7240      @Override
7241      public Base addChild(String name) throws FHIRException {
7242        if (name.equals("name")) {
7243          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.name");
7244        }
7245        else if (name.equals("description")) {
7246          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.description");
7247        }
7248        else
7249          return super.addChild(name);
7250      }
7251
7252      public ImplementationGuideDefinitionPackageComponent copy() {
7253        ImplementationGuideDefinitionPackageComponent dst = new ImplementationGuideDefinitionPackageComponent();
7254        copyValues(dst);
7255        dst.name = name == null ? null : name.copy();
7256        dst.description = description == null ? null : description.copy();
7257        return dst;
7258      }
7259
7260      @Override
7261      public boolean equalsDeep(Base other_) {
7262        if (!super.equalsDeep(other_))
7263          return false;
7264        if (!(other_ instanceof ImplementationGuideDefinitionPackageComponent))
7265          return false;
7266        ImplementationGuideDefinitionPackageComponent o = (ImplementationGuideDefinitionPackageComponent) other_;
7267        return compareDeep(name, o.name, true) && compareDeep(description, o.description, true);
7268      }
7269
7270      @Override
7271      public boolean equalsShallow(Base other_) {
7272        if (!super.equalsShallow(other_))
7273          return false;
7274        if (!(other_ instanceof ImplementationGuideDefinitionPackageComponent))
7275          return false;
7276        ImplementationGuideDefinitionPackageComponent o = (ImplementationGuideDefinitionPackageComponent) other_;
7277        return compareValues(name, o.name, true) && compareValues(description, o.description, true);
7278      }
7279
7280      public boolean isEmpty() {
7281        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, description);
7282      }
7283
7284  public String fhirType() {
7285    return "ImplementationGuide.definition.package";
7286
7287  }
7288
7289  }
7290
7291    @Block()
7292    public static class ImplementationGuideDefinitionResourceComponent extends BackboneElement implements IBaseBackboneElement {
7293        /**
7294         * Where this resource is found.
7295         */
7296        @Child(name = "reference", type = {Reference.class}, order=1, min=1, max=1, modifier=false, summary=false)
7297        @Description(shortDefinition="Location of the resource", formalDefinition="Where this resource is found." )
7298        protected Reference reference;
7299
7300        /**
7301         * The actual object that is the target of the reference (Where this resource is found.)
7302         */
7303        protected Resource referenceTarget;
7304
7305        /**
7306         * A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).
7307         */
7308        @Child(name = "name", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
7309        @Description(shortDefinition="Human Name for the resource", formalDefinition="A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name)." )
7310        protected StringType name;
7311
7312        /**
7313         * A description of the reason that a resource has been included in the implementation guide.
7314         */
7315        @Child(name = "description", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
7316        @Description(shortDefinition="Reason why included in guide", formalDefinition="A description of the reason that a resource has been included in the implementation guide." )
7317        protected StringType description;
7318
7319        /**
7320         * If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.
7321         */
7322        @Child(name = "example", type = {BooleanType.class, CanonicalType.class}, order=4, min=0, max=1, modifier=false, summary=false)
7323        @Description(shortDefinition="Is an example/What is this an example of?", formalDefinition="If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile." )
7324        protected Type example;
7325
7326        /**
7327         * Reference to the id of the pack this resource appears in.
7328         */
7329        @Child(name = "package", type = {IdType.class}, order=5, min=0, max=1, modifier=false, summary=false)
7330        @Description(shortDefinition="Pack this is part of", formalDefinition="Reference to the id of the pack this resource appears in." )
7331        protected IdType package_;
7332
7333        private static final long serialVersionUID = 1199251259L;
7334
7335    /**
7336     * Constructor
7337     */
7338      public ImplementationGuideDefinitionResourceComponent() {
7339        super();
7340      }
7341
7342    /**
7343     * Constructor
7344     */
7345      public ImplementationGuideDefinitionResourceComponent(Reference reference) {
7346        super();
7347        this.reference = reference;
7348      }
7349
7350        /**
7351         * @return {@link #reference} (Where this resource is found.)
7352         */
7353        public Reference getReference() { 
7354          if (this.reference == null)
7355            if (Configuration.errorOnAutoCreate())
7356              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.reference");
7357            else if (Configuration.doAutoCreate())
7358              this.reference = new Reference(); // cc
7359          return this.reference;
7360        }
7361
7362        public boolean hasReference() { 
7363          return this.reference != null && !this.reference.isEmpty();
7364        }
7365
7366        /**
7367         * @param value {@link #reference} (Where this resource is found.)
7368         */
7369        public ImplementationGuideDefinitionResourceComponent setReference(Reference value) { 
7370          this.reference = value;
7371          return this;
7372        }
7373
7374        /**
7375         * @return {@link #reference} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Where this resource is found.)
7376         */
7377        public Resource getReferenceTarget() { 
7378          return this.referenceTarget;
7379        }
7380
7381        /**
7382         * @param value {@link #reference} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Where this resource is found.)
7383         */
7384        public ImplementationGuideDefinitionResourceComponent setReferenceTarget(Resource value) { 
7385          this.referenceTarget = value;
7386          return this;
7387        }
7388
7389        /**
7390         * @return {@link #name} (A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
7391         */
7392        public StringType getNameElement() { 
7393          if (this.name == null)
7394            if (Configuration.errorOnAutoCreate())
7395              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.name");
7396            else if (Configuration.doAutoCreate())
7397              this.name = new StringType(); // bb
7398          return this.name;
7399        }
7400
7401        public boolean hasNameElement() { 
7402          return this.name != null && !this.name.isEmpty();
7403        }
7404
7405        public boolean hasName() { 
7406          return this.name != null && !this.name.isEmpty();
7407        }
7408
7409        /**
7410         * @param value {@link #name} (A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
7411         */
7412        public ImplementationGuideDefinitionResourceComponent setNameElement(StringType value) { 
7413          this.name = value;
7414          return this;
7415        }
7416
7417        /**
7418         * @return A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).
7419         */
7420        public String getName() { 
7421          return this.name == null ? null : this.name.getValue();
7422        }
7423
7424        /**
7425         * @param value A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).
7426         */
7427        public ImplementationGuideDefinitionResourceComponent setName(String value) { 
7428          if (Utilities.noString(value))
7429            this.name = null;
7430          else {
7431            if (this.name == null)
7432              this.name = new StringType();
7433            this.name.setValue(value);
7434          }
7435          return this;
7436        }
7437
7438        /**
7439         * @return {@link #description} (A description of the reason that a resource has been included in the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
7440         */
7441        public StringType getDescriptionElement() { 
7442          if (this.description == null)
7443            if (Configuration.errorOnAutoCreate())
7444              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.description");
7445            else if (Configuration.doAutoCreate())
7446              this.description = new StringType(); // bb
7447          return this.description;
7448        }
7449
7450        public boolean hasDescriptionElement() { 
7451          return this.description != null && !this.description.isEmpty();
7452        }
7453
7454        public boolean hasDescription() { 
7455          return this.description != null && !this.description.isEmpty();
7456        }
7457
7458        /**
7459         * @param value {@link #description} (A description of the reason that a resource has been included in the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
7460         */
7461        public ImplementationGuideDefinitionResourceComponent setDescriptionElement(StringType value) { 
7462          this.description = value;
7463          return this;
7464        }
7465
7466        /**
7467         * @return A description of the reason that a resource has been included in the implementation guide.
7468         */
7469        public String getDescription() { 
7470          return this.description == null ? null : this.description.getValue();
7471        }
7472
7473        /**
7474         * @param value A description of the reason that a resource has been included in the implementation guide.
7475         */
7476        public ImplementationGuideDefinitionResourceComponent setDescription(String value) { 
7477          if (Utilities.noString(value))
7478            this.description = null;
7479          else {
7480            if (this.description == null)
7481              this.description = new StringType();
7482            this.description.setValue(value);
7483          }
7484          return this;
7485        }
7486
7487        /**
7488         * @return {@link #example} (If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.)
7489         */
7490        public Type getExample() { 
7491          return this.example;
7492        }
7493
7494        /**
7495         * @return {@link #example} (If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.)
7496         */
7497        public BooleanType getExampleBooleanType() throws FHIRException { 
7498          if (this.example == null)
7499            return null;
7500          if (!(this.example instanceof BooleanType))
7501            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.example.getClass().getName()+" was encountered");
7502          return (BooleanType) this.example;
7503        }
7504
7505        public boolean hasExampleBooleanType() { 
7506          return this != null && this.example instanceof BooleanType;
7507        }
7508
7509        /**
7510         * @return {@link #example} (If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.)
7511         */
7512        public CanonicalType getExampleCanonicalType() throws FHIRException { 
7513          if (this.example == null)
7514            return null;
7515          if (!(this.example instanceof CanonicalType))
7516            throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.example.getClass().getName()+" was encountered");
7517          return (CanonicalType) this.example;
7518        }
7519
7520        public boolean hasExampleCanonicalType() { 
7521          return this != null && this.example instanceof CanonicalType;
7522        }
7523
7524        public boolean hasExample() { 
7525          return this.example != null && !this.example.isEmpty();
7526        }
7527
7528        /**
7529         * @param value {@link #example} (If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.)
7530         */
7531        public ImplementationGuideDefinitionResourceComponent setExample(Type value) { 
7532          if (value != null && !(value instanceof BooleanType || value instanceof CanonicalType))
7533            throw new Error("Not the right type for ImplementationGuide.definition.resource.example[x]: "+value.fhirType());
7534          this.example = value;
7535          return this;
7536        }
7537
7538        /**
7539         * @return {@link #package_} (Reference to the id of the pack this resource appears in.). This is the underlying object with id, value and extensions. The accessor "getPackage" gives direct access to the value
7540         */
7541        public IdType getPackageElement() { 
7542          if (this.package_ == null)
7543            if (Configuration.errorOnAutoCreate())
7544              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.package_");
7545            else if (Configuration.doAutoCreate())
7546              this.package_ = new IdType(); // bb
7547          return this.package_;
7548        }
7549
7550        public boolean hasPackageElement() { 
7551          return this.package_ != null && !this.package_.isEmpty();
7552        }
7553
7554        public boolean hasPackage() { 
7555          return this.package_ != null && !this.package_.isEmpty();
7556        }
7557
7558        /**
7559         * @param value {@link #package_} (Reference to the id of the pack this resource appears in.). This is the underlying object with id, value and extensions. The accessor "getPackage" gives direct access to the value
7560         */
7561        public ImplementationGuideDefinitionResourceComponent setPackageElement(IdType value) { 
7562          this.package_ = value;
7563          return this;
7564        }
7565
7566        /**
7567         * @return Reference to the id of the pack this resource appears in.
7568         */
7569        public String getPackage() { 
7570          return this.package_ == null ? null : this.package_.getValue();
7571        }
7572
7573        /**
7574         * @param value Reference to the id of the pack this resource appears in.
7575         */
7576        public ImplementationGuideDefinitionResourceComponent setPackage(String value) { 
7577          if (Utilities.noString(value))
7578            this.package_ = null;
7579          else {
7580            if (this.package_ == null)
7581              this.package_ = new IdType();
7582            this.package_.setValue(value);
7583          }
7584          return this;
7585        }
7586
7587        protected void listChildren(List<Property> children) {
7588          super.listChildren(children);
7589          children.add(new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference));
7590          children.add(new Property("name", "string", "A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).", 0, 1, name));
7591          children.add(new Property("description", "string", "A description of the reason that a resource has been included in the implementation guide.", 0, 1, description));
7592          children.add(new Property("example[x]", "boolean|canonical(StructureDefinition)", "If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.", 0, 1, example));
7593          children.add(new Property("package", "id", "Reference to the id of the pack this resource appears in.", 0, 1, package_));
7594        }
7595
7596        @Override
7597        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
7598          switch (_hash) {
7599          case -925155509: /*reference*/  return new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference);
7600          case 3373707: /*name*/  return new Property("name", "string", "A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).", 0, 1, name);
7601          case -1724546052: /*description*/  return new Property("description", "string", "A description of the reason that a resource has been included in the implementation guide.", 0, 1, description);
7602          case -2002328874: /*example[x]*/  return new Property("example[x]", "boolean|canonical(StructureDefinition)", "If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.", 0, 1, example);
7603          case -1322970774: /*example*/  return new Property("example[x]", "boolean|canonical(StructureDefinition)", "If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.", 0, 1, example);
7604          case 159803230: /*exampleBoolean*/  return new Property("example[x]", "boolean|canonical(StructureDefinition)", "If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.", 0, 1, example);
7605          case 2016979626: /*exampleCanonical*/  return new Property("example[x]", "boolean|canonical(StructureDefinition)", "If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.", 0, 1, example);
7606          case -807062458: /*package*/  return new Property("package", "id", "Reference to the id of the pack this resource appears in.", 0, 1, package_);
7607          default: return super.getNamedProperty(_hash, _name, _checkValid);
7608          }
7609
7610        }
7611
7612      @Override
7613      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
7614        switch (hash) {
7615        case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // Reference
7616        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
7617        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
7618        case -1322970774: /*example*/ return this.example == null ? new Base[0] : new Base[] {this.example}; // Type
7619        case -807062458: /*package*/ return this.package_ == null ? new Base[0] : new Base[] {this.package_}; // IdType
7620        default: return super.getProperty(hash, name, checkValid);
7621        }
7622
7623      }
7624
7625      @Override
7626      public Base setProperty(int hash, String name, Base value) throws FHIRException {
7627        switch (hash) {
7628        case -925155509: // reference
7629          this.reference = castToReference(value); // Reference
7630          return value;
7631        case 3373707: // name
7632          this.name = castToString(value); // StringType
7633          return value;
7634        case -1724546052: // description
7635          this.description = castToString(value); // StringType
7636          return value;
7637        case -1322970774: // example
7638          this.example = castToType(value); // Type
7639          return value;
7640        case -807062458: // package
7641          this.package_ = castToId(value); // IdType
7642          return value;
7643        default: return super.setProperty(hash, name, value);
7644        }
7645
7646      }
7647
7648      @Override
7649      public Base setProperty(String name, Base value) throws FHIRException {
7650        if (name.equals("reference")) {
7651          this.reference = castToReference(value); // Reference
7652        } else if (name.equals("name")) {
7653          this.name = castToString(value); // StringType
7654        } else if (name.equals("description")) {
7655          this.description = castToString(value); // StringType
7656        } else if (name.equals("example[x]")) {
7657          this.example = castToType(value); // Type
7658        } else if (name.equals("package")) {
7659          this.package_ = castToId(value); // IdType
7660        } else
7661          return super.setProperty(name, value);
7662        return value;
7663      }
7664
7665      @Override
7666      public Base makeProperty(int hash, String name) throws FHIRException {
7667        switch (hash) {
7668        case -925155509:  return getReference(); 
7669        case 3373707:  return getNameElement();
7670        case -1724546052:  return getDescriptionElement();
7671        case -2002328874:  return getExample(); 
7672        case -1322970774:  return getExample(); 
7673        case -807062458:  return getPackageElement();
7674        default: return super.makeProperty(hash, name);
7675        }
7676
7677      }
7678
7679      @Override
7680      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
7681        switch (hash) {
7682        case -925155509: /*reference*/ return new String[] {"Reference"};
7683        case 3373707: /*name*/ return new String[] {"string"};
7684        case -1724546052: /*description*/ return new String[] {"string"};
7685        case -1322970774: /*example*/ return new String[] {"boolean", "canonical"};
7686        case -807062458: /*package*/ return new String[] {"id"};
7687        default: return super.getTypesForProperty(hash, name);
7688        }
7689
7690      }
7691
7692      @Override
7693      public Base addChild(String name) throws FHIRException {
7694        if (name.equals("reference")) {
7695          this.reference = new Reference();
7696          return this.reference;
7697        }
7698        else if (name.equals("name")) {
7699          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.name");
7700        }
7701        else if (name.equals("description")) {
7702          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.description");
7703        }
7704        else if (name.equals("exampleBoolean")) {
7705          this.example = new BooleanType();
7706          return this.example;
7707        }
7708        else if (name.equals("exampleCanonical")) {
7709          this.example = new CanonicalType();
7710          return this.example;
7711        }
7712        else if (name.equals("package")) {
7713          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.package");
7714        }
7715        else
7716          return super.addChild(name);
7717      }
7718
7719      public ImplementationGuideDefinitionResourceComponent copy() {
7720        ImplementationGuideDefinitionResourceComponent dst = new ImplementationGuideDefinitionResourceComponent();
7721        copyValues(dst);
7722        dst.reference = reference == null ? null : reference.copy();
7723        dst.name = name == null ? null : name.copy();
7724        dst.description = description == null ? null : description.copy();
7725        dst.example = example == null ? null : example.copy();
7726        dst.package_ = package_ == null ? null : package_.copy();
7727        return dst;
7728      }
7729
7730      @Override
7731      public boolean equalsDeep(Base other_) {
7732        if (!super.equalsDeep(other_))
7733          return false;
7734        if (!(other_ instanceof ImplementationGuideDefinitionResourceComponent))
7735          return false;
7736        ImplementationGuideDefinitionResourceComponent o = (ImplementationGuideDefinitionResourceComponent) other_;
7737        return compareDeep(reference, o.reference, true) && compareDeep(name, o.name, true) && compareDeep(description, o.description, true)
7738           && compareDeep(example, o.example, true) && compareDeep(package_, o.package_, true);
7739      }
7740
7741      @Override
7742      public boolean equalsShallow(Base other_) {
7743        if (!super.equalsShallow(other_))
7744          return false;
7745        if (!(other_ instanceof ImplementationGuideDefinitionResourceComponent))
7746          return false;
7747        ImplementationGuideDefinitionResourceComponent o = (ImplementationGuideDefinitionResourceComponent) other_;
7748        return compareValues(name, o.name, true) && compareValues(description, o.description, true) && compareValues(package_, o.package_, true)
7749          ;
7750      }
7751
7752      public boolean isEmpty() {
7753        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, name, description
7754          , example, package_);
7755      }
7756
7757  public String fhirType() {
7758    return "ImplementationGuide.definition.resource";
7759
7760  }
7761
7762  }
7763
7764    @Block()
7765    public static class ImplementationGuideDefinitionPageComponent extends BackboneElement implements IBaseBackboneElement {
7766        /**
7767         * The source address for the page.
7768         */
7769        @Child(name = "name", type = {UrlType.class, Binary.class}, order=1, min=1, max=1, modifier=false, summary=false)
7770        @Description(shortDefinition="Where to find that page", formalDefinition="The source address for the page." )
7771        protected Type name;
7772
7773        /**
7774         * A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.
7775         */
7776        @Child(name = "title", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
7777        @Description(shortDefinition="Short title shown for navigational assistance", formalDefinition="A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc." )
7778        protected StringType title;
7779
7780        /**
7781         * A code that indicates how the page is generated.
7782         */
7783        @Child(name = "generation", type = {CodeType.class}, order=3, min=1, max=1, modifier=false, summary=false)
7784        @Description(shortDefinition="html | markdown | xml | generated", formalDefinition="A code that indicates how the page is generated." )
7785        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/guide-page-generation")
7786        protected Enumeration<GuidePageGeneration> generation;
7787
7788        /**
7789         * Nested Pages/Sections under this page.
7790         */
7791        @Child(name = "page", type = {ImplementationGuideDefinitionPageComponent.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
7792        @Description(shortDefinition="Nested Pages / Sections", formalDefinition="Nested Pages/Sections under this page." )
7793        protected List<ImplementationGuideDefinitionPageComponent> page;
7794
7795        private static final long serialVersionUID = -365655658L;
7796
7797    /**
7798     * Constructor
7799     */
7800      public ImplementationGuideDefinitionPageComponent() {
7801        super();
7802      }
7803
7804    /**
7805     * Constructor
7806     */
7807      public ImplementationGuideDefinitionPageComponent(Type name, StringType title, Enumeration<GuidePageGeneration> generation) {
7808        super();
7809        this.name = name;
7810        this.title = title;
7811        this.generation = generation;
7812      }
7813
7814        /**
7815         * @return {@link #name} (The source address for the page.)
7816         */
7817        public Type getName() { 
7818          return this.name;
7819        }
7820
7821        /**
7822         * @return {@link #name} (The source address for the page.)
7823         */
7824        public UrlType getNameUrlType() throws FHIRException { 
7825          if (this.name == null)
7826            return null;
7827          if (!(this.name instanceof UrlType))
7828            throw new FHIRException("Type mismatch: the type UrlType was expected, but "+this.name.getClass().getName()+" was encountered");
7829          return (UrlType) this.name;
7830        }
7831
7832        public boolean hasNameUrlType() { 
7833          return this != null && this.name instanceof UrlType;
7834        }
7835
7836        /**
7837         * @return {@link #name} (The source address for the page.)
7838         */
7839        public Reference getNameReference() throws FHIRException { 
7840          if (this.name == null)
7841            return null;
7842          if (!(this.name instanceof Reference))
7843            throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.name.getClass().getName()+" was encountered");
7844          return (Reference) this.name;
7845        }
7846
7847        public boolean hasNameReference() { 
7848          return this != null && this.name instanceof Reference;
7849        }
7850
7851        public boolean hasName() { 
7852          return this.name != null && !this.name.isEmpty();
7853        }
7854
7855        /**
7856         * @param value {@link #name} (The source address for the page.)
7857         */
7858        public ImplementationGuideDefinitionPageComponent setName(Type value) { 
7859          if (value != null && !(value instanceof UrlType || value instanceof Reference))
7860            throw new Error("Not the right type for ImplementationGuide.definition.page.name[x]: "+value.fhirType());
7861          this.name = value;
7862          return this;
7863        }
7864
7865        /**
7866         * @return {@link #title} (A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
7867         */
7868        public StringType getTitleElement() { 
7869          if (this.title == null)
7870            if (Configuration.errorOnAutoCreate())
7871              throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.title");
7872            else if (Configuration.doAutoCreate())
7873              this.title = new StringType(); // bb
7874          return this.title;
7875        }
7876
7877        public boolean hasTitleElement() { 
7878          return this.title != null && !this.title.isEmpty();
7879        }
7880
7881        public boolean hasTitle() { 
7882          return this.title != null && !this.title.isEmpty();
7883        }
7884
7885        /**
7886         * @param value {@link #title} (A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
7887         */
7888        public ImplementationGuideDefinitionPageComponent setTitleElement(StringType value) { 
7889          this.title = value;
7890          return this;
7891        }
7892
7893        /**
7894         * @return A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.
7895         */
7896        public String getTitle() { 
7897          return this.title == null ? null : this.title.getValue();
7898        }
7899
7900        /**
7901         * @param value A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.
7902         */
7903        public ImplementationGuideDefinitionPageComponent setTitle(String value) { 
7904            if (this.title == null)
7905              this.title = new StringType();
7906            this.title.setValue(value);
7907          return this;
7908        }
7909
7910        /**
7911         * @return {@link #generation} (A code that indicates how the page is generated.). This is the underlying object with id, value and extensions. The accessor "getGeneration" gives direct access to the value
7912         */
7913        public Enumeration<GuidePageGeneration> getGenerationElement() { 
7914          if (this.generation == null)
7915            if (Configuration.errorOnAutoCreate())
7916              throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.generation");
7917            else if (Configuration.doAutoCreate())
7918              this.generation = new Enumeration<GuidePageGeneration>(new GuidePageGenerationEnumFactory()); // bb
7919          return this.generation;
7920        }
7921
7922        public boolean hasGenerationElement() { 
7923          return this.generation != null && !this.generation.isEmpty();
7924        }
7925
7926        public boolean hasGeneration() { 
7927          return this.generation != null && !this.generation.isEmpty();
7928        }
7929
7930        /**
7931         * @param value {@link #generation} (A code that indicates how the page is generated.). This is the underlying object with id, value and extensions. The accessor "getGeneration" gives direct access to the value
7932         */
7933        public ImplementationGuideDefinitionPageComponent setGenerationElement(Enumeration<GuidePageGeneration> value) { 
7934          this.generation = value;
7935          return this;
7936        }
7937
7938        /**
7939         * @return A code that indicates how the page is generated.
7940         */
7941        public GuidePageGeneration getGeneration() { 
7942          return this.generation == null ? null : this.generation.getValue();
7943        }
7944
7945        /**
7946         * @param value A code that indicates how the page is generated.
7947         */
7948        public ImplementationGuideDefinitionPageComponent setGeneration(GuidePageGeneration value) { 
7949            if (this.generation == null)
7950              this.generation = new Enumeration<GuidePageGeneration>(new GuidePageGenerationEnumFactory());
7951            this.generation.setValue(value);
7952          return this;
7953        }
7954
7955        /**
7956         * @return {@link #page} (Nested Pages/Sections under this page.)
7957         */
7958        public List<ImplementationGuideDefinitionPageComponent> getPage() { 
7959          if (this.page == null)
7960            this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
7961          return this.page;
7962        }
7963
7964        /**
7965         * @return Returns a reference to <code>this</code> for easy method chaining
7966         */
7967        public ImplementationGuideDefinitionPageComponent setPage(List<ImplementationGuideDefinitionPageComponent> thePage) { 
7968          this.page = thePage;
7969          return this;
7970        }
7971
7972        public boolean hasPage() { 
7973          if (this.page == null)
7974            return false;
7975          for (ImplementationGuideDefinitionPageComponent item : this.page)
7976            if (!item.isEmpty())
7977              return true;
7978          return false;
7979        }
7980
7981        public ImplementationGuideDefinitionPageComponent addPage() { //3
7982          ImplementationGuideDefinitionPageComponent t = new ImplementationGuideDefinitionPageComponent();
7983          if (this.page == null)
7984            this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
7985          this.page.add(t);
7986          return t;
7987        }
7988
7989        public ImplementationGuideDefinitionPageComponent addPage(ImplementationGuideDefinitionPageComponent t) { //3
7990          if (t == null)
7991            return this;
7992          if (this.page == null)
7993            this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
7994          this.page.add(t);
7995          return this;
7996        }
7997
7998        /**
7999         * @return The first repetition of repeating field {@link #page}, creating it if it does not already exist
8000         */
8001        public ImplementationGuideDefinitionPageComponent getPageFirstRep() { 
8002          if (getPage().isEmpty()) {
8003            addPage();
8004          }
8005          return getPage().get(0);
8006        }
8007
8008        protected void listChildren(List<Property> children) {
8009          super.listChildren(children);
8010          children.add(new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name));
8011          children.add(new Property("title", "string", "A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.", 0, 1, title));
8012          children.add(new Property("generation", "code", "A code that indicates how the page is generated.", 0, 1, generation));
8013          children.add(new Property("page", "@ImplementationGuide.definition.page", "Nested Pages/Sections under this page.", 0, java.lang.Integer.MAX_VALUE, page));
8014        }
8015
8016        @Override
8017        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
8018          switch (_hash) {
8019          case 1721948693: /*name[x]*/  return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name);
8020          case 3373707: /*name*/  return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name);
8021          case 1721942756: /*nameUrl*/  return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name);
8022          case 1833144576: /*nameReference*/  return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name);
8023          case 110371416: /*title*/  return new Property("title", "string", "A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.", 0, 1, title);
8024          case 305703192: /*generation*/  return new Property("generation", "code", "A code that indicates how the page is generated.", 0, 1, generation);
8025          case 3433103: /*page*/  return new Property("page", "@ImplementationGuide.definition.page", "Nested Pages/Sections under this page.", 0, java.lang.Integer.MAX_VALUE, page);
8026          default: return super.getNamedProperty(_hash, _name, _checkValid);
8027          }
8028
8029        }
8030
8031      @Override
8032      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
8033        switch (hash) {
8034        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // Type
8035        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
8036        case 305703192: /*generation*/ return this.generation == null ? new Base[0] : new Base[] {this.generation}; // Enumeration<GuidePageGeneration>
8037        case 3433103: /*page*/ return this.page == null ? new Base[0] : this.page.toArray(new Base[this.page.size()]); // ImplementationGuideDefinitionPageComponent
8038        default: return super.getProperty(hash, name, checkValid);
8039        }
8040
8041      }
8042
8043      @Override
8044      public Base setProperty(int hash, String name, Base value) throws FHIRException {
8045        switch (hash) {
8046        case 3373707: // name
8047          this.name = castToType(value); // Type
8048          return value;
8049        case 110371416: // title
8050          this.title = castToString(value); // StringType
8051          return value;
8052        case 305703192: // generation
8053          value = new GuidePageGenerationEnumFactory().fromType(castToCode(value));
8054          this.generation = (Enumeration) value; // Enumeration<GuidePageGeneration>
8055          return value;
8056        case 3433103: // page
8057          this.getPage().add((ImplementationGuideDefinitionPageComponent) value); // ImplementationGuideDefinitionPageComponent
8058          return value;
8059        default: return super.setProperty(hash, name, value);
8060        }
8061
8062      }
8063
8064      @Override
8065      public Base setProperty(String name, Base value) throws FHIRException {
8066        if (name.equals("name[x]")) {
8067          this.name = castToType(value); // Type
8068        } else if (name.equals("title")) {
8069          this.title = castToString(value); // StringType
8070        } else if (name.equals("generation")) {
8071          value = new GuidePageGenerationEnumFactory().fromType(castToCode(value));
8072          this.generation = (Enumeration) value; // Enumeration<GuidePageGeneration>
8073        } else if (name.equals("page")) {
8074          this.getPage().add((ImplementationGuideDefinitionPageComponent) value);
8075        } else
8076          return super.setProperty(name, value);
8077        return value;
8078      }
8079
8080      @Override
8081      public Base makeProperty(int hash, String name) throws FHIRException {
8082        switch (hash) {
8083        case 1721948693:  return getName(); 
8084        case 3373707:  return getName(); 
8085        case 110371416:  return getTitleElement();
8086        case 305703192:  return getGenerationElement();
8087        case 3433103:  return addPage(); 
8088        default: return super.makeProperty(hash, name);
8089        }
8090
8091      }
8092
8093      @Override
8094      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
8095        switch (hash) {
8096        case 3373707: /*name*/ return new String[] {"url", "Reference"};
8097        case 110371416: /*title*/ return new String[] {"string"};
8098        case 305703192: /*generation*/ return new String[] {"code"};
8099        case 3433103: /*page*/ return new String[] {"@ImplementationGuide.definition.page"};
8100        default: return super.getTypesForProperty(hash, name);
8101        }
8102
8103      }
8104
8105      @Override
8106      public Base addChild(String name) throws FHIRException {
8107        if (name.equals("nameUrl")) {
8108          this.name = new UrlType();
8109          return this.name;
8110        }
8111        else if (name.equals("nameReference")) {
8112          this.name = new Reference();
8113          return this.name;
8114        }
8115        else if (name.equals("title")) {
8116          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.title");
8117        }
8118        else if (name.equals("generation")) {
8119          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.generation");
8120        }
8121        else if (name.equals("page")) {
8122          return addPage();
8123        }
8124        else
8125          return super.addChild(name);
8126      }
8127
8128      public ImplementationGuideDefinitionPageComponent copy() {
8129        ImplementationGuideDefinitionPageComponent dst = new ImplementationGuideDefinitionPageComponent();
8130        copyValues(dst);
8131        dst.name = name == null ? null : name.copy();
8132        dst.title = title == null ? null : title.copy();
8133        dst.generation = generation == null ? null : generation.copy();
8134        if (page != null) {
8135          dst.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
8136          for (ImplementationGuideDefinitionPageComponent i : page)
8137            dst.page.add(i.copy());
8138        };
8139        return dst;
8140      }
8141
8142      @Override
8143      public boolean equalsDeep(Base other_) {
8144        if (!super.equalsDeep(other_))
8145          return false;
8146        if (!(other_ instanceof ImplementationGuideDefinitionPageComponent))
8147          return false;
8148        ImplementationGuideDefinitionPageComponent o = (ImplementationGuideDefinitionPageComponent) other_;
8149        return compareDeep(name, o.name, true) && compareDeep(title, o.title, true) && compareDeep(generation, o.generation, true)
8150           && compareDeep(page, o.page, true);
8151      }
8152
8153      @Override
8154      public boolean equalsShallow(Base other_) {
8155        if (!super.equalsShallow(other_))
8156          return false;
8157        if (!(other_ instanceof ImplementationGuideDefinitionPageComponent))
8158          return false;
8159        ImplementationGuideDefinitionPageComponent o = (ImplementationGuideDefinitionPageComponent) other_;
8160        return compareValues(title, o.title, true) && compareValues(generation, o.generation, true);
8161      }
8162
8163      public boolean isEmpty() {
8164        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, title, generation
8165          , page);
8166      }
8167
8168  public String fhirType() {
8169    return "ImplementationGuide.definition.page";
8170
8171  }
8172
8173  }
8174
8175    @Block()
8176    public static class ImplementationGuideDefinitionParameterComponent extends BackboneElement implements IBaseBackboneElement {
8177        /**
8178         * apply-business-version | apply-jurisdiction | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.
8179         */
8180        @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
8181        @Description(shortDefinition="apply-business-version | apply-jurisdiction | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template", formalDefinition="apply-business-version | apply-jurisdiction | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template." )
8182        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/guide-parameter-code")
8183        protected Enumeration<GuideParameterCode> code;
8184
8185        /**
8186         * Value for named type.
8187         */
8188        @Child(name = "value", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
8189        @Description(shortDefinition="Value for named type", formalDefinition="Value for named type." )
8190        protected StringType value;
8191
8192        private static final long serialVersionUID = 1188999138L;
8193
8194    /**
8195     * Constructor
8196     */
8197      public ImplementationGuideDefinitionParameterComponent() {
8198        super();
8199      }
8200
8201    /**
8202     * Constructor
8203     */
8204      public ImplementationGuideDefinitionParameterComponent(Enumeration<GuideParameterCode> code, StringType value) {
8205        super();
8206        this.code = code;
8207        this.value = value;
8208      }
8209
8210        /**
8211         * @return {@link #code} (apply-business-version | apply-jurisdiction | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
8212         */
8213        public Enumeration<GuideParameterCode> getCodeElement() { 
8214          if (this.code == null)
8215            if (Configuration.errorOnAutoCreate())
8216              throw new Error("Attempt to auto-create ImplementationGuideDefinitionParameterComponent.code");
8217            else if (Configuration.doAutoCreate())
8218              this.code = new Enumeration<GuideParameterCode>(new GuideParameterCodeEnumFactory()); // bb
8219          return this.code;
8220        }
8221
8222        public boolean hasCodeElement() { 
8223          return this.code != null && !this.code.isEmpty();
8224        }
8225
8226        public boolean hasCode() { 
8227          return this.code != null && !this.code.isEmpty();
8228        }
8229
8230        /**
8231         * @param value {@link #code} (apply-business-version | apply-jurisdiction | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
8232         */
8233        public ImplementationGuideDefinitionParameterComponent setCodeElement(Enumeration<GuideParameterCode> value) { 
8234          this.code = value;
8235          return this;
8236        }
8237
8238        /**
8239         * @return apply-business-version | apply-jurisdiction | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.
8240         */
8241        public GuideParameterCode getCode() { 
8242          return this.code == null ? null : this.code.getValue();
8243        }
8244
8245        /**
8246         * @param value apply-business-version | apply-jurisdiction | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.
8247         */
8248        public ImplementationGuideDefinitionParameterComponent setCode(GuideParameterCode value) { 
8249            if (this.code == null)
8250              this.code = new Enumeration<GuideParameterCode>(new GuideParameterCodeEnumFactory());
8251            this.code.setValue(value);
8252          return this;
8253        }
8254
8255        /**
8256         * @return {@link #value} (Value for named type.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value
8257         */
8258        public StringType getValueElement() { 
8259          if (this.value == null)
8260            if (Configuration.errorOnAutoCreate())
8261              throw new Error("Attempt to auto-create ImplementationGuideDefinitionParameterComponent.value");
8262            else if (Configuration.doAutoCreate())
8263              this.value = new StringType(); // bb
8264          return this.value;
8265        }
8266
8267        public boolean hasValueElement() { 
8268          return this.value != null && !this.value.isEmpty();
8269        }
8270
8271        public boolean hasValue() { 
8272          return this.value != null && !this.value.isEmpty();
8273        }
8274
8275        /**
8276         * @param value {@link #value} (Value for named type.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value
8277         */
8278        public ImplementationGuideDefinitionParameterComponent setValueElement(StringType value) { 
8279          this.value = value;
8280          return this;
8281        }
8282
8283        /**
8284         * @return Value for named type.
8285         */
8286        public String getValue() { 
8287          return this.value == null ? null : this.value.getValue();
8288        }
8289
8290        /**
8291         * @param value Value for named type.
8292         */
8293        public ImplementationGuideDefinitionParameterComponent setValue(String value) { 
8294            if (this.value == null)
8295              this.value = new StringType();
8296            this.value.setValue(value);
8297          return this;
8298        }
8299
8300        protected void listChildren(List<Property> children) {
8301          super.listChildren(children);
8302          children.add(new Property("code", "code", "apply-business-version | apply-jurisdiction | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.", 0, 1, code));
8303          children.add(new Property("value", "string", "Value for named type.", 0, 1, value));
8304        }
8305
8306        @Override
8307        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
8308          switch (_hash) {
8309          case 3059181: /*code*/  return new Property("code", "code", "apply-business-version | apply-jurisdiction | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.", 0, 1, code);
8310          case 111972721: /*value*/  return new Property("value", "string", "Value for named type.", 0, 1, value);
8311          default: return super.getNamedProperty(_hash, _name, _checkValid);
8312          }
8313
8314        }
8315
8316      @Override
8317      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
8318        switch (hash) {
8319        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // Enumeration<GuideParameterCode>
8320        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType
8321        default: return super.getProperty(hash, name, checkValid);
8322        }
8323
8324      }
8325
8326      @Override
8327      public Base setProperty(int hash, String name, Base value) throws FHIRException {
8328        switch (hash) {
8329        case 3059181: // code
8330          value = new GuideParameterCodeEnumFactory().fromType(castToCode(value));
8331          this.code = (Enumeration) value; // Enumeration<GuideParameterCode>
8332          return value;
8333        case 111972721: // value
8334          this.value = castToString(value); // StringType
8335          return value;
8336        default: return super.setProperty(hash, name, value);
8337        }
8338
8339      }
8340
8341      @Override
8342      public Base setProperty(String name, Base value) throws FHIRException {
8343        if (name.equals("code")) {
8344          value = new GuideParameterCodeEnumFactory().fromType(castToCode(value));
8345          this.code = (Enumeration) value; // Enumeration<GuideParameterCode>
8346        } else if (name.equals("value")) {
8347          this.value = castToString(value); // StringType
8348        } else
8349          return super.setProperty(name, value);
8350        return value;
8351      }
8352
8353      @Override
8354      public Base makeProperty(int hash, String name) throws FHIRException {
8355        switch (hash) {
8356        case 3059181:  return getCodeElement();
8357        case 111972721:  return getValueElement();
8358        default: return super.makeProperty(hash, name);
8359        }
8360
8361      }
8362
8363      @Override
8364      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
8365        switch (hash) {
8366        case 3059181: /*code*/ return new String[] {"code"};
8367        case 111972721: /*value*/ return new String[] {"string"};
8368        default: return super.getTypesForProperty(hash, name);
8369        }
8370
8371      }
8372
8373      @Override
8374      public Base addChild(String name) throws FHIRException {
8375        if (name.equals("code")) {
8376          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.code");
8377        }
8378        else if (name.equals("value")) {
8379          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.value");
8380        }
8381        else
8382          return super.addChild(name);
8383      }
8384
8385      public ImplementationGuideDefinitionParameterComponent copy() {
8386        ImplementationGuideDefinitionParameterComponent dst = new ImplementationGuideDefinitionParameterComponent();
8387        copyValues(dst);
8388        dst.code = code == null ? null : code.copy();
8389        dst.value = value == null ? null : value.copy();
8390        return dst;
8391      }
8392
8393      @Override
8394      public boolean equalsDeep(Base other_) {
8395        if (!super.equalsDeep(other_))
8396          return false;
8397        if (!(other_ instanceof ImplementationGuideDefinitionParameterComponent))
8398          return false;
8399        ImplementationGuideDefinitionParameterComponent o = (ImplementationGuideDefinitionParameterComponent) other_;
8400        return compareDeep(code, o.code, true) && compareDeep(value, o.value, true);
8401      }
8402
8403      @Override
8404      public boolean equalsShallow(Base other_) {
8405        if (!super.equalsShallow(other_))
8406          return false;
8407        if (!(other_ instanceof ImplementationGuideDefinitionParameterComponent))
8408          return false;
8409        ImplementationGuideDefinitionParameterComponent o = (ImplementationGuideDefinitionParameterComponent) other_;
8410        return compareValues(code, o.code, true) && compareValues(value, o.value, true);
8411      }
8412
8413      public boolean isEmpty() {
8414        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, value);
8415      }
8416
8417  public String fhirType() {
8418    return "ImplementationGuide.definition.parameter";
8419
8420  }
8421
8422  }
8423
8424    @Block()
8425    public static class ImplementationGuideDefinitionTemplateComponent extends BackboneElement implements IBaseBackboneElement {
8426        /**
8427         * Type of template specified.
8428         */
8429        @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
8430        @Description(shortDefinition="Type of template specified", formalDefinition="Type of template specified." )
8431        protected CodeType code;
8432
8433        /**
8434         * The source location for the template.
8435         */
8436        @Child(name = "source", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
8437        @Description(shortDefinition="The source location for the template", formalDefinition="The source location for the template." )
8438        protected StringType source;
8439
8440        /**
8441         * The scope in which the template applies.
8442         */
8443        @Child(name = "scope", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
8444        @Description(shortDefinition="The scope in which the template applies", formalDefinition="The scope in which the template applies." )
8445        protected StringType scope;
8446
8447        private static final long serialVersionUID = 923832457L;
8448
8449    /**
8450     * Constructor
8451     */
8452      public ImplementationGuideDefinitionTemplateComponent() {
8453        super();
8454      }
8455
8456    /**
8457     * Constructor
8458     */
8459      public ImplementationGuideDefinitionTemplateComponent(CodeType code, StringType source) {
8460        super();
8461        this.code = code;
8462        this.source = source;
8463      }
8464
8465        /**
8466         * @return {@link #code} (Type of template specified.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
8467         */
8468        public CodeType getCodeElement() { 
8469          if (this.code == null)
8470            if (Configuration.errorOnAutoCreate())
8471              throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.code");
8472            else if (Configuration.doAutoCreate())
8473              this.code = new CodeType(); // bb
8474          return this.code;
8475        }
8476
8477        public boolean hasCodeElement() { 
8478          return this.code != null && !this.code.isEmpty();
8479        }
8480
8481        public boolean hasCode() { 
8482          return this.code != null && !this.code.isEmpty();
8483        }
8484
8485        /**
8486         * @param value {@link #code} (Type of template specified.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
8487         */
8488        public ImplementationGuideDefinitionTemplateComponent setCodeElement(CodeType value) { 
8489          this.code = value;
8490          return this;
8491        }
8492
8493        /**
8494         * @return Type of template specified.
8495         */
8496        public String getCode() { 
8497          return this.code == null ? null : this.code.getValue();
8498        }
8499
8500        /**
8501         * @param value Type of template specified.
8502         */
8503        public ImplementationGuideDefinitionTemplateComponent setCode(String value) { 
8504            if (this.code == null)
8505              this.code = new CodeType();
8506            this.code.setValue(value);
8507          return this;
8508        }
8509
8510        /**
8511         * @return {@link #source} (The source location for the template.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value
8512         */
8513        public StringType getSourceElement() { 
8514          if (this.source == null)
8515            if (Configuration.errorOnAutoCreate())
8516              throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.source");
8517            else if (Configuration.doAutoCreate())
8518              this.source = new StringType(); // bb
8519          return this.source;
8520        }
8521
8522        public boolean hasSourceElement() { 
8523          return this.source != null && !this.source.isEmpty();
8524        }
8525
8526        public boolean hasSource() { 
8527          return this.source != null && !this.source.isEmpty();
8528        }
8529
8530        /**
8531         * @param value {@link #source} (The source location for the template.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value
8532         */
8533        public ImplementationGuideDefinitionTemplateComponent setSourceElement(StringType value) { 
8534          this.source = value;
8535          return this;
8536        }
8537
8538        /**
8539         * @return The source location for the template.
8540         */
8541        public String getSource() { 
8542          return this.source == null ? null : this.source.getValue();
8543        }
8544
8545        /**
8546         * @param value The source location for the template.
8547         */
8548        public ImplementationGuideDefinitionTemplateComponent setSource(String value) { 
8549            if (this.source == null)
8550              this.source = new StringType();
8551            this.source.setValue(value);
8552          return this;
8553        }
8554
8555        /**
8556         * @return {@link #scope} (The scope in which the template applies.). This is the underlying object with id, value and extensions. The accessor "getScope" gives direct access to the value
8557         */
8558        public StringType getScopeElement() { 
8559          if (this.scope == null)
8560            if (Configuration.errorOnAutoCreate())
8561              throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.scope");
8562            else if (Configuration.doAutoCreate())
8563              this.scope = new StringType(); // bb
8564          return this.scope;
8565        }
8566
8567        public boolean hasScopeElement() { 
8568          return this.scope != null && !this.scope.isEmpty();
8569        }
8570
8571        public boolean hasScope() { 
8572          return this.scope != null && !this.scope.isEmpty();
8573        }
8574
8575        /**
8576         * @param value {@link #scope} (The scope in which the template applies.). This is the underlying object with id, value and extensions. The accessor "getScope" gives direct access to the value
8577         */
8578        public ImplementationGuideDefinitionTemplateComponent setScopeElement(StringType value) { 
8579          this.scope = value;
8580          return this;
8581        }
8582
8583        /**
8584         * @return The scope in which the template applies.
8585         */
8586        public String getScope() { 
8587          return this.scope == null ? null : this.scope.getValue();
8588        }
8589
8590        /**
8591         * @param value The scope in which the template applies.
8592         */
8593        public ImplementationGuideDefinitionTemplateComponent setScope(String value) { 
8594          if (Utilities.noString(value))
8595            this.scope = null;
8596          else {
8597            if (this.scope == null)
8598              this.scope = new StringType();
8599            this.scope.setValue(value);
8600          }
8601          return this;
8602        }
8603
8604        protected void listChildren(List<Property> children) {
8605          super.listChildren(children);
8606          children.add(new Property("code", "code", "Type of template specified.", 0, 1, code));
8607          children.add(new Property("source", "string", "The source location for the template.", 0, 1, source));
8608          children.add(new Property("scope", "string", "The scope in which the template applies.", 0, 1, scope));
8609        }
8610
8611        @Override
8612        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
8613          switch (_hash) {
8614          case 3059181: /*code*/  return new Property("code", "code", "Type of template specified.", 0, 1, code);
8615          case -896505829: /*source*/  return new Property("source", "string", "The source location for the template.", 0, 1, source);
8616          case 109264468: /*scope*/  return new Property("scope", "string", "The scope in which the template applies.", 0, 1, scope);
8617          default: return super.getNamedProperty(_hash, _name, _checkValid);
8618          }
8619
8620        }
8621
8622      @Override
8623      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
8624        switch (hash) {
8625        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
8626        case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // StringType
8627        case 109264468: /*scope*/ return this.scope == null ? new Base[0] : new Base[] {this.scope}; // StringType
8628        default: return super.getProperty(hash, name, checkValid);
8629        }
8630
8631      }
8632
8633      @Override
8634      public Base setProperty(int hash, String name, Base value) throws FHIRException {
8635        switch (hash) {
8636        case 3059181: // code
8637          this.code = castToCode(value); // CodeType
8638          return value;
8639        case -896505829: // source
8640          this.source = castToString(value); // StringType
8641          return value;
8642        case 109264468: // scope
8643          this.scope = castToString(value); // StringType
8644          return value;
8645        default: return super.setProperty(hash, name, value);
8646        }
8647
8648      }
8649
8650      @Override
8651      public Base setProperty(String name, Base value) throws FHIRException {
8652        if (name.equals("code")) {
8653          this.code = castToCode(value); // CodeType
8654        } else if (name.equals("source")) {
8655          this.source = castToString(value); // StringType
8656        } else if (name.equals("scope")) {
8657          this.scope = castToString(value); // StringType
8658        } else
8659          return super.setProperty(name, value);
8660        return value;
8661      }
8662
8663      @Override
8664      public Base makeProperty(int hash, String name) throws FHIRException {
8665        switch (hash) {
8666        case 3059181:  return getCodeElement();
8667        case -896505829:  return getSourceElement();
8668        case 109264468:  return getScopeElement();
8669        default: return super.makeProperty(hash, name);
8670        }
8671
8672      }
8673
8674      @Override
8675      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
8676        switch (hash) {
8677        case 3059181: /*code*/ return new String[] {"code"};
8678        case -896505829: /*source*/ return new String[] {"string"};
8679        case 109264468: /*scope*/ return new String[] {"string"};
8680        default: return super.getTypesForProperty(hash, name);
8681        }
8682
8683      }
8684
8685      @Override
8686      public Base addChild(String name) throws FHIRException {
8687        if (name.equals("code")) {
8688          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.code");
8689        }
8690        else if (name.equals("source")) {
8691          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.source");
8692        }
8693        else if (name.equals("scope")) {
8694          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.scope");
8695        }
8696        else
8697          return super.addChild(name);
8698      }
8699
8700      public ImplementationGuideDefinitionTemplateComponent copy() {
8701        ImplementationGuideDefinitionTemplateComponent dst = new ImplementationGuideDefinitionTemplateComponent();
8702        copyValues(dst);
8703        dst.code = code == null ? null : code.copy();
8704        dst.source = source == null ? null : source.copy();
8705        dst.scope = scope == null ? null : scope.copy();
8706        return dst;
8707      }
8708
8709      @Override
8710      public boolean equalsDeep(Base other_) {
8711        if (!super.equalsDeep(other_))
8712          return false;
8713        if (!(other_ instanceof ImplementationGuideDefinitionTemplateComponent))
8714          return false;
8715        ImplementationGuideDefinitionTemplateComponent o = (ImplementationGuideDefinitionTemplateComponent) other_;
8716        return compareDeep(code, o.code, true) && compareDeep(source, o.source, true) && compareDeep(scope, o.scope, true)
8717          ;
8718      }
8719
8720      @Override
8721      public boolean equalsShallow(Base other_) {
8722        if (!super.equalsShallow(other_))
8723          return false;
8724        if (!(other_ instanceof ImplementationGuideDefinitionTemplateComponent))
8725          return false;
8726        ImplementationGuideDefinitionTemplateComponent o = (ImplementationGuideDefinitionTemplateComponent) other_;
8727        return compareValues(code, o.code, true) && compareValues(source, o.source, true) && compareValues(scope, o.scope, true)
8728          ;
8729      }
8730
8731      public boolean isEmpty() {
8732        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, source, scope);
8733      }
8734
8735  public String fhirType() {
8736    return "ImplementationGuide.definition.template";
8737
8738  }
8739
8740  }
8741
8742    @Block()
8743    public static class ImplementationGuideManifestComponent extends BackboneElement implements IBaseBackboneElement {
8744        /**
8745         * A pointer to official web page, PDF or other rendering of the implementation guide.
8746         */
8747        @Child(name = "rendering", type = {UrlType.class}, order=1, min=0, max=1, modifier=false, summary=true)
8748        @Description(shortDefinition="Location of rendered implementation guide", formalDefinition="A pointer to official web page, PDF or other rendering of the implementation guide." )
8749        protected UrlType rendering;
8750
8751        /**
8752         * A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.
8753         */
8754        @Child(name = "resource", type = {}, order=2, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
8755        @Description(shortDefinition="Resource in the implementation guide", formalDefinition="A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource." )
8756        protected List<ManifestResourceComponent> resource;
8757
8758        /**
8759         * Information about a page within the IG.
8760         */
8761        @Child(name = "page", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
8762        @Description(shortDefinition="HTML page within the parent IG", formalDefinition="Information about a page within the IG." )
8763        protected List<ManifestPageComponent> page;
8764
8765        /**
8766         * Indicates a relative path to an image that exists within the IG.
8767         */
8768        @Child(name = "image", type = {StringType.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
8769        @Description(shortDefinition="Image within the IG", formalDefinition="Indicates a relative path to an image that exists within the IG." )
8770        protected List<StringType> image;
8771
8772        /**
8773         * Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.
8774         */
8775        @Child(name = "other", type = {StringType.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
8776        @Description(shortDefinition="Additional linkable file in IG", formalDefinition="Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG." )
8777        protected List<StringType> other;
8778
8779        private static final long serialVersionUID = 1881327712L;
8780
8781    /**
8782     * Constructor
8783     */
8784      public ImplementationGuideManifestComponent() {
8785        super();
8786      }
8787
8788        /**
8789         * @return {@link #rendering} (A pointer to official web page, PDF or other rendering of the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getRendering" gives direct access to the value
8790         */
8791        public UrlType getRenderingElement() { 
8792          if (this.rendering == null)
8793            if (Configuration.errorOnAutoCreate())
8794              throw new Error("Attempt to auto-create ImplementationGuideManifestComponent.rendering");
8795            else if (Configuration.doAutoCreate())
8796              this.rendering = new UrlType(); // bb
8797          return this.rendering;
8798        }
8799
8800        public boolean hasRenderingElement() { 
8801          return this.rendering != null && !this.rendering.isEmpty();
8802        }
8803
8804        public boolean hasRendering() { 
8805          return this.rendering != null && !this.rendering.isEmpty();
8806        }
8807
8808        /**
8809         * @param value {@link #rendering} (A pointer to official web page, PDF or other rendering of the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getRendering" gives direct access to the value
8810         */
8811        public ImplementationGuideManifestComponent setRenderingElement(UrlType value) { 
8812          this.rendering = value;
8813          return this;
8814        }
8815
8816        /**
8817         * @return A pointer to official web page, PDF or other rendering of the implementation guide.
8818         */
8819        public String getRendering() { 
8820          return this.rendering == null ? null : this.rendering.getValue();
8821        }
8822
8823        /**
8824         * @param value A pointer to official web page, PDF or other rendering of the implementation guide.
8825         */
8826        public ImplementationGuideManifestComponent setRendering(String value) { 
8827          if (Utilities.noString(value))
8828            this.rendering = null;
8829          else {
8830            if (this.rendering == null)
8831              this.rendering = new UrlType();
8832            this.rendering.setValue(value);
8833          }
8834          return this;
8835        }
8836
8837        /**
8838         * @return {@link #resource} (A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.)
8839         */
8840        public List<ManifestResourceComponent> getResource() { 
8841          if (this.resource == null)
8842            this.resource = new ArrayList<ManifestResourceComponent>();
8843          return this.resource;
8844        }
8845
8846        /**
8847         * @return Returns a reference to <code>this</code> for easy method chaining
8848         */
8849        public ImplementationGuideManifestComponent setResource(List<ManifestResourceComponent> theResource) { 
8850          this.resource = theResource;
8851          return this;
8852        }
8853
8854        public boolean hasResource() { 
8855          if (this.resource == null)
8856            return false;
8857          for (ManifestResourceComponent item : this.resource)
8858            if (!item.isEmpty())
8859              return true;
8860          return false;
8861        }
8862
8863        public ManifestResourceComponent addResource() { //3
8864          ManifestResourceComponent t = new ManifestResourceComponent();
8865          if (this.resource == null)
8866            this.resource = new ArrayList<ManifestResourceComponent>();
8867          this.resource.add(t);
8868          return t;
8869        }
8870
8871        public ImplementationGuideManifestComponent addResource(ManifestResourceComponent t) { //3
8872          if (t == null)
8873            return this;
8874          if (this.resource == null)
8875            this.resource = new ArrayList<ManifestResourceComponent>();
8876          this.resource.add(t);
8877          return this;
8878        }
8879
8880        /**
8881         * @return The first repetition of repeating field {@link #resource}, creating it if it does not already exist
8882         */
8883        public ManifestResourceComponent getResourceFirstRep() { 
8884          if (getResource().isEmpty()) {
8885            addResource();
8886          }
8887          return getResource().get(0);
8888        }
8889
8890        /**
8891         * @return {@link #page} (Information about a page within the IG.)
8892         */
8893        public List<ManifestPageComponent> getPage() { 
8894          if (this.page == null)
8895            this.page = new ArrayList<ManifestPageComponent>();
8896          return this.page;
8897        }
8898
8899        /**
8900         * @return Returns a reference to <code>this</code> for easy method chaining
8901         */
8902        public ImplementationGuideManifestComponent setPage(List<ManifestPageComponent> thePage) { 
8903          this.page = thePage;
8904          return this;
8905        }
8906
8907        public boolean hasPage() { 
8908          if (this.page == null)
8909            return false;
8910          for (ManifestPageComponent item : this.page)
8911            if (!item.isEmpty())
8912              return true;
8913          return false;
8914        }
8915
8916        public ManifestPageComponent addPage() { //3
8917          ManifestPageComponent t = new ManifestPageComponent();
8918          if (this.page == null)
8919            this.page = new ArrayList<ManifestPageComponent>();
8920          this.page.add(t);
8921          return t;
8922        }
8923
8924        public ImplementationGuideManifestComponent addPage(ManifestPageComponent t) { //3
8925          if (t == null)
8926            return this;
8927          if (this.page == null)
8928            this.page = new ArrayList<ManifestPageComponent>();
8929          this.page.add(t);
8930          return this;
8931        }
8932
8933        /**
8934         * @return The first repetition of repeating field {@link #page}, creating it if it does not already exist
8935         */
8936        public ManifestPageComponent getPageFirstRep() { 
8937          if (getPage().isEmpty()) {
8938            addPage();
8939          }
8940          return getPage().get(0);
8941        }
8942
8943        /**
8944         * @return {@link #image} (Indicates a relative path to an image that exists within the IG.)
8945         */
8946        public List<StringType> getImage() { 
8947          if (this.image == null)
8948            this.image = new ArrayList<StringType>();
8949          return this.image;
8950        }
8951
8952        /**
8953         * @return Returns a reference to <code>this</code> for easy method chaining
8954         */
8955        public ImplementationGuideManifestComponent setImage(List<StringType> theImage) { 
8956          this.image = theImage;
8957          return this;
8958        }
8959
8960        public boolean hasImage() { 
8961          if (this.image == null)
8962            return false;
8963          for (StringType item : this.image)
8964            if (!item.isEmpty())
8965              return true;
8966          return false;
8967        }
8968
8969        /**
8970         * @return {@link #image} (Indicates a relative path to an image that exists within the IG.)
8971         */
8972        public StringType addImageElement() {//2 
8973          StringType t = new StringType();
8974          if (this.image == null)
8975            this.image = new ArrayList<StringType>();
8976          this.image.add(t);
8977          return t;
8978        }
8979
8980        /**
8981         * @param value {@link #image} (Indicates a relative path to an image that exists within the IG.)
8982         */
8983        public ImplementationGuideManifestComponent addImage(String value) { //1
8984          StringType t = new StringType();
8985          t.setValue(value);
8986          if (this.image == null)
8987            this.image = new ArrayList<StringType>();
8988          this.image.add(t);
8989          return this;
8990        }
8991
8992        /**
8993         * @param value {@link #image} (Indicates a relative path to an image that exists within the IG.)
8994         */
8995        public boolean hasImage(String value) { 
8996          if (this.image == null)
8997            return false;
8998          for (StringType v : this.image)
8999            if (v.getValue().equals(value)) // string
9000              return true;
9001          return false;
9002        }
9003
9004        /**
9005         * @return {@link #other} (Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.)
9006         */
9007        public List<StringType> getOther() { 
9008          if (this.other == null)
9009            this.other = new ArrayList<StringType>();
9010          return this.other;
9011        }
9012
9013        /**
9014         * @return Returns a reference to <code>this</code> for easy method chaining
9015         */
9016        public ImplementationGuideManifestComponent setOther(List<StringType> theOther) { 
9017          this.other = theOther;
9018          return this;
9019        }
9020
9021        public boolean hasOther() { 
9022          if (this.other == null)
9023            return false;
9024          for (StringType item : this.other)
9025            if (!item.isEmpty())
9026              return true;
9027          return false;
9028        }
9029
9030        /**
9031         * @return {@link #other} (Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.)
9032         */
9033        public StringType addOtherElement() {//2 
9034          StringType t = new StringType();
9035          if (this.other == null)
9036            this.other = new ArrayList<StringType>();
9037          this.other.add(t);
9038          return t;
9039        }
9040
9041        /**
9042         * @param value {@link #other} (Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.)
9043         */
9044        public ImplementationGuideManifestComponent addOther(String value) { //1
9045          StringType t = new StringType();
9046          t.setValue(value);
9047          if (this.other == null)
9048            this.other = new ArrayList<StringType>();
9049          this.other.add(t);
9050          return this;
9051        }
9052
9053        /**
9054         * @param value {@link #other} (Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.)
9055         */
9056        public boolean hasOther(String value) { 
9057          if (this.other == null)
9058            return false;
9059          for (StringType v : this.other)
9060            if (v.getValue().equals(value)) // string
9061              return true;
9062          return false;
9063        }
9064
9065        protected void listChildren(List<Property> children) {
9066          super.listChildren(children);
9067          children.add(new Property("rendering", "url", "A pointer to official web page, PDF or other rendering of the implementation guide.", 0, 1, rendering));
9068          children.add(new Property("resource", "", "A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.", 0, java.lang.Integer.MAX_VALUE, resource));
9069          children.add(new Property("page", "", "Information about a page within the IG.", 0, java.lang.Integer.MAX_VALUE, page));
9070          children.add(new Property("image", "string", "Indicates a relative path to an image that exists within the IG.", 0, java.lang.Integer.MAX_VALUE, image));
9071          children.add(new Property("other", "string", "Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.", 0, java.lang.Integer.MAX_VALUE, other));
9072        }
9073
9074        @Override
9075        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
9076          switch (_hash) {
9077          case 1839654540: /*rendering*/  return new Property("rendering", "url", "A pointer to official web page, PDF or other rendering of the implementation guide.", 0, 1, rendering);
9078          case -341064690: /*resource*/  return new Property("resource", "", "A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.", 0, java.lang.Integer.MAX_VALUE, resource);
9079          case 3433103: /*page*/  return new Property("page", "", "Information about a page within the IG.", 0, java.lang.Integer.MAX_VALUE, page);
9080          case 100313435: /*image*/  return new Property("image", "string", "Indicates a relative path to an image that exists within the IG.", 0, java.lang.Integer.MAX_VALUE, image);
9081          case 106069776: /*other*/  return new Property("other", "string", "Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.", 0, java.lang.Integer.MAX_VALUE, other);
9082          default: return super.getNamedProperty(_hash, _name, _checkValid);
9083          }
9084
9085        }
9086
9087      @Override
9088      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
9089        switch (hash) {
9090        case 1839654540: /*rendering*/ return this.rendering == null ? new Base[0] : new Base[] {this.rendering}; // UrlType
9091        case -341064690: /*resource*/ return this.resource == null ? new Base[0] : this.resource.toArray(new Base[this.resource.size()]); // ManifestResourceComponent
9092        case 3433103: /*page*/ return this.page == null ? new Base[0] : this.page.toArray(new Base[this.page.size()]); // ManifestPageComponent
9093        case 100313435: /*image*/ return this.image == null ? new Base[0] : this.image.toArray(new Base[this.image.size()]); // StringType
9094        case 106069776: /*other*/ return this.other == null ? new Base[0] : this.other.toArray(new Base[this.other.size()]); // StringType
9095        default: return super.getProperty(hash, name, checkValid);
9096        }
9097
9098      }
9099
9100      @Override
9101      public Base setProperty(int hash, String name, Base value) throws FHIRException {
9102        switch (hash) {
9103        case 1839654540: // rendering
9104          this.rendering = castToUrl(value); // UrlType
9105          return value;
9106        case -341064690: // resource
9107          this.getResource().add((ManifestResourceComponent) value); // ManifestResourceComponent
9108          return value;
9109        case 3433103: // page
9110          this.getPage().add((ManifestPageComponent) value); // ManifestPageComponent
9111          return value;
9112        case 100313435: // image
9113          this.getImage().add(castToString(value)); // StringType
9114          return value;
9115        case 106069776: // other
9116          this.getOther().add(castToString(value)); // StringType
9117          return value;
9118        default: return super.setProperty(hash, name, value);
9119        }
9120
9121      }
9122
9123      @Override
9124      public Base setProperty(String name, Base value) throws FHIRException {
9125        if (name.equals("rendering")) {
9126          this.rendering = castToUrl(value); // UrlType
9127        } else if (name.equals("resource")) {
9128          this.getResource().add((ManifestResourceComponent) value);
9129        } else if (name.equals("page")) {
9130          this.getPage().add((ManifestPageComponent) value);
9131        } else if (name.equals("image")) {
9132          this.getImage().add(castToString(value));
9133        } else if (name.equals("other")) {
9134          this.getOther().add(castToString(value));
9135        } else
9136          return super.setProperty(name, value);
9137        return value;
9138      }
9139
9140      @Override
9141      public Base makeProperty(int hash, String name) throws FHIRException {
9142        switch (hash) {
9143        case 1839654540:  return getRenderingElement();
9144        case -341064690:  return addResource(); 
9145        case 3433103:  return addPage(); 
9146        case 100313435:  return addImageElement();
9147        case 106069776:  return addOtherElement();
9148        default: return super.makeProperty(hash, name);
9149        }
9150
9151      }
9152
9153      @Override
9154      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
9155        switch (hash) {
9156        case 1839654540: /*rendering*/ return new String[] {"url"};
9157        case -341064690: /*resource*/ return new String[] {};
9158        case 3433103: /*page*/ return new String[] {};
9159        case 100313435: /*image*/ return new String[] {"string"};
9160        case 106069776: /*other*/ return new String[] {"string"};
9161        default: return super.getTypesForProperty(hash, name);
9162        }
9163
9164      }
9165
9166      @Override
9167      public Base addChild(String name) throws FHIRException {
9168        if (name.equals("rendering")) {
9169          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.rendering");
9170        }
9171        else if (name.equals("resource")) {
9172          return addResource();
9173        }
9174        else if (name.equals("page")) {
9175          return addPage();
9176        }
9177        else if (name.equals("image")) {
9178          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.image");
9179        }
9180        else if (name.equals("other")) {
9181          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.other");
9182        }
9183        else
9184          return super.addChild(name);
9185      }
9186
9187      public ImplementationGuideManifestComponent copy() {
9188        ImplementationGuideManifestComponent dst = new ImplementationGuideManifestComponent();
9189        copyValues(dst);
9190        dst.rendering = rendering == null ? null : rendering.copy();
9191        if (resource != null) {
9192          dst.resource = new ArrayList<ManifestResourceComponent>();
9193          for (ManifestResourceComponent i : resource)
9194            dst.resource.add(i.copy());
9195        };
9196        if (page != null) {
9197          dst.page = new ArrayList<ManifestPageComponent>();
9198          for (ManifestPageComponent i : page)
9199            dst.page.add(i.copy());
9200        };
9201        if (image != null) {
9202          dst.image = new ArrayList<StringType>();
9203          for (StringType i : image)
9204            dst.image.add(i.copy());
9205        };
9206        if (other != null) {
9207          dst.other = new ArrayList<StringType>();
9208          for (StringType i : other)
9209            dst.other.add(i.copy());
9210        };
9211        return dst;
9212      }
9213
9214      @Override
9215      public boolean equalsDeep(Base other_) {
9216        if (!super.equalsDeep(other_))
9217          return false;
9218        if (!(other_ instanceof ImplementationGuideManifestComponent))
9219          return false;
9220        ImplementationGuideManifestComponent o = (ImplementationGuideManifestComponent) other_;
9221        return compareDeep(rendering, o.rendering, true) && compareDeep(resource, o.resource, true) && compareDeep(page, o.page, true)
9222           && compareDeep(image, o.image, true) && compareDeep(other, o.other, true);
9223      }
9224
9225      @Override
9226      public boolean equalsShallow(Base other_) {
9227        if (!super.equalsShallow(other_))
9228          return false;
9229        if (!(other_ instanceof ImplementationGuideManifestComponent))
9230          return false;
9231        ImplementationGuideManifestComponent o = (ImplementationGuideManifestComponent) other_;
9232        return compareValues(rendering, o.rendering, true) && compareValues(image, o.image, true) && compareValues(other, o.other, true)
9233          ;
9234      }
9235
9236      public boolean isEmpty() {
9237        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(rendering, resource, page
9238          , image, other);
9239      }
9240
9241  public String fhirType() {
9242    return "ImplementationGuide.manifest";
9243
9244  }
9245
9246  }
9247
9248    @Block()
9249    public static class ManifestResourceComponent extends BackboneElement implements IBaseBackboneElement {
9250        /**
9251         * Where this resource is found.
9252         */
9253        @Child(name = "reference", type = {Reference.class}, order=1, min=1, max=1, modifier=false, summary=true)
9254        @Description(shortDefinition="Location of the resource", formalDefinition="Where this resource is found." )
9255        protected Reference reference;
9256
9257        /**
9258         * The actual object that is the target of the reference (Where this resource is found.)
9259         */
9260        protected Resource referenceTarget;
9261
9262        /**
9263         * If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.
9264         */
9265        @Child(name = "example", type = {BooleanType.class, CanonicalType.class}, order=2, min=0, max=1, modifier=false, summary=false)
9266        @Description(shortDefinition="Is an example/What is this an example of?", formalDefinition="If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile." )
9267        protected Type example;
9268
9269        /**
9270         * The relative path for primary page for this resource within the IG.
9271         */
9272        @Child(name = "relativePath", type = {UrlType.class}, order=3, min=0, max=1, modifier=false, summary=false)
9273        @Description(shortDefinition="Relative path for page in IG", formalDefinition="The relative path for primary page for this resource within the IG." )
9274        protected UrlType relativePath;
9275
9276        private static final long serialVersionUID = 1150095716L;
9277
9278    /**
9279     * Constructor
9280     */
9281      public ManifestResourceComponent() {
9282        super();
9283      }
9284
9285    /**
9286     * Constructor
9287     */
9288      public ManifestResourceComponent(Reference reference) {
9289        super();
9290        this.reference = reference;
9291      }
9292
9293        /**
9294         * @return {@link #reference} (Where this resource is found.)
9295         */
9296        public Reference getReference() { 
9297          if (this.reference == null)
9298            if (Configuration.errorOnAutoCreate())
9299              throw new Error("Attempt to auto-create ManifestResourceComponent.reference");
9300            else if (Configuration.doAutoCreate())
9301              this.reference = new Reference(); // cc
9302          return this.reference;
9303        }
9304
9305        public boolean hasReference() { 
9306          return this.reference != null && !this.reference.isEmpty();
9307        }
9308
9309        /**
9310         * @param value {@link #reference} (Where this resource is found.)
9311         */
9312        public ManifestResourceComponent setReference(Reference value) { 
9313          this.reference = value;
9314          return this;
9315        }
9316
9317        /**
9318         * @return {@link #reference} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Where this resource is found.)
9319         */
9320        public Resource getReferenceTarget() { 
9321          return this.referenceTarget;
9322        }
9323
9324        /**
9325         * @param value {@link #reference} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Where this resource is found.)
9326         */
9327        public ManifestResourceComponent setReferenceTarget(Resource value) { 
9328          this.referenceTarget = value;
9329          return this;
9330        }
9331
9332        /**
9333         * @return {@link #example} (If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.)
9334         */
9335        public Type getExample() { 
9336          return this.example;
9337        }
9338
9339        /**
9340         * @return {@link #example} (If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.)
9341         */
9342        public BooleanType getExampleBooleanType() throws FHIRException { 
9343          if (this.example == null)
9344            return null;
9345          if (!(this.example instanceof BooleanType))
9346            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.example.getClass().getName()+" was encountered");
9347          return (BooleanType) this.example;
9348        }
9349
9350        public boolean hasExampleBooleanType() { 
9351          return this != null && this.example instanceof BooleanType;
9352        }
9353
9354        /**
9355         * @return {@link #example} (If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.)
9356         */
9357        public CanonicalType getExampleCanonicalType() throws FHIRException { 
9358          if (this.example == null)
9359            return null;
9360          if (!(this.example instanceof CanonicalType))
9361            throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.example.getClass().getName()+" was encountered");
9362          return (CanonicalType) this.example;
9363        }
9364
9365        public boolean hasExampleCanonicalType() { 
9366          return this != null && this.example instanceof CanonicalType;
9367        }
9368
9369        public boolean hasExample() { 
9370          return this.example != null && !this.example.isEmpty();
9371        }
9372
9373        /**
9374         * @param value {@link #example} (If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.)
9375         */
9376        public ManifestResourceComponent setExample(Type value) { 
9377          if (value != null && !(value instanceof BooleanType || value instanceof CanonicalType))
9378            throw new Error("Not the right type for ImplementationGuide.manifest.resource.example[x]: "+value.fhirType());
9379          this.example = value;
9380          return this;
9381        }
9382
9383        /**
9384         * @return {@link #relativePath} (The relative path for primary page for this resource within the IG.). This is the underlying object with id, value and extensions. The accessor "getRelativePath" gives direct access to the value
9385         */
9386        public UrlType getRelativePathElement() { 
9387          if (this.relativePath == null)
9388            if (Configuration.errorOnAutoCreate())
9389              throw new Error("Attempt to auto-create ManifestResourceComponent.relativePath");
9390            else if (Configuration.doAutoCreate())
9391              this.relativePath = new UrlType(); // bb
9392          return this.relativePath;
9393        }
9394
9395        public boolean hasRelativePathElement() { 
9396          return this.relativePath != null && !this.relativePath.isEmpty();
9397        }
9398
9399        public boolean hasRelativePath() { 
9400          return this.relativePath != null && !this.relativePath.isEmpty();
9401        }
9402
9403        /**
9404         * @param value {@link #relativePath} (The relative path for primary page for this resource within the IG.). This is the underlying object with id, value and extensions. The accessor "getRelativePath" gives direct access to the value
9405         */
9406        public ManifestResourceComponent setRelativePathElement(UrlType value) { 
9407          this.relativePath = value;
9408          return this;
9409        }
9410
9411        /**
9412         * @return The relative path for primary page for this resource within the IG.
9413         */
9414        public String getRelativePath() { 
9415          return this.relativePath == null ? null : this.relativePath.getValue();
9416        }
9417
9418        /**
9419         * @param value The relative path for primary page for this resource within the IG.
9420         */
9421        public ManifestResourceComponent setRelativePath(String value) { 
9422          if (Utilities.noString(value))
9423            this.relativePath = null;
9424          else {
9425            if (this.relativePath == null)
9426              this.relativePath = new UrlType();
9427            this.relativePath.setValue(value);
9428          }
9429          return this;
9430        }
9431
9432        protected void listChildren(List<Property> children) {
9433          super.listChildren(children);
9434          children.add(new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference));
9435          children.add(new Property("example[x]", "boolean|canonical(StructureDefinition)", "If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.", 0, 1, example));
9436          children.add(new Property("relativePath", "url", "The relative path for primary page for this resource within the IG.", 0, 1, relativePath));
9437        }
9438
9439        @Override
9440        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
9441          switch (_hash) {
9442          case -925155509: /*reference*/  return new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference);
9443          case -2002328874: /*example[x]*/  return new Property("example[x]", "boolean|canonical(StructureDefinition)", "If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.", 0, 1, example);
9444          case -1322970774: /*example*/  return new Property("example[x]", "boolean|canonical(StructureDefinition)", "If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.", 0, 1, example);
9445          case 159803230: /*exampleBoolean*/  return new Property("example[x]", "boolean|canonical(StructureDefinition)", "If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.", 0, 1, example);
9446          case 2016979626: /*exampleCanonical*/  return new Property("example[x]", "boolean|canonical(StructureDefinition)", "If true or a reference, indicates the resource is an example instance.  If a reference is present, indicates that the example is an example of the specified profile.", 0, 1, example);
9447          case -70808303: /*relativePath*/  return new Property("relativePath", "url", "The relative path for primary page for this resource within the IG.", 0, 1, relativePath);
9448          default: return super.getNamedProperty(_hash, _name, _checkValid);
9449          }
9450
9451        }
9452
9453      @Override
9454      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
9455        switch (hash) {
9456        case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // Reference
9457        case -1322970774: /*example*/ return this.example == null ? new Base[0] : new Base[] {this.example}; // Type
9458        case -70808303: /*relativePath*/ return this.relativePath == null ? new Base[0] : new Base[] {this.relativePath}; // UrlType
9459        default: return super.getProperty(hash, name, checkValid);
9460        }
9461
9462      }
9463
9464      @Override
9465      public Base setProperty(int hash, String name, Base value) throws FHIRException {
9466        switch (hash) {
9467        case -925155509: // reference
9468          this.reference = castToReference(value); // Reference
9469          return value;
9470        case -1322970774: // example
9471          this.example = castToType(value); // Type
9472          return value;
9473        case -70808303: // relativePath
9474          this.relativePath = castToUrl(value); // UrlType
9475          return value;
9476        default: return super.setProperty(hash, name, value);
9477        }
9478
9479      }
9480
9481      @Override
9482      public Base setProperty(String name, Base value) throws FHIRException {
9483        if (name.equals("reference")) {
9484          this.reference = castToReference(value); // Reference
9485        } else if (name.equals("example[x]")) {
9486          this.example = castToType(value); // Type
9487        } else if (name.equals("relativePath")) {
9488          this.relativePath = castToUrl(value); // UrlType
9489        } else
9490          return super.setProperty(name, value);
9491        return value;
9492      }
9493
9494      @Override
9495      public Base makeProperty(int hash, String name) throws FHIRException {
9496        switch (hash) {
9497        case -925155509:  return getReference(); 
9498        case -2002328874:  return getExample(); 
9499        case -1322970774:  return getExample(); 
9500        case -70808303:  return getRelativePathElement();
9501        default: return super.makeProperty(hash, name);
9502        }
9503
9504      }
9505
9506      @Override
9507      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
9508        switch (hash) {
9509        case -925155509: /*reference*/ return new String[] {"Reference"};
9510        case -1322970774: /*example*/ return new String[] {"boolean", "canonical"};
9511        case -70808303: /*relativePath*/ return new String[] {"url"};
9512        default: return super.getTypesForProperty(hash, name);
9513        }
9514
9515      }
9516
9517      @Override
9518      public Base addChild(String name) throws FHIRException {
9519        if (name.equals("reference")) {
9520          this.reference = new Reference();
9521          return this.reference;
9522        }
9523        else if (name.equals("exampleBoolean")) {
9524          this.example = new BooleanType();
9525          return this.example;
9526        }
9527        else if (name.equals("exampleCanonical")) {
9528          this.example = new CanonicalType();
9529          return this.example;
9530        }
9531        else if (name.equals("relativePath")) {
9532          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.relativePath");
9533        }
9534        else
9535          return super.addChild(name);
9536      }
9537
9538      public ManifestResourceComponent copy() {
9539        ManifestResourceComponent dst = new ManifestResourceComponent();
9540        copyValues(dst);
9541        dst.reference = reference == null ? null : reference.copy();
9542        dst.example = example == null ? null : example.copy();
9543        dst.relativePath = relativePath == null ? null : relativePath.copy();
9544        return dst;
9545      }
9546
9547      @Override
9548      public boolean equalsDeep(Base other_) {
9549        if (!super.equalsDeep(other_))
9550          return false;
9551        if (!(other_ instanceof ManifestResourceComponent))
9552          return false;
9553        ManifestResourceComponent o = (ManifestResourceComponent) other_;
9554        return compareDeep(reference, o.reference, true) && compareDeep(example, o.example, true) && compareDeep(relativePath, o.relativePath, true)
9555          ;
9556      }
9557
9558      @Override
9559      public boolean equalsShallow(Base other_) {
9560        if (!super.equalsShallow(other_))
9561          return false;
9562        if (!(other_ instanceof ManifestResourceComponent))
9563          return false;
9564        ManifestResourceComponent o = (ManifestResourceComponent) other_;
9565        return compareValues(relativePath, o.relativePath, true);
9566      }
9567
9568      public boolean isEmpty() {
9569        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, example, relativePath
9570          );
9571      }
9572
9573  public String fhirType() {
9574    return "ImplementationGuide.manifest.resource";
9575
9576  }
9577
9578  }
9579
9580    @Block()
9581    public static class ManifestPageComponent extends BackboneElement implements IBaseBackboneElement {
9582        /**
9583         * Relative path to the page.
9584         */
9585        @Child(name = "name", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
9586        @Description(shortDefinition="HTML page name", formalDefinition="Relative path to the page." )
9587        protected StringType name;
9588
9589        /**
9590         * Label for the page intended for human display.
9591         */
9592        @Child(name = "title", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
9593        @Description(shortDefinition="Title of the page, for references", formalDefinition="Label for the page intended for human display." )
9594        protected StringType title;
9595
9596        /**
9597         * The name of an anchor available on the page.
9598         */
9599        @Child(name = "anchor", type = {StringType.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
9600        @Description(shortDefinition="Anchor available on the page", formalDefinition="The name of an anchor available on the page." )
9601        protected List<StringType> anchor;
9602
9603        private static final long serialVersionUID = 1920576611L;
9604
9605    /**
9606     * Constructor
9607     */
9608      public ManifestPageComponent() {
9609        super();
9610      }
9611
9612    /**
9613     * Constructor
9614     */
9615      public ManifestPageComponent(StringType name) {
9616        super();
9617        this.name = name;
9618      }
9619
9620        /**
9621         * @return {@link #name} (Relative path to the page.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
9622         */
9623        public StringType getNameElement() { 
9624          if (this.name == null)
9625            if (Configuration.errorOnAutoCreate())
9626              throw new Error("Attempt to auto-create ManifestPageComponent.name");
9627            else if (Configuration.doAutoCreate())
9628              this.name = new StringType(); // bb
9629          return this.name;
9630        }
9631
9632        public boolean hasNameElement() { 
9633          return this.name != null && !this.name.isEmpty();
9634        }
9635
9636        public boolean hasName() { 
9637          return this.name != null && !this.name.isEmpty();
9638        }
9639
9640        /**
9641         * @param value {@link #name} (Relative path to the page.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
9642         */
9643        public ManifestPageComponent setNameElement(StringType value) { 
9644          this.name = value;
9645          return this;
9646        }
9647
9648        /**
9649         * @return Relative path to the page.
9650         */
9651        public String getName() { 
9652          return this.name == null ? null : this.name.getValue();
9653        }
9654
9655        /**
9656         * @param value Relative path to the page.
9657         */
9658        public ManifestPageComponent setName(String value) { 
9659            if (this.name == null)
9660              this.name = new StringType();
9661            this.name.setValue(value);
9662          return this;
9663        }
9664
9665        /**
9666         * @return {@link #title} (Label for the page intended for human display.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
9667         */
9668        public StringType getTitleElement() { 
9669          if (this.title == null)
9670            if (Configuration.errorOnAutoCreate())
9671              throw new Error("Attempt to auto-create ManifestPageComponent.title");
9672            else if (Configuration.doAutoCreate())
9673              this.title = new StringType(); // bb
9674          return this.title;
9675        }
9676
9677        public boolean hasTitleElement() { 
9678          return this.title != null && !this.title.isEmpty();
9679        }
9680
9681        public boolean hasTitle() { 
9682          return this.title != null && !this.title.isEmpty();
9683        }
9684
9685        /**
9686         * @param value {@link #title} (Label for the page intended for human display.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
9687         */
9688        public ManifestPageComponent setTitleElement(StringType value) { 
9689          this.title = value;
9690          return this;
9691        }
9692
9693        /**
9694         * @return Label for the page intended for human display.
9695         */
9696        public String getTitle() { 
9697          return this.title == null ? null : this.title.getValue();
9698        }
9699
9700        /**
9701         * @param value Label for the page intended for human display.
9702         */
9703        public ManifestPageComponent setTitle(String value) { 
9704          if (Utilities.noString(value))
9705            this.title = null;
9706          else {
9707            if (this.title == null)
9708              this.title = new StringType();
9709            this.title.setValue(value);
9710          }
9711          return this;
9712        }
9713
9714        /**
9715         * @return {@link #anchor} (The name of an anchor available on the page.)
9716         */
9717        public List<StringType> getAnchor() { 
9718          if (this.anchor == null)
9719            this.anchor = new ArrayList<StringType>();
9720          return this.anchor;
9721        }
9722
9723        /**
9724         * @return Returns a reference to <code>this</code> for easy method chaining
9725         */
9726        public ManifestPageComponent setAnchor(List<StringType> theAnchor) { 
9727          this.anchor = theAnchor;
9728          return this;
9729        }
9730
9731        public boolean hasAnchor() { 
9732          if (this.anchor == null)
9733            return false;
9734          for (StringType item : this.anchor)
9735            if (!item.isEmpty())
9736              return true;
9737          return false;
9738        }
9739
9740        /**
9741         * @return {@link #anchor} (The name of an anchor available on the page.)
9742         */
9743        public StringType addAnchorElement() {//2 
9744          StringType t = new StringType();
9745          if (this.anchor == null)
9746            this.anchor = new ArrayList<StringType>();
9747          this.anchor.add(t);
9748          return t;
9749        }
9750
9751        /**
9752         * @param value {@link #anchor} (The name of an anchor available on the page.)
9753         */
9754        public ManifestPageComponent addAnchor(String value) { //1
9755          StringType t = new StringType();
9756          t.setValue(value);
9757          if (this.anchor == null)
9758            this.anchor = new ArrayList<StringType>();
9759          this.anchor.add(t);
9760          return this;
9761        }
9762
9763        /**
9764         * @param value {@link #anchor} (The name of an anchor available on the page.)
9765         */
9766        public boolean hasAnchor(String value) { 
9767          if (this.anchor == null)
9768            return false;
9769          for (StringType v : this.anchor)
9770            if (v.getValue().equals(value)) // string
9771              return true;
9772          return false;
9773        }
9774
9775        protected void listChildren(List<Property> children) {
9776          super.listChildren(children);
9777          children.add(new Property("name", "string", "Relative path to the page.", 0, 1, name));
9778          children.add(new Property("title", "string", "Label for the page intended for human display.", 0, 1, title));
9779          children.add(new Property("anchor", "string", "The name of an anchor available on the page.", 0, java.lang.Integer.MAX_VALUE, anchor));
9780        }
9781
9782        @Override
9783        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
9784          switch (_hash) {
9785          case 3373707: /*name*/  return new Property("name", "string", "Relative path to the page.", 0, 1, name);
9786          case 110371416: /*title*/  return new Property("title", "string", "Label for the page intended for human display.", 0, 1, title);
9787          case -1413299531: /*anchor*/  return new Property("anchor", "string", "The name of an anchor available on the page.", 0, java.lang.Integer.MAX_VALUE, anchor);
9788          default: return super.getNamedProperty(_hash, _name, _checkValid);
9789          }
9790
9791        }
9792
9793      @Override
9794      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
9795        switch (hash) {
9796        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
9797        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
9798        case -1413299531: /*anchor*/ return this.anchor == null ? new Base[0] : this.anchor.toArray(new Base[this.anchor.size()]); // StringType
9799        default: return super.getProperty(hash, name, checkValid);
9800        }
9801
9802      }
9803
9804      @Override
9805      public Base setProperty(int hash, String name, Base value) throws FHIRException {
9806        switch (hash) {
9807        case 3373707: // name
9808          this.name = castToString(value); // StringType
9809          return value;
9810        case 110371416: // title
9811          this.title = castToString(value); // StringType
9812          return value;
9813        case -1413299531: // anchor
9814          this.getAnchor().add(castToString(value)); // StringType
9815          return value;
9816        default: return super.setProperty(hash, name, value);
9817        }
9818
9819      }
9820
9821      @Override
9822      public Base setProperty(String name, Base value) throws FHIRException {
9823        if (name.equals("name")) {
9824          this.name = castToString(value); // StringType
9825        } else if (name.equals("title")) {
9826          this.title = castToString(value); // StringType
9827        } else if (name.equals("anchor")) {
9828          this.getAnchor().add(castToString(value));
9829        } else
9830          return super.setProperty(name, value);
9831        return value;
9832      }
9833
9834      @Override
9835      public Base makeProperty(int hash, String name) throws FHIRException {
9836        switch (hash) {
9837        case 3373707:  return getNameElement();
9838        case 110371416:  return getTitleElement();
9839        case -1413299531:  return addAnchorElement();
9840        default: return super.makeProperty(hash, name);
9841        }
9842
9843      }
9844
9845      @Override
9846      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
9847        switch (hash) {
9848        case 3373707: /*name*/ return new String[] {"string"};
9849        case 110371416: /*title*/ return new String[] {"string"};
9850        case -1413299531: /*anchor*/ return new String[] {"string"};
9851        default: return super.getTypesForProperty(hash, name);
9852        }
9853
9854      }
9855
9856      @Override
9857      public Base addChild(String name) throws FHIRException {
9858        if (name.equals("name")) {
9859          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.name");
9860        }
9861        else if (name.equals("title")) {
9862          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.title");
9863        }
9864        else if (name.equals("anchor")) {
9865          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.anchor");
9866        }
9867        else
9868          return super.addChild(name);
9869      }
9870
9871      public ManifestPageComponent copy() {
9872        ManifestPageComponent dst = new ManifestPageComponent();
9873        copyValues(dst);
9874        dst.name = name == null ? null : name.copy();
9875        dst.title = title == null ? null : title.copy();
9876        if (anchor != null) {
9877          dst.anchor = new ArrayList<StringType>();
9878          for (StringType i : anchor)
9879            dst.anchor.add(i.copy());
9880        };
9881        return dst;
9882      }
9883
9884      @Override
9885      public boolean equalsDeep(Base other_) {
9886        if (!super.equalsDeep(other_))
9887          return false;
9888        if (!(other_ instanceof ManifestPageComponent))
9889          return false;
9890        ManifestPageComponent o = (ManifestPageComponent) other_;
9891        return compareDeep(name, o.name, true) && compareDeep(title, o.title, true) && compareDeep(anchor, o.anchor, true)
9892          ;
9893      }
9894
9895      @Override
9896      public boolean equalsShallow(Base other_) {
9897        if (!super.equalsShallow(other_))
9898          return false;
9899        if (!(other_ instanceof ManifestPageComponent))
9900          return false;
9901        ManifestPageComponent o = (ManifestPageComponent) other_;
9902        return compareValues(name, o.name, true) && compareValues(title, o.title, true) && compareValues(anchor, o.anchor, true)
9903          ;
9904      }
9905
9906      public boolean isEmpty() {
9907        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, title, anchor);
9908      }
9909
9910  public String fhirType() {
9911    return "ImplementationGuide.manifest.page";
9912
9913  }
9914
9915  }
9916
9917    /**
9918     * A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.
9919     */
9920    @Child(name = "copyright", type = {MarkdownType.class}, order=0, min=0, max=1, modifier=false, summary=false)
9921    @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide." )
9922    protected MarkdownType copyright;
9923
9924    /**
9925     * The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.
9926     */
9927    @Child(name = "packageId", type = {IdType.class}, order=1, min=0, max=1, modifier=false, summary=true)
9928    @Description(shortDefinition="NPM Package name for IG", formalDefinition="The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care." )
9929    protected IdType packageId;
9930
9931    /**
9932     * The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.
9933     */
9934    @Child(name = "license", type = {CodeType.class}, order=2, min=0, max=1, modifier=false, summary=true)
9935    @Description(shortDefinition="SPDX license code for this IG (or not-open-source)", formalDefinition="The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'." )
9936    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/spdx-license")
9937    protected Enumeration<SPDXLicense> license;
9938
9939    /**
9940     * The version of the FHIR specification on which this ImplementationGuide is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 3.5.0. for this version.
9941     */
9942    @Child(name = "fhirVersion", type = {IdType.class}, order=3, min=0, max=1, modifier=false, summary=true)
9943    @Description(shortDefinition="FHIR Version this Implementation Guide targets", formalDefinition="The version of the FHIR specification on which this ImplementationGuide is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 3.5.0. for this version." )
9944    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/fhir-versions")
9945    protected IdType fhirVersion;
9946
9947    /**
9948     * Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.
9949     */
9950    @Child(name = "dependsOn", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
9951    @Description(shortDefinition="Another Implementation guide this depends on", formalDefinition="Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides." )
9952    protected List<ImplementationGuideDependsOnComponent> dependsOn;
9953
9954    /**
9955     * A set of profiles that all resources covered by this implementation guide must conform to.
9956     */
9957    @Child(name = "global", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
9958    @Description(shortDefinition="Profiles that apply globally", formalDefinition="A set of profiles that all resources covered by this implementation guide must conform to." )
9959    protected List<ImplementationGuideGlobalComponent> global;
9960
9961    /**
9962     * The information needed by an IG publisher tool to publish the whole implementation guide.
9963     */
9964    @Child(name = "definition", type = {}, order=6, min=0, max=1, modifier=false, summary=false)
9965    @Description(shortDefinition="Information needed to build the IG", formalDefinition="The information needed by an IG publisher tool to publish the whole implementation guide." )
9966    protected ImplementationGuideDefinitionComponent definition;
9967
9968    /**
9969     * Information about an assembled implementation guide, created by the publication tooling.
9970     */
9971    @Child(name = "manifest", type = {}, order=7, min=0, max=1, modifier=false, summary=false)
9972    @Description(shortDefinition="Information about an assembled IG", formalDefinition="Information about an assembled implementation guide, created by the publication tooling." )
9973    protected ImplementationGuideManifestComponent manifest;
9974
9975    private static final long serialVersionUID = 1764764818L;
9976
9977  /**
9978   * Constructor
9979   */
9980    public ImplementationGuide() {
9981      super();
9982    }
9983
9984  /**
9985   * Constructor
9986   */
9987    public ImplementationGuide(UriType url, StringType name, Enumeration<PublicationStatus> status) {
9988      super();
9989      this.url = url;
9990      this.name = name;
9991      this.status = status;
9992    }
9993
9994    /**
9995     * @return {@link #url} (An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
9996     */
9997    public UriType getUrlElement() { 
9998      if (this.url == null)
9999        if (Configuration.errorOnAutoCreate())
10000          throw new Error("Attempt to auto-create ImplementationGuide.url");
10001        else if (Configuration.doAutoCreate())
10002          this.url = new UriType(); // bb
10003      return this.url;
10004    }
10005
10006    public boolean hasUrlElement() { 
10007      return this.url != null && !this.url.isEmpty();
10008    }
10009
10010    public boolean hasUrl() { 
10011      return this.url != null && !this.url.isEmpty();
10012    }
10013
10014    /**
10015     * @param value {@link #url} (An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
10016     */
10017    public ImplementationGuide setUrlElement(UriType value) { 
10018      this.url = value;
10019      return this;
10020    }
10021
10022    /**
10023     * @return An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.
10024     */
10025    public String getUrl() { 
10026      return this.url == null ? null : this.url.getValue();
10027    }
10028
10029    /**
10030     * @param value An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.
10031     */
10032    public ImplementationGuide setUrl(String value) { 
10033        if (this.url == null)
10034          this.url = new UriType();
10035        this.url.setValue(value);
10036      return this;
10037    }
10038
10039    /**
10040     * @return {@link #version} (The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
10041     */
10042    public StringType getVersionElement() { 
10043      if (this.version == null)
10044        if (Configuration.errorOnAutoCreate())
10045          throw new Error("Attempt to auto-create ImplementationGuide.version");
10046        else if (Configuration.doAutoCreate())
10047          this.version = new StringType(); // bb
10048      return this.version;
10049    }
10050
10051    public boolean hasVersionElement() { 
10052      return this.version != null && !this.version.isEmpty();
10053    }
10054
10055    public boolean hasVersion() { 
10056      return this.version != null && !this.version.isEmpty();
10057    }
10058
10059    /**
10060     * @param value {@link #version} (The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
10061     */
10062    public ImplementationGuide setVersionElement(StringType value) { 
10063      this.version = value;
10064      return this;
10065    }
10066
10067    /**
10068     * @return The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
10069     */
10070    public String getVersion() { 
10071      return this.version == null ? null : this.version.getValue();
10072    }
10073
10074    /**
10075     * @param value The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
10076     */
10077    public ImplementationGuide setVersion(String value) { 
10078      if (Utilities.noString(value))
10079        this.version = null;
10080      else {
10081        if (this.version == null)
10082          this.version = new StringType();
10083        this.version.setValue(value);
10084      }
10085      return this;
10086    }
10087
10088    /**
10089     * @return {@link #name} (A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
10090     */
10091    public StringType getNameElement() { 
10092      if (this.name == null)
10093        if (Configuration.errorOnAutoCreate())
10094          throw new Error("Attempt to auto-create ImplementationGuide.name");
10095        else if (Configuration.doAutoCreate())
10096          this.name = new StringType(); // bb
10097      return this.name;
10098    }
10099
10100    public boolean hasNameElement() { 
10101      return this.name != null && !this.name.isEmpty();
10102    }
10103
10104    public boolean hasName() { 
10105      return this.name != null && !this.name.isEmpty();
10106    }
10107
10108    /**
10109     * @param value {@link #name} (A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
10110     */
10111    public ImplementationGuide setNameElement(StringType value) { 
10112      this.name = value;
10113      return this;
10114    }
10115
10116    /**
10117     * @return A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.
10118     */
10119    public String getName() { 
10120      return this.name == null ? null : this.name.getValue();
10121    }
10122
10123    /**
10124     * @param value A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.
10125     */
10126    public ImplementationGuide setName(String value) { 
10127        if (this.name == null)
10128          this.name = new StringType();
10129        this.name.setValue(value);
10130      return this;
10131    }
10132
10133    /**
10134     * @return {@link #title} (A short, descriptive, user-friendly title for the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
10135     */
10136    public StringType getTitleElement() { 
10137      if (this.title == null)
10138        if (Configuration.errorOnAutoCreate())
10139          throw new Error("Attempt to auto-create ImplementationGuide.title");
10140        else if (Configuration.doAutoCreate())
10141          this.title = new StringType(); // bb
10142      return this.title;
10143    }
10144
10145    public boolean hasTitleElement() { 
10146      return this.title != null && !this.title.isEmpty();
10147    }
10148
10149    public boolean hasTitle() { 
10150      return this.title != null && !this.title.isEmpty();
10151    }
10152
10153    /**
10154     * @param value {@link #title} (A short, descriptive, user-friendly title for the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
10155     */
10156    public ImplementationGuide setTitleElement(StringType value) { 
10157      this.title = value;
10158      return this;
10159    }
10160
10161    /**
10162     * @return A short, descriptive, user-friendly title for the implementation guide.
10163     */
10164    public String getTitle() { 
10165      return this.title == null ? null : this.title.getValue();
10166    }
10167
10168    /**
10169     * @param value A short, descriptive, user-friendly title for the implementation guide.
10170     */
10171    public ImplementationGuide setTitle(String value) { 
10172      if (Utilities.noString(value))
10173        this.title = null;
10174      else {
10175        if (this.title == null)
10176          this.title = new StringType();
10177        this.title.setValue(value);
10178      }
10179      return this;
10180    }
10181
10182    /**
10183     * @return {@link #status} (The status of this implementation guide. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
10184     */
10185    public Enumeration<PublicationStatus> getStatusElement() { 
10186      if (this.status == null)
10187        if (Configuration.errorOnAutoCreate())
10188          throw new Error("Attempt to auto-create ImplementationGuide.status");
10189        else if (Configuration.doAutoCreate())
10190          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
10191      return this.status;
10192    }
10193
10194    public boolean hasStatusElement() { 
10195      return this.status != null && !this.status.isEmpty();
10196    }
10197
10198    public boolean hasStatus() { 
10199      return this.status != null && !this.status.isEmpty();
10200    }
10201
10202    /**
10203     * @param value {@link #status} (The status of this implementation guide. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
10204     */
10205    public ImplementationGuide setStatusElement(Enumeration<PublicationStatus> value) { 
10206      this.status = value;
10207      return this;
10208    }
10209
10210    /**
10211     * @return The status of this implementation guide. Enables tracking the life-cycle of the content.
10212     */
10213    public PublicationStatus getStatus() { 
10214      return this.status == null ? null : this.status.getValue();
10215    }
10216
10217    /**
10218     * @param value The status of this implementation guide. Enables tracking the life-cycle of the content.
10219     */
10220    public ImplementationGuide setStatus(PublicationStatus value) { 
10221        if (this.status == null)
10222          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
10223        this.status.setValue(value);
10224      return this;
10225    }
10226
10227    /**
10228     * @return {@link #experimental} (A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
10229     */
10230    public BooleanType getExperimentalElement() { 
10231      if (this.experimental == null)
10232        if (Configuration.errorOnAutoCreate())
10233          throw new Error("Attempt to auto-create ImplementationGuide.experimental");
10234        else if (Configuration.doAutoCreate())
10235          this.experimental = new BooleanType(); // bb
10236      return this.experimental;
10237    }
10238
10239    public boolean hasExperimentalElement() { 
10240      return this.experimental != null && !this.experimental.isEmpty();
10241    }
10242
10243    public boolean hasExperimental() { 
10244      return this.experimental != null && !this.experimental.isEmpty();
10245    }
10246
10247    /**
10248     * @param value {@link #experimental} (A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
10249     */
10250    public ImplementationGuide setExperimentalElement(BooleanType value) { 
10251      this.experimental = value;
10252      return this;
10253    }
10254
10255    /**
10256     * @return A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
10257     */
10258    public boolean getExperimental() { 
10259      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
10260    }
10261
10262    /**
10263     * @param value A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
10264     */
10265    public ImplementationGuide setExperimental(boolean value) { 
10266        if (this.experimental == null)
10267          this.experimental = new BooleanType();
10268        this.experimental.setValue(value);
10269      return this;
10270    }
10271
10272    /**
10273     * @return {@link #date} (The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
10274     */
10275    public DateTimeType getDateElement() { 
10276      if (this.date == null)
10277        if (Configuration.errorOnAutoCreate())
10278          throw new Error("Attempt to auto-create ImplementationGuide.date");
10279        else if (Configuration.doAutoCreate())
10280          this.date = new DateTimeType(); // bb
10281      return this.date;
10282    }
10283
10284    public boolean hasDateElement() { 
10285      return this.date != null && !this.date.isEmpty();
10286    }
10287
10288    public boolean hasDate() { 
10289      return this.date != null && !this.date.isEmpty();
10290    }
10291
10292    /**
10293     * @param value {@link #date} (The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
10294     */
10295    public ImplementationGuide setDateElement(DateTimeType value) { 
10296      this.date = value;
10297      return this;
10298    }
10299
10300    /**
10301     * @return The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.
10302     */
10303    public Date getDate() { 
10304      return this.date == null ? null : this.date.getValue();
10305    }
10306
10307    /**
10308     * @param value The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.
10309     */
10310    public ImplementationGuide setDate(Date value) { 
10311      if (value == null)
10312        this.date = null;
10313      else {
10314        if (this.date == null)
10315          this.date = new DateTimeType();
10316        this.date.setValue(value);
10317      }
10318      return this;
10319    }
10320
10321    /**
10322     * @return {@link #publisher} (The name of the organization or individual that published the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
10323     */
10324    public StringType getPublisherElement() { 
10325      if (this.publisher == null)
10326        if (Configuration.errorOnAutoCreate())
10327          throw new Error("Attempt to auto-create ImplementationGuide.publisher");
10328        else if (Configuration.doAutoCreate())
10329          this.publisher = new StringType(); // bb
10330      return this.publisher;
10331    }
10332
10333    public boolean hasPublisherElement() { 
10334      return this.publisher != null && !this.publisher.isEmpty();
10335    }
10336
10337    public boolean hasPublisher() { 
10338      return this.publisher != null && !this.publisher.isEmpty();
10339    }
10340
10341    /**
10342     * @param value {@link #publisher} (The name of the organization or individual that published the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
10343     */
10344    public ImplementationGuide setPublisherElement(StringType value) { 
10345      this.publisher = value;
10346      return this;
10347    }
10348
10349    /**
10350     * @return The name of the organization or individual that published the implementation guide.
10351     */
10352    public String getPublisher() { 
10353      return this.publisher == null ? null : this.publisher.getValue();
10354    }
10355
10356    /**
10357     * @param value The name of the organization or individual that published the implementation guide.
10358     */
10359    public ImplementationGuide setPublisher(String value) { 
10360      if (Utilities.noString(value))
10361        this.publisher = null;
10362      else {
10363        if (this.publisher == null)
10364          this.publisher = new StringType();
10365        this.publisher.setValue(value);
10366      }
10367      return this;
10368    }
10369
10370    /**
10371     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
10372     */
10373    public List<ContactDetail> getContact() { 
10374      if (this.contact == null)
10375        this.contact = new ArrayList<ContactDetail>();
10376      return this.contact;
10377    }
10378
10379    /**
10380     * @return Returns a reference to <code>this</code> for easy method chaining
10381     */
10382    public ImplementationGuide setContact(List<ContactDetail> theContact) { 
10383      this.contact = theContact;
10384      return this;
10385    }
10386
10387    public boolean hasContact() { 
10388      if (this.contact == null)
10389        return false;
10390      for (ContactDetail item : this.contact)
10391        if (!item.isEmpty())
10392          return true;
10393      return false;
10394    }
10395
10396    public ContactDetail addContact() { //3
10397      ContactDetail t = new ContactDetail();
10398      if (this.contact == null)
10399        this.contact = new ArrayList<ContactDetail>();
10400      this.contact.add(t);
10401      return t;
10402    }
10403
10404    public ImplementationGuide addContact(ContactDetail t) { //3
10405      if (t == null)
10406        return this;
10407      if (this.contact == null)
10408        this.contact = new ArrayList<ContactDetail>();
10409      this.contact.add(t);
10410      return this;
10411    }
10412
10413    /**
10414     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist
10415     */
10416    public ContactDetail getContactFirstRep() { 
10417      if (getContact().isEmpty()) {
10418        addContact();
10419      }
10420      return getContact().get(0);
10421    }
10422
10423    /**
10424     * @return {@link #description} (A free text natural language description of the implementation guide from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
10425     */
10426    public MarkdownType getDescriptionElement() { 
10427      if (this.description == null)
10428        if (Configuration.errorOnAutoCreate())
10429          throw new Error("Attempt to auto-create ImplementationGuide.description");
10430        else if (Configuration.doAutoCreate())
10431          this.description = new MarkdownType(); // bb
10432      return this.description;
10433    }
10434
10435    public boolean hasDescriptionElement() { 
10436      return this.description != null && !this.description.isEmpty();
10437    }
10438
10439    public boolean hasDescription() { 
10440      return this.description != null && !this.description.isEmpty();
10441    }
10442
10443    /**
10444     * @param value {@link #description} (A free text natural language description of the implementation guide from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
10445     */
10446    public ImplementationGuide setDescriptionElement(MarkdownType value) { 
10447      this.description = value;
10448      return this;
10449    }
10450
10451    /**
10452     * @return A free text natural language description of the implementation guide from a consumer's perspective.
10453     */
10454    public String getDescription() { 
10455      return this.description == null ? null : this.description.getValue();
10456    }
10457
10458    /**
10459     * @param value A free text natural language description of the implementation guide from a consumer's perspective.
10460     */
10461    public ImplementationGuide setDescription(String value) { 
10462      if (value == null)
10463        this.description = null;
10464      else {
10465        if (this.description == null)
10466          this.description = new MarkdownType();
10467        this.description.setValue(value);
10468      }
10469      return this;
10470    }
10471
10472    /**
10473     * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate implementation guide instances.)
10474     */
10475    public List<UsageContext> getUseContext() { 
10476      if (this.useContext == null)
10477        this.useContext = new ArrayList<UsageContext>();
10478      return this.useContext;
10479    }
10480
10481    /**
10482     * @return Returns a reference to <code>this</code> for easy method chaining
10483     */
10484    public ImplementationGuide setUseContext(List<UsageContext> theUseContext) { 
10485      this.useContext = theUseContext;
10486      return this;
10487    }
10488
10489    public boolean hasUseContext() { 
10490      if (this.useContext == null)
10491        return false;
10492      for (UsageContext item : this.useContext)
10493        if (!item.isEmpty())
10494          return true;
10495      return false;
10496    }
10497
10498    public UsageContext addUseContext() { //3
10499      UsageContext t = new UsageContext();
10500      if (this.useContext == null)
10501        this.useContext = new ArrayList<UsageContext>();
10502      this.useContext.add(t);
10503      return t;
10504    }
10505
10506    public ImplementationGuide addUseContext(UsageContext t) { //3
10507      if (t == null)
10508        return this;
10509      if (this.useContext == null)
10510        this.useContext = new ArrayList<UsageContext>();
10511      this.useContext.add(t);
10512      return this;
10513    }
10514
10515    /**
10516     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist
10517     */
10518    public UsageContext getUseContextFirstRep() { 
10519      if (getUseContext().isEmpty()) {
10520        addUseContext();
10521      }
10522      return getUseContext().get(0);
10523    }
10524
10525    /**
10526     * @return {@link #jurisdiction} (A legal or geographic region in which the implementation guide is intended to be used.)
10527     */
10528    public List<CodeableConcept> getJurisdiction() { 
10529      if (this.jurisdiction == null)
10530        this.jurisdiction = new ArrayList<CodeableConcept>();
10531      return this.jurisdiction;
10532    }
10533
10534    /**
10535     * @return Returns a reference to <code>this</code> for easy method chaining
10536     */
10537    public ImplementationGuide setJurisdiction(List<CodeableConcept> theJurisdiction) { 
10538      this.jurisdiction = theJurisdiction;
10539      return this;
10540    }
10541
10542    public boolean hasJurisdiction() { 
10543      if (this.jurisdiction == null)
10544        return false;
10545      for (CodeableConcept item : this.jurisdiction)
10546        if (!item.isEmpty())
10547          return true;
10548      return false;
10549    }
10550
10551    public CodeableConcept addJurisdiction() { //3
10552      CodeableConcept t = new CodeableConcept();
10553      if (this.jurisdiction == null)
10554        this.jurisdiction = new ArrayList<CodeableConcept>();
10555      this.jurisdiction.add(t);
10556      return t;
10557    }
10558
10559    public ImplementationGuide addJurisdiction(CodeableConcept t) { //3
10560      if (t == null)
10561        return this;
10562      if (this.jurisdiction == null)
10563        this.jurisdiction = new ArrayList<CodeableConcept>();
10564      this.jurisdiction.add(t);
10565      return this;
10566    }
10567
10568    /**
10569     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist
10570     */
10571    public CodeableConcept getJurisdictionFirstRep() { 
10572      if (getJurisdiction().isEmpty()) {
10573        addJurisdiction();
10574      }
10575      return getJurisdiction().get(0);
10576    }
10577
10578    /**
10579     * @return {@link #copyright} (A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
10580     */
10581    public MarkdownType getCopyrightElement() { 
10582      if (this.copyright == null)
10583        if (Configuration.errorOnAutoCreate())
10584          throw new Error("Attempt to auto-create ImplementationGuide.copyright");
10585        else if (Configuration.doAutoCreate())
10586          this.copyright = new MarkdownType(); // bb
10587      return this.copyright;
10588    }
10589
10590    public boolean hasCopyrightElement() { 
10591      return this.copyright != null && !this.copyright.isEmpty();
10592    }
10593
10594    public boolean hasCopyright() { 
10595      return this.copyright != null && !this.copyright.isEmpty();
10596    }
10597
10598    /**
10599     * @param value {@link #copyright} (A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
10600     */
10601    public ImplementationGuide setCopyrightElement(MarkdownType value) { 
10602      this.copyright = value;
10603      return this;
10604    }
10605
10606    /**
10607     * @return A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.
10608     */
10609    public String getCopyright() { 
10610      return this.copyright == null ? null : this.copyright.getValue();
10611    }
10612
10613    /**
10614     * @param value A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.
10615     */
10616    public ImplementationGuide setCopyright(String value) { 
10617      if (value == null)
10618        this.copyright = null;
10619      else {
10620        if (this.copyright == null)
10621          this.copyright = new MarkdownType();
10622        this.copyright.setValue(value);
10623      }
10624      return this;
10625    }
10626
10627    /**
10628     * @return {@link #packageId} (The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.). This is the underlying object with id, value and extensions. The accessor "getPackageId" gives direct access to the value
10629     */
10630    public IdType getPackageIdElement() { 
10631      if (this.packageId == null)
10632        if (Configuration.errorOnAutoCreate())
10633          throw new Error("Attempt to auto-create ImplementationGuide.packageId");
10634        else if (Configuration.doAutoCreate())
10635          this.packageId = new IdType(); // bb
10636      return this.packageId;
10637    }
10638
10639    public boolean hasPackageIdElement() { 
10640      return this.packageId != null && !this.packageId.isEmpty();
10641    }
10642
10643    public boolean hasPackageId() { 
10644      return this.packageId != null && !this.packageId.isEmpty();
10645    }
10646
10647    /**
10648     * @param value {@link #packageId} (The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.). This is the underlying object with id, value and extensions. The accessor "getPackageId" gives direct access to the value
10649     */
10650    public ImplementationGuide setPackageIdElement(IdType value) { 
10651      this.packageId = value;
10652      return this;
10653    }
10654
10655    /**
10656     * @return The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.
10657     */
10658    public String getPackageId() { 
10659      return this.packageId == null ? null : this.packageId.getValue();
10660    }
10661
10662    /**
10663     * @param value The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.
10664     */
10665    public ImplementationGuide setPackageId(String value) { 
10666      if (Utilities.noString(value))
10667        this.packageId = null;
10668      else {
10669        if (this.packageId == null)
10670          this.packageId = new IdType();
10671        this.packageId.setValue(value);
10672      }
10673      return this;
10674    }
10675
10676    /**
10677     * @return {@link #license} (The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.). This is the underlying object with id, value and extensions. The accessor "getLicense" gives direct access to the value
10678     */
10679    public Enumeration<SPDXLicense> getLicenseElement() { 
10680      if (this.license == null)
10681        if (Configuration.errorOnAutoCreate())
10682          throw new Error("Attempt to auto-create ImplementationGuide.license");
10683        else if (Configuration.doAutoCreate())
10684          this.license = new Enumeration<SPDXLicense>(new SPDXLicenseEnumFactory()); // bb
10685      return this.license;
10686    }
10687
10688    public boolean hasLicenseElement() { 
10689      return this.license != null && !this.license.isEmpty();
10690    }
10691
10692    public boolean hasLicense() { 
10693      return this.license != null && !this.license.isEmpty();
10694    }
10695
10696    /**
10697     * @param value {@link #license} (The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.). This is the underlying object with id, value and extensions. The accessor "getLicense" gives direct access to the value
10698     */
10699    public ImplementationGuide setLicenseElement(Enumeration<SPDXLicense> value) { 
10700      this.license = value;
10701      return this;
10702    }
10703
10704    /**
10705     * @return The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.
10706     */
10707    public SPDXLicense getLicense() { 
10708      return this.license == null ? null : this.license.getValue();
10709    }
10710
10711    /**
10712     * @param value The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.
10713     */
10714    public ImplementationGuide setLicense(SPDXLicense value) { 
10715      if (value == null)
10716        this.license = null;
10717      else {
10718        if (this.license == null)
10719          this.license = new Enumeration<SPDXLicense>(new SPDXLicenseEnumFactory());
10720        this.license.setValue(value);
10721      }
10722      return this;
10723    }
10724
10725    /**
10726     * @return {@link #fhirVersion} (The version of the FHIR specification on which this ImplementationGuide is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 3.5.0. for this version.). This is the underlying object with id, value and extensions. The accessor "getFhirVersion" gives direct access to the value
10727     */
10728    public IdType getFhirVersionElement() { 
10729      if (this.fhirVersion == null)
10730        if (Configuration.errorOnAutoCreate())
10731          throw new Error("Attempt to auto-create ImplementationGuide.fhirVersion");
10732        else if (Configuration.doAutoCreate())
10733          this.fhirVersion = new IdType(); // bb
10734      return this.fhirVersion;
10735    }
10736
10737    public boolean hasFhirVersionElement() { 
10738      return this.fhirVersion != null && !this.fhirVersion.isEmpty();
10739    }
10740
10741    public boolean hasFhirVersion() { 
10742      return this.fhirVersion != null && !this.fhirVersion.isEmpty();
10743    }
10744
10745    /**
10746     * @param value {@link #fhirVersion} (The version of the FHIR specification on which this ImplementationGuide is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 3.5.0. for this version.). This is the underlying object with id, value and extensions. The accessor "getFhirVersion" gives direct access to the value
10747     */
10748    public ImplementationGuide setFhirVersionElement(IdType value) { 
10749      this.fhirVersion = value;
10750      return this;
10751    }
10752
10753    /**
10754     * @return The version of the FHIR specification on which this ImplementationGuide is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 3.5.0. for this version.
10755     */
10756    public String getFhirVersion() { 
10757      return this.fhirVersion == null ? null : this.fhirVersion.getValue();
10758    }
10759
10760    /**
10761     * @param value The version of the FHIR specification on which this ImplementationGuide is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 3.5.0. for this version.
10762     */
10763    public ImplementationGuide setFhirVersion(String value) { 
10764      if (Utilities.noString(value))
10765        this.fhirVersion = null;
10766      else {
10767        if (this.fhirVersion == null)
10768          this.fhirVersion = new IdType();
10769        this.fhirVersion.setValue(value);
10770      }
10771      return this;
10772    }
10773
10774    /**
10775     * @return {@link #dependsOn} (Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.)
10776     */
10777    public List<ImplementationGuideDependsOnComponent> getDependsOn() { 
10778      if (this.dependsOn == null)
10779        this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
10780      return this.dependsOn;
10781    }
10782
10783    /**
10784     * @return Returns a reference to <code>this</code> for easy method chaining
10785     */
10786    public ImplementationGuide setDependsOn(List<ImplementationGuideDependsOnComponent> theDependsOn) { 
10787      this.dependsOn = theDependsOn;
10788      return this;
10789    }
10790
10791    public boolean hasDependsOn() { 
10792      if (this.dependsOn == null)
10793        return false;
10794      for (ImplementationGuideDependsOnComponent item : this.dependsOn)
10795        if (!item.isEmpty())
10796          return true;
10797      return false;
10798    }
10799
10800    public ImplementationGuideDependsOnComponent addDependsOn() { //3
10801      ImplementationGuideDependsOnComponent t = new ImplementationGuideDependsOnComponent();
10802      if (this.dependsOn == null)
10803        this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
10804      this.dependsOn.add(t);
10805      return t;
10806    }
10807
10808    public ImplementationGuide addDependsOn(ImplementationGuideDependsOnComponent t) { //3
10809      if (t == null)
10810        return this;
10811      if (this.dependsOn == null)
10812        this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
10813      this.dependsOn.add(t);
10814      return this;
10815    }
10816
10817    /**
10818     * @return The first repetition of repeating field {@link #dependsOn}, creating it if it does not already exist
10819     */
10820    public ImplementationGuideDependsOnComponent getDependsOnFirstRep() { 
10821      if (getDependsOn().isEmpty()) {
10822        addDependsOn();
10823      }
10824      return getDependsOn().get(0);
10825    }
10826
10827    /**
10828     * @return {@link #global} (A set of profiles that all resources covered by this implementation guide must conform to.)
10829     */
10830    public List<ImplementationGuideGlobalComponent> getGlobal() { 
10831      if (this.global == null)
10832        this.global = new ArrayList<ImplementationGuideGlobalComponent>();
10833      return this.global;
10834    }
10835
10836    /**
10837     * @return Returns a reference to <code>this</code> for easy method chaining
10838     */
10839    public ImplementationGuide setGlobal(List<ImplementationGuideGlobalComponent> theGlobal) { 
10840      this.global = theGlobal;
10841      return this;
10842    }
10843
10844    public boolean hasGlobal() { 
10845      if (this.global == null)
10846        return false;
10847      for (ImplementationGuideGlobalComponent item : this.global)
10848        if (!item.isEmpty())
10849          return true;
10850      return false;
10851    }
10852
10853    public ImplementationGuideGlobalComponent addGlobal() { //3
10854      ImplementationGuideGlobalComponent t = new ImplementationGuideGlobalComponent();
10855      if (this.global == null)
10856        this.global = new ArrayList<ImplementationGuideGlobalComponent>();
10857      this.global.add(t);
10858      return t;
10859    }
10860
10861    public ImplementationGuide addGlobal(ImplementationGuideGlobalComponent t) { //3
10862      if (t == null)
10863        return this;
10864      if (this.global == null)
10865        this.global = new ArrayList<ImplementationGuideGlobalComponent>();
10866      this.global.add(t);
10867      return this;
10868    }
10869
10870    /**
10871     * @return The first repetition of repeating field {@link #global}, creating it if it does not already exist
10872     */
10873    public ImplementationGuideGlobalComponent getGlobalFirstRep() { 
10874      if (getGlobal().isEmpty()) {
10875        addGlobal();
10876      }
10877      return getGlobal().get(0);
10878    }
10879
10880    /**
10881     * @return {@link #definition} (The information needed by an IG publisher tool to publish the whole implementation guide.)
10882     */
10883    public ImplementationGuideDefinitionComponent getDefinition() { 
10884      if (this.definition == null)
10885        if (Configuration.errorOnAutoCreate())
10886          throw new Error("Attempt to auto-create ImplementationGuide.definition");
10887        else if (Configuration.doAutoCreate())
10888          this.definition = new ImplementationGuideDefinitionComponent(); // cc
10889      return this.definition;
10890    }
10891
10892    public boolean hasDefinition() { 
10893      return this.definition != null && !this.definition.isEmpty();
10894    }
10895
10896    /**
10897     * @param value {@link #definition} (The information needed by an IG publisher tool to publish the whole implementation guide.)
10898     */
10899    public ImplementationGuide setDefinition(ImplementationGuideDefinitionComponent value) { 
10900      this.definition = value;
10901      return this;
10902    }
10903
10904    /**
10905     * @return {@link #manifest} (Information about an assembled implementation guide, created by the publication tooling.)
10906     */
10907    public ImplementationGuideManifestComponent getManifest() { 
10908      if (this.manifest == null)
10909        if (Configuration.errorOnAutoCreate())
10910          throw new Error("Attempt to auto-create ImplementationGuide.manifest");
10911        else if (Configuration.doAutoCreate())
10912          this.manifest = new ImplementationGuideManifestComponent(); // cc
10913      return this.manifest;
10914    }
10915
10916    public boolean hasManifest() { 
10917      return this.manifest != null && !this.manifest.isEmpty();
10918    }
10919
10920    /**
10921     * @param value {@link #manifest} (Information about an assembled implementation guide, created by the publication tooling.)
10922     */
10923    public ImplementationGuide setManifest(ImplementationGuideManifestComponent value) { 
10924      this.manifest = value;
10925      return this;
10926    }
10927
10928      protected void listChildren(List<Property> children) {
10929        super.listChildren(children);
10930        children.add(new Property("url", "uri", "An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.", 0, 1, url));
10931        children.add(new Property("version", "string", "The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version));
10932        children.add(new Property("name", "string", "A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
10933        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the implementation guide.", 0, 1, title));
10934        children.add(new Property("status", "code", "The status of this implementation guide. Enables tracking the life-cycle of the content.", 0, 1, status));
10935        children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental));
10936        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.", 0, 1, date));
10937        children.add(new Property("publisher", "string", "The name of the organization or individual that published the implementation guide.", 0, 1, publisher));
10938        children.add(new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact));
10939        children.add(new Property("description", "markdown", "A free text natural language description of the implementation guide from a consumer's perspective.", 0, 1, description));
10940        children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate implementation guide instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
10941        children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the implementation guide is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction));
10942        children.add(new Property("copyright", "markdown", "A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.", 0, 1, copyright));
10943        children.add(new Property("packageId", "id", "The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.", 0, 1, packageId));
10944        children.add(new Property("license", "code", "The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.", 0, 1, license));
10945        children.add(new Property("fhirVersion", "id", "The version of the FHIR specification on which this ImplementationGuide is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 3.5.0. for this version.", 0, 1, fhirVersion));
10946        children.add(new Property("dependsOn", "", "Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.", 0, java.lang.Integer.MAX_VALUE, dependsOn));
10947        children.add(new Property("global", "", "A set of profiles that all resources covered by this implementation guide must conform to.", 0, java.lang.Integer.MAX_VALUE, global));
10948        children.add(new Property("definition", "", "The information needed by an IG publisher tool to publish the whole implementation guide.", 0, 1, definition));
10949        children.add(new Property("manifest", "", "Information about an assembled implementation guide, created by the publication tooling.", 0, 1, manifest));
10950      }
10951
10952      @Override
10953      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
10954        switch (_hash) {
10955        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.", 0, 1, url);
10956        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version);
10957        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
10958        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the implementation guide.", 0, 1, title);
10959        case -892481550: /*status*/  return new Property("status", "code", "The status of this implementation guide. Enables tracking the life-cycle of the content.", 0, 1, status);
10960        case -404562712: /*experimental*/  return new Property("experimental", "boolean", "A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental);
10961        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.", 0, 1, date);
10962        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual that published the implementation guide.", 0, 1, publisher);
10963        case 951526432: /*contact*/  return new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact);
10964        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the implementation guide from a consumer's perspective.", 0, 1, description);
10965        case -669707736: /*useContext*/  return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate implementation guide instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
10966        case -507075711: /*jurisdiction*/  return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the implementation guide is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction);
10967        case 1522889671: /*copyright*/  return new Property("copyright", "markdown", "A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.", 0, 1, copyright);
10968        case 1802060801: /*packageId*/  return new Property("packageId", "id", "The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.", 0, 1, packageId);
10969        case 166757441: /*license*/  return new Property("license", "code", "The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.", 0, 1, license);
10970        case 461006061: /*fhirVersion*/  return new Property("fhirVersion", "id", "The version of the FHIR specification on which this ImplementationGuide is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 3.5.0. for this version.", 0, 1, fhirVersion);
10971        case -1109214266: /*dependsOn*/  return new Property("dependsOn", "", "Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.", 0, java.lang.Integer.MAX_VALUE, dependsOn);
10972        case -1243020381: /*global*/  return new Property("global", "", "A set of profiles that all resources covered by this implementation guide must conform to.", 0, java.lang.Integer.MAX_VALUE, global);
10973        case -1014418093: /*definition*/  return new Property("definition", "", "The information needed by an IG publisher tool to publish the whole implementation guide.", 0, 1, definition);
10974        case 130625071: /*manifest*/  return new Property("manifest", "", "Information about an assembled implementation guide, created by the publication tooling.", 0, 1, manifest);
10975        default: return super.getNamedProperty(_hash, _name, _checkValid);
10976        }
10977
10978      }
10979
10980      @Override
10981      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
10982        switch (hash) {
10983        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
10984        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
10985        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
10986        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
10987        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
10988        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
10989        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
10990        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
10991        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
10992        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
10993        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
10994        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
10995        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
10996        case 1802060801: /*packageId*/ return this.packageId == null ? new Base[0] : new Base[] {this.packageId}; // IdType
10997        case 166757441: /*license*/ return this.license == null ? new Base[0] : new Base[] {this.license}; // Enumeration<SPDXLicense>
10998        case 461006061: /*fhirVersion*/ return this.fhirVersion == null ? new Base[0] : new Base[] {this.fhirVersion}; // IdType
10999        case -1109214266: /*dependsOn*/ return this.dependsOn == null ? new Base[0] : this.dependsOn.toArray(new Base[this.dependsOn.size()]); // ImplementationGuideDependsOnComponent
11000        case -1243020381: /*global*/ return this.global == null ? new Base[0] : this.global.toArray(new Base[this.global.size()]); // ImplementationGuideGlobalComponent
11001        case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : new Base[] {this.definition}; // ImplementationGuideDefinitionComponent
11002        case 130625071: /*manifest*/ return this.manifest == null ? new Base[0] : new Base[] {this.manifest}; // ImplementationGuideManifestComponent
11003        default: return super.getProperty(hash, name, checkValid);
11004        }
11005
11006      }
11007
11008      @Override
11009      public Base setProperty(int hash, String name, Base value) throws FHIRException {
11010        switch (hash) {
11011        case 116079: // url
11012          this.url = castToUri(value); // UriType
11013          return value;
11014        case 351608024: // version
11015          this.version = castToString(value); // StringType
11016          return value;
11017        case 3373707: // name
11018          this.name = castToString(value); // StringType
11019          return value;
11020        case 110371416: // title
11021          this.title = castToString(value); // StringType
11022          return value;
11023        case -892481550: // status
11024          value = new PublicationStatusEnumFactory().fromType(castToCode(value));
11025          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
11026          return value;
11027        case -404562712: // experimental
11028          this.experimental = castToBoolean(value); // BooleanType
11029          return value;
11030        case 3076014: // date
11031          this.date = castToDateTime(value); // DateTimeType
11032          return value;
11033        case 1447404028: // publisher
11034          this.publisher = castToString(value); // StringType
11035          return value;
11036        case 951526432: // contact
11037          this.getContact().add(castToContactDetail(value)); // ContactDetail
11038          return value;
11039        case -1724546052: // description
11040          this.description = castToMarkdown(value); // MarkdownType
11041          return value;
11042        case -669707736: // useContext
11043          this.getUseContext().add(castToUsageContext(value)); // UsageContext
11044          return value;
11045        case -507075711: // jurisdiction
11046          this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept
11047          return value;
11048        case 1522889671: // copyright
11049          this.copyright = castToMarkdown(value); // MarkdownType
11050          return value;
11051        case 1802060801: // packageId
11052          this.packageId = castToId(value); // IdType
11053          return value;
11054        case 166757441: // license
11055          value = new SPDXLicenseEnumFactory().fromType(castToCode(value));
11056          this.license = (Enumeration) value; // Enumeration<SPDXLicense>
11057          return value;
11058        case 461006061: // fhirVersion
11059          this.fhirVersion = castToId(value); // IdType
11060          return value;
11061        case -1109214266: // dependsOn
11062          this.getDependsOn().add((ImplementationGuideDependsOnComponent) value); // ImplementationGuideDependsOnComponent
11063          return value;
11064        case -1243020381: // global
11065          this.getGlobal().add((ImplementationGuideGlobalComponent) value); // ImplementationGuideGlobalComponent
11066          return value;
11067        case -1014418093: // definition
11068          this.definition = (ImplementationGuideDefinitionComponent) value; // ImplementationGuideDefinitionComponent
11069          return value;
11070        case 130625071: // manifest
11071          this.manifest = (ImplementationGuideManifestComponent) value; // ImplementationGuideManifestComponent
11072          return value;
11073        default: return super.setProperty(hash, name, value);
11074        }
11075
11076      }
11077
11078      @Override
11079      public Base setProperty(String name, Base value) throws FHIRException {
11080        if (name.equals("url")) {
11081          this.url = castToUri(value); // UriType
11082        } else if (name.equals("version")) {
11083          this.version = castToString(value); // StringType
11084        } else if (name.equals("name")) {
11085          this.name = castToString(value); // StringType
11086        } else if (name.equals("title")) {
11087          this.title = castToString(value); // StringType
11088        } else if (name.equals("status")) {
11089          value = new PublicationStatusEnumFactory().fromType(castToCode(value));
11090          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
11091        } else if (name.equals("experimental")) {
11092          this.experimental = castToBoolean(value); // BooleanType
11093        } else if (name.equals("date")) {
11094          this.date = castToDateTime(value); // DateTimeType
11095        } else if (name.equals("publisher")) {
11096          this.publisher = castToString(value); // StringType
11097        } else if (name.equals("contact")) {
11098          this.getContact().add(castToContactDetail(value));
11099        } else if (name.equals("description")) {
11100          this.description = castToMarkdown(value); // MarkdownType
11101        } else if (name.equals("useContext")) {
11102          this.getUseContext().add(castToUsageContext(value));
11103        } else if (name.equals("jurisdiction")) {
11104          this.getJurisdiction().add(castToCodeableConcept(value));
11105        } else if (name.equals("copyright")) {
11106          this.copyright = castToMarkdown(value); // MarkdownType
11107        } else if (name.equals("packageId")) {
11108          this.packageId = castToId(value); // IdType
11109        } else if (name.equals("license")) {
11110          value = new SPDXLicenseEnumFactory().fromType(castToCode(value));
11111          this.license = (Enumeration) value; // Enumeration<SPDXLicense>
11112        } else if (name.equals("fhirVersion")) {
11113          this.fhirVersion = castToId(value); // IdType
11114        } else if (name.equals("dependsOn")) {
11115          this.getDependsOn().add((ImplementationGuideDependsOnComponent) value);
11116        } else if (name.equals("global")) {
11117          this.getGlobal().add((ImplementationGuideGlobalComponent) value);
11118        } else if (name.equals("definition")) {
11119          this.definition = (ImplementationGuideDefinitionComponent) value; // ImplementationGuideDefinitionComponent
11120        } else if (name.equals("manifest")) {
11121          this.manifest = (ImplementationGuideManifestComponent) value; // ImplementationGuideManifestComponent
11122        } else
11123          return super.setProperty(name, value);
11124        return value;
11125      }
11126
11127      @Override
11128      public Base makeProperty(int hash, String name) throws FHIRException {
11129        switch (hash) {
11130        case 116079:  return getUrlElement();
11131        case 351608024:  return getVersionElement();
11132        case 3373707:  return getNameElement();
11133        case 110371416:  return getTitleElement();
11134        case -892481550:  return getStatusElement();
11135        case -404562712:  return getExperimentalElement();
11136        case 3076014:  return getDateElement();
11137        case 1447404028:  return getPublisherElement();
11138        case 951526432:  return addContact(); 
11139        case -1724546052:  return getDescriptionElement();
11140        case -669707736:  return addUseContext(); 
11141        case -507075711:  return addJurisdiction(); 
11142        case 1522889671:  return getCopyrightElement();
11143        case 1802060801:  return getPackageIdElement();
11144        case 166757441:  return getLicenseElement();
11145        case 461006061:  return getFhirVersionElement();
11146        case -1109214266:  return addDependsOn(); 
11147        case -1243020381:  return addGlobal(); 
11148        case -1014418093:  return getDefinition(); 
11149        case 130625071:  return getManifest(); 
11150        default: return super.makeProperty(hash, name);
11151        }
11152
11153      }
11154
11155      @Override
11156      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
11157        switch (hash) {
11158        case 116079: /*url*/ return new String[] {"uri"};
11159        case 351608024: /*version*/ return new String[] {"string"};
11160        case 3373707: /*name*/ return new String[] {"string"};
11161        case 110371416: /*title*/ return new String[] {"string"};
11162        case -892481550: /*status*/ return new String[] {"code"};
11163        case -404562712: /*experimental*/ return new String[] {"boolean"};
11164        case 3076014: /*date*/ return new String[] {"dateTime"};
11165        case 1447404028: /*publisher*/ return new String[] {"string"};
11166        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
11167        case -1724546052: /*description*/ return new String[] {"markdown"};
11168        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
11169        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
11170        case 1522889671: /*copyright*/ return new String[] {"markdown"};
11171        case 1802060801: /*packageId*/ return new String[] {"id"};
11172        case 166757441: /*license*/ return new String[] {"code"};
11173        case 461006061: /*fhirVersion*/ return new String[] {"id"};
11174        case -1109214266: /*dependsOn*/ return new String[] {};
11175        case -1243020381: /*global*/ return new String[] {};
11176        case -1014418093: /*definition*/ return new String[] {};
11177        case 130625071: /*manifest*/ return new String[] {};
11178        default: return super.getTypesForProperty(hash, name);
11179        }
11180
11181      }
11182
11183      @Override
11184      public Base addChild(String name) throws FHIRException {
11185        if (name.equals("url")) {
11186          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.url");
11187        }
11188        else if (name.equals("version")) {
11189          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.version");
11190        }
11191        else if (name.equals("name")) {
11192          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.name");
11193        }
11194        else if (name.equals("title")) {
11195          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.title");
11196        }
11197        else if (name.equals("status")) {
11198          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.status");
11199        }
11200        else if (name.equals("experimental")) {
11201          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.experimental");
11202        }
11203        else if (name.equals("date")) {
11204          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.date");
11205        }
11206        else if (name.equals("publisher")) {
11207          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.publisher");
11208        }
11209        else if (name.equals("contact")) {
11210          return addContact();
11211        }
11212        else if (name.equals("description")) {
11213          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.description");
11214        }
11215        else if (name.equals("useContext")) {
11216          return addUseContext();
11217        }
11218        else if (name.equals("jurisdiction")) {
11219          return addJurisdiction();
11220        }
11221        else if (name.equals("copyright")) {
11222          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.copyright");
11223        }
11224        else if (name.equals("packageId")) {
11225          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.packageId");
11226        }
11227        else if (name.equals("license")) {
11228          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.license");
11229        }
11230        else if (name.equals("fhirVersion")) {
11231          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.fhirVersion");
11232        }
11233        else if (name.equals("dependsOn")) {
11234          return addDependsOn();
11235        }
11236        else if (name.equals("global")) {
11237          return addGlobal();
11238        }
11239        else if (name.equals("definition")) {
11240          this.definition = new ImplementationGuideDefinitionComponent();
11241          return this.definition;
11242        }
11243        else if (name.equals("manifest")) {
11244          this.manifest = new ImplementationGuideManifestComponent();
11245          return this.manifest;
11246        }
11247        else
11248          return super.addChild(name);
11249      }
11250
11251  public String fhirType() {
11252    return "ImplementationGuide";
11253
11254  }
11255
11256      public ImplementationGuide copy() {
11257        ImplementationGuide dst = new ImplementationGuide();
11258        copyValues(dst);
11259        dst.url = url == null ? null : url.copy();
11260        dst.version = version == null ? null : version.copy();
11261        dst.name = name == null ? null : name.copy();
11262        dst.title = title == null ? null : title.copy();
11263        dst.status = status == null ? null : status.copy();
11264        dst.experimental = experimental == null ? null : experimental.copy();
11265        dst.date = date == null ? null : date.copy();
11266        dst.publisher = publisher == null ? null : publisher.copy();
11267        if (contact != null) {
11268          dst.contact = new ArrayList<ContactDetail>();
11269          for (ContactDetail i : contact)
11270            dst.contact.add(i.copy());
11271        };
11272        dst.description = description == null ? null : description.copy();
11273        if (useContext != null) {
11274          dst.useContext = new ArrayList<UsageContext>();
11275          for (UsageContext i : useContext)
11276            dst.useContext.add(i.copy());
11277        };
11278        if (jurisdiction != null) {
11279          dst.jurisdiction = new ArrayList<CodeableConcept>();
11280          for (CodeableConcept i : jurisdiction)
11281            dst.jurisdiction.add(i.copy());
11282        };
11283        dst.copyright = copyright == null ? null : copyright.copy();
11284        dst.packageId = packageId == null ? null : packageId.copy();
11285        dst.license = license == null ? null : license.copy();
11286        dst.fhirVersion = fhirVersion == null ? null : fhirVersion.copy();
11287        if (dependsOn != null) {
11288          dst.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
11289          for (ImplementationGuideDependsOnComponent i : dependsOn)
11290            dst.dependsOn.add(i.copy());
11291        };
11292        if (global != null) {
11293          dst.global = new ArrayList<ImplementationGuideGlobalComponent>();
11294          for (ImplementationGuideGlobalComponent i : global)
11295            dst.global.add(i.copy());
11296        };
11297        dst.definition = definition == null ? null : definition.copy();
11298        dst.manifest = manifest == null ? null : manifest.copy();
11299        return dst;
11300      }
11301
11302      protected ImplementationGuide typedCopy() {
11303        return copy();
11304      }
11305
11306      @Override
11307      public boolean equalsDeep(Base other_) {
11308        if (!super.equalsDeep(other_))
11309          return false;
11310        if (!(other_ instanceof ImplementationGuide))
11311          return false;
11312        ImplementationGuide o = (ImplementationGuide) other_;
11313        return compareDeep(copyright, o.copyright, true) && compareDeep(packageId, o.packageId, true) && compareDeep(license, o.license, true)
11314           && compareDeep(fhirVersion, o.fhirVersion, true) && compareDeep(dependsOn, o.dependsOn, true) && compareDeep(global, o.global, true)
11315           && compareDeep(definition, o.definition, true) && compareDeep(manifest, o.manifest, true);
11316      }
11317
11318      @Override
11319      public boolean equalsShallow(Base other_) {
11320        if (!super.equalsShallow(other_))
11321          return false;
11322        if (!(other_ instanceof ImplementationGuide))
11323          return false;
11324        ImplementationGuide o = (ImplementationGuide) other_;
11325        return compareValues(copyright, o.copyright, true) && compareValues(packageId, o.packageId, true) && compareValues(license, o.license, true)
11326           && compareValues(fhirVersion, o.fhirVersion, true);
11327      }
11328
11329      public boolean isEmpty() {
11330        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(copyright, packageId, license
11331          , fhirVersion, dependsOn, global, definition, manifest);
11332      }
11333
11334  @Override
11335  public ResourceType getResourceType() {
11336    return ResourceType.ImplementationGuide;
11337   }
11338
11339 /**
11340   * Search parameter: <b>date</b>
11341   * <p>
11342   * Description: <b>The implementation guide publication date</b><br>
11343   * Type: <b>date</b><br>
11344   * Path: <b>ImplementationGuide.date</b><br>
11345   * </p>
11346   */
11347  @SearchParamDefinition(name="date", path="ImplementationGuide.date", description="The implementation guide publication date", type="date" )
11348  public static final String SP_DATE = "date";
11349 /**
11350   * <b>Fluent Client</b> search parameter constant for <b>date</b>
11351   * <p>
11352   * Description: <b>The implementation guide publication date</b><br>
11353   * Type: <b>date</b><br>
11354   * Path: <b>ImplementationGuide.date</b><br>
11355   * </p>
11356   */
11357  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
11358
11359 /**
11360   * Search parameter: <b>context-type-value</b>
11361   * <p>
11362   * Description: <b>A use context type and value assigned to the implementation guide</b><br>
11363   * Type: <b>composite</b><br>
11364   * Path: <b></b><br>
11365   * </p>
11366   */
11367  @SearchParamDefinition(name="context-type-value", path="ImplementationGuide.useContext", description="A use context type and value assigned to the implementation guide", type="composite", compositeOf={"context-type", "context"} )
11368  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
11369 /**
11370   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
11371   * <p>
11372   * Description: <b>A use context type and value assigned to the implementation guide</b><br>
11373   * Type: <b>composite</b><br>
11374   * Path: <b></b><br>
11375   * </p>
11376   */
11377  public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CONTEXT_TYPE_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CONTEXT_TYPE_VALUE);
11378
11379 /**
11380   * Search parameter: <b>resource</b>
11381   * <p>
11382   * Description: <b>Location of the resource</b><br>
11383   * Type: <b>reference</b><br>
11384   * Path: <b>ImplementationGuide.definition.resource.reference</b><br>
11385   * </p>
11386   */
11387  @SearchParamDefinition(name="resource", path="ImplementationGuide.definition.resource.reference", description="Location of the resource", type="reference" )
11388  public static final String SP_RESOURCE = "resource";
11389 /**
11390   * <b>Fluent Client</b> search parameter constant for <b>resource</b>
11391   * <p>
11392   * Description: <b>Location of the resource</b><br>
11393   * Type: <b>reference</b><br>
11394   * Path: <b>ImplementationGuide.definition.resource.reference</b><br>
11395   * </p>
11396   */
11397  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RESOURCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_RESOURCE);
11398
11399/**
11400   * Constant for fluent queries to be used to add include statements. Specifies
11401   * the path value of "<b>ImplementationGuide:resource</b>".
11402   */
11403  public static final ca.uhn.fhir.model.api.Include INCLUDE_RESOURCE = new ca.uhn.fhir.model.api.Include("ImplementationGuide:resource").toLocked();
11404
11405 /**
11406   * Search parameter: <b>jurisdiction</b>
11407   * <p>
11408   * Description: <b>Intended jurisdiction for the implementation guide</b><br>
11409   * Type: <b>token</b><br>
11410   * Path: <b>ImplementationGuide.jurisdiction</b><br>
11411   * </p>
11412   */
11413  @SearchParamDefinition(name="jurisdiction", path="ImplementationGuide.jurisdiction", description="Intended jurisdiction for the implementation guide", type="token" )
11414  public static final String SP_JURISDICTION = "jurisdiction";
11415 /**
11416   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
11417   * <p>
11418   * Description: <b>Intended jurisdiction for the implementation guide</b><br>
11419   * Type: <b>token</b><br>
11420   * Path: <b>ImplementationGuide.jurisdiction</b><br>
11421   * </p>
11422   */
11423  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
11424
11425 /**
11426   * Search parameter: <b>description</b>
11427   * <p>
11428   * Description: <b>The description of the implementation guide</b><br>
11429   * Type: <b>string</b><br>
11430   * Path: <b>ImplementationGuide.description</b><br>
11431   * </p>
11432   */
11433  @SearchParamDefinition(name="description", path="ImplementationGuide.description", description="The description of the implementation guide", type="string" )
11434  public static final String SP_DESCRIPTION = "description";
11435 /**
11436   * <b>Fluent Client</b> search parameter constant for <b>description</b>
11437   * <p>
11438   * Description: <b>The description of the implementation guide</b><br>
11439   * Type: <b>string</b><br>
11440   * Path: <b>ImplementationGuide.description</b><br>
11441   * </p>
11442   */
11443  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
11444
11445 /**
11446   * Search parameter: <b>context-type</b>
11447   * <p>
11448   * Description: <b>A type of use context assigned to the implementation guide</b><br>
11449   * Type: <b>token</b><br>
11450   * Path: <b>ImplementationGuide.useContext.code</b><br>
11451   * </p>
11452   */
11453  @SearchParamDefinition(name="context-type", path="ImplementationGuide.useContext.code", description="A type of use context assigned to the implementation guide", type="token" )
11454  public static final String SP_CONTEXT_TYPE = "context-type";
11455 /**
11456   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
11457   * <p>
11458   * Description: <b>A type of use context assigned to the implementation guide</b><br>
11459   * Type: <b>token</b><br>
11460   * Path: <b>ImplementationGuide.useContext.code</b><br>
11461   * </p>
11462   */
11463  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
11464
11465 /**
11466   * Search parameter: <b>experimental</b>
11467   * <p>
11468   * Description: <b>For testing purposes, not real usage</b><br>
11469   * Type: <b>token</b><br>
11470   * Path: <b>ImplementationGuide.experimental</b><br>
11471   * </p>
11472   */
11473  @SearchParamDefinition(name="experimental", path="ImplementationGuide.experimental", description="For testing purposes, not real usage", type="token" )
11474  public static final String SP_EXPERIMENTAL = "experimental";
11475 /**
11476   * <b>Fluent Client</b> search parameter constant for <b>experimental</b>
11477   * <p>
11478   * Description: <b>For testing purposes, not real usage</b><br>
11479   * Type: <b>token</b><br>
11480   * Path: <b>ImplementationGuide.experimental</b><br>
11481   * </p>
11482   */
11483  public static final ca.uhn.fhir.rest.gclient.TokenClientParam EXPERIMENTAL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EXPERIMENTAL);
11484
11485 /**
11486   * Search parameter: <b>global</b>
11487   * <p>
11488   * Description: <b>Profile that all resources must conform to</b><br>
11489   * Type: <b>reference</b><br>
11490   * Path: <b>ImplementationGuide.global.profile</b><br>
11491   * </p>
11492   */
11493  @SearchParamDefinition(name="global", path="ImplementationGuide.global.profile", description="Profile that all resources must conform to", type="reference", target={StructureDefinition.class } )
11494  public static final String SP_GLOBAL = "global";
11495 /**
11496   * <b>Fluent Client</b> search parameter constant for <b>global</b>
11497   * <p>
11498   * Description: <b>Profile that all resources must conform to</b><br>
11499   * Type: <b>reference</b><br>
11500   * Path: <b>ImplementationGuide.global.profile</b><br>
11501   * </p>
11502   */
11503  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam GLOBAL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_GLOBAL);
11504
11505/**
11506   * Constant for fluent queries to be used to add include statements. Specifies
11507   * the path value of "<b>ImplementationGuide:global</b>".
11508   */
11509  public static final ca.uhn.fhir.model.api.Include INCLUDE_GLOBAL = new ca.uhn.fhir.model.api.Include("ImplementationGuide:global").toLocked();
11510
11511 /**
11512   * Search parameter: <b>title</b>
11513   * <p>
11514   * Description: <b>The human-friendly name of the implementation guide</b><br>
11515   * Type: <b>string</b><br>
11516   * Path: <b>ImplementationGuide.title</b><br>
11517   * </p>
11518   */
11519  @SearchParamDefinition(name="title", path="ImplementationGuide.title", description="The human-friendly name of the implementation guide", type="string" )
11520  public static final String SP_TITLE = "title";
11521 /**
11522   * <b>Fluent Client</b> search parameter constant for <b>title</b>
11523   * <p>
11524   * Description: <b>The human-friendly name of the implementation guide</b><br>
11525   * Type: <b>string</b><br>
11526   * Path: <b>ImplementationGuide.title</b><br>
11527   * </p>
11528   */
11529  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
11530
11531 /**
11532   * Search parameter: <b>version</b>
11533   * <p>
11534   * Description: <b>The business version of the implementation guide</b><br>
11535   * Type: <b>token</b><br>
11536   * Path: <b>ImplementationGuide.version</b><br>
11537   * </p>
11538   */
11539  @SearchParamDefinition(name="version", path="ImplementationGuide.version", description="The business version of the implementation guide", type="token" )
11540  public static final String SP_VERSION = "version";
11541 /**
11542   * <b>Fluent Client</b> search parameter constant for <b>version</b>
11543   * <p>
11544   * Description: <b>The business version of the implementation guide</b><br>
11545   * Type: <b>token</b><br>
11546   * Path: <b>ImplementationGuide.version</b><br>
11547   * </p>
11548   */
11549  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
11550
11551 /**
11552   * Search parameter: <b>url</b>
11553   * <p>
11554   * Description: <b>The uri that identifies the implementation guide</b><br>
11555   * Type: <b>uri</b><br>
11556   * Path: <b>ImplementationGuide.url</b><br>
11557   * </p>
11558   */
11559  @SearchParamDefinition(name="url", path="ImplementationGuide.url", description="The uri that identifies the implementation guide", type="uri" )
11560  public static final String SP_URL = "url";
11561 /**
11562   * <b>Fluent Client</b> search parameter constant for <b>url</b>
11563   * <p>
11564   * Description: <b>The uri that identifies the implementation guide</b><br>
11565   * Type: <b>uri</b><br>
11566   * Path: <b>ImplementationGuide.url</b><br>
11567   * </p>
11568   */
11569  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
11570
11571 /**
11572   * Search parameter: <b>context-quantity</b>
11573   * <p>
11574   * Description: <b>A quantity- or range-valued use context assigned to the implementation guide</b><br>
11575   * Type: <b>quantity</b><br>
11576   * Path: <b>ImplementationGuide.useContext.valueQuantity, ImplementationGuide.useContext.valueRange</b><br>
11577   * </p>
11578   */
11579  @SearchParamDefinition(name="context-quantity", path="(ImplementationGuide.useContext.value as Quantity) | (ImplementationGuide.useContext.value as Range)", description="A quantity- or range-valued use context assigned to the implementation guide", type="quantity" )
11580  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
11581 /**
11582   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
11583   * <p>
11584   * Description: <b>A quantity- or range-valued use context assigned to the implementation guide</b><br>
11585   * Type: <b>quantity</b><br>
11586   * Path: <b>ImplementationGuide.useContext.valueQuantity, ImplementationGuide.useContext.valueRange</b><br>
11587   * </p>
11588   */
11589  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
11590
11591 /**
11592   * Search parameter: <b>depends-on</b>
11593   * <p>
11594   * Description: <b>Identity of the IG that this depends on</b><br>
11595   * Type: <b>reference</b><br>
11596   * Path: <b>ImplementationGuide.dependsOn.uri</b><br>
11597   * </p>
11598   */
11599  @SearchParamDefinition(name="depends-on", path="ImplementationGuide.dependsOn.uri", description="Identity of the IG that this depends on", type="reference", target={ImplementationGuide.class } )
11600  public static final String SP_DEPENDS_ON = "depends-on";
11601 /**
11602   * <b>Fluent Client</b> search parameter constant for <b>depends-on</b>
11603   * <p>
11604   * Description: <b>Identity of the IG that this depends on</b><br>
11605   * Type: <b>reference</b><br>
11606   * Path: <b>ImplementationGuide.dependsOn.uri</b><br>
11607   * </p>
11608   */
11609  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEPENDS_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEPENDS_ON);
11610
11611/**
11612   * Constant for fluent queries to be used to add include statements. Specifies
11613   * the path value of "<b>ImplementationGuide:depends-on</b>".
11614   */
11615  public static final ca.uhn.fhir.model.api.Include INCLUDE_DEPENDS_ON = new ca.uhn.fhir.model.api.Include("ImplementationGuide:depends-on").toLocked();
11616
11617 /**
11618   * Search parameter: <b>name</b>
11619   * <p>
11620   * Description: <b>Computationally friendly name of the implementation guide</b><br>
11621   * Type: <b>string</b><br>
11622   * Path: <b>ImplementationGuide.name</b><br>
11623   * </p>
11624   */
11625  @SearchParamDefinition(name="name", path="ImplementationGuide.name", description="Computationally friendly name of the implementation guide", type="string" )
11626  public static final String SP_NAME = "name";
11627 /**
11628   * <b>Fluent Client</b> search parameter constant for <b>name</b>
11629   * <p>
11630   * Description: <b>Computationally friendly name of the implementation guide</b><br>
11631   * Type: <b>string</b><br>
11632   * Path: <b>ImplementationGuide.name</b><br>
11633   * </p>
11634   */
11635  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
11636
11637 /**
11638   * Search parameter: <b>context</b>
11639   * <p>
11640   * Description: <b>A use context assigned to the implementation guide</b><br>
11641   * Type: <b>token</b><br>
11642   * Path: <b>ImplementationGuide.useContext.valueCodeableConcept</b><br>
11643   * </p>
11644   */
11645  @SearchParamDefinition(name="context", path="(ImplementationGuide.useContext.value as CodeableConcept)", description="A use context assigned to the implementation guide", type="token" )
11646  public static final String SP_CONTEXT = "context";
11647 /**
11648   * <b>Fluent Client</b> search parameter constant for <b>context</b>
11649   * <p>
11650   * Description: <b>A use context assigned to the implementation guide</b><br>
11651   * Type: <b>token</b><br>
11652   * Path: <b>ImplementationGuide.useContext.valueCodeableConcept</b><br>
11653   * </p>
11654   */
11655  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
11656
11657 /**
11658   * Search parameter: <b>publisher</b>
11659   * <p>
11660   * Description: <b>Name of the publisher of the implementation guide</b><br>
11661   * Type: <b>string</b><br>
11662   * Path: <b>ImplementationGuide.publisher</b><br>
11663   * </p>
11664   */
11665  @SearchParamDefinition(name="publisher", path="ImplementationGuide.publisher", description="Name of the publisher of the implementation guide", type="string" )
11666  public static final String SP_PUBLISHER = "publisher";
11667 /**
11668   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
11669   * <p>
11670   * Description: <b>Name of the publisher of the implementation guide</b><br>
11671   * Type: <b>string</b><br>
11672   * Path: <b>ImplementationGuide.publisher</b><br>
11673   * </p>
11674   */
11675  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
11676
11677 /**
11678   * Search parameter: <b>context-type-quantity</b>
11679   * <p>
11680   * Description: <b>A use context type and quantity- or range-based value assigned to the implementation guide</b><br>
11681   * Type: <b>composite</b><br>
11682   * Path: <b></b><br>
11683   * </p>
11684   */
11685  @SearchParamDefinition(name="context-type-quantity", path="ImplementationGuide.useContext", description="A use context type and quantity- or range-based value assigned to the implementation guide", type="composite", compositeOf={"context-type", "context-quantity"} )
11686  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
11687 /**
11688   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
11689   * <p>
11690   * Description: <b>A use context type and quantity- or range-based value assigned to the implementation guide</b><br>
11691   * Type: <b>composite</b><br>
11692   * Path: <b></b><br>
11693   * </p>
11694   */
11695  public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam> CONTEXT_TYPE_QUANTITY = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam>(SP_CONTEXT_TYPE_QUANTITY);
11696
11697 /**
11698   * Search parameter: <b>status</b>
11699   * <p>
11700   * Description: <b>The current status of the implementation guide</b><br>
11701   * Type: <b>token</b><br>
11702   * Path: <b>ImplementationGuide.status</b><br>
11703   * </p>
11704   */
11705  @SearchParamDefinition(name="status", path="ImplementationGuide.status", description="The current status of the implementation guide", type="token" )
11706  public static final String SP_STATUS = "status";
11707 /**
11708   * <b>Fluent Client</b> search parameter constant for <b>status</b>
11709   * <p>
11710   * Description: <b>The current status of the implementation guide</b><br>
11711   * Type: <b>token</b><br>
11712   * Path: <b>ImplementationGuide.status</b><br>
11713   * </p>
11714   */
11715  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
11716
11717
11718}
11719