001package org.hl7.fhir.r4.model;
002
003
004
005/*
006  Copyright (c) 2011+, HL7, Inc.
007  All rights reserved.
008
009  Redistribution and use in source and binary forms, with or without modification, 
010  are permitted provided that the following conditions are met:
011
012 * Redistributions of source code must retain the above copyright notice, this 
013     list of conditions and the following disclaimer.
014 * Redistributions in binary form must reproduce the above copyright notice, 
015     this list of conditions and the following disclaimer in the documentation 
016     and/or other materials provided with the distribution.
017 * Neither the name of HL7 nor the names of its contributors may be used to 
018     endorse or promote products derived from this software without specific 
019     prior written permission.
020
021  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
022  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
023  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
024  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
025  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
026  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
027  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
028  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
029  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
030  POSSIBILITY OF SUCH DAMAGE.
031
032 */
033
034
035// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1
036
037import java.util.*;
038
039import org.hl7.fhir.utilities.Utilities;
040import org.hl7.fhir.r4.model.Enumerations.*;
041import ca.uhn.fhir.model.api.annotation.ResourceDef;
042import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
043import ca.uhn.fhir.model.api.annotation.Child;
044import ca.uhn.fhir.model.api.annotation.ChildOrder;
045import ca.uhn.fhir.model.api.annotation.Description;
046import ca.uhn.fhir.model.api.annotation.Block;
047import org.hl7.fhir.instance.model.api.*;
048import org.hl7.fhir.exceptions.FHIRException;
049/**
050 * A set of rules of how a particular interoperability or standards problem is solved - typically through the use of FHIR resources. 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.
051 */
052@ResourceDef(name="ImplementationGuide", profile="http://hl7.org/fhir/StructureDefinition/ImplementationGuide")
053@ChildOrder(names={"url", "version", "name", "title", "status", "experimental", "date", "publisher", "contact", "description", "useContext", "jurisdiction", "copyright", "packageId", "license", "fhirVersion", "dependsOn", "global", "definition", "manifest"})
054public class ImplementationGuide extends MetadataResource {
055
056    public enum SPDXLicense {
057        /**
058         * BSD Zero Clause License
059         */
060        _0BSD, 
061        /**
062         * Attribution Assurance License
063         */
064        AAL, 
065        /**
066         * Abstyles License
067         */
068        ABSTYLES, 
069        /**
070         * AdaCore Doc License
071         */
072        ADACORE_DOC, 
073        /**
074         * Adobe Systems Incorporated Source Code License Agreement
075         */
076        ADOBE_2006, 
077        /**
078         * Adobe Glyph List License
079         */
080        ADOBE_GLYPH, 
081        /**
082         * Amazon Digital Services License
083         */
084        ADSL, 
085        /**
086         * Academic Free License v1.1
087         */
088        AFL_1_1, 
089        /**
090         * Academic Free License v1.2
091         */
092        AFL_1_2, 
093        /**
094         * Academic Free License v2.0
095         */
096        AFL_2_0, 
097        /**
098         * Academic Free License v2.1
099         */
100        AFL_2_1, 
101        /**
102         * Academic Free License v3.0
103         */
104        AFL_3_0, 
105        /**
106         * Afmparse License
107         */
108        AFMPARSE, 
109        /**
110         * Affero General Public License v1.0
111         */
112        AGPL_1_0, 
113        /**
114         * Affero General Public License v1.0 only
115         */
116        AGPL_1_0_ONLY, 
117        /**
118         * Affero General Public License v1.0 or later
119         */
120        AGPL_1_0_OR_LATER, 
121        /**
122         * GNU Affero General Public License v3.0
123         */
124        AGPL_3_0, 
125        /**
126         * GNU Affero General Public License v3.0 only
127         */
128        AGPL_3_0_ONLY, 
129        /**
130         * GNU Affero General Public License v3.0 or later
131         */
132        AGPL_3_0_OR_LATER, 
133        /**
134         * Aladdin Free Public License
135         */
136        ALADDIN, 
137        /**
138         * AMD's plpa_map.c License
139         */
140        AMDPLPA, 
141        /**
142         * Apple MIT License
143         */
144        AML, 
145        /**
146         * Academy of Motion Picture Arts and Sciences BSD
147         */
148        AMPAS, 
149        /**
150         * ANTLR Software Rights Notice
151         */
152        ANTLR_PD, 
153        /**
154         * ANTLR Software Rights Notice with license fallback
155         */
156        ANTLR_PD_FALLBACK, 
157        /**
158         * Apache License 1.0
159         */
160        APACHE_1_0, 
161        /**
162         * Apache License 1.1
163         */
164        APACHE_1_1, 
165        /**
166         * Apache License 2.0
167         */
168        APACHE_2_0, 
169        /**
170         * Adobe Postscript AFM License
171         */
172        APAFML, 
173        /**
174         * Adaptive Public License 1.0
175         */
176        APL_1_0, 
177        /**
178         * App::s2p License
179         */
180        APP_S2P, 
181        /**
182         * Apple Public Source License 1.0
183         */
184        APSL_1_0, 
185        /**
186         * Apple Public Source License 1.1
187         */
188        APSL_1_1, 
189        /**
190         * Apple Public Source License 1.2
191         */
192        APSL_1_2, 
193        /**
194         * Apple Public Source License 2.0
195         */
196        APSL_2_0, 
197        /**
198         * Arphic Public License
199         */
200        ARPHIC_1999, 
201        /**
202         * Artistic License 1.0
203         */
204        ARTISTIC_1_0, 
205        /**
206         * Artistic License 1.0 w/clause 8
207         */
208        ARTISTIC_1_0_CL8, 
209        /**
210         * Artistic License 1.0 (Perl)
211         */
212        ARTISTIC_1_0_PERL, 
213        /**
214         * Artistic License 2.0
215         */
216        ARTISTIC_2_0, 
217        /**
218         * ASWF Digital Assets License version 1.0
219         */
220        ASWF_DIGITAL_ASSETS_1_0, 
221        /**
222         * ASWF Digital Assets License 1.1
223         */
224        ASWF_DIGITAL_ASSETS_1_1, 
225        /**
226         * Baekmuk License
227         */
228        BAEKMUK, 
229        /**
230         * Bahyph License
231         */
232        BAHYPH, 
233        /**
234         * Barr License
235         */
236        BARR, 
237        /**
238         * Beerware License
239         */
240        BEERWARE, 
241        /**
242         * Bitstream Charter Font License
243         */
244        BITSTREAM_CHARTER, 
245        /**
246         * Bitstream Vera Font License
247         */
248        BITSTREAM_VERA, 
249        /**
250         * BitTorrent Open Source License v1.0
251         */
252        BITTORRENT_1_0, 
253        /**
254         * BitTorrent Open Source License v1.1
255         */
256        BITTORRENT_1_1, 
257        /**
258         * SQLite Blessing
259         */
260        BLESSING, 
261        /**
262         * Blue Oak Model License 1.0.0
263         */
264        BLUEOAK_1_0_0, 
265        /**
266         * Boehm-Demers-Weiser GC License
267         */
268        BOEHM_GC, 
269        /**
270         * Borceux license
271         */
272        BORCEUX, 
273        /**
274         * Brian Gladman 3-Clause License
275         */
276        BRIAN_GLADMAN_3_CLAUSE, 
277        /**
278         * BSD 1-Clause License
279         */
280        BSD_1_CLAUSE, 
281        /**
282         * BSD 2-Clause "Simplified" License
283         */
284        BSD_2_CLAUSE, 
285        /**
286         * BSD 2-Clause FreeBSD License
287         */
288        BSD_2_CLAUSE_FREEBSD, 
289        /**
290         * BSD 2-Clause NetBSD License
291         */
292        BSD_2_CLAUSE_NETBSD, 
293        /**
294         * BSD-2-Clause Plus Patent License
295         */
296        BSD_2_CLAUSE_PATENT, 
297        /**
298         * BSD 2-Clause with views sentence
299         */
300        BSD_2_CLAUSE_VIEWS, 
301        /**
302         * BSD 3-Clause "New" or "Revised" License
303         */
304        BSD_3_CLAUSE, 
305        /**
306         * BSD with attribution
307         */
308        BSD_3_CLAUSE_ATTRIBUTION, 
309        /**
310         * BSD 3-Clause Clear License
311         */
312        BSD_3_CLAUSE_CLEAR, 
313        /**
314         * Lawrence Berkeley National Labs BSD variant license
315         */
316        BSD_3_CLAUSE_LBNL, 
317        /**
318         * BSD 3-Clause Modification
319         */
320        BSD_3_CLAUSE_MODIFICATION, 
321        /**
322         * BSD 3-Clause No Military License
323         */
324        BSD_3_CLAUSE_NO_MILITARY_LICENSE, 
325        /**
326         * BSD 3-Clause No Nuclear License
327         */
328        BSD_3_CLAUSE_NO_NUCLEAR_LICENSE, 
329        /**
330         * BSD 3-Clause No Nuclear License 2014
331         */
332        BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014, 
333        /**
334         * BSD 3-Clause No Nuclear Warranty
335         */
336        BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY, 
337        /**
338         * BSD 3-Clause Open MPI variant
339         */
340        BSD_3_CLAUSE_OPEN_MPI, 
341        /**
342         * BSD 4-Clause "Original" or "Old" License
343         */
344        BSD_4_CLAUSE, 
345        /**
346         * BSD 4 Clause Shortened
347         */
348        BSD_4_CLAUSE_SHORTENED, 
349        /**
350         * BSD-4-Clause (University of California-Specific)
351         */
352        BSD_4_CLAUSE_UC, 
353        /**
354         * BSD 4.3 RENO License
355         */
356        BSD_4_3RENO, 
357        /**
358         * BSD 4.3 TAHOE License
359         */
360        BSD_4_3TAHOE, 
361        /**
362         * BSD Advertising Acknowledgement License
363         */
364        BSD_ADVERTISING_ACKNOWLEDGEMENT, 
365        /**
366         * BSD with Attribution and HPND disclaimer
367         */
368        BSD_ATTRIBUTION_HPND_DISCLAIMER, 
369        /**
370         * BSD Protection License
371         */
372        BSD_PROTECTION, 
373        /**
374         * BSD Source Code Attribution
375         */
376        BSD_SOURCE_CODE, 
377        /**
378         * Boost Software License 1.0
379         */
380        BSL_1_0, 
381        /**
382         * Business Source License 1.1
383         */
384        BUSL_1_1, 
385        /**
386         * bzip2 and libbzip2 License v1.0.5
387         */
388        BZIP2_1_0_5, 
389        /**
390         * bzip2 and libbzip2 License v1.0.6
391         */
392        BZIP2_1_0_6, 
393        /**
394         * Computational Use of Data Agreement v1.0
395         */
396        C_UDA_1_0, 
397        /**
398         * Cryptographic Autonomy License 1.0
399         */
400        CAL_1_0, 
401        /**
402         * Cryptographic Autonomy License 1.0 (Combined Work Exception)
403         */
404        CAL_1_0_COMBINED_WORK_EXCEPTION, 
405        /**
406         * Caldera License
407         */
408        CALDERA, 
409        /**
410         * Computer Associates Trusted Open Source License 1.1
411         */
412        CATOSL_1_1, 
413        /**
414         * Creative Commons Attribution 1.0 Generic
415         */
416        CC_BY_1_0, 
417        /**
418         * Creative Commons Attribution 2.0 Generic
419         */
420        CC_BY_2_0, 
421        /**
422         * Creative Commons Attribution 2.5 Generic
423         */
424        CC_BY_2_5, 
425        /**
426         * Creative Commons Attribution 2.5 Australia
427         */
428        CC_BY_2_5_AU, 
429        /**
430         * Creative Commons Attribution 3.0 Unported
431         */
432        CC_BY_3_0, 
433        /**
434         * Creative Commons Attribution 3.0 Austria
435         */
436        CC_BY_3_0_AT, 
437        /**
438         * Creative Commons Attribution 3.0 Germany
439         */
440        CC_BY_3_0_DE, 
441        /**
442         * Creative Commons Attribution 3.0 IGO
443         */
444        CC_BY_3_0_IGO, 
445        /**
446         * Creative Commons Attribution 3.0 Netherlands
447         */
448        CC_BY_3_0_NL, 
449        /**
450         * Creative Commons Attribution 3.0 United States
451         */
452        CC_BY_3_0_US, 
453        /**
454         * Creative Commons Attribution 4.0 International
455         */
456        CC_BY_4_0, 
457        /**
458         * Creative Commons Attribution Non Commercial 1.0 Generic
459         */
460        CC_BY_NC_1_0, 
461        /**
462         * Creative Commons Attribution Non Commercial 2.0 Generic
463         */
464        CC_BY_NC_2_0, 
465        /**
466         * Creative Commons Attribution Non Commercial 2.5 Generic
467         */
468        CC_BY_NC_2_5, 
469        /**
470         * Creative Commons Attribution Non Commercial 3.0 Unported
471         */
472        CC_BY_NC_3_0, 
473        /**
474         * Creative Commons Attribution Non Commercial 3.0 Germany
475         */
476        CC_BY_NC_3_0_DE, 
477        /**
478         * Creative Commons Attribution Non Commercial 4.0 International
479         */
480        CC_BY_NC_4_0, 
481        /**
482         * Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic
483         */
484        CC_BY_NC_ND_1_0, 
485        /**
486         * Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic
487         */
488        CC_BY_NC_ND_2_0, 
489        /**
490         * Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic
491         */
492        CC_BY_NC_ND_2_5, 
493        /**
494         * Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported
495         */
496        CC_BY_NC_ND_3_0, 
497        /**
498         * Creative Commons Attribution Non Commercial No Derivatives 3.0 Germany
499         */
500        CC_BY_NC_ND_3_0_DE, 
501        /**
502         * Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO
503         */
504        CC_BY_NC_ND_3_0_IGO, 
505        /**
506         * Creative Commons Attribution Non Commercial No Derivatives 4.0 International
507         */
508        CC_BY_NC_ND_4_0, 
509        /**
510         * Creative Commons Attribution Non Commercial Share Alike 1.0 Generic
511         */
512        CC_BY_NC_SA_1_0, 
513        /**
514         * Creative Commons Attribution Non Commercial Share Alike 2.0 Generic
515         */
516        CC_BY_NC_SA_2_0, 
517        /**
518         * Creative Commons Attribution Non Commercial Share Alike 2.0 Germany
519         */
520        CC_BY_NC_SA_2_0_DE, 
521        /**
522         * Creative Commons Attribution-NonCommercial-ShareAlike 2.0 France
523         */
524        CC_BY_NC_SA_2_0_FR, 
525        /**
526         * Creative Commons Attribution Non Commercial Share Alike 2.0 England and Wales
527         */
528        CC_BY_NC_SA_2_0_UK, 
529        /**
530         * Creative Commons Attribution Non Commercial Share Alike 2.5 Generic
531         */
532        CC_BY_NC_SA_2_5, 
533        /**
534         * Creative Commons Attribution Non Commercial Share Alike 3.0 Unported
535         */
536        CC_BY_NC_SA_3_0, 
537        /**
538         * Creative Commons Attribution Non Commercial Share Alike 3.0 Germany
539         */
540        CC_BY_NC_SA_3_0_DE, 
541        /**
542         * Creative Commons Attribution Non Commercial Share Alike 3.0 IGO
543         */
544        CC_BY_NC_SA_3_0_IGO, 
545        /**
546         * Creative Commons Attribution Non Commercial Share Alike 4.0 International
547         */
548        CC_BY_NC_SA_4_0, 
549        /**
550         * Creative Commons Attribution No Derivatives 1.0 Generic
551         */
552        CC_BY_ND_1_0, 
553        /**
554         * Creative Commons Attribution No Derivatives 2.0 Generic
555         */
556        CC_BY_ND_2_0, 
557        /**
558         * Creative Commons Attribution No Derivatives 2.5 Generic
559         */
560        CC_BY_ND_2_5, 
561        /**
562         * Creative Commons Attribution No Derivatives 3.0 Unported
563         */
564        CC_BY_ND_3_0, 
565        /**
566         * Creative Commons Attribution No Derivatives 3.0 Germany
567         */
568        CC_BY_ND_3_0_DE, 
569        /**
570         * Creative Commons Attribution No Derivatives 4.0 International
571         */
572        CC_BY_ND_4_0, 
573        /**
574         * Creative Commons Attribution Share Alike 1.0 Generic
575         */
576        CC_BY_SA_1_0, 
577        /**
578         * Creative Commons Attribution Share Alike 2.0 Generic
579         */
580        CC_BY_SA_2_0, 
581        /**
582         * Creative Commons Attribution Share Alike 2.0 England and Wales
583         */
584        CC_BY_SA_2_0_UK, 
585        /**
586         * Creative Commons Attribution Share Alike 2.1 Japan
587         */
588        CC_BY_SA_2_1_JP, 
589        /**
590         * Creative Commons Attribution Share Alike 2.5 Generic
591         */
592        CC_BY_SA_2_5, 
593        /**
594         * Creative Commons Attribution Share Alike 3.0 Unported
595         */
596        CC_BY_SA_3_0, 
597        /**
598         * Creative Commons Attribution Share Alike 3.0 Austria
599         */
600        CC_BY_SA_3_0_AT, 
601        /**
602         * Creative Commons Attribution Share Alike 3.0 Germany
603         */
604        CC_BY_SA_3_0_DE, 
605        /**
606         * Creative Commons Attribution-ShareAlike 3.0 IGO
607         */
608        CC_BY_SA_3_0_IGO, 
609        /**
610         * Creative Commons Attribution Share Alike 4.0 International
611         */
612        CC_BY_SA_4_0, 
613        /**
614         * Creative Commons Public Domain Dedication and Certification
615         */
616        CC_PDDC, 
617        /**
618         * Creative Commons Zero v1.0 Universal
619         */
620        CC0_1_0, 
621        /**
622         * Common Development and Distribution License 1.0
623         */
624        CDDL_1_0, 
625        /**
626         * Common Development and Distribution License 1.1
627         */
628        CDDL_1_1, 
629        /**
630         * Common Documentation License 1.0
631         */
632        CDL_1_0, 
633        /**
634         * Community Data License Agreement Permissive 1.0
635         */
636        CDLA_PERMISSIVE_1_0, 
637        /**
638         * Community Data License Agreement Permissive 2.0
639         */
640        CDLA_PERMISSIVE_2_0, 
641        /**
642         * Community Data License Agreement Sharing 1.0
643         */
644        CDLA_SHARING_1_0, 
645        /**
646         * CeCILL Free Software License Agreement v1.0
647         */
648        CECILL_1_0, 
649        /**
650         * CeCILL Free Software License Agreement v1.1
651         */
652        CECILL_1_1, 
653        /**
654         * CeCILL Free Software License Agreement v2.0
655         */
656        CECILL_2_0, 
657        /**
658         * CeCILL Free Software License Agreement v2.1
659         */
660        CECILL_2_1, 
661        /**
662         * CeCILL-B Free Software License Agreement
663         */
664        CECILL_B, 
665        /**
666         * CeCILL-C Free Software License Agreement
667         */
668        CECILL_C, 
669        /**
670         * CERN Open Hardware Licence v1.1
671         */
672        CERN_OHL_1_1, 
673        /**
674         * CERN Open Hardware Licence v1.2
675         */
676        CERN_OHL_1_2, 
677        /**
678         * CERN Open Hardware Licence Version 2 - Permissive
679         */
680        CERN_OHL_P_2_0, 
681        /**
682         * CERN Open Hardware Licence Version 2 - Strongly Reciprocal
683         */
684        CERN_OHL_S_2_0, 
685        /**
686         * CERN Open Hardware Licence Version 2 - Weakly Reciprocal
687         */
688        CERN_OHL_W_2_0, 
689        /**
690         * CFITSIO License
691         */
692        CFITSIO, 
693        /**
694         * Checkmk License
695         */
696        CHECKMK, 
697        /**
698         * Clarified Artistic License
699         */
700        CLARTISTIC, 
701        /**
702         * Clips License
703         */
704        CLIPS, 
705        /**
706         * CMU Mach License
707         */
708        CMU_MACH, 
709        /**
710         * CNRI Jython License
711         */
712        CNRI_JYTHON, 
713        /**
714         * CNRI Python License
715         */
716        CNRI_PYTHON, 
717        /**
718         * CNRI Python Open Source GPL Compatible License Agreement
719         */
720        CNRI_PYTHON_GPL_COMPATIBLE, 
721        /**
722         * Copyfree Open Innovation License
723         */
724        COIL_1_0, 
725        /**
726         * Community Specification License 1.0
727         */
728        COMMUNITY_SPEC_1_0, 
729        /**
730         * Condor Public License v1.1
731         */
732        CONDOR_1_1, 
733        /**
734         * copyleft-next 0.3.0
735         */
736        COPYLEFT_NEXT_0_3_0, 
737        /**
738         * copyleft-next 0.3.1
739         */
740        COPYLEFT_NEXT_0_3_1, 
741        /**
742         * Cornell Lossless JPEG License
743         */
744        CORNELL_LOSSLESS_JPEG, 
745        /**
746         * Common Public Attribution License 1.0
747         */
748        CPAL_1_0, 
749        /**
750         * Common Public License 1.0
751         */
752        CPL_1_0, 
753        /**
754         * Code Project Open License 1.02
755         */
756        CPOL_1_02, 
757        /**
758         * Crossword License
759         */
760        CROSSWORD, 
761        /**
762         * CrystalStacker License
763         */
764        CRYSTALSTACKER, 
765        /**
766         * CUA Office Public License v1.0
767         */
768        CUA_OPL_1_0, 
769        /**
770         * Cube License
771         */
772        CUBE, 
773        /**
774         * curl License
775         */
776        CURL, 
777        /**
778         * Deutsche Freie Software Lizenz
779         */
780        D_FSL_1_0, 
781        /**
782         * diffmark license
783         */
784        DIFFMARK, 
785        /**
786         * Data licence Germany – attribution – version 2.0
787         */
788        DL_DE_BY_2_0, 
789        /**
790         * DOC License
791         */
792        DOC, 
793        /**
794         * Dotseqn License
795         */
796        DOTSEQN, 
797        /**
798         * Detection Rule License 1.0
799         */
800        DRL_1_0, 
801        /**
802         * DSDP License
803         */
804        DSDP, 
805        /**
806         * David M. Gay dtoa License
807         */
808        DTOA, 
809        /**
810         * dvipdfm License
811         */
812        DVIPDFM, 
813        /**
814         * Educational Community License v1.0
815         */
816        ECL_1_0, 
817        /**
818         * Educational Community License v2.0
819         */
820        ECL_2_0, 
821        /**
822         * eCos license version 2.0
823         */
824        ECOS_2_0, 
825        /**
826         * Eiffel Forum License v1.0
827         */
828        EFL_1_0, 
829        /**
830         * Eiffel Forum License v2.0
831         */
832        EFL_2_0, 
833        /**
834         * eGenix.com Public License 1.1.0
835         */
836        EGENIX, 
837        /**
838         * Elastic License 2.0
839         */
840        ELASTIC_2_0, 
841        /**
842         * Entessa Public License v1.0
843         */
844        ENTESSA, 
845        /**
846         * EPICS Open License
847         */
848        EPICS, 
849        /**
850         * Eclipse Public License 1.0
851         */
852        EPL_1_0, 
853        /**
854         * Eclipse Public License 2.0
855         */
856        EPL_2_0, 
857        /**
858         * Erlang Public License v1.1
859         */
860        ERLPL_1_1, 
861        /**
862         * Etalab Open License 2.0
863         */
864        ETALAB_2_0, 
865        /**
866         * EU DataGrid Software License
867         */
868        EUDATAGRID, 
869        /**
870         * European Union Public License 1.0
871         */
872        EUPL_1_0, 
873        /**
874         * European Union Public License 1.1
875         */
876        EUPL_1_1, 
877        /**
878         * European Union Public License 1.2
879         */
880        EUPL_1_2, 
881        /**
882         * Eurosym License
883         */
884        EUROSYM, 
885        /**
886         * Fair License
887         */
888        FAIR, 
889        /**
890         * Fraunhofer FDK AAC Codec Library
891         */
892        FDK_AAC, 
893        /**
894         * Frameworx Open License 1.0
895         */
896        FRAMEWORX_1_0, 
897        /**
898         * FreeBSD Documentation License
899         */
900        FREEBSD_DOC, 
901        /**
902         * FreeImage Public License v1.0
903         */
904        FREEIMAGE, 
905        /**
906         * FSF All Permissive License
907         */
908        FSFAP, 
909        /**
910         * FSF Unlimited License
911         */
912        FSFUL, 
913        /**
914         * FSF Unlimited License (with License Retention)
915         */
916        FSFULLR, 
917        /**
918         * FSF Unlimited License (With License Retention and Warranty Disclaimer)
919         */
920        FSFULLRWD, 
921        /**
922         * Freetype Project License
923         */
924        FTL, 
925        /**
926         * GD License
927         */
928        GD, 
929        /**
930         * GNU Free Documentation License v1.1
931         */
932        GFDL_1_1, 
933        /**
934         * GNU Free Documentation License v1.1 only - invariants
935         */
936        GFDL_1_1_INVARIANTS_ONLY, 
937        /**
938         * GNU Free Documentation License v1.1 or later - invariants
939         */
940        GFDL_1_1_INVARIANTS_OR_LATER, 
941        /**
942         * GNU Free Documentation License v1.1 only - no invariants
943         */
944        GFDL_1_1_NO_INVARIANTS_ONLY, 
945        /**
946         * GNU Free Documentation License v1.1 or later - no invariants
947         */
948        GFDL_1_1_NO_INVARIANTS_OR_LATER, 
949        /**
950         * GNU Free Documentation License v1.1 only
951         */
952        GFDL_1_1_ONLY, 
953        /**
954         * GNU Free Documentation License v1.1 or later
955         */
956        GFDL_1_1_OR_LATER, 
957        /**
958         * GNU Free Documentation License v1.2
959         */
960        GFDL_1_2, 
961        /**
962         * GNU Free Documentation License v1.2 only - invariants
963         */
964        GFDL_1_2_INVARIANTS_ONLY, 
965        /**
966         * GNU Free Documentation License v1.2 or later - invariants
967         */
968        GFDL_1_2_INVARIANTS_OR_LATER, 
969        /**
970         * GNU Free Documentation License v1.2 only - no invariants
971         */
972        GFDL_1_2_NO_INVARIANTS_ONLY, 
973        /**
974         * GNU Free Documentation License v1.2 or later - no invariants
975         */
976        GFDL_1_2_NO_INVARIANTS_OR_LATER, 
977        /**
978         * GNU Free Documentation License v1.2 only
979         */
980        GFDL_1_2_ONLY, 
981        /**
982         * GNU Free Documentation License v1.2 or later
983         */
984        GFDL_1_2_OR_LATER, 
985        /**
986         * GNU Free Documentation License v1.3
987         */
988        GFDL_1_3, 
989        /**
990         * GNU Free Documentation License v1.3 only - invariants
991         */
992        GFDL_1_3_INVARIANTS_ONLY, 
993        /**
994         * GNU Free Documentation License v1.3 or later - invariants
995         */
996        GFDL_1_3_INVARIANTS_OR_LATER, 
997        /**
998         * GNU Free Documentation License v1.3 only - no invariants
999         */
1000        GFDL_1_3_NO_INVARIANTS_ONLY, 
1001        /**
1002         * GNU Free Documentation License v1.3 or later - no invariants
1003         */
1004        GFDL_1_3_NO_INVARIANTS_OR_LATER, 
1005        /**
1006         * GNU Free Documentation License v1.3 only
1007         */
1008        GFDL_1_3_ONLY, 
1009        /**
1010         * GNU Free Documentation License v1.3 or later
1011         */
1012        GFDL_1_3_OR_LATER, 
1013        /**
1014         * Giftware License
1015         */
1016        GIFTWARE, 
1017        /**
1018         * GL2PS License
1019         */
1020        GL2PS, 
1021        /**
1022         * 3dfx Glide License
1023         */
1024        GLIDE, 
1025        /**
1026         * Glulxe License
1027         */
1028        GLULXE, 
1029        /**
1030         * Good Luck With That Public License
1031         */
1032        GLWTPL, 
1033        /**
1034         * gnuplot License
1035         */
1036        GNUPLOT, 
1037        /**
1038         * GNU General Public License v1.0 only
1039         */
1040        GPL_1_0, 
1041        /**
1042         * GNU General Public License v1.0 or later
1043         */
1044        GPL_1_0PLUS, 
1045        /**
1046         * GNU General Public License v1.0 only
1047         */
1048        GPL_1_0_ONLY, 
1049        /**
1050         * GNU General Public License v1.0 or later
1051         */
1052        GPL_1_0_OR_LATER, 
1053        /**
1054         * GNU General Public License v2.0 only
1055         */
1056        GPL_2_0, 
1057        /**
1058         * GNU General Public License v2.0 or later
1059         */
1060        GPL_2_0PLUS, 
1061        /**
1062         * GNU General Public License v2.0 only
1063         */
1064        GPL_2_0_ONLY, 
1065        /**
1066         * GNU General Public License v2.0 or later
1067         */
1068        GPL_2_0_OR_LATER, 
1069        /**
1070         * GNU General Public License v2.0 w/Autoconf exception
1071         */
1072        GPL_2_0_WITH_AUTOCONF_EXCEPTION, 
1073        /**
1074         * GNU General Public License v2.0 w/Bison exception
1075         */
1076        GPL_2_0_WITH_BISON_EXCEPTION, 
1077        /**
1078         * GNU General Public License v2.0 w/Classpath exception
1079         */
1080        GPL_2_0_WITH_CLASSPATH_EXCEPTION, 
1081        /**
1082         * GNU General Public License v2.0 w/Font exception
1083         */
1084        GPL_2_0_WITH_FONT_EXCEPTION, 
1085        /**
1086         * GNU General Public License v2.0 w/GCC Runtime Library exception
1087         */
1088        GPL_2_0_WITH_GCC_EXCEPTION, 
1089        /**
1090         * GNU General Public License v3.0 only
1091         */
1092        GPL_3_0, 
1093        /**
1094         * GNU General Public License v3.0 or later
1095         */
1096        GPL_3_0PLUS, 
1097        /**
1098         * GNU General Public License v3.0 only
1099         */
1100        GPL_3_0_ONLY, 
1101        /**
1102         * GNU General Public License v3.0 or later
1103         */
1104        GPL_3_0_OR_LATER, 
1105        /**
1106         * GNU General Public License v3.0 w/Autoconf exception
1107         */
1108        GPL_3_0_WITH_AUTOCONF_EXCEPTION, 
1109        /**
1110         * GNU General Public License v3.0 w/GCC Runtime Library exception
1111         */
1112        GPL_3_0_WITH_GCC_EXCEPTION, 
1113        /**
1114         * Graphics Gems License
1115         */
1116        GRAPHICS_GEMS, 
1117        /**
1118         * gSOAP Public License v1.3b
1119         */
1120        GSOAP_1_3B, 
1121        /**
1122         * Haskell Language Report License
1123         */
1124        HASKELLREPORT, 
1125        /**
1126         * Hippocratic License 2.1
1127         */
1128        HIPPOCRATIC_2_1, 
1129        /**
1130         * Hewlett-Packard 1986 License
1131         */
1132        HP_1986, 
1133        /**
1134         * Historical Permission Notice and Disclaimer
1135         */
1136        HPND, 
1137        /**
1138         * HPND with US Government export control warning
1139         */
1140        HPND_EXPORT_US, 
1141        /**
1142         * Historical Permission Notice and Disclaimer - Markus Kuhn variant
1143         */
1144        HPND_MARKUS_KUHN, 
1145        /**
1146         * Historical Permission Notice and Disclaimer - sell variant
1147         */
1148        HPND_SELL_VARIANT, 
1149        /**
1150         * HPND sell variant with MIT disclaimer
1151         */
1152        HPND_SELL_VARIANT_MIT_DISCLAIMER, 
1153        /**
1154         * HTML Tidy License
1155         */
1156        HTMLTIDY, 
1157        /**
1158         * IBM PowerPC Initialization and Boot Software
1159         */
1160        IBM_PIBS, 
1161        /**
1162         * ICU License
1163         */
1164        ICU, 
1165        /**
1166         * IEC    Code Components End-user licence agreement
1167         */
1168        IEC_CODE_COMPONENTS_EULA, 
1169        /**
1170         * Independent JPEG Group License
1171         */
1172        IJG, 
1173        /**
1174         * Independent JPEG Group License - short
1175         */
1176        IJG_SHORT, 
1177        /**
1178         * ImageMagick License
1179         */
1180        IMAGEMAGICK, 
1181        /**
1182         * iMatix Standard Function Library Agreement
1183         */
1184        IMATIX, 
1185        /**
1186         * Imlib2 License
1187         */
1188        IMLIB2, 
1189        /**
1190         * Info-ZIP License
1191         */
1192        INFO_ZIP, 
1193        /**
1194         * Inner Net License v2.0
1195         */
1196        INNER_NET_2_0, 
1197        /**
1198         * Intel Open Source License
1199         */
1200        INTEL, 
1201        /**
1202         * Intel ACPI Software License Agreement
1203         */
1204        INTEL_ACPI, 
1205        /**
1206         * Interbase Public License v1.0
1207         */
1208        INTERBASE_1_0, 
1209        /**
1210         * IPA Font License
1211         */
1212        IPA, 
1213        /**
1214         * IBM Public License v1.0
1215         */
1216        IPL_1_0, 
1217        /**
1218         * ISC License
1219         */
1220        ISC, 
1221        /**
1222         * Jam License
1223         */
1224        JAM, 
1225        /**
1226         * JasPer License
1227         */
1228        JASPER_2_0, 
1229        /**
1230         * JPL Image Use Policy
1231         */
1232        JPL_IMAGE, 
1233        /**
1234         * Japan Network Information Center License
1235         */
1236        JPNIC, 
1237        /**
1238         * JSON License
1239         */
1240        JSON, 
1241        /**
1242         * Kazlib License
1243         */
1244        KAZLIB, 
1245        /**
1246         * Knuth CTAN License
1247         */
1248        KNUTH_CTAN, 
1249        /**
1250         * Licence Art Libre 1.2
1251         */
1252        LAL_1_2, 
1253        /**
1254         * Licence Art Libre 1.3
1255         */
1256        LAL_1_3, 
1257        /**
1258         * Latex2e License
1259         */
1260        LATEX2E, 
1261        /**
1262         * Latex2e with translated notice permission
1263         */
1264        LATEX2E_TRANSLATED_NOTICE, 
1265        /**
1266         * Leptonica License
1267         */
1268        LEPTONICA, 
1269        /**
1270         * GNU Library General Public License v2 only
1271         */
1272        LGPL_2_0, 
1273        /**
1274         * GNU Library General Public License v2 or later
1275         */
1276        LGPL_2_0PLUS, 
1277        /**
1278         * GNU Library General Public License v2 only
1279         */
1280        LGPL_2_0_ONLY, 
1281        /**
1282         * GNU Library General Public License v2 or later
1283         */
1284        LGPL_2_0_OR_LATER, 
1285        /**
1286         * GNU Lesser General Public License v2.1 only
1287         */
1288        LGPL_2_1, 
1289        /**
1290         * GNU Lesser General Public License v2.1 or later
1291         */
1292        LGPL_2_1PLUS, 
1293        /**
1294         * GNU Lesser General Public License v2.1 only
1295         */
1296        LGPL_2_1_ONLY, 
1297        /**
1298         * GNU Lesser General Public License v2.1 or later
1299         */
1300        LGPL_2_1_OR_LATER, 
1301        /**
1302         * GNU Lesser General Public License v3.0 only
1303         */
1304        LGPL_3_0, 
1305        /**
1306         * GNU Lesser General Public License v3.0 or later
1307         */
1308        LGPL_3_0PLUS, 
1309        /**
1310         * GNU Lesser General Public License v3.0 only
1311         */
1312        LGPL_3_0_ONLY, 
1313        /**
1314         * GNU Lesser General Public License v3.0 or later
1315         */
1316        LGPL_3_0_OR_LATER, 
1317        /**
1318         * Lesser General Public License For Linguistic Resources
1319         */
1320        LGPLLR, 
1321        /**
1322         * libpng License
1323         */
1324        LIBPNG, 
1325        /**
1326         * PNG Reference Library version 2
1327         */
1328        LIBPNG_2_0, 
1329        /**
1330         * libselinux public domain notice
1331         */
1332        LIBSELINUX_1_0, 
1333        /**
1334         * libtiff License
1335         */
1336        LIBTIFF, 
1337        /**
1338         * libutil David Nugent License
1339         */
1340        LIBUTIL_DAVID_NUGENT, 
1341        /**
1342         * Licence Libre du Québec – Permissive version 1.1
1343         */
1344        LILIQ_P_1_1, 
1345        /**
1346         * Licence Libre du Québec – Réciprocité version 1.1
1347         */
1348        LILIQ_R_1_1, 
1349        /**
1350         * Licence Libre du Québec – Réciprocité forte version 1.1
1351         */
1352        LILIQ_RPLUS_1_1, 
1353        /**
1354         * Linux man-pages - 1 paragraph
1355         */
1356        LINUX_MAN_PAGES_1_PARA, 
1357        /**
1358         * Linux man-pages Copyleft
1359         */
1360        LINUX_MAN_PAGES_COPYLEFT, 
1361        /**
1362         * Linux man-pages Copyleft - 2 paragraphs
1363         */
1364        LINUX_MAN_PAGES_COPYLEFT_2_PARA, 
1365        /**
1366         * Linux man-pages Copyleft Variant
1367         */
1368        LINUX_MAN_PAGES_COPYLEFT_VAR, 
1369        /**
1370         * Linux Kernel Variant of OpenIB.org license
1371         */
1372        LINUX_OPENIB, 
1373        /**
1374         * Common Lisp LOOP License
1375         */
1376        LOOP, 
1377        /**
1378         * Lucent Public License Version 1.0
1379         */
1380        LPL_1_0, 
1381        /**
1382         * Lucent Public License v1.02
1383         */
1384        LPL_1_02, 
1385        /**
1386         * LaTeX Project Public License v1.0
1387         */
1388        LPPL_1_0, 
1389        /**
1390         * LaTeX Project Public License v1.1
1391         */
1392        LPPL_1_1, 
1393        /**
1394         * LaTeX Project Public License v1.2
1395         */
1396        LPPL_1_2, 
1397        /**
1398         * LaTeX Project Public License v1.3a
1399         */
1400        LPPL_1_3A, 
1401        /**
1402         * LaTeX Project Public License v1.3c
1403         */
1404        LPPL_1_3C, 
1405        /**
1406         * LZMA SDK License (versions 9.11 to 9.20)
1407         */
1408        LZMA_SDK_9_11_TO_9_20, 
1409        /**
1410         * LZMA SDK License (versions 9.22 and beyond)
1411         */
1412        LZMA_SDK_9_22, 
1413        /**
1414         * MakeIndex License
1415         */
1416        MAKEINDEX, 
1417        /**
1418         * Martin Birgmeier License
1419         */
1420        MARTIN_BIRGMEIER, 
1421        /**
1422         * metamail License
1423         */
1424        METAMAIL, 
1425        /**
1426         * Minpack License
1427         */
1428        MINPACK, 
1429        /**
1430         * The MirOS Licence
1431         */
1432        MIROS, 
1433        /**
1434         * MIT License
1435         */
1436        MIT, 
1437        /**
1438         * MIT No Attribution
1439         */
1440        MIT_0, 
1441        /**
1442         * Enlightenment License (e16)
1443         */
1444        MIT_ADVERTISING, 
1445        /**
1446         * CMU License
1447         */
1448        MIT_CMU, 
1449        /**
1450         * enna License
1451         */
1452        MIT_ENNA, 
1453        /**
1454         * feh License
1455         */
1456        MIT_FEH, 
1457        /**
1458         * MIT Festival Variant
1459         */
1460        MIT_FESTIVAL, 
1461        /**
1462         * MIT License Modern Variant
1463         */
1464        MIT_MODERN_VARIANT, 
1465        /**
1466         * MIT Open Group variant
1467         */
1468        MIT_OPEN_GROUP, 
1469        /**
1470         * MIT Tom Wu Variant
1471         */
1472        MIT_WU, 
1473        /**
1474         * MIT +no-false-attribs license
1475         */
1476        MITNFA, 
1477        /**
1478         * Motosoto License
1479         */
1480        MOTOSOTO, 
1481        /**
1482         * mpi Permissive License
1483         */
1484        MPI_PERMISSIVE, 
1485        /**
1486         * mpich2 License
1487         */
1488        MPICH2, 
1489        /**
1490         * Mozilla Public License 1.0
1491         */
1492        MPL_1_0, 
1493        /**
1494         * Mozilla Public License 1.1
1495         */
1496        MPL_1_1, 
1497        /**
1498         * Mozilla Public License 2.0
1499         */
1500        MPL_2_0, 
1501        /**
1502         * Mozilla Public License 2.0 (no copyleft exception)
1503         */
1504        MPL_2_0_NO_COPYLEFT_EXCEPTION, 
1505        /**
1506         * mplus Font License
1507         */
1508        MPLUS, 
1509        /**
1510         * Microsoft Limited Public License
1511         */
1512        MS_LPL, 
1513        /**
1514         * Microsoft Public License
1515         */
1516        MS_PL, 
1517        /**
1518         * Microsoft Reciprocal License
1519         */
1520        MS_RL, 
1521        /**
1522         * Matrix Template Library License
1523         */
1524        MTLL, 
1525        /**
1526         * Mulan Permissive Software License, Version 1
1527         */
1528        MULANPSL_1_0, 
1529        /**
1530         * Mulan Permissive Software License, Version 2
1531         */
1532        MULANPSL_2_0, 
1533        /**
1534         * Multics License
1535         */
1536        MULTICS, 
1537        /**
1538         * Mup License
1539         */
1540        MUP, 
1541        /**
1542         * Nara Institute of Science and Technology License (2003)
1543         */
1544        NAIST_2003, 
1545        /**
1546         * NASA Open Source Agreement 1.3
1547         */
1548        NASA_1_3, 
1549        /**
1550         * Naumen Public License
1551         */
1552        NAUMEN, 
1553        /**
1554         * Net Boolean Public License v1
1555         */
1556        NBPL_1_0, 
1557        /**
1558         * Non-Commercial Government Licence
1559         */
1560        NCGL_UK_2_0, 
1561        /**
1562         * University of Illinois/NCSA Open Source License
1563         */
1564        NCSA, 
1565        /**
1566         * Net-SNMP License
1567         */
1568        NET_SNMP, 
1569        /**
1570         * NetCDF license
1571         */
1572        NETCDF, 
1573        /**
1574         * Newsletr License
1575         */
1576        NEWSLETR, 
1577        /**
1578         * Nethack General Public License
1579         */
1580        NGPL, 
1581        /**
1582         * NICTA Public Software License, Version 1.0
1583         */
1584        NICTA_1_0, 
1585        /**
1586         * NIST Public Domain Notice
1587         */
1588        NIST_PD, 
1589        /**
1590         * NIST Public Domain Notice with license fallback
1591         */
1592        NIST_PD_FALLBACK, 
1593        /**
1594         * NIST Software License
1595         */
1596        NIST_SOFTWARE, 
1597        /**
1598         * Norwegian Licence for Open Government Data (NLOD) 1.0
1599         */
1600        NLOD_1_0, 
1601        /**
1602         * Norwegian Licence for Open Government Data (NLOD) 2.0
1603         */
1604        NLOD_2_0, 
1605        /**
1606         * No Limit Public License
1607         */
1608        NLPL, 
1609        /**
1610         * Nokia Open Source License
1611         */
1612        NOKIA, 
1613        /**
1614         * Netizen Open Source License
1615         */
1616        NOSL, 
1617        /**
1618         * Not an open source license.
1619         */
1620        NOT_OPEN_SOURCE, 
1621        /**
1622         * Noweb License
1623         */
1624        NOWEB, 
1625        /**
1626         * Netscape Public License v1.0
1627         */
1628        NPL_1_0, 
1629        /**
1630         * Netscape Public License v1.1
1631         */
1632        NPL_1_1, 
1633        /**
1634         * Non-Profit Open Software License 3.0
1635         */
1636        NPOSL_3_0, 
1637        /**
1638         * NRL License
1639         */
1640        NRL, 
1641        /**
1642         * NTP License
1643         */
1644        NTP, 
1645        /**
1646         * NTP No Attribution
1647         */
1648        NTP_0, 
1649        /**
1650         * Nunit License
1651         */
1652        NUNIT, 
1653        /**
1654         * Open Use of Data Agreement v1.0
1655         */
1656        O_UDA_1_0, 
1657        /**
1658         * Open CASCADE Technology Public License
1659         */
1660        OCCT_PL, 
1661        /**
1662         * OCLC Research Public License 2.0
1663         */
1664        OCLC_2_0, 
1665        /**
1666         * Open Data Commons Open Database License v1.0
1667         */
1668        ODBL_1_0, 
1669        /**
1670         * Open Data Commons Attribution License v1.0
1671         */
1672        ODC_BY_1_0, 
1673        /**
1674         * OFFIS License
1675         */
1676        OFFIS, 
1677        /**
1678         * SIL Open Font License 1.0
1679         */
1680        OFL_1_0, 
1681        /**
1682         * SIL Open Font License 1.0 with no Reserved Font Name
1683         */
1684        OFL_1_0_NO_RFN, 
1685        /**
1686         * SIL Open Font License 1.0 with Reserved Font Name
1687         */
1688        OFL_1_0_RFN, 
1689        /**
1690         * SIL Open Font License 1.1
1691         */
1692        OFL_1_1, 
1693        /**
1694         * SIL Open Font License 1.1 with no Reserved Font Name
1695         */
1696        OFL_1_1_NO_RFN, 
1697        /**
1698         * SIL Open Font License 1.1 with Reserved Font Name
1699         */
1700        OFL_1_1_RFN, 
1701        /**
1702         * OGC Software License, Version 1.0
1703         */
1704        OGC_1_0, 
1705        /**
1706         * Taiwan Open Government Data License, version 1.0
1707         */
1708        OGDL_TAIWAN_1_0, 
1709        /**
1710         * Open Government Licence - Canada
1711         */
1712        OGL_CANADA_2_0, 
1713        /**
1714         * Open Government Licence v1.0
1715         */
1716        OGL_UK_1_0, 
1717        /**
1718         * Open Government Licence v2.0
1719         */
1720        OGL_UK_2_0, 
1721        /**
1722         * Open Government Licence v3.0
1723         */
1724        OGL_UK_3_0, 
1725        /**
1726         * Open Group Test Suite License
1727         */
1728        OGTSL, 
1729        /**
1730         * Open LDAP Public License v1.1
1731         */
1732        OLDAP_1_1, 
1733        /**
1734         * Open LDAP Public License v1.2
1735         */
1736        OLDAP_1_2, 
1737        /**
1738         * Open LDAP Public License v1.3
1739         */
1740        OLDAP_1_3, 
1741        /**
1742         * Open LDAP Public License v1.4
1743         */
1744        OLDAP_1_4, 
1745        /**
1746         * Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)
1747         */
1748        OLDAP_2_0, 
1749        /**
1750         * Open LDAP Public License v2.0.1
1751         */
1752        OLDAP_2_0_1, 
1753        /**
1754         * Open LDAP Public License v2.1
1755         */
1756        OLDAP_2_1, 
1757        /**
1758         * Open LDAP Public License v2.2
1759         */
1760        OLDAP_2_2, 
1761        /**
1762         * Open LDAP Public License v2.2.1
1763         */
1764        OLDAP_2_2_1, 
1765        /**
1766         * Open LDAP Public License 2.2.2
1767         */
1768        OLDAP_2_2_2, 
1769        /**
1770         * Open LDAP Public License v2.3
1771         */
1772        OLDAP_2_3, 
1773        /**
1774         * Open LDAP Public License v2.4
1775         */
1776        OLDAP_2_4, 
1777        /**
1778         * Open LDAP Public License v2.5
1779         */
1780        OLDAP_2_5, 
1781        /**
1782         * Open LDAP Public License v2.6
1783         */
1784        OLDAP_2_6, 
1785        /**
1786         * Open LDAP Public License v2.7
1787         */
1788        OLDAP_2_7, 
1789        /**
1790         * Open LDAP Public License v2.8
1791         */
1792        OLDAP_2_8, 
1793        /**
1794         * Open Logistics Foundation License Version 1.3
1795         */
1796        OLFL_1_3, 
1797        /**
1798         * Open Market License
1799         */
1800        OML, 
1801        /**
1802         * OpenPBS v2.3 Software License
1803         */
1804        OPENPBS_2_3, 
1805        /**
1806         * OpenSSL License
1807         */
1808        OPENSSL, 
1809        /**
1810         * Open Public License v1.0
1811         */
1812        OPL_1_0, 
1813        /**
1814         * United    Kingdom Open Parliament Licence v3.0
1815         */
1816        OPL_UK_3_0, 
1817        /**
1818         * Open Publication License v1.0
1819         */
1820        OPUBL_1_0, 
1821        /**
1822         * OSET Public License version 2.1
1823         */
1824        OSET_PL_2_1, 
1825        /**
1826         * Open Software License 1.0
1827         */
1828        OSL_1_0, 
1829        /**
1830         * Open Software License 1.1
1831         */
1832        OSL_1_1, 
1833        /**
1834         * Open Software License 2.0
1835         */
1836        OSL_2_0, 
1837        /**
1838         * Open Software License 2.1
1839         */
1840        OSL_2_1, 
1841        /**
1842         * Open Software License 3.0
1843         */
1844        OSL_3_0, 
1845        /**
1846         * The Parity Public License 6.0.0
1847         */
1848        PARITY_6_0_0, 
1849        /**
1850         * The Parity Public License 7.0.0
1851         */
1852        PARITY_7_0_0, 
1853        /**
1854         * Open Data Commons Public Domain Dedication & License 1.0
1855         */
1856        PDDL_1_0, 
1857        /**
1858         * PHP License v3.0
1859         */
1860        PHP_3_0, 
1861        /**
1862         * PHP License v3.01
1863         */
1864        PHP_3_01, 
1865        /**
1866         * Plexus Classworlds License
1867         */
1868        PLEXUS, 
1869        /**
1870         * PolyForm Noncommercial License 1.0.0
1871         */
1872        POLYFORM_NONCOMMERCIAL_1_0_0, 
1873        /**
1874         * PolyForm Small Business License 1.0.0
1875         */
1876        POLYFORM_SMALL_BUSINESS_1_0_0, 
1877        /**
1878         * PostgreSQL License
1879         */
1880        POSTGRESQL, 
1881        /**
1882         * Python Software Foundation License 2.0
1883         */
1884        PSF_2_0, 
1885        /**
1886         * psfrag License
1887         */
1888        PSFRAG, 
1889        /**
1890         * psutils License
1891         */
1892        PSUTILS, 
1893        /**
1894         * Python License 2.0
1895         */
1896        PYTHON_2_0, 
1897        /**
1898         * Python License 2.0.1
1899         */
1900        PYTHON_2_0_1, 
1901        /**
1902         * Qhull License
1903         */
1904        QHULL, 
1905        /**
1906         * Q Public License 1.0
1907         */
1908        QPL_1_0, 
1909        /**
1910         * Q Public License 1.0 - INRIA 2004 variant
1911         */
1912        QPL_1_0_INRIA_2004, 
1913        /**
1914         * Rdisc License
1915         */
1916        RDISC, 
1917        /**
1918         * Red Hat eCos Public License v1.1
1919         */
1920        RHECOS_1_1, 
1921        /**
1922         * Reciprocal Public License 1.1
1923         */
1924        RPL_1_1, 
1925        /**
1926         * Reciprocal Public License 1.5
1927         */
1928        RPL_1_5, 
1929        /**
1930         * RealNetworks Public Source License v1.0
1931         */
1932        RPSL_1_0, 
1933        /**
1934         * RSA Message-Digest License
1935         */
1936        RSA_MD, 
1937        /**
1938         * Ricoh Source Code Public License
1939         */
1940        RSCPL, 
1941        /**
1942         * Ruby License
1943         */
1944        RUBY, 
1945        /**
1946         * Sax Public Domain Notice
1947         */
1948        SAX_PD, 
1949        /**
1950         * Saxpath License
1951         */
1952        SAXPATH, 
1953        /**
1954         * SCEA Shared Source License
1955         */
1956        SCEA, 
1957        /**
1958         * Scheme Language Report License
1959         */
1960        SCHEMEREPORT, 
1961        /**
1962         * Sendmail License
1963         */
1964        SENDMAIL, 
1965        /**
1966         * Sendmail License 8.23
1967         */
1968        SENDMAIL_8_23, 
1969        /**
1970         * SGI Free Software License B v1.0
1971         */
1972        SGI_B_1_0, 
1973        /**
1974         * SGI Free Software License B v1.1
1975         */
1976        SGI_B_1_1, 
1977        /**
1978         * SGI Free Software License B v2.0
1979         */
1980        SGI_B_2_0, 
1981        /**
1982         * SGP4 Permission Notice
1983         */
1984        SGP4, 
1985        /**
1986         * Solderpad Hardware License v0.5
1987         */
1988        SHL_0_5, 
1989        /**
1990         * Solderpad Hardware License, Version 0.51
1991         */
1992        SHL_0_51, 
1993        /**
1994         * Simple Public License 2.0
1995         */
1996        SIMPL_2_0, 
1997        /**
1998         * Sun Industry Standards Source License v1.1
1999         */
2000        SISSL, 
2001        /**
2002         * Sun Industry Standards Source License v1.2
2003         */
2004        SISSL_1_2, 
2005        /**
2006         * Sleepycat License
2007         */
2008        SLEEPYCAT, 
2009        /**
2010         * Standard ML of New Jersey License
2011         */
2012        SMLNJ, 
2013        /**
2014         * Secure Messaging Protocol Public License
2015         */
2016        SMPPL, 
2017        /**
2018         * SNIA Public License 1.1
2019         */
2020        SNIA, 
2021        /**
2022         * snprintf License
2023         */
2024        SNPRINTF, 
2025        /**
2026         * Spencer License 86
2027         */
2028        SPENCER_86, 
2029        /**
2030         * Spencer License 94
2031         */
2032        SPENCER_94, 
2033        /**
2034         * Spencer License 99
2035         */
2036        SPENCER_99, 
2037        /**
2038         * Sun Public License v1.0
2039         */
2040        SPL_1_0, 
2041        /**
2042         * SSH OpenSSH license
2043         */
2044        SSH_OPENSSH, 
2045        /**
2046         * SSH short notice
2047         */
2048        SSH_SHORT, 
2049        /**
2050         * Server Side Public License, v 1
2051         */
2052        SSPL_1_0, 
2053        /**
2054         * Standard ML of New Jersey License
2055         */
2056        STANDARDML_NJ, 
2057        /**
2058         * SugarCRM Public License v1.1.3
2059         */
2060        SUGARCRM_1_1_3, 
2061        /**
2062         * SunPro License
2063         */
2064        SUNPRO, 
2065        /**
2066         * Scheme Widget Library (SWL) Software License Agreement
2067         */
2068        SWL, 
2069        /**
2070         * Symlinks License
2071         */
2072        SYMLINKS, 
2073        /**
2074         * TAPR Open Hardware License v1.0
2075         */
2076        TAPR_OHL_1_0, 
2077        /**
2078         * TCL/TK License
2079         */
2080        TCL, 
2081        /**
2082         * TCP Wrappers License
2083         */
2084        TCP_WRAPPERS, 
2085        /**
2086         * TermReadKey License
2087         */
2088        TERMREADKEY, 
2089        /**
2090         * TMate Open Source License
2091         */
2092        TMATE, 
2093        /**
2094         * TORQUE v2.5+ Software License v1.1
2095         */
2096        TORQUE_1_1, 
2097        /**
2098         * Trusster Open Source License
2099         */
2100        TOSL, 
2101        /**
2102         * Time::ParseDate License
2103         */
2104        TPDL, 
2105        /**
2106         * THOR Public License 1.0
2107         */
2108        TPL_1_0, 
2109        /**
2110         * Text-Tabs+Wrap License
2111         */
2112        TTWL, 
2113        /**
2114         * Technische Universitaet Berlin License 1.0
2115         */
2116        TU_BERLIN_1_0, 
2117        /**
2118         * Technische Universitaet Berlin License 2.0
2119         */
2120        TU_BERLIN_2_0, 
2121        /**
2122         * UCAR License
2123         */
2124        UCAR, 
2125        /**
2126         * Upstream Compatibility License v1.0
2127         */
2128        UCL_1_0, 
2129        /**
2130         * Unicode License Agreement - Data Files and Software (2015)
2131         */
2132        UNICODE_DFS_2015, 
2133        /**
2134         * Unicode License Agreement - Data Files and Software (2016)
2135         */
2136        UNICODE_DFS_2016, 
2137        /**
2138         * Unicode Terms of Use
2139         */
2140        UNICODE_TOU, 
2141        /**
2142         * UnixCrypt License
2143         */
2144        UNIXCRYPT, 
2145        /**
2146         * The Unlicense
2147         */
2148        UNLICENSE, 
2149        /**
2150         * Universal Permissive License v1.0
2151         */
2152        UPL_1_0, 
2153        /**
2154         * Vim License
2155         */
2156        VIM, 
2157        /**
2158         * VOSTROM Public License for Open Source
2159         */
2160        VOSTROM, 
2161        /**
2162         * Vovida Software License v1.0
2163         */
2164        VSL_1_0, 
2165        /**
2166         * W3C Software Notice and License (2002-12-31)
2167         */
2168        W3C, 
2169        /**
2170         * W3C Software Notice and License (1998-07-20)
2171         */
2172        W3C_19980720, 
2173        /**
2174         * W3C Software Notice and Document License (2015-05-13)
2175         */
2176        W3C_20150513, 
2177        /**
2178         * w3m License
2179         */
2180        W3M, 
2181        /**
2182         * Sybase Open Watcom Public License 1.0
2183         */
2184        WATCOM_1_0, 
2185        /**
2186         * Widget Workshop License
2187         */
2188        WIDGET_WORKSHOP, 
2189        /**
2190         * Wsuipa License
2191         */
2192        WSUIPA, 
2193        /**
2194         * Do What The F*ck You Want To Public License
2195         */
2196        WTFPL, 
2197        /**
2198         * wxWindows Library License
2199         */
2200        WXWINDOWS, 
2201        /**
2202         * X11 License
2203         */
2204        X11, 
2205        /**
2206         * X11 License Distribution Modification Variant
2207         */
2208        X11_DISTRIBUTE_MODIFICATIONS_VARIANT, 
2209        /**
2210         * Xdebug License v 1.03
2211         */
2212        XDEBUG_1_03, 
2213        /**
2214         * Xerox License
2215         */
2216        XEROX, 
2217        /**
2218         * Xfig License
2219         */
2220        XFIG, 
2221        /**
2222         * XFree86 License 1.1
2223         */
2224        XFREE86_1_1, 
2225        /**
2226         * xinetd License
2227         */
2228        XINETD, 
2229        /**
2230         * xlock License
2231         */
2232        XLOCK, 
2233        /**
2234         * X.Net License
2235         */
2236        XNET, 
2237        /**
2238         * XPP License
2239         */
2240        XPP, 
2241        /**
2242         * XSkat License
2243         */
2244        XSKAT, 
2245        /**
2246         * Yahoo! Public License v1.0
2247         */
2248        YPL_1_0, 
2249        /**
2250         * Yahoo! Public License v1.1
2251         */
2252        YPL_1_1, 
2253        /**
2254         * Zed License
2255         */
2256        ZED, 
2257        /**
2258         * Zend License v2.0
2259         */
2260        ZEND_2_0, 
2261        /**
2262         * Zimbra Public License v1.3
2263         */
2264        ZIMBRA_1_3, 
2265        /**
2266         * Zimbra Public License v1.4
2267         */
2268        ZIMBRA_1_4, 
2269        /**
2270         * zlib License
2271         */
2272        ZLIB, 
2273        /**
2274         * zlib/libpng License with Acknowledgement
2275         */
2276        ZLIB_ACKNOWLEDGEMENT, 
2277        /**
2278         * Zope Public License 1.1
2279         */
2280        ZPL_1_1, 
2281        /**
2282         * Zope Public License 2.0
2283         */
2284        ZPL_2_0, 
2285        /**
2286         * Zope Public License 2.1
2287         */
2288        ZPL_2_1, 
2289        /**
2290         * added to help the parsers
2291         */
2292        NULL;
2293        public static SPDXLicense fromCode(String codeString) throws FHIRException {
2294            if (codeString == null || "".equals(codeString))
2295                return null;
2296        if ("0BSD".equals(codeString))
2297          return _0BSD;
2298        if ("AAL".equals(codeString))
2299          return AAL;
2300        if ("Abstyles".equals(codeString))
2301          return ABSTYLES;
2302        if ("AdaCore-doc".equals(codeString))
2303          return ADACORE_DOC;
2304        if ("Adobe-2006".equals(codeString))
2305          return ADOBE_2006;
2306        if ("Adobe-Glyph".equals(codeString))
2307          return ADOBE_GLYPH;
2308        if ("ADSL".equals(codeString))
2309          return ADSL;
2310        if ("AFL-1.1".equals(codeString))
2311          return AFL_1_1;
2312        if ("AFL-1.2".equals(codeString))
2313          return AFL_1_2;
2314        if ("AFL-2.0".equals(codeString))
2315          return AFL_2_0;
2316        if ("AFL-2.1".equals(codeString))
2317          return AFL_2_1;
2318        if ("AFL-3.0".equals(codeString))
2319          return AFL_3_0;
2320        if ("Afmparse".equals(codeString))
2321          return AFMPARSE;
2322        if ("AGPL-1.0".equals(codeString))
2323          return AGPL_1_0;
2324        if ("AGPL-1.0-only".equals(codeString))
2325          return AGPL_1_0_ONLY;
2326        if ("AGPL-1.0-or-later".equals(codeString))
2327          return AGPL_1_0_OR_LATER;
2328        if ("AGPL-3.0".equals(codeString))
2329          return AGPL_3_0;
2330        if ("AGPL-3.0-only".equals(codeString))
2331          return AGPL_3_0_ONLY;
2332        if ("AGPL-3.0-or-later".equals(codeString))
2333          return AGPL_3_0_OR_LATER;
2334        if ("Aladdin".equals(codeString))
2335          return ALADDIN;
2336        if ("AMDPLPA".equals(codeString))
2337          return AMDPLPA;
2338        if ("AML".equals(codeString))
2339          return AML;
2340        if ("AMPAS".equals(codeString))
2341          return AMPAS;
2342        if ("ANTLR-PD".equals(codeString))
2343          return ANTLR_PD;
2344        if ("ANTLR-PD-fallback".equals(codeString))
2345          return ANTLR_PD_FALLBACK;
2346        if ("Apache-1.0".equals(codeString))
2347          return APACHE_1_0;
2348        if ("Apache-1.1".equals(codeString))
2349          return APACHE_1_1;
2350        if ("Apache-2.0".equals(codeString))
2351          return APACHE_2_0;
2352        if ("APAFML".equals(codeString))
2353          return APAFML;
2354        if ("APL-1.0".equals(codeString))
2355          return APL_1_0;
2356        if ("App-s2p".equals(codeString))
2357          return APP_S2P;
2358        if ("APSL-1.0".equals(codeString))
2359          return APSL_1_0;
2360        if ("APSL-1.1".equals(codeString))
2361          return APSL_1_1;
2362        if ("APSL-1.2".equals(codeString))
2363          return APSL_1_2;
2364        if ("APSL-2.0".equals(codeString))
2365          return APSL_2_0;
2366        if ("Arphic-1999".equals(codeString))
2367          return ARPHIC_1999;
2368        if ("Artistic-1.0".equals(codeString))
2369          return ARTISTIC_1_0;
2370        if ("Artistic-1.0-cl8".equals(codeString))
2371          return ARTISTIC_1_0_CL8;
2372        if ("Artistic-1.0-Perl".equals(codeString))
2373          return ARTISTIC_1_0_PERL;
2374        if ("Artistic-2.0".equals(codeString))
2375          return ARTISTIC_2_0;
2376        if ("ASWF-Digital-Assets-1.0".equals(codeString))
2377          return ASWF_DIGITAL_ASSETS_1_0;
2378        if ("ASWF-Digital-Assets-1.1".equals(codeString))
2379          return ASWF_DIGITAL_ASSETS_1_1;
2380        if ("Baekmuk".equals(codeString))
2381          return BAEKMUK;
2382        if ("Bahyph".equals(codeString))
2383          return BAHYPH;
2384        if ("Barr".equals(codeString))
2385          return BARR;
2386        if ("Beerware".equals(codeString))
2387          return BEERWARE;
2388        if ("Bitstream-Charter".equals(codeString))
2389          return BITSTREAM_CHARTER;
2390        if ("Bitstream-Vera".equals(codeString))
2391          return BITSTREAM_VERA;
2392        if ("BitTorrent-1.0".equals(codeString))
2393          return BITTORRENT_1_0;
2394        if ("BitTorrent-1.1".equals(codeString))
2395          return BITTORRENT_1_1;
2396        if ("blessing".equals(codeString))
2397          return BLESSING;
2398        if ("BlueOak-1.0.0".equals(codeString))
2399          return BLUEOAK_1_0_0;
2400        if ("Boehm-GC".equals(codeString))
2401          return BOEHM_GC;
2402        if ("Borceux".equals(codeString))
2403          return BORCEUX;
2404        if ("Brian-Gladman-3-Clause".equals(codeString))
2405          return BRIAN_GLADMAN_3_CLAUSE;
2406        if ("BSD-1-Clause".equals(codeString))
2407          return BSD_1_CLAUSE;
2408        if ("BSD-2-Clause".equals(codeString))
2409          return BSD_2_CLAUSE;
2410        if ("BSD-2-Clause-FreeBSD".equals(codeString))
2411          return BSD_2_CLAUSE_FREEBSD;
2412        if ("BSD-2-Clause-NetBSD".equals(codeString))
2413          return BSD_2_CLAUSE_NETBSD;
2414        if ("BSD-2-Clause-Patent".equals(codeString))
2415          return BSD_2_CLAUSE_PATENT;
2416        if ("BSD-2-Clause-Views".equals(codeString))
2417          return BSD_2_CLAUSE_VIEWS;
2418        if ("BSD-3-Clause".equals(codeString))
2419          return BSD_3_CLAUSE;
2420        if ("BSD-3-Clause-Attribution".equals(codeString))
2421          return BSD_3_CLAUSE_ATTRIBUTION;
2422        if ("BSD-3-Clause-Clear".equals(codeString))
2423          return BSD_3_CLAUSE_CLEAR;
2424        if ("BSD-3-Clause-LBNL".equals(codeString))
2425          return BSD_3_CLAUSE_LBNL;
2426        if ("BSD-3-Clause-Modification".equals(codeString))
2427          return BSD_3_CLAUSE_MODIFICATION;
2428        if ("BSD-3-Clause-No-Military-License".equals(codeString))
2429          return BSD_3_CLAUSE_NO_MILITARY_LICENSE;
2430        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
2431          return BSD_3_CLAUSE_NO_NUCLEAR_LICENSE;
2432        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
2433          return BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014;
2434        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
2435          return BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY;
2436        if ("BSD-3-Clause-Open-MPI".equals(codeString))
2437          return BSD_3_CLAUSE_OPEN_MPI;
2438        if ("BSD-4-Clause".equals(codeString))
2439          return BSD_4_CLAUSE;
2440        if ("BSD-4-Clause-Shortened".equals(codeString))
2441          return BSD_4_CLAUSE_SHORTENED;
2442        if ("BSD-4-Clause-UC".equals(codeString))
2443          return BSD_4_CLAUSE_UC;
2444        if ("BSD-4.3RENO".equals(codeString))
2445          return BSD_4_3RENO;
2446        if ("BSD-4.3TAHOE".equals(codeString))
2447          return BSD_4_3TAHOE;
2448        if ("BSD-Advertising-Acknowledgement".equals(codeString))
2449          return BSD_ADVERTISING_ACKNOWLEDGEMENT;
2450        if ("BSD-Attribution-HPND-disclaimer".equals(codeString))
2451          return BSD_ATTRIBUTION_HPND_DISCLAIMER;
2452        if ("BSD-Protection".equals(codeString))
2453          return BSD_PROTECTION;
2454        if ("BSD-Source-Code".equals(codeString))
2455          return BSD_SOURCE_CODE;
2456        if ("BSL-1.0".equals(codeString))
2457          return BSL_1_0;
2458        if ("BUSL-1.1".equals(codeString))
2459          return BUSL_1_1;
2460        if ("bzip2-1.0.5".equals(codeString))
2461          return BZIP2_1_0_5;
2462        if ("bzip2-1.0.6".equals(codeString))
2463          return BZIP2_1_0_6;
2464        if ("C-UDA-1.0".equals(codeString))
2465          return C_UDA_1_0;
2466        if ("CAL-1.0".equals(codeString))
2467          return CAL_1_0;
2468        if ("CAL-1.0-Combined-Work-Exception".equals(codeString))
2469          return CAL_1_0_COMBINED_WORK_EXCEPTION;
2470        if ("Caldera".equals(codeString))
2471          return CALDERA;
2472        if ("CATOSL-1.1".equals(codeString))
2473          return CATOSL_1_1;
2474        if ("CC-BY-1.0".equals(codeString))
2475          return CC_BY_1_0;
2476        if ("CC-BY-2.0".equals(codeString))
2477          return CC_BY_2_0;
2478        if ("CC-BY-2.5".equals(codeString))
2479          return CC_BY_2_5;
2480        if ("CC-BY-2.5-AU".equals(codeString))
2481          return CC_BY_2_5_AU;
2482        if ("CC-BY-3.0".equals(codeString))
2483          return CC_BY_3_0;
2484        if ("CC-BY-3.0-AT".equals(codeString))
2485          return CC_BY_3_0_AT;
2486        if ("CC-BY-3.0-DE".equals(codeString))
2487          return CC_BY_3_0_DE;
2488        if ("CC-BY-3.0-IGO".equals(codeString))
2489          return CC_BY_3_0_IGO;
2490        if ("CC-BY-3.0-NL".equals(codeString))
2491          return CC_BY_3_0_NL;
2492        if ("CC-BY-3.0-US".equals(codeString))
2493          return CC_BY_3_0_US;
2494        if ("CC-BY-4.0".equals(codeString))
2495          return CC_BY_4_0;
2496        if ("CC-BY-NC-1.0".equals(codeString))
2497          return CC_BY_NC_1_0;
2498        if ("CC-BY-NC-2.0".equals(codeString))
2499          return CC_BY_NC_2_0;
2500        if ("CC-BY-NC-2.5".equals(codeString))
2501          return CC_BY_NC_2_5;
2502        if ("CC-BY-NC-3.0".equals(codeString))
2503          return CC_BY_NC_3_0;
2504        if ("CC-BY-NC-3.0-DE".equals(codeString))
2505          return CC_BY_NC_3_0_DE;
2506        if ("CC-BY-NC-4.0".equals(codeString))
2507          return CC_BY_NC_4_0;
2508        if ("CC-BY-NC-ND-1.0".equals(codeString))
2509          return CC_BY_NC_ND_1_0;
2510        if ("CC-BY-NC-ND-2.0".equals(codeString))
2511          return CC_BY_NC_ND_2_0;
2512        if ("CC-BY-NC-ND-2.5".equals(codeString))
2513          return CC_BY_NC_ND_2_5;
2514        if ("CC-BY-NC-ND-3.0".equals(codeString))
2515          return CC_BY_NC_ND_3_0;
2516        if ("CC-BY-NC-ND-3.0-DE".equals(codeString))
2517          return CC_BY_NC_ND_3_0_DE;
2518        if ("CC-BY-NC-ND-3.0-IGO".equals(codeString))
2519          return CC_BY_NC_ND_3_0_IGO;
2520        if ("CC-BY-NC-ND-4.0".equals(codeString))
2521          return CC_BY_NC_ND_4_0;
2522        if ("CC-BY-NC-SA-1.0".equals(codeString))
2523          return CC_BY_NC_SA_1_0;
2524        if ("CC-BY-NC-SA-2.0".equals(codeString))
2525          return CC_BY_NC_SA_2_0;
2526        if ("CC-BY-NC-SA-2.0-DE".equals(codeString))
2527          return CC_BY_NC_SA_2_0_DE;
2528        if ("CC-BY-NC-SA-2.0-FR".equals(codeString))
2529          return CC_BY_NC_SA_2_0_FR;
2530        if ("CC-BY-NC-SA-2.0-UK".equals(codeString))
2531          return CC_BY_NC_SA_2_0_UK;
2532        if ("CC-BY-NC-SA-2.5".equals(codeString))
2533          return CC_BY_NC_SA_2_5;
2534        if ("CC-BY-NC-SA-3.0".equals(codeString))
2535          return CC_BY_NC_SA_3_0;
2536        if ("CC-BY-NC-SA-3.0-DE".equals(codeString))
2537          return CC_BY_NC_SA_3_0_DE;
2538        if ("CC-BY-NC-SA-3.0-IGO".equals(codeString))
2539          return CC_BY_NC_SA_3_0_IGO;
2540        if ("CC-BY-NC-SA-4.0".equals(codeString))
2541          return CC_BY_NC_SA_4_0;
2542        if ("CC-BY-ND-1.0".equals(codeString))
2543          return CC_BY_ND_1_0;
2544        if ("CC-BY-ND-2.0".equals(codeString))
2545          return CC_BY_ND_2_0;
2546        if ("CC-BY-ND-2.5".equals(codeString))
2547          return CC_BY_ND_2_5;
2548        if ("CC-BY-ND-3.0".equals(codeString))
2549          return CC_BY_ND_3_0;
2550        if ("CC-BY-ND-3.0-DE".equals(codeString))
2551          return CC_BY_ND_3_0_DE;
2552        if ("CC-BY-ND-4.0".equals(codeString))
2553          return CC_BY_ND_4_0;
2554        if ("CC-BY-SA-1.0".equals(codeString))
2555          return CC_BY_SA_1_0;
2556        if ("CC-BY-SA-2.0".equals(codeString))
2557          return CC_BY_SA_2_0;
2558        if ("CC-BY-SA-2.0-UK".equals(codeString))
2559          return CC_BY_SA_2_0_UK;
2560        if ("CC-BY-SA-2.1-JP".equals(codeString))
2561          return CC_BY_SA_2_1_JP;
2562        if ("CC-BY-SA-2.5".equals(codeString))
2563          return CC_BY_SA_2_5;
2564        if ("CC-BY-SA-3.0".equals(codeString))
2565          return CC_BY_SA_3_0;
2566        if ("CC-BY-SA-3.0-AT".equals(codeString))
2567          return CC_BY_SA_3_0_AT;
2568        if ("CC-BY-SA-3.0-DE".equals(codeString))
2569          return CC_BY_SA_3_0_DE;
2570        if ("CC-BY-SA-3.0-IGO".equals(codeString))
2571          return CC_BY_SA_3_0_IGO;
2572        if ("CC-BY-SA-4.0".equals(codeString))
2573          return CC_BY_SA_4_0;
2574        if ("CC-PDDC".equals(codeString))
2575          return CC_PDDC;
2576        if ("CC0-1.0".equals(codeString))
2577          return CC0_1_0;
2578        if ("CDDL-1.0".equals(codeString))
2579          return CDDL_1_0;
2580        if ("CDDL-1.1".equals(codeString))
2581          return CDDL_1_1;
2582        if ("CDL-1.0".equals(codeString))
2583          return CDL_1_0;
2584        if ("CDLA-Permissive-1.0".equals(codeString))
2585          return CDLA_PERMISSIVE_1_0;
2586        if ("CDLA-Permissive-2.0".equals(codeString))
2587          return CDLA_PERMISSIVE_2_0;
2588        if ("CDLA-Sharing-1.0".equals(codeString))
2589          return CDLA_SHARING_1_0;
2590        if ("CECILL-1.0".equals(codeString))
2591          return CECILL_1_0;
2592        if ("CECILL-1.1".equals(codeString))
2593          return CECILL_1_1;
2594        if ("CECILL-2.0".equals(codeString))
2595          return CECILL_2_0;
2596        if ("CECILL-2.1".equals(codeString))
2597          return CECILL_2_1;
2598        if ("CECILL-B".equals(codeString))
2599          return CECILL_B;
2600        if ("CECILL-C".equals(codeString))
2601          return CECILL_C;
2602        if ("CERN-OHL-1.1".equals(codeString))
2603          return CERN_OHL_1_1;
2604        if ("CERN-OHL-1.2".equals(codeString))
2605          return CERN_OHL_1_2;
2606        if ("CERN-OHL-P-2.0".equals(codeString))
2607          return CERN_OHL_P_2_0;
2608        if ("CERN-OHL-S-2.0".equals(codeString))
2609          return CERN_OHL_S_2_0;
2610        if ("CERN-OHL-W-2.0".equals(codeString))
2611          return CERN_OHL_W_2_0;
2612        if ("CFITSIO".equals(codeString))
2613          return CFITSIO;
2614        if ("checkmk".equals(codeString))
2615          return CHECKMK;
2616        if ("ClArtistic".equals(codeString))
2617          return CLARTISTIC;
2618        if ("Clips".equals(codeString))
2619          return CLIPS;
2620        if ("CMU-Mach".equals(codeString))
2621          return CMU_MACH;
2622        if ("CNRI-Jython".equals(codeString))
2623          return CNRI_JYTHON;
2624        if ("CNRI-Python".equals(codeString))
2625          return CNRI_PYTHON;
2626        if ("CNRI-Python-GPL-Compatible".equals(codeString))
2627          return CNRI_PYTHON_GPL_COMPATIBLE;
2628        if ("COIL-1.0".equals(codeString))
2629          return COIL_1_0;
2630        if ("Community-Spec-1.0".equals(codeString))
2631          return COMMUNITY_SPEC_1_0;
2632        if ("Condor-1.1".equals(codeString))
2633          return CONDOR_1_1;
2634        if ("copyleft-next-0.3.0".equals(codeString))
2635          return COPYLEFT_NEXT_0_3_0;
2636        if ("copyleft-next-0.3.1".equals(codeString))
2637          return COPYLEFT_NEXT_0_3_1;
2638        if ("Cornell-Lossless-JPEG".equals(codeString))
2639          return CORNELL_LOSSLESS_JPEG;
2640        if ("CPAL-1.0".equals(codeString))
2641          return CPAL_1_0;
2642        if ("CPL-1.0".equals(codeString))
2643          return CPL_1_0;
2644        if ("CPOL-1.02".equals(codeString))
2645          return CPOL_1_02;
2646        if ("Crossword".equals(codeString))
2647          return CROSSWORD;
2648        if ("CrystalStacker".equals(codeString))
2649          return CRYSTALSTACKER;
2650        if ("CUA-OPL-1.0".equals(codeString))
2651          return CUA_OPL_1_0;
2652        if ("Cube".equals(codeString))
2653          return CUBE;
2654        if ("curl".equals(codeString))
2655          return CURL;
2656        if ("D-FSL-1.0".equals(codeString))
2657          return D_FSL_1_0;
2658        if ("diffmark".equals(codeString))
2659          return DIFFMARK;
2660        if ("DL-DE-BY-2.0".equals(codeString))
2661          return DL_DE_BY_2_0;
2662        if ("DOC".equals(codeString))
2663          return DOC;
2664        if ("Dotseqn".equals(codeString))
2665          return DOTSEQN;
2666        if ("DRL-1.0".equals(codeString))
2667          return DRL_1_0;
2668        if ("DSDP".equals(codeString))
2669          return DSDP;
2670        if ("dtoa".equals(codeString))
2671          return DTOA;
2672        if ("dvipdfm".equals(codeString))
2673          return DVIPDFM;
2674        if ("ECL-1.0".equals(codeString))
2675          return ECL_1_0;
2676        if ("ECL-2.0".equals(codeString))
2677          return ECL_2_0;
2678        if ("eCos-2.0".equals(codeString))
2679          return ECOS_2_0;
2680        if ("EFL-1.0".equals(codeString))
2681          return EFL_1_0;
2682        if ("EFL-2.0".equals(codeString))
2683          return EFL_2_0;
2684        if ("eGenix".equals(codeString))
2685          return EGENIX;
2686        if ("Elastic-2.0".equals(codeString))
2687          return ELASTIC_2_0;
2688        if ("Entessa".equals(codeString))
2689          return ENTESSA;
2690        if ("EPICS".equals(codeString))
2691          return EPICS;
2692        if ("EPL-1.0".equals(codeString))
2693          return EPL_1_0;
2694        if ("EPL-2.0".equals(codeString))
2695          return EPL_2_0;
2696        if ("ErlPL-1.1".equals(codeString))
2697          return ERLPL_1_1;
2698        if ("etalab-2.0".equals(codeString))
2699          return ETALAB_2_0;
2700        if ("EUDatagrid".equals(codeString))
2701          return EUDATAGRID;
2702        if ("EUPL-1.0".equals(codeString))
2703          return EUPL_1_0;
2704        if ("EUPL-1.1".equals(codeString))
2705          return EUPL_1_1;
2706        if ("EUPL-1.2".equals(codeString))
2707          return EUPL_1_2;
2708        if ("Eurosym".equals(codeString))
2709          return EUROSYM;
2710        if ("Fair".equals(codeString))
2711          return FAIR;
2712        if ("FDK-AAC".equals(codeString))
2713          return FDK_AAC;
2714        if ("Frameworx-1.0".equals(codeString))
2715          return FRAMEWORX_1_0;
2716        if ("FreeBSD-DOC".equals(codeString))
2717          return FREEBSD_DOC;
2718        if ("FreeImage".equals(codeString))
2719          return FREEIMAGE;
2720        if ("FSFAP".equals(codeString))
2721          return FSFAP;
2722        if ("FSFUL".equals(codeString))
2723          return FSFUL;
2724        if ("FSFULLR".equals(codeString))
2725          return FSFULLR;
2726        if ("FSFULLRWD".equals(codeString))
2727          return FSFULLRWD;
2728        if ("FTL".equals(codeString))
2729          return FTL;
2730        if ("GD".equals(codeString))
2731          return GD;
2732        if ("GFDL-1.1".equals(codeString))
2733          return GFDL_1_1;
2734        if ("GFDL-1.1-invariants-only".equals(codeString))
2735          return GFDL_1_1_INVARIANTS_ONLY;
2736        if ("GFDL-1.1-invariants-or-later".equals(codeString))
2737          return GFDL_1_1_INVARIANTS_OR_LATER;
2738        if ("GFDL-1.1-no-invariants-only".equals(codeString))
2739          return GFDL_1_1_NO_INVARIANTS_ONLY;
2740        if ("GFDL-1.1-no-invariants-or-later".equals(codeString))
2741          return GFDL_1_1_NO_INVARIANTS_OR_LATER;
2742        if ("GFDL-1.1-only".equals(codeString))
2743          return GFDL_1_1_ONLY;
2744        if ("GFDL-1.1-or-later".equals(codeString))
2745          return GFDL_1_1_OR_LATER;
2746        if ("GFDL-1.2".equals(codeString))
2747          return GFDL_1_2;
2748        if ("GFDL-1.2-invariants-only".equals(codeString))
2749          return GFDL_1_2_INVARIANTS_ONLY;
2750        if ("GFDL-1.2-invariants-or-later".equals(codeString))
2751          return GFDL_1_2_INVARIANTS_OR_LATER;
2752        if ("GFDL-1.2-no-invariants-only".equals(codeString))
2753          return GFDL_1_2_NO_INVARIANTS_ONLY;
2754        if ("GFDL-1.2-no-invariants-or-later".equals(codeString))
2755          return GFDL_1_2_NO_INVARIANTS_OR_LATER;
2756        if ("GFDL-1.2-only".equals(codeString))
2757          return GFDL_1_2_ONLY;
2758        if ("GFDL-1.2-or-later".equals(codeString))
2759          return GFDL_1_2_OR_LATER;
2760        if ("GFDL-1.3".equals(codeString))
2761          return GFDL_1_3;
2762        if ("GFDL-1.3-invariants-only".equals(codeString))
2763          return GFDL_1_3_INVARIANTS_ONLY;
2764        if ("GFDL-1.3-invariants-or-later".equals(codeString))
2765          return GFDL_1_3_INVARIANTS_OR_LATER;
2766        if ("GFDL-1.3-no-invariants-only".equals(codeString))
2767          return GFDL_1_3_NO_INVARIANTS_ONLY;
2768        if ("GFDL-1.3-no-invariants-or-later".equals(codeString))
2769          return GFDL_1_3_NO_INVARIANTS_OR_LATER;
2770        if ("GFDL-1.3-only".equals(codeString))
2771          return GFDL_1_3_ONLY;
2772        if ("GFDL-1.3-or-later".equals(codeString))
2773          return GFDL_1_3_OR_LATER;
2774        if ("Giftware".equals(codeString))
2775          return GIFTWARE;
2776        if ("GL2PS".equals(codeString))
2777          return GL2PS;
2778        if ("Glide".equals(codeString))
2779          return GLIDE;
2780        if ("Glulxe".equals(codeString))
2781          return GLULXE;
2782        if ("GLWTPL".equals(codeString))
2783          return GLWTPL;
2784        if ("gnuplot".equals(codeString))
2785          return GNUPLOT;
2786        if ("GPL-1.0".equals(codeString))
2787          return GPL_1_0;
2788        if ("GPL-1.0+".equals(codeString))
2789          return GPL_1_0PLUS;
2790        if ("GPL-1.0-only".equals(codeString))
2791          return GPL_1_0_ONLY;
2792        if ("GPL-1.0-or-later".equals(codeString))
2793          return GPL_1_0_OR_LATER;
2794        if ("GPL-2.0".equals(codeString))
2795          return GPL_2_0;
2796        if ("GPL-2.0+".equals(codeString))
2797          return GPL_2_0PLUS;
2798        if ("GPL-2.0-only".equals(codeString))
2799          return GPL_2_0_ONLY;
2800        if ("GPL-2.0-or-later".equals(codeString))
2801          return GPL_2_0_OR_LATER;
2802        if ("GPL-2.0-with-autoconf-exception".equals(codeString))
2803          return GPL_2_0_WITH_AUTOCONF_EXCEPTION;
2804        if ("GPL-2.0-with-bison-exception".equals(codeString))
2805          return GPL_2_0_WITH_BISON_EXCEPTION;
2806        if ("GPL-2.0-with-classpath-exception".equals(codeString))
2807          return GPL_2_0_WITH_CLASSPATH_EXCEPTION;
2808        if ("GPL-2.0-with-font-exception".equals(codeString))
2809          return GPL_2_0_WITH_FONT_EXCEPTION;
2810        if ("GPL-2.0-with-GCC-exception".equals(codeString))
2811          return GPL_2_0_WITH_GCC_EXCEPTION;
2812        if ("GPL-3.0".equals(codeString))
2813          return GPL_3_0;
2814        if ("GPL-3.0+".equals(codeString))
2815          return GPL_3_0PLUS;
2816        if ("GPL-3.0-only".equals(codeString))
2817          return GPL_3_0_ONLY;
2818        if ("GPL-3.0-or-later".equals(codeString))
2819          return GPL_3_0_OR_LATER;
2820        if ("GPL-3.0-with-autoconf-exception".equals(codeString))
2821          return GPL_3_0_WITH_AUTOCONF_EXCEPTION;
2822        if ("GPL-3.0-with-GCC-exception".equals(codeString))
2823          return GPL_3_0_WITH_GCC_EXCEPTION;
2824        if ("Graphics-Gems".equals(codeString))
2825          return GRAPHICS_GEMS;
2826        if ("gSOAP-1.3b".equals(codeString))
2827          return GSOAP_1_3B;
2828        if ("HaskellReport".equals(codeString))
2829          return HASKELLREPORT;
2830        if ("Hippocratic-2.1".equals(codeString))
2831          return HIPPOCRATIC_2_1;
2832        if ("HP-1986".equals(codeString))
2833          return HP_1986;
2834        if ("HPND".equals(codeString))
2835          return HPND;
2836        if ("HPND-export-US".equals(codeString))
2837          return HPND_EXPORT_US;
2838        if ("HPND-Markus-Kuhn".equals(codeString))
2839          return HPND_MARKUS_KUHN;
2840        if ("HPND-sell-variant".equals(codeString))
2841          return HPND_SELL_VARIANT;
2842        if ("HPND-sell-variant-MIT-disclaimer".equals(codeString))
2843          return HPND_SELL_VARIANT_MIT_DISCLAIMER;
2844        if ("HTMLTIDY".equals(codeString))
2845          return HTMLTIDY;
2846        if ("IBM-pibs".equals(codeString))
2847          return IBM_PIBS;
2848        if ("ICU".equals(codeString))
2849          return ICU;
2850        if ("IEC-Code-Components-EULA".equals(codeString))
2851          return IEC_CODE_COMPONENTS_EULA;
2852        if ("IJG".equals(codeString))
2853          return IJG;
2854        if ("IJG-short".equals(codeString))
2855          return IJG_SHORT;
2856        if ("ImageMagick".equals(codeString))
2857          return IMAGEMAGICK;
2858        if ("iMatix".equals(codeString))
2859          return IMATIX;
2860        if ("Imlib2".equals(codeString))
2861          return IMLIB2;
2862        if ("Info-ZIP".equals(codeString))
2863          return INFO_ZIP;
2864        if ("Inner-Net-2.0".equals(codeString))
2865          return INNER_NET_2_0;
2866        if ("Intel".equals(codeString))
2867          return INTEL;
2868        if ("Intel-ACPI".equals(codeString))
2869          return INTEL_ACPI;
2870        if ("Interbase-1.0".equals(codeString))
2871          return INTERBASE_1_0;
2872        if ("IPA".equals(codeString))
2873          return IPA;
2874        if ("IPL-1.0".equals(codeString))
2875          return IPL_1_0;
2876        if ("ISC".equals(codeString))
2877          return ISC;
2878        if ("Jam".equals(codeString))
2879          return JAM;
2880        if ("JasPer-2.0".equals(codeString))
2881          return JASPER_2_0;
2882        if ("JPL-image".equals(codeString))
2883          return JPL_IMAGE;
2884        if ("JPNIC".equals(codeString))
2885          return JPNIC;
2886        if ("JSON".equals(codeString))
2887          return JSON;
2888        if ("Kazlib".equals(codeString))
2889          return KAZLIB;
2890        if ("Knuth-CTAN".equals(codeString))
2891          return KNUTH_CTAN;
2892        if ("LAL-1.2".equals(codeString))
2893          return LAL_1_2;
2894        if ("LAL-1.3".equals(codeString))
2895          return LAL_1_3;
2896        if ("Latex2e".equals(codeString))
2897          return LATEX2E;
2898        if ("Latex2e-translated-notice".equals(codeString))
2899          return LATEX2E_TRANSLATED_NOTICE;
2900        if ("Leptonica".equals(codeString))
2901          return LEPTONICA;
2902        if ("LGPL-2.0".equals(codeString))
2903          return LGPL_2_0;
2904        if ("LGPL-2.0+".equals(codeString))
2905          return LGPL_2_0PLUS;
2906        if ("LGPL-2.0-only".equals(codeString))
2907          return LGPL_2_0_ONLY;
2908        if ("LGPL-2.0-or-later".equals(codeString))
2909          return LGPL_2_0_OR_LATER;
2910        if ("LGPL-2.1".equals(codeString))
2911          return LGPL_2_1;
2912        if ("LGPL-2.1+".equals(codeString))
2913          return LGPL_2_1PLUS;
2914        if ("LGPL-2.1-only".equals(codeString))
2915          return LGPL_2_1_ONLY;
2916        if ("LGPL-2.1-or-later".equals(codeString))
2917          return LGPL_2_1_OR_LATER;
2918        if ("LGPL-3.0".equals(codeString))
2919          return LGPL_3_0;
2920        if ("LGPL-3.0+".equals(codeString))
2921          return LGPL_3_0PLUS;
2922        if ("LGPL-3.0-only".equals(codeString))
2923          return LGPL_3_0_ONLY;
2924        if ("LGPL-3.0-or-later".equals(codeString))
2925          return LGPL_3_0_OR_LATER;
2926        if ("LGPLLR".equals(codeString))
2927          return LGPLLR;
2928        if ("Libpng".equals(codeString))
2929          return LIBPNG;
2930        if ("libpng-2.0".equals(codeString))
2931          return LIBPNG_2_0;
2932        if ("libselinux-1.0".equals(codeString))
2933          return LIBSELINUX_1_0;
2934        if ("libtiff".equals(codeString))
2935          return LIBTIFF;
2936        if ("libutil-David-Nugent".equals(codeString))
2937          return LIBUTIL_DAVID_NUGENT;
2938        if ("LiLiQ-P-1.1".equals(codeString))
2939          return LILIQ_P_1_1;
2940        if ("LiLiQ-R-1.1".equals(codeString))
2941          return LILIQ_R_1_1;
2942        if ("LiLiQ-Rplus-1.1".equals(codeString))
2943          return LILIQ_RPLUS_1_1;
2944        if ("Linux-man-pages-1-para".equals(codeString))
2945          return LINUX_MAN_PAGES_1_PARA;
2946        if ("Linux-man-pages-copyleft".equals(codeString))
2947          return LINUX_MAN_PAGES_COPYLEFT;
2948        if ("Linux-man-pages-copyleft-2-para".equals(codeString))
2949          return LINUX_MAN_PAGES_COPYLEFT_2_PARA;
2950        if ("Linux-man-pages-copyleft-var".equals(codeString))
2951          return LINUX_MAN_PAGES_COPYLEFT_VAR;
2952        if ("Linux-OpenIB".equals(codeString))
2953          return LINUX_OPENIB;
2954        if ("LOOP".equals(codeString))
2955          return LOOP;
2956        if ("LPL-1.0".equals(codeString))
2957          return LPL_1_0;
2958        if ("LPL-1.02".equals(codeString))
2959          return LPL_1_02;
2960        if ("LPPL-1.0".equals(codeString))
2961          return LPPL_1_0;
2962        if ("LPPL-1.1".equals(codeString))
2963          return LPPL_1_1;
2964        if ("LPPL-1.2".equals(codeString))
2965          return LPPL_1_2;
2966        if ("LPPL-1.3a".equals(codeString))
2967          return LPPL_1_3A;
2968        if ("LPPL-1.3c".equals(codeString))
2969          return LPPL_1_3C;
2970        if ("LZMA-SDK-9.11-to-9.20".equals(codeString))
2971          return LZMA_SDK_9_11_TO_9_20;
2972        if ("LZMA-SDK-9.22".equals(codeString))
2973          return LZMA_SDK_9_22;
2974        if ("MakeIndex".equals(codeString))
2975          return MAKEINDEX;
2976        if ("Martin-Birgmeier".equals(codeString))
2977          return MARTIN_BIRGMEIER;
2978        if ("metamail".equals(codeString))
2979          return METAMAIL;
2980        if ("Minpack".equals(codeString))
2981          return MINPACK;
2982        if ("MirOS".equals(codeString))
2983          return MIROS;
2984        if ("MIT".equals(codeString))
2985          return MIT;
2986        if ("MIT-0".equals(codeString))
2987          return MIT_0;
2988        if ("MIT-advertising".equals(codeString))
2989          return MIT_ADVERTISING;
2990        if ("MIT-CMU".equals(codeString))
2991          return MIT_CMU;
2992        if ("MIT-enna".equals(codeString))
2993          return MIT_ENNA;
2994        if ("MIT-feh".equals(codeString))
2995          return MIT_FEH;
2996        if ("MIT-Festival".equals(codeString))
2997          return MIT_FESTIVAL;
2998        if ("MIT-Modern-Variant".equals(codeString))
2999          return MIT_MODERN_VARIANT;
3000        if ("MIT-open-group".equals(codeString))
3001          return MIT_OPEN_GROUP;
3002        if ("MIT-Wu".equals(codeString))
3003          return MIT_WU;
3004        if ("MITNFA".equals(codeString))
3005          return MITNFA;
3006        if ("Motosoto".equals(codeString))
3007          return MOTOSOTO;
3008        if ("mpi-permissive".equals(codeString))
3009          return MPI_PERMISSIVE;
3010        if ("mpich2".equals(codeString))
3011          return MPICH2;
3012        if ("MPL-1.0".equals(codeString))
3013          return MPL_1_0;
3014        if ("MPL-1.1".equals(codeString))
3015          return MPL_1_1;
3016        if ("MPL-2.0".equals(codeString))
3017          return MPL_2_0;
3018        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
3019          return MPL_2_0_NO_COPYLEFT_EXCEPTION;
3020        if ("mplus".equals(codeString))
3021          return MPLUS;
3022        if ("MS-LPL".equals(codeString))
3023          return MS_LPL;
3024        if ("MS-PL".equals(codeString))
3025          return MS_PL;
3026        if ("MS-RL".equals(codeString))
3027          return MS_RL;
3028        if ("MTLL".equals(codeString))
3029          return MTLL;
3030        if ("MulanPSL-1.0".equals(codeString))
3031          return MULANPSL_1_0;
3032        if ("MulanPSL-2.0".equals(codeString))
3033          return MULANPSL_2_0;
3034        if ("Multics".equals(codeString))
3035          return MULTICS;
3036        if ("Mup".equals(codeString))
3037          return MUP;
3038        if ("NAIST-2003".equals(codeString))
3039          return NAIST_2003;
3040        if ("NASA-1.3".equals(codeString))
3041          return NASA_1_3;
3042        if ("Naumen".equals(codeString))
3043          return NAUMEN;
3044        if ("NBPL-1.0".equals(codeString))
3045          return NBPL_1_0;
3046        if ("NCGL-UK-2.0".equals(codeString))
3047          return NCGL_UK_2_0;
3048        if ("NCSA".equals(codeString))
3049          return NCSA;
3050        if ("Net-SNMP".equals(codeString))
3051          return NET_SNMP;
3052        if ("NetCDF".equals(codeString))
3053          return NETCDF;
3054        if ("Newsletr".equals(codeString))
3055          return NEWSLETR;
3056        if ("NGPL".equals(codeString))
3057          return NGPL;
3058        if ("NICTA-1.0".equals(codeString))
3059          return NICTA_1_0;
3060        if ("NIST-PD".equals(codeString))
3061          return NIST_PD;
3062        if ("NIST-PD-fallback".equals(codeString))
3063          return NIST_PD_FALLBACK;
3064        if ("NIST-Software".equals(codeString))
3065          return NIST_SOFTWARE;
3066        if ("NLOD-1.0".equals(codeString))
3067          return NLOD_1_0;
3068        if ("NLOD-2.0".equals(codeString))
3069          return NLOD_2_0;
3070        if ("NLPL".equals(codeString))
3071          return NLPL;
3072        if ("Nokia".equals(codeString))
3073          return NOKIA;
3074        if ("NOSL".equals(codeString))
3075          return NOSL;
3076        if ("not-open-source".equals(codeString))
3077          return NOT_OPEN_SOURCE;
3078        if ("Noweb".equals(codeString))
3079          return NOWEB;
3080        if ("NPL-1.0".equals(codeString))
3081          return NPL_1_0;
3082        if ("NPL-1.1".equals(codeString))
3083          return NPL_1_1;
3084        if ("NPOSL-3.0".equals(codeString))
3085          return NPOSL_3_0;
3086        if ("NRL".equals(codeString))
3087          return NRL;
3088        if ("NTP".equals(codeString))
3089          return NTP;
3090        if ("NTP-0".equals(codeString))
3091          return NTP_0;
3092        if ("Nunit".equals(codeString))
3093          return NUNIT;
3094        if ("O-UDA-1.0".equals(codeString))
3095          return O_UDA_1_0;
3096        if ("OCCT-PL".equals(codeString))
3097          return OCCT_PL;
3098        if ("OCLC-2.0".equals(codeString))
3099          return OCLC_2_0;
3100        if ("ODbL-1.0".equals(codeString))
3101          return ODBL_1_0;
3102        if ("ODC-By-1.0".equals(codeString))
3103          return ODC_BY_1_0;
3104        if ("OFFIS".equals(codeString))
3105          return OFFIS;
3106        if ("OFL-1.0".equals(codeString))
3107          return OFL_1_0;
3108        if ("OFL-1.0-no-RFN".equals(codeString))
3109          return OFL_1_0_NO_RFN;
3110        if ("OFL-1.0-RFN".equals(codeString))
3111          return OFL_1_0_RFN;
3112        if ("OFL-1.1".equals(codeString))
3113          return OFL_1_1;
3114        if ("OFL-1.1-no-RFN".equals(codeString))
3115          return OFL_1_1_NO_RFN;
3116        if ("OFL-1.1-RFN".equals(codeString))
3117          return OFL_1_1_RFN;
3118        if ("OGC-1.0".equals(codeString))
3119          return OGC_1_0;
3120        if ("OGDL-Taiwan-1.0".equals(codeString))
3121          return OGDL_TAIWAN_1_0;
3122        if ("OGL-Canada-2.0".equals(codeString))
3123          return OGL_CANADA_2_0;
3124        if ("OGL-UK-1.0".equals(codeString))
3125          return OGL_UK_1_0;
3126        if ("OGL-UK-2.0".equals(codeString))
3127          return OGL_UK_2_0;
3128        if ("OGL-UK-3.0".equals(codeString))
3129          return OGL_UK_3_0;
3130        if ("OGTSL".equals(codeString))
3131          return OGTSL;
3132        if ("OLDAP-1.1".equals(codeString))
3133          return OLDAP_1_1;
3134        if ("OLDAP-1.2".equals(codeString))
3135          return OLDAP_1_2;
3136        if ("OLDAP-1.3".equals(codeString))
3137          return OLDAP_1_3;
3138        if ("OLDAP-1.4".equals(codeString))
3139          return OLDAP_1_4;
3140        if ("OLDAP-2.0".equals(codeString))
3141          return OLDAP_2_0;
3142        if ("OLDAP-2.0.1".equals(codeString))
3143          return OLDAP_2_0_1;
3144        if ("OLDAP-2.1".equals(codeString))
3145          return OLDAP_2_1;
3146        if ("OLDAP-2.2".equals(codeString))
3147          return OLDAP_2_2;
3148        if ("OLDAP-2.2.1".equals(codeString))
3149          return OLDAP_2_2_1;
3150        if ("OLDAP-2.2.2".equals(codeString))
3151          return OLDAP_2_2_2;
3152        if ("OLDAP-2.3".equals(codeString))
3153          return OLDAP_2_3;
3154        if ("OLDAP-2.4".equals(codeString))
3155          return OLDAP_2_4;
3156        if ("OLDAP-2.5".equals(codeString))
3157          return OLDAP_2_5;
3158        if ("OLDAP-2.6".equals(codeString))
3159          return OLDAP_2_6;
3160        if ("OLDAP-2.7".equals(codeString))
3161          return OLDAP_2_7;
3162        if ("OLDAP-2.8".equals(codeString))
3163          return OLDAP_2_8;
3164        if ("OLFL-1.3".equals(codeString))
3165          return OLFL_1_3;
3166        if ("OML".equals(codeString))
3167          return OML;
3168        if ("OpenPBS-2.3".equals(codeString))
3169          return OPENPBS_2_3;
3170        if ("OpenSSL".equals(codeString))
3171          return OPENSSL;
3172        if ("OPL-1.0".equals(codeString))
3173          return OPL_1_0;
3174        if ("OPL-UK-3.0".equals(codeString))
3175          return OPL_UK_3_0;
3176        if ("OPUBL-1.0".equals(codeString))
3177          return OPUBL_1_0;
3178        if ("OSET-PL-2.1".equals(codeString))
3179          return OSET_PL_2_1;
3180        if ("OSL-1.0".equals(codeString))
3181          return OSL_1_0;
3182        if ("OSL-1.1".equals(codeString))
3183          return OSL_1_1;
3184        if ("OSL-2.0".equals(codeString))
3185          return OSL_2_0;
3186        if ("OSL-2.1".equals(codeString))
3187          return OSL_2_1;
3188        if ("OSL-3.0".equals(codeString))
3189          return OSL_3_0;
3190        if ("Parity-6.0.0".equals(codeString))
3191          return PARITY_6_0_0;
3192        if ("Parity-7.0.0".equals(codeString))
3193          return PARITY_7_0_0;
3194        if ("PDDL-1.0".equals(codeString))
3195          return PDDL_1_0;
3196        if ("PHP-3.0".equals(codeString))
3197          return PHP_3_0;
3198        if ("PHP-3.01".equals(codeString))
3199          return PHP_3_01;
3200        if ("Plexus".equals(codeString))
3201          return PLEXUS;
3202        if ("PolyForm-Noncommercial-1.0.0".equals(codeString))
3203          return POLYFORM_NONCOMMERCIAL_1_0_0;
3204        if ("PolyForm-Small-Business-1.0.0".equals(codeString))
3205          return POLYFORM_SMALL_BUSINESS_1_0_0;
3206        if ("PostgreSQL".equals(codeString))
3207          return POSTGRESQL;
3208        if ("PSF-2.0".equals(codeString))
3209          return PSF_2_0;
3210        if ("psfrag".equals(codeString))
3211          return PSFRAG;
3212        if ("psutils".equals(codeString))
3213          return PSUTILS;
3214        if ("Python-2.0".equals(codeString))
3215          return PYTHON_2_0;
3216        if ("Python-2.0.1".equals(codeString))
3217          return PYTHON_2_0_1;
3218        if ("Qhull".equals(codeString))
3219          return QHULL;
3220        if ("QPL-1.0".equals(codeString))
3221          return QPL_1_0;
3222        if ("QPL-1.0-INRIA-2004".equals(codeString))
3223          return QPL_1_0_INRIA_2004;
3224        if ("Rdisc".equals(codeString))
3225          return RDISC;
3226        if ("RHeCos-1.1".equals(codeString))
3227          return RHECOS_1_1;
3228        if ("RPL-1.1".equals(codeString))
3229          return RPL_1_1;
3230        if ("RPL-1.5".equals(codeString))
3231          return RPL_1_5;
3232        if ("RPSL-1.0".equals(codeString))
3233          return RPSL_1_0;
3234        if ("RSA-MD".equals(codeString))
3235          return RSA_MD;
3236        if ("RSCPL".equals(codeString))
3237          return RSCPL;
3238        if ("Ruby".equals(codeString))
3239          return RUBY;
3240        if ("SAX-PD".equals(codeString))
3241          return SAX_PD;
3242        if ("Saxpath".equals(codeString))
3243          return SAXPATH;
3244        if ("SCEA".equals(codeString))
3245          return SCEA;
3246        if ("SchemeReport".equals(codeString))
3247          return SCHEMEREPORT;
3248        if ("Sendmail".equals(codeString))
3249          return SENDMAIL;
3250        if ("Sendmail-8.23".equals(codeString))
3251          return SENDMAIL_8_23;
3252        if ("SGI-B-1.0".equals(codeString))
3253          return SGI_B_1_0;
3254        if ("SGI-B-1.1".equals(codeString))
3255          return SGI_B_1_1;
3256        if ("SGI-B-2.0".equals(codeString))
3257          return SGI_B_2_0;
3258        if ("SGP4".equals(codeString))
3259          return SGP4;
3260        if ("SHL-0.5".equals(codeString))
3261          return SHL_0_5;
3262        if ("SHL-0.51".equals(codeString))
3263          return SHL_0_51;
3264        if ("SimPL-2.0".equals(codeString))
3265          return SIMPL_2_0;
3266        if ("SISSL".equals(codeString))
3267          return SISSL;
3268        if ("SISSL-1.2".equals(codeString))
3269          return SISSL_1_2;
3270        if ("Sleepycat".equals(codeString))
3271          return SLEEPYCAT;
3272        if ("SMLNJ".equals(codeString))
3273          return SMLNJ;
3274        if ("SMPPL".equals(codeString))
3275          return SMPPL;
3276        if ("SNIA".equals(codeString))
3277          return SNIA;
3278        if ("snprintf".equals(codeString))
3279          return SNPRINTF;
3280        if ("Spencer-86".equals(codeString))
3281          return SPENCER_86;
3282        if ("Spencer-94".equals(codeString))
3283          return SPENCER_94;
3284        if ("Spencer-99".equals(codeString))
3285          return SPENCER_99;
3286        if ("SPL-1.0".equals(codeString))
3287          return SPL_1_0;
3288        if ("SSH-OpenSSH".equals(codeString))
3289          return SSH_OPENSSH;
3290        if ("SSH-short".equals(codeString))
3291          return SSH_SHORT;
3292        if ("SSPL-1.0".equals(codeString))
3293          return SSPL_1_0;
3294        if ("StandardML-NJ".equals(codeString))
3295          return STANDARDML_NJ;
3296        if ("SugarCRM-1.1.3".equals(codeString))
3297          return SUGARCRM_1_1_3;
3298        if ("SunPro".equals(codeString))
3299          return SUNPRO;
3300        if ("SWL".equals(codeString))
3301          return SWL;
3302        if ("Symlinks".equals(codeString))
3303          return SYMLINKS;
3304        if ("TAPR-OHL-1.0".equals(codeString))
3305          return TAPR_OHL_1_0;
3306        if ("TCL".equals(codeString))
3307          return TCL;
3308        if ("TCP-wrappers".equals(codeString))
3309          return TCP_WRAPPERS;
3310        if ("TermReadKey".equals(codeString))
3311          return TERMREADKEY;
3312        if ("TMate".equals(codeString))
3313          return TMATE;
3314        if ("TORQUE-1.1".equals(codeString))
3315          return TORQUE_1_1;
3316        if ("TOSL".equals(codeString))
3317          return TOSL;
3318        if ("TPDL".equals(codeString))
3319          return TPDL;
3320        if ("TPL-1.0".equals(codeString))
3321          return TPL_1_0;
3322        if ("TTWL".equals(codeString))
3323          return TTWL;
3324        if ("TU-Berlin-1.0".equals(codeString))
3325          return TU_BERLIN_1_0;
3326        if ("TU-Berlin-2.0".equals(codeString))
3327          return TU_BERLIN_2_0;
3328        if ("UCAR".equals(codeString))
3329          return UCAR;
3330        if ("UCL-1.0".equals(codeString))
3331          return UCL_1_0;
3332        if ("Unicode-DFS-2015".equals(codeString))
3333          return UNICODE_DFS_2015;
3334        if ("Unicode-DFS-2016".equals(codeString))
3335          return UNICODE_DFS_2016;
3336        if ("Unicode-TOU".equals(codeString))
3337          return UNICODE_TOU;
3338        if ("UnixCrypt".equals(codeString))
3339          return UNIXCRYPT;
3340        if ("Unlicense".equals(codeString))
3341          return UNLICENSE;
3342        if ("UPL-1.0".equals(codeString))
3343          return UPL_1_0;
3344        if ("Vim".equals(codeString))
3345          return VIM;
3346        if ("VOSTROM".equals(codeString))
3347          return VOSTROM;
3348        if ("VSL-1.0".equals(codeString))
3349          return VSL_1_0;
3350        if ("W3C".equals(codeString))
3351          return W3C;
3352        if ("W3C-19980720".equals(codeString))
3353          return W3C_19980720;
3354        if ("W3C-20150513".equals(codeString))
3355          return W3C_20150513;
3356        if ("w3m".equals(codeString))
3357          return W3M;
3358        if ("Watcom-1.0".equals(codeString))
3359          return WATCOM_1_0;
3360        if ("Widget-Workshop".equals(codeString))
3361          return WIDGET_WORKSHOP;
3362        if ("Wsuipa".equals(codeString))
3363          return WSUIPA;
3364        if ("WTFPL".equals(codeString))
3365          return WTFPL;
3366        if ("wxWindows".equals(codeString))
3367          return WXWINDOWS;
3368        if ("X11".equals(codeString))
3369          return X11;
3370        if ("X11-distribute-modifications-variant".equals(codeString))
3371          return X11_DISTRIBUTE_MODIFICATIONS_VARIANT;
3372        if ("Xdebug-1.03".equals(codeString))
3373          return XDEBUG_1_03;
3374        if ("Xerox".equals(codeString))
3375          return XEROX;
3376        if ("Xfig".equals(codeString))
3377          return XFIG;
3378        if ("XFree86-1.1".equals(codeString))
3379          return XFREE86_1_1;
3380        if ("xinetd".equals(codeString))
3381          return XINETD;
3382        if ("xlock".equals(codeString))
3383          return XLOCK;
3384        if ("Xnet".equals(codeString))
3385          return XNET;
3386        if ("xpp".equals(codeString))
3387          return XPP;
3388        if ("XSkat".equals(codeString))
3389          return XSKAT;
3390        if ("YPL-1.0".equals(codeString))
3391          return YPL_1_0;
3392        if ("YPL-1.1".equals(codeString))
3393          return YPL_1_1;
3394        if ("Zed".equals(codeString))
3395          return ZED;
3396        if ("Zend-2.0".equals(codeString))
3397          return ZEND_2_0;
3398        if ("Zimbra-1.3".equals(codeString))
3399          return ZIMBRA_1_3;
3400        if ("Zimbra-1.4".equals(codeString))
3401          return ZIMBRA_1_4;
3402        if ("Zlib".equals(codeString))
3403          return ZLIB;
3404        if ("zlib-acknowledgement".equals(codeString))
3405          return ZLIB_ACKNOWLEDGEMENT;
3406        if ("ZPL-1.1".equals(codeString))
3407          return ZPL_1_1;
3408        if ("ZPL-2.0".equals(codeString))
3409          return ZPL_2_0;
3410        if ("ZPL-2.1".equals(codeString))
3411          return ZPL_2_1;
3412        throw new FHIRException("Unknown SPDXLicense code '"+codeString+"'");
3413        }
3414        public static boolean isValidCode(String codeString) {
3415            if (codeString == null || "".equals(codeString))
3416                return false;
3417          return Utilities.existsInList(codeString, "0BSD", "AAL", "Abstyles", "AdaCore-doc", "Adobe-2006", "Adobe-Glyph", "ADSL", "AFL-1.1", "AFL-1.2", "AFL-2.0", "AFL-2.1", "AFL-3.0", "Afmparse", "AGPL-1.0", "AGPL-1.0-only", "AGPL-1.0-or-later", "AGPL-3.0", "AGPL-3.0-only", "AGPL-3.0-or-later", "Aladdin", "AMDPLPA", "AML", "AMPAS", "ANTLR-PD", "ANTLR-PD-fallback", "Apache-1.0", "Apache-1.1", "Apache-2.0", "APAFML", "APL-1.0", "App-s2p", "APSL-1.0", "APSL-1.1", "APSL-1.2", "APSL-2.0", "Arphic-1999", "Artistic-1.0", "Artistic-1.0-cl8", "Artistic-1.0-Perl", "Artistic-2.0", "ASWF-Digital-Assets-1.0", "ASWF-Digital-Assets-1.1", "Baekmuk", "Bahyph", "Barr", "Beerware", "Bitstream-Charter", "Bitstream-Vera", "BitTorrent-1.0", "BitTorrent-1.1", "blessing", "BlueOak-1.0.0", "Boehm-GC", "Borceux", "Brian-Gladman-3-Clause", "BSD-1-Clause", "BSD-2-Clause", "BSD-2-Clause-FreeBSD", "BSD-2-Clause-NetBSD", "BSD-2-Clause-Patent", "BSD-2-Clause-Views", "BSD-3-Clause", "BSD-3-Clause-Attribution", "BSD-3-Clause-Clear", "BSD-3-Clause-LBNL", "BSD-3-Clause-Modification", "BSD-3-Clause-No-Military-License", "BSD-3-Clause-No-Nuclear-License", "BSD-3-Clause-No-Nuclear-License-2014", "BSD-3-Clause-No-Nuclear-Warranty", "BSD-3-Clause-Open-MPI", "BSD-4-Clause", "BSD-4-Clause-Shortened", "BSD-4-Clause-UC", "BSD-4.3RENO", "BSD-4.3TAHOE", "BSD-Advertising-Acknowledgement", "BSD-Attribution-HPND-disclaimer", "BSD-Protection", "BSD-Source-Code", "BSL-1.0", "BUSL-1.1", "bzip2-1.0.5", "bzip2-1.0.6", "C-UDA-1.0", "CAL-1.0", "CAL-1.0-Combined-Work-Exception", "Caldera", "CATOSL-1.1", "CC-BY-1.0", "CC-BY-2.0", "CC-BY-2.5", "CC-BY-2.5-AU", "CC-BY-3.0", "CC-BY-3.0-AT", "CC-BY-3.0-DE", "CC-BY-3.0-IGO", "CC-BY-3.0-NL", "CC-BY-3.0-US", "CC-BY-4.0", "CC-BY-NC-1.0", "CC-BY-NC-2.0", "CC-BY-NC-2.5", "CC-BY-NC-3.0", "CC-BY-NC-3.0-DE", "CC-BY-NC-4.0", "CC-BY-NC-ND-1.0", "CC-BY-NC-ND-2.0", "CC-BY-NC-ND-2.5", "CC-BY-NC-ND-3.0", "CC-BY-NC-ND-3.0-DE", "CC-BY-NC-ND-3.0-IGO", "CC-BY-NC-ND-4.0", "CC-BY-NC-SA-1.0", "CC-BY-NC-SA-2.0", "CC-BY-NC-SA-2.0-DE", "CC-BY-NC-SA-2.0-FR", "CC-BY-NC-SA-2.0-UK", "CC-BY-NC-SA-2.5", "CC-BY-NC-SA-3.0", "CC-BY-NC-SA-3.0-DE", "CC-BY-NC-SA-3.0-IGO", "CC-BY-NC-SA-4.0", "CC-BY-ND-1.0", "CC-BY-ND-2.0", "CC-BY-ND-2.5", "CC-BY-ND-3.0", "CC-BY-ND-3.0-DE", "CC-BY-ND-4.0", "CC-BY-SA-1.0", "CC-BY-SA-2.0", "CC-BY-SA-2.0-UK", "CC-BY-SA-2.1-JP", "CC-BY-SA-2.5", "CC-BY-SA-3.0", "CC-BY-SA-3.0-AT", "CC-BY-SA-3.0-DE", "CC-BY-SA-3.0-IGO", "CC-BY-SA-4.0", "CC-PDDC", "CC0-1.0", "CDDL-1.0", "CDDL-1.1", "CDL-1.0", "CDLA-Permissive-1.0", "CDLA-Permissive-2.0", "CDLA-Sharing-1.0", "CECILL-1.0", "CECILL-1.1", "CECILL-2.0", "CECILL-2.1", "CECILL-B", "CECILL-C", "CERN-OHL-1.1", "CERN-OHL-1.2", "CERN-OHL-P-2.0", "CERN-OHL-S-2.0", "CERN-OHL-W-2.0", "CFITSIO", "checkmk", "ClArtistic", "Clips", "CMU-Mach", "CNRI-Jython", "CNRI-Python", "CNRI-Python-GPL-Compatible", "COIL-1.0", "Community-Spec-1.0", "Condor-1.1", "copyleft-next-0.3.0", "copyleft-next-0.3.1", "Cornell-Lossless-JPEG", "CPAL-1.0", "CPL-1.0", "CPOL-1.02", "Crossword", "CrystalStacker", "CUA-OPL-1.0", "Cube", "curl", "D-FSL-1.0", "diffmark", "DL-DE-BY-2.0", "DOC", "Dotseqn", "DRL-1.0", "DSDP", "dtoa", "dvipdfm", "ECL-1.0", "ECL-2.0", "eCos-2.0", "EFL-1.0", "EFL-2.0", "eGenix", "Elastic-2.0", "Entessa", "EPICS", "EPL-1.0", "EPL-2.0", "ErlPL-1.1", "etalab-2.0", "EUDatagrid", "EUPL-1.0", "EUPL-1.1", "EUPL-1.2", "Eurosym", "Fair", "FDK-AAC", "Frameworx-1.0", "FreeBSD-DOC", "FreeImage", "FSFAP", "FSFUL", "FSFULLR", "FSFULLRWD", "FTL", "GD", "GFDL-1.1", "GFDL-1.1-invariants-only", "GFDL-1.1-invariants-or-later", "GFDL-1.1-no-invariants-only", "GFDL-1.1-no-invariants-or-later", "GFDL-1.1-only", "GFDL-1.1-or-later", "GFDL-1.2", "GFDL-1.2-invariants-only", "GFDL-1.2-invariants-or-later", "GFDL-1.2-no-invariants-only", "GFDL-1.2-no-invariants-or-later", "GFDL-1.2-only", "GFDL-1.2-or-later", "GFDL-1.3", "GFDL-1.3-invariants-only", "GFDL-1.3-invariants-or-later", "GFDL-1.3-no-invariants-only", "GFDL-1.3-no-invariants-or-later", "GFDL-1.3-only", "GFDL-1.3-or-later", "Giftware", "GL2PS", "Glide", "Glulxe", "GLWTPL", "gnuplot", "GPL-1.0", "GPL-1.0+", "GPL-1.0-only", "GPL-1.0-or-later", "GPL-2.0", "GPL-2.0+", "GPL-2.0-only", "GPL-2.0-or-later", "GPL-2.0-with-autoconf-exception", "GPL-2.0-with-bison-exception", "GPL-2.0-with-classpath-exception", "GPL-2.0-with-font-exception", "GPL-2.0-with-GCC-exception", "GPL-3.0", "GPL-3.0+", "GPL-3.0-only", "GPL-3.0-or-later", "GPL-3.0-with-autoconf-exception", "GPL-3.0-with-GCC-exception", "Graphics-Gems", "gSOAP-1.3b", "HaskellReport", "Hippocratic-2.1", "HP-1986", "HPND", "HPND-export-US", "HPND-Markus-Kuhn", "HPND-sell-variant", "HPND-sell-variant-MIT-disclaimer", "HTMLTIDY", "IBM-pibs", "ICU", "IEC-Code-Components-EULA", "IJG", "IJG-short", "ImageMagick", "iMatix", "Imlib2", "Info-ZIP", "Inner-Net-2.0", "Intel", "Intel-ACPI", "Interbase-1.0", "IPA", "IPL-1.0", "ISC", "Jam", "JasPer-2.0", "JPL-image", "JPNIC", "JSON", "Kazlib", "Knuth-CTAN", "LAL-1.2", "LAL-1.3", "Latex2e", "Latex2e-translated-notice", "Leptonica", "LGPL-2.0", "LGPL-2.0+", "LGPL-2.0-only", "LGPL-2.0-or-later", "LGPL-2.1", "LGPL-2.1+", "LGPL-2.1-only", "LGPL-2.1-or-later", "LGPL-3.0", "LGPL-3.0+", "LGPL-3.0-only", "LGPL-3.0-or-later", "LGPLLR", "Libpng", "libpng-2.0", "libselinux-1.0", "libtiff", "libutil-David-Nugent", "LiLiQ-P-1.1", "LiLiQ-R-1.1", "LiLiQ-Rplus-1.1", "Linux-man-pages-1-para", "Linux-man-pages-copyleft", "Linux-man-pages-copyleft-2-para", "Linux-man-pages-copyleft-var", "Linux-OpenIB", "LOOP", "LPL-1.0", "LPL-1.02", "LPPL-1.0", "LPPL-1.1", "LPPL-1.2", "LPPL-1.3a", "LPPL-1.3c", "LZMA-SDK-9.11-to-9.20", "LZMA-SDK-9.22", "MakeIndex", "Martin-Birgmeier", "metamail", "Minpack", "MirOS", "MIT", "MIT-0", "MIT-advertising", "MIT-CMU", "MIT-enna", "MIT-feh", "MIT-Festival", "MIT-Modern-Variant", "MIT-open-group", "MIT-Wu", "MITNFA", "Motosoto", "mpi-permissive", "mpich2", "MPL-1.0", "MPL-1.1", "MPL-2.0", "MPL-2.0-no-copyleft-exception", "mplus", "MS-LPL", "MS-PL", "MS-RL", "MTLL", "MulanPSL-1.0", "MulanPSL-2.0", "Multics", "Mup", "NAIST-2003", "NASA-1.3", "Naumen", "NBPL-1.0", "NCGL-UK-2.0", "NCSA", "Net-SNMP", "NetCDF", "Newsletr", "NGPL", "NICTA-1.0", "NIST-PD", "NIST-PD-fallback", "NIST-Software", "NLOD-1.0", "NLOD-2.0", "NLPL", "Nokia", "NOSL", "not-open-source", "Noweb", "NPL-1.0", "NPL-1.1", "NPOSL-3.0", "NRL", "NTP", "NTP-0", "Nunit", "O-UDA-1.0", "OCCT-PL", "OCLC-2.0", "ODbL-1.0", "ODC-By-1.0", "OFFIS", "OFL-1.0", "OFL-1.0-no-RFN", "OFL-1.0-RFN", "OFL-1.1", "OFL-1.1-no-RFN", "OFL-1.1-RFN", "OGC-1.0", "OGDL-Taiwan-1.0", "OGL-Canada-2.0", "OGL-UK-1.0", "OGL-UK-2.0", "OGL-UK-3.0", "OGTSL", "OLDAP-1.1", "OLDAP-1.2", "OLDAP-1.3", "OLDAP-1.4", "OLDAP-2.0", "OLDAP-2.0.1", "OLDAP-2.1", "OLDAP-2.2", "OLDAP-2.2.1", "OLDAP-2.2.2", "OLDAP-2.3", "OLDAP-2.4", "OLDAP-2.5", "OLDAP-2.6", "OLDAP-2.7", "OLDAP-2.8", "OLFL-1.3", "OML", "OpenPBS-2.3", "OpenSSL", "OPL-1.0", "OPL-UK-3.0", "OPUBL-1.0", "OSET-PL-2.1", "OSL-1.0", "OSL-1.1", "OSL-2.0", "OSL-2.1", "OSL-3.0", "Parity-6.0.0", "Parity-7.0.0", "PDDL-1.0", "PHP-3.0", "PHP-3.01", "Plexus", "PolyForm-Noncommercial-1.0.0", "PolyForm-Small-Business-1.0.0", "PostgreSQL", "PSF-2.0", "psfrag", "psutils", "Python-2.0", "Python-2.0.1", "Qhull", "QPL-1.0", "QPL-1.0-INRIA-2004", "Rdisc", "RHeCos-1.1", "RPL-1.1", "RPL-1.5", "RPSL-1.0", "RSA-MD", "RSCPL", "Ruby", "SAX-PD", "Saxpath", "SCEA", "SchemeReport", "Sendmail", "Sendmail-8.23", "SGI-B-1.0", "SGI-B-1.1", "SGI-B-2.0", "SGP4", "SHL-0.5", "SHL-0.51", "SimPL-2.0", "SISSL", "SISSL-1.2", "Sleepycat", "SMLNJ", "SMPPL", "SNIA", "snprintf", "Spencer-86", "Spencer-94", "Spencer-99", "SPL-1.0", "SSH-OpenSSH", "SSH-short", "SSPL-1.0", "StandardML-NJ", "SugarCRM-1.1.3", "SunPro", "SWL", "Symlinks", "TAPR-OHL-1.0", "TCL", "TCP-wrappers", "TermReadKey", "TMate", "TORQUE-1.1", "TOSL", "TPDL", "TPL-1.0", "TTWL", "TU-Berlin-1.0", "TU-Berlin-2.0", "UCAR", "UCL-1.0", "Unicode-DFS-2015", "Unicode-DFS-2016", "Unicode-TOU", "UnixCrypt", "Unlicense", "UPL-1.0", "Vim", "VOSTROM", "VSL-1.0", "W3C", "W3C-19980720", "W3C-20150513", "w3m", "Watcom-1.0", "Widget-Workshop", "Wsuipa", "WTFPL", "wxWindows", "X11", "X11-distribute-modifications-variant", "Xdebug-1.03", "Xerox", "Xfig", "XFree86-1.1", "xinetd", "xlock", "Xnet", "xpp", "XSkat", "YPL-1.0", "YPL-1.1", "Zed", "Zend-2.0", "Zimbra-1.3", "Zimbra-1.4", "Zlib", "zlib-acknowledgement", "ZPL-1.1", "ZPL-2.0", "ZPL-2.1");
3418        }
3419        public String toCode() {
3420          switch (this) {
3421            case _0BSD: return "0BSD";
3422            case AAL: return "AAL";
3423            case ABSTYLES: return "Abstyles";
3424            case ADACORE_DOC: return "AdaCore-doc";
3425            case ADOBE_2006: return "Adobe-2006";
3426            case ADOBE_GLYPH: return "Adobe-Glyph";
3427            case ADSL: return "ADSL";
3428            case AFL_1_1: return "AFL-1.1";
3429            case AFL_1_2: return "AFL-1.2";
3430            case AFL_2_0: return "AFL-2.0";
3431            case AFL_2_1: return "AFL-2.1";
3432            case AFL_3_0: return "AFL-3.0";
3433            case AFMPARSE: return "Afmparse";
3434            case AGPL_1_0: return "AGPL-1.0";
3435            case AGPL_1_0_ONLY: return "AGPL-1.0-only";
3436            case AGPL_1_0_OR_LATER: return "AGPL-1.0-or-later";
3437            case AGPL_3_0: return "AGPL-3.0";
3438            case AGPL_3_0_ONLY: return "AGPL-3.0-only";
3439            case AGPL_3_0_OR_LATER: return "AGPL-3.0-or-later";
3440            case ALADDIN: return "Aladdin";
3441            case AMDPLPA: return "AMDPLPA";
3442            case AML: return "AML";
3443            case AMPAS: return "AMPAS";
3444            case ANTLR_PD: return "ANTLR-PD";
3445            case ANTLR_PD_FALLBACK: return "ANTLR-PD-fallback";
3446            case APACHE_1_0: return "Apache-1.0";
3447            case APACHE_1_1: return "Apache-1.1";
3448            case APACHE_2_0: return "Apache-2.0";
3449            case APAFML: return "APAFML";
3450            case APL_1_0: return "APL-1.0";
3451            case APP_S2P: return "App-s2p";
3452            case APSL_1_0: return "APSL-1.0";
3453            case APSL_1_1: return "APSL-1.1";
3454            case APSL_1_2: return "APSL-1.2";
3455            case APSL_2_0: return "APSL-2.0";
3456            case ARPHIC_1999: return "Arphic-1999";
3457            case ARTISTIC_1_0: return "Artistic-1.0";
3458            case ARTISTIC_1_0_CL8: return "Artistic-1.0-cl8";
3459            case ARTISTIC_1_0_PERL: return "Artistic-1.0-Perl";
3460            case ARTISTIC_2_0: return "Artistic-2.0";
3461            case ASWF_DIGITAL_ASSETS_1_0: return "ASWF-Digital-Assets-1.0";
3462            case ASWF_DIGITAL_ASSETS_1_1: return "ASWF-Digital-Assets-1.1";
3463            case BAEKMUK: return "Baekmuk";
3464            case BAHYPH: return "Bahyph";
3465            case BARR: return "Barr";
3466            case BEERWARE: return "Beerware";
3467            case BITSTREAM_CHARTER: return "Bitstream-Charter";
3468            case BITSTREAM_VERA: return "Bitstream-Vera";
3469            case BITTORRENT_1_0: return "BitTorrent-1.0";
3470            case BITTORRENT_1_1: return "BitTorrent-1.1";
3471            case BLESSING: return "blessing";
3472            case BLUEOAK_1_0_0: return "BlueOak-1.0.0";
3473            case BOEHM_GC: return "Boehm-GC";
3474            case BORCEUX: return "Borceux";
3475            case BRIAN_GLADMAN_3_CLAUSE: return "Brian-Gladman-3-Clause";
3476            case BSD_1_CLAUSE: return "BSD-1-Clause";
3477            case BSD_2_CLAUSE: return "BSD-2-Clause";
3478            case BSD_2_CLAUSE_FREEBSD: return "BSD-2-Clause-FreeBSD";
3479            case BSD_2_CLAUSE_NETBSD: return "BSD-2-Clause-NetBSD";
3480            case BSD_2_CLAUSE_PATENT: return "BSD-2-Clause-Patent";
3481            case BSD_2_CLAUSE_VIEWS: return "BSD-2-Clause-Views";
3482            case BSD_3_CLAUSE: return "BSD-3-Clause";
3483            case BSD_3_CLAUSE_ATTRIBUTION: return "BSD-3-Clause-Attribution";
3484            case BSD_3_CLAUSE_CLEAR: return "BSD-3-Clause-Clear";
3485            case BSD_3_CLAUSE_LBNL: return "BSD-3-Clause-LBNL";
3486            case BSD_3_CLAUSE_MODIFICATION: return "BSD-3-Clause-Modification";
3487            case BSD_3_CLAUSE_NO_MILITARY_LICENSE: return "BSD-3-Clause-No-Military-License";
3488            case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE: return "BSD-3-Clause-No-Nuclear-License";
3489            case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014: return "BSD-3-Clause-No-Nuclear-License-2014";
3490            case BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY: return "BSD-3-Clause-No-Nuclear-Warranty";
3491            case BSD_3_CLAUSE_OPEN_MPI: return "BSD-3-Clause-Open-MPI";
3492            case BSD_4_CLAUSE: return "BSD-4-Clause";
3493            case BSD_4_CLAUSE_SHORTENED: return "BSD-4-Clause-Shortened";
3494            case BSD_4_CLAUSE_UC: return "BSD-4-Clause-UC";
3495            case BSD_4_3RENO: return "BSD-4.3RENO";
3496            case BSD_4_3TAHOE: return "BSD-4.3TAHOE";
3497            case BSD_ADVERTISING_ACKNOWLEDGEMENT: return "BSD-Advertising-Acknowledgement";
3498            case BSD_ATTRIBUTION_HPND_DISCLAIMER: return "BSD-Attribution-HPND-disclaimer";
3499            case BSD_PROTECTION: return "BSD-Protection";
3500            case BSD_SOURCE_CODE: return "BSD-Source-Code";
3501            case BSL_1_0: return "BSL-1.0";
3502            case BUSL_1_1: return "BUSL-1.1";
3503            case BZIP2_1_0_5: return "bzip2-1.0.5";
3504            case BZIP2_1_0_6: return "bzip2-1.0.6";
3505            case C_UDA_1_0: return "C-UDA-1.0";
3506            case CAL_1_0: return "CAL-1.0";
3507            case CAL_1_0_COMBINED_WORK_EXCEPTION: return "CAL-1.0-Combined-Work-Exception";
3508            case CALDERA: return "Caldera";
3509            case CATOSL_1_1: return "CATOSL-1.1";
3510            case CC_BY_1_0: return "CC-BY-1.0";
3511            case CC_BY_2_0: return "CC-BY-2.0";
3512            case CC_BY_2_5: return "CC-BY-2.5";
3513            case CC_BY_2_5_AU: return "CC-BY-2.5-AU";
3514            case CC_BY_3_0: return "CC-BY-3.0";
3515            case CC_BY_3_0_AT: return "CC-BY-3.0-AT";
3516            case CC_BY_3_0_DE: return "CC-BY-3.0-DE";
3517            case CC_BY_3_0_IGO: return "CC-BY-3.0-IGO";
3518            case CC_BY_3_0_NL: return "CC-BY-3.0-NL";
3519            case CC_BY_3_0_US: return "CC-BY-3.0-US";
3520            case CC_BY_4_0: return "CC-BY-4.0";
3521            case CC_BY_NC_1_0: return "CC-BY-NC-1.0";
3522            case CC_BY_NC_2_0: return "CC-BY-NC-2.0";
3523            case CC_BY_NC_2_5: return "CC-BY-NC-2.5";
3524            case CC_BY_NC_3_0: return "CC-BY-NC-3.0";
3525            case CC_BY_NC_3_0_DE: return "CC-BY-NC-3.0-DE";
3526            case CC_BY_NC_4_0: return "CC-BY-NC-4.0";
3527            case CC_BY_NC_ND_1_0: return "CC-BY-NC-ND-1.0";
3528            case CC_BY_NC_ND_2_0: return "CC-BY-NC-ND-2.0";
3529            case CC_BY_NC_ND_2_5: return "CC-BY-NC-ND-2.5";
3530            case CC_BY_NC_ND_3_0: return "CC-BY-NC-ND-3.0";
3531            case CC_BY_NC_ND_3_0_DE: return "CC-BY-NC-ND-3.0-DE";
3532            case CC_BY_NC_ND_3_0_IGO: return "CC-BY-NC-ND-3.0-IGO";
3533            case CC_BY_NC_ND_4_0: return "CC-BY-NC-ND-4.0";
3534            case CC_BY_NC_SA_1_0: return "CC-BY-NC-SA-1.0";
3535            case CC_BY_NC_SA_2_0: return "CC-BY-NC-SA-2.0";
3536            case CC_BY_NC_SA_2_0_DE: return "CC-BY-NC-SA-2.0-DE";
3537            case CC_BY_NC_SA_2_0_FR: return "CC-BY-NC-SA-2.0-FR";
3538            case CC_BY_NC_SA_2_0_UK: return "CC-BY-NC-SA-2.0-UK";
3539            case CC_BY_NC_SA_2_5: return "CC-BY-NC-SA-2.5";
3540            case CC_BY_NC_SA_3_0: return "CC-BY-NC-SA-3.0";
3541            case CC_BY_NC_SA_3_0_DE: return "CC-BY-NC-SA-3.0-DE";
3542            case CC_BY_NC_SA_3_0_IGO: return "CC-BY-NC-SA-3.0-IGO";
3543            case CC_BY_NC_SA_4_0: return "CC-BY-NC-SA-4.0";
3544            case CC_BY_ND_1_0: return "CC-BY-ND-1.0";
3545            case CC_BY_ND_2_0: return "CC-BY-ND-2.0";
3546            case CC_BY_ND_2_5: return "CC-BY-ND-2.5";
3547            case CC_BY_ND_3_0: return "CC-BY-ND-3.0";
3548            case CC_BY_ND_3_0_DE: return "CC-BY-ND-3.0-DE";
3549            case CC_BY_ND_4_0: return "CC-BY-ND-4.0";
3550            case CC_BY_SA_1_0: return "CC-BY-SA-1.0";
3551            case CC_BY_SA_2_0: return "CC-BY-SA-2.0";
3552            case CC_BY_SA_2_0_UK: return "CC-BY-SA-2.0-UK";
3553            case CC_BY_SA_2_1_JP: return "CC-BY-SA-2.1-JP";
3554            case CC_BY_SA_2_5: return "CC-BY-SA-2.5";
3555            case CC_BY_SA_3_0: return "CC-BY-SA-3.0";
3556            case CC_BY_SA_3_0_AT: return "CC-BY-SA-3.0-AT";
3557            case CC_BY_SA_3_0_DE: return "CC-BY-SA-3.0-DE";
3558            case CC_BY_SA_3_0_IGO: return "CC-BY-SA-3.0-IGO";
3559            case CC_BY_SA_4_0: return "CC-BY-SA-4.0";
3560            case CC_PDDC: return "CC-PDDC";
3561            case CC0_1_0: return "CC0-1.0";
3562            case CDDL_1_0: return "CDDL-1.0";
3563            case CDDL_1_1: return "CDDL-1.1";
3564            case CDL_1_0: return "CDL-1.0";
3565            case CDLA_PERMISSIVE_1_0: return "CDLA-Permissive-1.0";
3566            case CDLA_PERMISSIVE_2_0: return "CDLA-Permissive-2.0";
3567            case CDLA_SHARING_1_0: return "CDLA-Sharing-1.0";
3568            case CECILL_1_0: return "CECILL-1.0";
3569            case CECILL_1_1: return "CECILL-1.1";
3570            case CECILL_2_0: return "CECILL-2.0";
3571            case CECILL_2_1: return "CECILL-2.1";
3572            case CECILL_B: return "CECILL-B";
3573            case CECILL_C: return "CECILL-C";
3574            case CERN_OHL_1_1: return "CERN-OHL-1.1";
3575            case CERN_OHL_1_2: return "CERN-OHL-1.2";
3576            case CERN_OHL_P_2_0: return "CERN-OHL-P-2.0";
3577            case CERN_OHL_S_2_0: return "CERN-OHL-S-2.0";
3578            case CERN_OHL_W_2_0: return "CERN-OHL-W-2.0";
3579            case CFITSIO: return "CFITSIO";
3580            case CHECKMK: return "checkmk";
3581            case CLARTISTIC: return "ClArtistic";
3582            case CLIPS: return "Clips";
3583            case CMU_MACH: return "CMU-Mach";
3584            case CNRI_JYTHON: return "CNRI-Jython";
3585            case CNRI_PYTHON: return "CNRI-Python";
3586            case CNRI_PYTHON_GPL_COMPATIBLE: return "CNRI-Python-GPL-Compatible";
3587            case COIL_1_0: return "COIL-1.0";
3588            case COMMUNITY_SPEC_1_0: return "Community-Spec-1.0";
3589            case CONDOR_1_1: return "Condor-1.1";
3590            case COPYLEFT_NEXT_0_3_0: return "copyleft-next-0.3.0";
3591            case COPYLEFT_NEXT_0_3_1: return "copyleft-next-0.3.1";
3592            case CORNELL_LOSSLESS_JPEG: return "Cornell-Lossless-JPEG";
3593            case CPAL_1_0: return "CPAL-1.0";
3594            case CPL_1_0: return "CPL-1.0";
3595            case CPOL_1_02: return "CPOL-1.02";
3596            case CROSSWORD: return "Crossword";
3597            case CRYSTALSTACKER: return "CrystalStacker";
3598            case CUA_OPL_1_0: return "CUA-OPL-1.0";
3599            case CUBE: return "Cube";
3600            case CURL: return "curl";
3601            case D_FSL_1_0: return "D-FSL-1.0";
3602            case DIFFMARK: return "diffmark";
3603            case DL_DE_BY_2_0: return "DL-DE-BY-2.0";
3604            case DOC: return "DOC";
3605            case DOTSEQN: return "Dotseqn";
3606            case DRL_1_0: return "DRL-1.0";
3607            case DSDP: return "DSDP";
3608            case DTOA: return "dtoa";
3609            case DVIPDFM: return "dvipdfm";
3610            case ECL_1_0: return "ECL-1.0";
3611            case ECL_2_0: return "ECL-2.0";
3612            case ECOS_2_0: return "eCos-2.0";
3613            case EFL_1_0: return "EFL-1.0";
3614            case EFL_2_0: return "EFL-2.0";
3615            case EGENIX: return "eGenix";
3616            case ELASTIC_2_0: return "Elastic-2.0";
3617            case ENTESSA: return "Entessa";
3618            case EPICS: return "EPICS";
3619            case EPL_1_0: return "EPL-1.0";
3620            case EPL_2_0: return "EPL-2.0";
3621            case ERLPL_1_1: return "ErlPL-1.1";
3622            case ETALAB_2_0: return "etalab-2.0";
3623            case EUDATAGRID: return "EUDatagrid";
3624            case EUPL_1_0: return "EUPL-1.0";
3625            case EUPL_1_1: return "EUPL-1.1";
3626            case EUPL_1_2: return "EUPL-1.2";
3627            case EUROSYM: return "Eurosym";
3628            case FAIR: return "Fair";
3629            case FDK_AAC: return "FDK-AAC";
3630            case FRAMEWORX_1_0: return "Frameworx-1.0";
3631            case FREEBSD_DOC: return "FreeBSD-DOC";
3632            case FREEIMAGE: return "FreeImage";
3633            case FSFAP: return "FSFAP";
3634            case FSFUL: return "FSFUL";
3635            case FSFULLR: return "FSFULLR";
3636            case FSFULLRWD: return "FSFULLRWD";
3637            case FTL: return "FTL";
3638            case GD: return "GD";
3639            case GFDL_1_1: return "GFDL-1.1";
3640            case GFDL_1_1_INVARIANTS_ONLY: return "GFDL-1.1-invariants-only";
3641            case GFDL_1_1_INVARIANTS_OR_LATER: return "GFDL-1.1-invariants-or-later";
3642            case GFDL_1_1_NO_INVARIANTS_ONLY: return "GFDL-1.1-no-invariants-only";
3643            case GFDL_1_1_NO_INVARIANTS_OR_LATER: return "GFDL-1.1-no-invariants-or-later";
3644            case GFDL_1_1_ONLY: return "GFDL-1.1-only";
3645            case GFDL_1_1_OR_LATER: return "GFDL-1.1-or-later";
3646            case GFDL_1_2: return "GFDL-1.2";
3647            case GFDL_1_2_INVARIANTS_ONLY: return "GFDL-1.2-invariants-only";
3648            case GFDL_1_2_INVARIANTS_OR_LATER: return "GFDL-1.2-invariants-or-later";
3649            case GFDL_1_2_NO_INVARIANTS_ONLY: return "GFDL-1.2-no-invariants-only";
3650            case GFDL_1_2_NO_INVARIANTS_OR_LATER: return "GFDL-1.2-no-invariants-or-later";
3651            case GFDL_1_2_ONLY: return "GFDL-1.2-only";
3652            case GFDL_1_2_OR_LATER: return "GFDL-1.2-or-later";
3653            case GFDL_1_3: return "GFDL-1.3";
3654            case GFDL_1_3_INVARIANTS_ONLY: return "GFDL-1.3-invariants-only";
3655            case GFDL_1_3_INVARIANTS_OR_LATER: return "GFDL-1.3-invariants-or-later";
3656            case GFDL_1_3_NO_INVARIANTS_ONLY: return "GFDL-1.3-no-invariants-only";
3657            case GFDL_1_3_NO_INVARIANTS_OR_LATER: return "GFDL-1.3-no-invariants-or-later";
3658            case GFDL_1_3_ONLY: return "GFDL-1.3-only";
3659            case GFDL_1_3_OR_LATER: return "GFDL-1.3-or-later";
3660            case GIFTWARE: return "Giftware";
3661            case GL2PS: return "GL2PS";
3662            case GLIDE: return "Glide";
3663            case GLULXE: return "Glulxe";
3664            case GLWTPL: return "GLWTPL";
3665            case GNUPLOT: return "gnuplot";
3666            case GPL_1_0: return "GPL-1.0";
3667            case GPL_1_0PLUS: return "GPL-1.0+";
3668            case GPL_1_0_ONLY: return "GPL-1.0-only";
3669            case GPL_1_0_OR_LATER: return "GPL-1.0-or-later";
3670            case GPL_2_0: return "GPL-2.0";
3671            case GPL_2_0PLUS: return "GPL-2.0+";
3672            case GPL_2_0_ONLY: return "GPL-2.0-only";
3673            case GPL_2_0_OR_LATER: return "GPL-2.0-or-later";
3674            case GPL_2_0_WITH_AUTOCONF_EXCEPTION: return "GPL-2.0-with-autoconf-exception";
3675            case GPL_2_0_WITH_BISON_EXCEPTION: return "GPL-2.0-with-bison-exception";
3676            case GPL_2_0_WITH_CLASSPATH_EXCEPTION: return "GPL-2.0-with-classpath-exception";
3677            case GPL_2_0_WITH_FONT_EXCEPTION: return "GPL-2.0-with-font-exception";
3678            case GPL_2_0_WITH_GCC_EXCEPTION: return "GPL-2.0-with-GCC-exception";
3679            case GPL_3_0: return "GPL-3.0";
3680            case GPL_3_0PLUS: return "GPL-3.0+";
3681            case GPL_3_0_ONLY: return "GPL-3.0-only";
3682            case GPL_3_0_OR_LATER: return "GPL-3.0-or-later";
3683            case GPL_3_0_WITH_AUTOCONF_EXCEPTION: return "GPL-3.0-with-autoconf-exception";
3684            case GPL_3_0_WITH_GCC_EXCEPTION: return "GPL-3.0-with-GCC-exception";
3685            case GRAPHICS_GEMS: return "Graphics-Gems";
3686            case GSOAP_1_3B: return "gSOAP-1.3b";
3687            case HASKELLREPORT: return "HaskellReport";
3688            case HIPPOCRATIC_2_1: return "Hippocratic-2.1";
3689            case HP_1986: return "HP-1986";
3690            case HPND: return "HPND";
3691            case HPND_EXPORT_US: return "HPND-export-US";
3692            case HPND_MARKUS_KUHN: return "HPND-Markus-Kuhn";
3693            case HPND_SELL_VARIANT: return "HPND-sell-variant";
3694            case HPND_SELL_VARIANT_MIT_DISCLAIMER: return "HPND-sell-variant-MIT-disclaimer";
3695            case HTMLTIDY: return "HTMLTIDY";
3696            case IBM_PIBS: return "IBM-pibs";
3697            case ICU: return "ICU";
3698            case IEC_CODE_COMPONENTS_EULA: return "IEC-Code-Components-EULA";
3699            case IJG: return "IJG";
3700            case IJG_SHORT: return "IJG-short";
3701            case IMAGEMAGICK: return "ImageMagick";
3702            case IMATIX: return "iMatix";
3703            case IMLIB2: return "Imlib2";
3704            case INFO_ZIP: return "Info-ZIP";
3705            case INNER_NET_2_0: return "Inner-Net-2.0";
3706            case INTEL: return "Intel";
3707            case INTEL_ACPI: return "Intel-ACPI";
3708            case INTERBASE_1_0: return "Interbase-1.0";
3709            case IPA: return "IPA";
3710            case IPL_1_0: return "IPL-1.0";
3711            case ISC: return "ISC";
3712            case JAM: return "Jam";
3713            case JASPER_2_0: return "JasPer-2.0";
3714            case JPL_IMAGE: return "JPL-image";
3715            case JPNIC: return "JPNIC";
3716            case JSON: return "JSON";
3717            case KAZLIB: return "Kazlib";
3718            case KNUTH_CTAN: return "Knuth-CTAN";
3719            case LAL_1_2: return "LAL-1.2";
3720            case LAL_1_3: return "LAL-1.3";
3721            case LATEX2E: return "Latex2e";
3722            case LATEX2E_TRANSLATED_NOTICE: return "Latex2e-translated-notice";
3723            case LEPTONICA: return "Leptonica";
3724            case LGPL_2_0: return "LGPL-2.0";
3725            case LGPL_2_0PLUS: return "LGPL-2.0+";
3726            case LGPL_2_0_ONLY: return "LGPL-2.0-only";
3727            case LGPL_2_0_OR_LATER: return "LGPL-2.0-or-later";
3728            case LGPL_2_1: return "LGPL-2.1";
3729            case LGPL_2_1PLUS: return "LGPL-2.1+";
3730            case LGPL_2_1_ONLY: return "LGPL-2.1-only";
3731            case LGPL_2_1_OR_LATER: return "LGPL-2.1-or-later";
3732            case LGPL_3_0: return "LGPL-3.0";
3733            case LGPL_3_0PLUS: return "LGPL-3.0+";
3734            case LGPL_3_0_ONLY: return "LGPL-3.0-only";
3735            case LGPL_3_0_OR_LATER: return "LGPL-3.0-or-later";
3736            case LGPLLR: return "LGPLLR";
3737            case LIBPNG: return "Libpng";
3738            case LIBPNG_2_0: return "libpng-2.0";
3739            case LIBSELINUX_1_0: return "libselinux-1.0";
3740            case LIBTIFF: return "libtiff";
3741            case LIBUTIL_DAVID_NUGENT: return "libutil-David-Nugent";
3742            case LILIQ_P_1_1: return "LiLiQ-P-1.1";
3743            case LILIQ_R_1_1: return "LiLiQ-R-1.1";
3744            case LILIQ_RPLUS_1_1: return "LiLiQ-Rplus-1.1";
3745            case LINUX_MAN_PAGES_1_PARA: return "Linux-man-pages-1-para";
3746            case LINUX_MAN_PAGES_COPYLEFT: return "Linux-man-pages-copyleft";
3747            case LINUX_MAN_PAGES_COPYLEFT_2_PARA: return "Linux-man-pages-copyleft-2-para";
3748            case LINUX_MAN_PAGES_COPYLEFT_VAR: return "Linux-man-pages-copyleft-var";
3749            case LINUX_OPENIB: return "Linux-OpenIB";
3750            case LOOP: return "LOOP";
3751            case LPL_1_0: return "LPL-1.0";
3752            case LPL_1_02: return "LPL-1.02";
3753            case LPPL_1_0: return "LPPL-1.0";
3754            case LPPL_1_1: return "LPPL-1.1";
3755            case LPPL_1_2: return "LPPL-1.2";
3756            case LPPL_1_3A: return "LPPL-1.3a";
3757            case LPPL_1_3C: return "LPPL-1.3c";
3758            case LZMA_SDK_9_11_TO_9_20: return "LZMA-SDK-9.11-to-9.20";
3759            case LZMA_SDK_9_22: return "LZMA-SDK-9.22";
3760            case MAKEINDEX: return "MakeIndex";
3761            case MARTIN_BIRGMEIER: return "Martin-Birgmeier";
3762            case METAMAIL: return "metamail";
3763            case MINPACK: return "Minpack";
3764            case MIROS: return "MirOS";
3765            case MIT: return "MIT";
3766            case MIT_0: return "MIT-0";
3767            case MIT_ADVERTISING: return "MIT-advertising";
3768            case MIT_CMU: return "MIT-CMU";
3769            case MIT_ENNA: return "MIT-enna";
3770            case MIT_FEH: return "MIT-feh";
3771            case MIT_FESTIVAL: return "MIT-Festival";
3772            case MIT_MODERN_VARIANT: return "MIT-Modern-Variant";
3773            case MIT_OPEN_GROUP: return "MIT-open-group";
3774            case MIT_WU: return "MIT-Wu";
3775            case MITNFA: return "MITNFA";
3776            case MOTOSOTO: return "Motosoto";
3777            case MPI_PERMISSIVE: return "mpi-permissive";
3778            case MPICH2: return "mpich2";
3779            case MPL_1_0: return "MPL-1.0";
3780            case MPL_1_1: return "MPL-1.1";
3781            case MPL_2_0: return "MPL-2.0";
3782            case MPL_2_0_NO_COPYLEFT_EXCEPTION: return "MPL-2.0-no-copyleft-exception";
3783            case MPLUS: return "mplus";
3784            case MS_LPL: return "MS-LPL";
3785            case MS_PL: return "MS-PL";
3786            case MS_RL: return "MS-RL";
3787            case MTLL: return "MTLL";
3788            case MULANPSL_1_0: return "MulanPSL-1.0";
3789            case MULANPSL_2_0: return "MulanPSL-2.0";
3790            case MULTICS: return "Multics";
3791            case MUP: return "Mup";
3792            case NAIST_2003: return "NAIST-2003";
3793            case NASA_1_3: return "NASA-1.3";
3794            case NAUMEN: return "Naumen";
3795            case NBPL_1_0: return "NBPL-1.0";
3796            case NCGL_UK_2_0: return "NCGL-UK-2.0";
3797            case NCSA: return "NCSA";
3798            case NET_SNMP: return "Net-SNMP";
3799            case NETCDF: return "NetCDF";
3800            case NEWSLETR: return "Newsletr";
3801            case NGPL: return "NGPL";
3802            case NICTA_1_0: return "NICTA-1.0";
3803            case NIST_PD: return "NIST-PD";
3804            case NIST_PD_FALLBACK: return "NIST-PD-fallback";
3805            case NIST_SOFTWARE: return "NIST-Software";
3806            case NLOD_1_0: return "NLOD-1.0";
3807            case NLOD_2_0: return "NLOD-2.0";
3808            case NLPL: return "NLPL";
3809            case NOKIA: return "Nokia";
3810            case NOSL: return "NOSL";
3811            case NOT_OPEN_SOURCE: return "not-open-source";
3812            case NOWEB: return "Noweb";
3813            case NPL_1_0: return "NPL-1.0";
3814            case NPL_1_1: return "NPL-1.1";
3815            case NPOSL_3_0: return "NPOSL-3.0";
3816            case NRL: return "NRL";
3817            case NTP: return "NTP";
3818            case NTP_0: return "NTP-0";
3819            case NUNIT: return "Nunit";
3820            case O_UDA_1_0: return "O-UDA-1.0";
3821            case OCCT_PL: return "OCCT-PL";
3822            case OCLC_2_0: return "OCLC-2.0";
3823            case ODBL_1_0: return "ODbL-1.0";
3824            case ODC_BY_1_0: return "ODC-By-1.0";
3825            case OFFIS: return "OFFIS";
3826            case OFL_1_0: return "OFL-1.0";
3827            case OFL_1_0_NO_RFN: return "OFL-1.0-no-RFN";
3828            case OFL_1_0_RFN: return "OFL-1.0-RFN";
3829            case OFL_1_1: return "OFL-1.1";
3830            case OFL_1_1_NO_RFN: return "OFL-1.1-no-RFN";
3831            case OFL_1_1_RFN: return "OFL-1.1-RFN";
3832            case OGC_1_0: return "OGC-1.0";
3833            case OGDL_TAIWAN_1_0: return "OGDL-Taiwan-1.0";
3834            case OGL_CANADA_2_0: return "OGL-Canada-2.0";
3835            case OGL_UK_1_0: return "OGL-UK-1.0";
3836            case OGL_UK_2_0: return "OGL-UK-2.0";
3837            case OGL_UK_3_0: return "OGL-UK-3.0";
3838            case OGTSL: return "OGTSL";
3839            case OLDAP_1_1: return "OLDAP-1.1";
3840            case OLDAP_1_2: return "OLDAP-1.2";
3841            case OLDAP_1_3: return "OLDAP-1.3";
3842            case OLDAP_1_4: return "OLDAP-1.4";
3843            case OLDAP_2_0: return "OLDAP-2.0";
3844            case OLDAP_2_0_1: return "OLDAP-2.0.1";
3845            case OLDAP_2_1: return "OLDAP-2.1";
3846            case OLDAP_2_2: return "OLDAP-2.2";
3847            case OLDAP_2_2_1: return "OLDAP-2.2.1";
3848            case OLDAP_2_2_2: return "OLDAP-2.2.2";
3849            case OLDAP_2_3: return "OLDAP-2.3";
3850            case OLDAP_2_4: return "OLDAP-2.4";
3851            case OLDAP_2_5: return "OLDAP-2.5";
3852            case OLDAP_2_6: return "OLDAP-2.6";
3853            case OLDAP_2_7: return "OLDAP-2.7";
3854            case OLDAP_2_8: return "OLDAP-2.8";
3855            case OLFL_1_3: return "OLFL-1.3";
3856            case OML: return "OML";
3857            case OPENPBS_2_3: return "OpenPBS-2.3";
3858            case OPENSSL: return "OpenSSL";
3859            case OPL_1_0: return "OPL-1.0";
3860            case OPL_UK_3_0: return "OPL-UK-3.0";
3861            case OPUBL_1_0: return "OPUBL-1.0";
3862            case OSET_PL_2_1: return "OSET-PL-2.1";
3863            case OSL_1_0: return "OSL-1.0";
3864            case OSL_1_1: return "OSL-1.1";
3865            case OSL_2_0: return "OSL-2.0";
3866            case OSL_2_1: return "OSL-2.1";
3867            case OSL_3_0: return "OSL-3.0";
3868            case PARITY_6_0_0: return "Parity-6.0.0";
3869            case PARITY_7_0_0: return "Parity-7.0.0";
3870            case PDDL_1_0: return "PDDL-1.0";
3871            case PHP_3_0: return "PHP-3.0";
3872            case PHP_3_01: return "PHP-3.01";
3873            case PLEXUS: return "Plexus";
3874            case POLYFORM_NONCOMMERCIAL_1_0_0: return "PolyForm-Noncommercial-1.0.0";
3875            case POLYFORM_SMALL_BUSINESS_1_0_0: return "PolyForm-Small-Business-1.0.0";
3876            case POSTGRESQL: return "PostgreSQL";
3877            case PSF_2_0: return "PSF-2.0";
3878            case PSFRAG: return "psfrag";
3879            case PSUTILS: return "psutils";
3880            case PYTHON_2_0: return "Python-2.0";
3881            case PYTHON_2_0_1: return "Python-2.0.1";
3882            case QHULL: return "Qhull";
3883            case QPL_1_0: return "QPL-1.0";
3884            case QPL_1_0_INRIA_2004: return "QPL-1.0-INRIA-2004";
3885            case RDISC: return "Rdisc";
3886            case RHECOS_1_1: return "RHeCos-1.1";
3887            case RPL_1_1: return "RPL-1.1";
3888            case RPL_1_5: return "RPL-1.5";
3889            case RPSL_1_0: return "RPSL-1.0";
3890            case RSA_MD: return "RSA-MD";
3891            case RSCPL: return "RSCPL";
3892            case RUBY: return "Ruby";
3893            case SAX_PD: return "SAX-PD";
3894            case SAXPATH: return "Saxpath";
3895            case SCEA: return "SCEA";
3896            case SCHEMEREPORT: return "SchemeReport";
3897            case SENDMAIL: return "Sendmail";
3898            case SENDMAIL_8_23: return "Sendmail-8.23";
3899            case SGI_B_1_0: return "SGI-B-1.0";
3900            case SGI_B_1_1: return "SGI-B-1.1";
3901            case SGI_B_2_0: return "SGI-B-2.0";
3902            case SGP4: return "SGP4";
3903            case SHL_0_5: return "SHL-0.5";
3904            case SHL_0_51: return "SHL-0.51";
3905            case SIMPL_2_0: return "SimPL-2.0";
3906            case SISSL: return "SISSL";
3907            case SISSL_1_2: return "SISSL-1.2";
3908            case SLEEPYCAT: return "Sleepycat";
3909            case SMLNJ: return "SMLNJ";
3910            case SMPPL: return "SMPPL";
3911            case SNIA: return "SNIA";
3912            case SNPRINTF: return "snprintf";
3913            case SPENCER_86: return "Spencer-86";
3914            case SPENCER_94: return "Spencer-94";
3915            case SPENCER_99: return "Spencer-99";
3916            case SPL_1_0: return "SPL-1.0";
3917            case SSH_OPENSSH: return "SSH-OpenSSH";
3918            case SSH_SHORT: return "SSH-short";
3919            case SSPL_1_0: return "SSPL-1.0";
3920            case STANDARDML_NJ: return "StandardML-NJ";
3921            case SUGARCRM_1_1_3: return "SugarCRM-1.1.3";
3922            case SUNPRO: return "SunPro";
3923            case SWL: return "SWL";
3924            case SYMLINKS: return "Symlinks";
3925            case TAPR_OHL_1_0: return "TAPR-OHL-1.0";
3926            case TCL: return "TCL";
3927            case TCP_WRAPPERS: return "TCP-wrappers";
3928            case TERMREADKEY: return "TermReadKey";
3929            case TMATE: return "TMate";
3930            case TORQUE_1_1: return "TORQUE-1.1";
3931            case TOSL: return "TOSL";
3932            case TPDL: return "TPDL";
3933            case TPL_1_0: return "TPL-1.0";
3934            case TTWL: return "TTWL";
3935            case TU_BERLIN_1_0: return "TU-Berlin-1.0";
3936            case TU_BERLIN_2_0: return "TU-Berlin-2.0";
3937            case UCAR: return "UCAR";
3938            case UCL_1_0: return "UCL-1.0";
3939            case UNICODE_DFS_2015: return "Unicode-DFS-2015";
3940            case UNICODE_DFS_2016: return "Unicode-DFS-2016";
3941            case UNICODE_TOU: return "Unicode-TOU";
3942            case UNIXCRYPT: return "UnixCrypt";
3943            case UNLICENSE: return "Unlicense";
3944            case UPL_1_0: return "UPL-1.0";
3945            case VIM: return "Vim";
3946            case VOSTROM: return "VOSTROM";
3947            case VSL_1_0: return "VSL-1.0";
3948            case W3C: return "W3C";
3949            case W3C_19980720: return "W3C-19980720";
3950            case W3C_20150513: return "W3C-20150513";
3951            case W3M: return "w3m";
3952            case WATCOM_1_0: return "Watcom-1.0";
3953            case WIDGET_WORKSHOP: return "Widget-Workshop";
3954            case WSUIPA: return "Wsuipa";
3955            case WTFPL: return "WTFPL";
3956            case WXWINDOWS: return "wxWindows";
3957            case X11: return "X11";
3958            case X11_DISTRIBUTE_MODIFICATIONS_VARIANT: return "X11-distribute-modifications-variant";
3959            case XDEBUG_1_03: return "Xdebug-1.03";
3960            case XEROX: return "Xerox";
3961            case XFIG: return "Xfig";
3962            case XFREE86_1_1: return "XFree86-1.1";
3963            case XINETD: return "xinetd";
3964            case XLOCK: return "xlock";
3965            case XNET: return "Xnet";
3966            case XPP: return "xpp";
3967            case XSKAT: return "XSkat";
3968            case YPL_1_0: return "YPL-1.0";
3969            case YPL_1_1: return "YPL-1.1";
3970            case ZED: return "Zed";
3971            case ZEND_2_0: return "Zend-2.0";
3972            case ZIMBRA_1_3: return "Zimbra-1.3";
3973            case ZIMBRA_1_4: return "Zimbra-1.4";
3974            case ZLIB: return "Zlib";
3975            case ZLIB_ACKNOWLEDGEMENT: return "zlib-acknowledgement";
3976            case ZPL_1_1: return "ZPL-1.1";
3977            case ZPL_2_0: return "ZPL-2.0";
3978            case ZPL_2_1: return "ZPL-2.1";
3979            case NULL: return null;
3980            default: return "?";
3981          }
3982        }
3983        public String getSystem() {
3984          switch (this) {
3985            case _0BSD: return "http://hl7.org/fhir/spdx-license";
3986            case AAL: return "http://hl7.org/fhir/spdx-license";
3987            case ABSTYLES: return "http://hl7.org/fhir/spdx-license";
3988            case ADACORE_DOC: return "http://hl7.org/fhir/spdx-license";
3989            case ADOBE_2006: return "http://hl7.org/fhir/spdx-license";
3990            case ADOBE_GLYPH: return "http://hl7.org/fhir/spdx-license";
3991            case ADSL: return "http://hl7.org/fhir/spdx-license";
3992            case AFL_1_1: return "http://hl7.org/fhir/spdx-license";
3993            case AFL_1_2: return "http://hl7.org/fhir/spdx-license";
3994            case AFL_2_0: return "http://hl7.org/fhir/spdx-license";
3995            case AFL_2_1: return "http://hl7.org/fhir/spdx-license";
3996            case AFL_3_0: return "http://hl7.org/fhir/spdx-license";
3997            case AFMPARSE: return "http://hl7.org/fhir/spdx-license";
3998            case AGPL_1_0: return "http://hl7.org/fhir/spdx-license";
3999            case AGPL_1_0_ONLY: return "http://hl7.org/fhir/spdx-license";
4000            case AGPL_1_0_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4001            case AGPL_3_0: return "http://hl7.org/fhir/spdx-license";
4002            case AGPL_3_0_ONLY: return "http://hl7.org/fhir/spdx-license";
4003            case AGPL_3_0_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4004            case ALADDIN: return "http://hl7.org/fhir/spdx-license";
4005            case AMDPLPA: return "http://hl7.org/fhir/spdx-license";
4006            case AML: return "http://hl7.org/fhir/spdx-license";
4007            case AMPAS: return "http://hl7.org/fhir/spdx-license";
4008            case ANTLR_PD: return "http://hl7.org/fhir/spdx-license";
4009            case ANTLR_PD_FALLBACK: return "http://hl7.org/fhir/spdx-license";
4010            case APACHE_1_0: return "http://hl7.org/fhir/spdx-license";
4011            case APACHE_1_1: return "http://hl7.org/fhir/spdx-license";
4012            case APACHE_2_0: return "http://hl7.org/fhir/spdx-license";
4013            case APAFML: return "http://hl7.org/fhir/spdx-license";
4014            case APL_1_0: return "http://hl7.org/fhir/spdx-license";
4015            case APP_S2P: return "http://hl7.org/fhir/spdx-license";
4016            case APSL_1_0: return "http://hl7.org/fhir/spdx-license";
4017            case APSL_1_1: return "http://hl7.org/fhir/spdx-license";
4018            case APSL_1_2: return "http://hl7.org/fhir/spdx-license";
4019            case APSL_2_0: return "http://hl7.org/fhir/spdx-license";
4020            case ARPHIC_1999: return "http://hl7.org/fhir/spdx-license";
4021            case ARTISTIC_1_0: return "http://hl7.org/fhir/spdx-license";
4022            case ARTISTIC_1_0_CL8: return "http://hl7.org/fhir/spdx-license";
4023            case ARTISTIC_1_0_PERL: return "http://hl7.org/fhir/spdx-license";
4024            case ARTISTIC_2_0: return "http://hl7.org/fhir/spdx-license";
4025            case ASWF_DIGITAL_ASSETS_1_0: return "http://hl7.org/fhir/spdx-license";
4026            case ASWF_DIGITAL_ASSETS_1_1: return "http://hl7.org/fhir/spdx-license";
4027            case BAEKMUK: return "http://hl7.org/fhir/spdx-license";
4028            case BAHYPH: return "http://hl7.org/fhir/spdx-license";
4029            case BARR: return "http://hl7.org/fhir/spdx-license";
4030            case BEERWARE: return "http://hl7.org/fhir/spdx-license";
4031            case BITSTREAM_CHARTER: return "http://hl7.org/fhir/spdx-license";
4032            case BITSTREAM_VERA: return "http://hl7.org/fhir/spdx-license";
4033            case BITTORRENT_1_0: return "http://hl7.org/fhir/spdx-license";
4034            case BITTORRENT_1_1: return "http://hl7.org/fhir/spdx-license";
4035            case BLESSING: return "http://hl7.org/fhir/spdx-license";
4036            case BLUEOAK_1_0_0: return "http://hl7.org/fhir/spdx-license";
4037            case BOEHM_GC: return "http://hl7.org/fhir/spdx-license";
4038            case BORCEUX: return "http://hl7.org/fhir/spdx-license";
4039            case BRIAN_GLADMAN_3_CLAUSE: return "http://hl7.org/fhir/spdx-license";
4040            case BSD_1_CLAUSE: return "http://hl7.org/fhir/spdx-license";
4041            case BSD_2_CLAUSE: return "http://hl7.org/fhir/spdx-license";
4042            case BSD_2_CLAUSE_FREEBSD: return "http://hl7.org/fhir/spdx-license";
4043            case BSD_2_CLAUSE_NETBSD: return "http://hl7.org/fhir/spdx-license";
4044            case BSD_2_CLAUSE_PATENT: return "http://hl7.org/fhir/spdx-license";
4045            case BSD_2_CLAUSE_VIEWS: return "http://hl7.org/fhir/spdx-license";
4046            case BSD_3_CLAUSE: return "http://hl7.org/fhir/spdx-license";
4047            case BSD_3_CLAUSE_ATTRIBUTION: return "http://hl7.org/fhir/spdx-license";
4048            case BSD_3_CLAUSE_CLEAR: return "http://hl7.org/fhir/spdx-license";
4049            case BSD_3_CLAUSE_LBNL: return "http://hl7.org/fhir/spdx-license";
4050            case BSD_3_CLAUSE_MODIFICATION: return "http://hl7.org/fhir/spdx-license";
4051            case BSD_3_CLAUSE_NO_MILITARY_LICENSE: return "http://hl7.org/fhir/spdx-license";
4052            case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE: return "http://hl7.org/fhir/spdx-license";
4053            case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014: return "http://hl7.org/fhir/spdx-license";
4054            case BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY: return "http://hl7.org/fhir/spdx-license";
4055            case BSD_3_CLAUSE_OPEN_MPI: return "http://hl7.org/fhir/spdx-license";
4056            case BSD_4_CLAUSE: return "http://hl7.org/fhir/spdx-license";
4057            case BSD_4_CLAUSE_SHORTENED: return "http://hl7.org/fhir/spdx-license";
4058            case BSD_4_CLAUSE_UC: return "http://hl7.org/fhir/spdx-license";
4059            case BSD_4_3RENO: return "http://hl7.org/fhir/spdx-license";
4060            case BSD_4_3TAHOE: return "http://hl7.org/fhir/spdx-license";
4061            case BSD_ADVERTISING_ACKNOWLEDGEMENT: return "http://hl7.org/fhir/spdx-license";
4062            case BSD_ATTRIBUTION_HPND_DISCLAIMER: return "http://hl7.org/fhir/spdx-license";
4063            case BSD_PROTECTION: return "http://hl7.org/fhir/spdx-license";
4064            case BSD_SOURCE_CODE: return "http://hl7.org/fhir/spdx-license";
4065            case BSL_1_0: return "http://hl7.org/fhir/spdx-license";
4066            case BUSL_1_1: return "http://hl7.org/fhir/spdx-license";
4067            case BZIP2_1_0_5: return "http://hl7.org/fhir/spdx-license";
4068            case BZIP2_1_0_6: return "http://hl7.org/fhir/spdx-license";
4069            case C_UDA_1_0: return "http://hl7.org/fhir/spdx-license";
4070            case CAL_1_0: return "http://hl7.org/fhir/spdx-license";
4071            case CAL_1_0_COMBINED_WORK_EXCEPTION: return "http://hl7.org/fhir/spdx-license";
4072            case CALDERA: return "http://hl7.org/fhir/spdx-license";
4073            case CATOSL_1_1: return "http://hl7.org/fhir/spdx-license";
4074            case CC_BY_1_0: return "http://hl7.org/fhir/spdx-license";
4075            case CC_BY_2_0: return "http://hl7.org/fhir/spdx-license";
4076            case CC_BY_2_5: return "http://hl7.org/fhir/spdx-license";
4077            case CC_BY_2_5_AU: return "http://hl7.org/fhir/spdx-license";
4078            case CC_BY_3_0: return "http://hl7.org/fhir/spdx-license";
4079            case CC_BY_3_0_AT: return "http://hl7.org/fhir/spdx-license";
4080            case CC_BY_3_0_DE: return "http://hl7.org/fhir/spdx-license";
4081            case CC_BY_3_0_IGO: return "http://hl7.org/fhir/spdx-license";
4082            case CC_BY_3_0_NL: return "http://hl7.org/fhir/spdx-license";
4083            case CC_BY_3_0_US: return "http://hl7.org/fhir/spdx-license";
4084            case CC_BY_4_0: return "http://hl7.org/fhir/spdx-license";
4085            case CC_BY_NC_1_0: return "http://hl7.org/fhir/spdx-license";
4086            case CC_BY_NC_2_0: return "http://hl7.org/fhir/spdx-license";
4087            case CC_BY_NC_2_5: return "http://hl7.org/fhir/spdx-license";
4088            case CC_BY_NC_3_0: return "http://hl7.org/fhir/spdx-license";
4089            case CC_BY_NC_3_0_DE: return "http://hl7.org/fhir/spdx-license";
4090            case CC_BY_NC_4_0: return "http://hl7.org/fhir/spdx-license";
4091            case CC_BY_NC_ND_1_0: return "http://hl7.org/fhir/spdx-license";
4092            case CC_BY_NC_ND_2_0: return "http://hl7.org/fhir/spdx-license";
4093            case CC_BY_NC_ND_2_5: return "http://hl7.org/fhir/spdx-license";
4094            case CC_BY_NC_ND_3_0: return "http://hl7.org/fhir/spdx-license";
4095            case CC_BY_NC_ND_3_0_DE: return "http://hl7.org/fhir/spdx-license";
4096            case CC_BY_NC_ND_3_0_IGO: return "http://hl7.org/fhir/spdx-license";
4097            case CC_BY_NC_ND_4_0: return "http://hl7.org/fhir/spdx-license";
4098            case CC_BY_NC_SA_1_0: return "http://hl7.org/fhir/spdx-license";
4099            case CC_BY_NC_SA_2_0: return "http://hl7.org/fhir/spdx-license";
4100            case CC_BY_NC_SA_2_0_DE: return "http://hl7.org/fhir/spdx-license";
4101            case CC_BY_NC_SA_2_0_FR: return "http://hl7.org/fhir/spdx-license";
4102            case CC_BY_NC_SA_2_0_UK: return "http://hl7.org/fhir/spdx-license";
4103            case CC_BY_NC_SA_2_5: return "http://hl7.org/fhir/spdx-license";
4104            case CC_BY_NC_SA_3_0: return "http://hl7.org/fhir/spdx-license";
4105            case CC_BY_NC_SA_3_0_DE: return "http://hl7.org/fhir/spdx-license";
4106            case CC_BY_NC_SA_3_0_IGO: return "http://hl7.org/fhir/spdx-license";
4107            case CC_BY_NC_SA_4_0: return "http://hl7.org/fhir/spdx-license";
4108            case CC_BY_ND_1_0: return "http://hl7.org/fhir/spdx-license";
4109            case CC_BY_ND_2_0: return "http://hl7.org/fhir/spdx-license";
4110            case CC_BY_ND_2_5: return "http://hl7.org/fhir/spdx-license";
4111            case CC_BY_ND_3_0: return "http://hl7.org/fhir/spdx-license";
4112            case CC_BY_ND_3_0_DE: return "http://hl7.org/fhir/spdx-license";
4113            case CC_BY_ND_4_0: return "http://hl7.org/fhir/spdx-license";
4114            case CC_BY_SA_1_0: return "http://hl7.org/fhir/spdx-license";
4115            case CC_BY_SA_2_0: return "http://hl7.org/fhir/spdx-license";
4116            case CC_BY_SA_2_0_UK: return "http://hl7.org/fhir/spdx-license";
4117            case CC_BY_SA_2_1_JP: return "http://hl7.org/fhir/spdx-license";
4118            case CC_BY_SA_2_5: return "http://hl7.org/fhir/spdx-license";
4119            case CC_BY_SA_3_0: return "http://hl7.org/fhir/spdx-license";
4120            case CC_BY_SA_3_0_AT: return "http://hl7.org/fhir/spdx-license";
4121            case CC_BY_SA_3_0_DE: return "http://hl7.org/fhir/spdx-license";
4122            case CC_BY_SA_3_0_IGO: return "http://hl7.org/fhir/spdx-license";
4123            case CC_BY_SA_4_0: return "http://hl7.org/fhir/spdx-license";
4124            case CC_PDDC: return "http://hl7.org/fhir/spdx-license";
4125            case CC0_1_0: return "http://hl7.org/fhir/spdx-license";
4126            case CDDL_1_0: return "http://hl7.org/fhir/spdx-license";
4127            case CDDL_1_1: return "http://hl7.org/fhir/spdx-license";
4128            case CDL_1_0: return "http://hl7.org/fhir/spdx-license";
4129            case CDLA_PERMISSIVE_1_0: return "http://hl7.org/fhir/spdx-license";
4130            case CDLA_PERMISSIVE_2_0: return "http://hl7.org/fhir/spdx-license";
4131            case CDLA_SHARING_1_0: return "http://hl7.org/fhir/spdx-license";
4132            case CECILL_1_0: return "http://hl7.org/fhir/spdx-license";
4133            case CECILL_1_1: return "http://hl7.org/fhir/spdx-license";
4134            case CECILL_2_0: return "http://hl7.org/fhir/spdx-license";
4135            case CECILL_2_1: return "http://hl7.org/fhir/spdx-license";
4136            case CECILL_B: return "http://hl7.org/fhir/spdx-license";
4137            case CECILL_C: return "http://hl7.org/fhir/spdx-license";
4138            case CERN_OHL_1_1: return "http://hl7.org/fhir/spdx-license";
4139            case CERN_OHL_1_2: return "http://hl7.org/fhir/spdx-license";
4140            case CERN_OHL_P_2_0: return "http://hl7.org/fhir/spdx-license";
4141            case CERN_OHL_S_2_0: return "http://hl7.org/fhir/spdx-license";
4142            case CERN_OHL_W_2_0: return "http://hl7.org/fhir/spdx-license";
4143            case CFITSIO: return "http://hl7.org/fhir/spdx-license";
4144            case CHECKMK: return "http://hl7.org/fhir/spdx-license";
4145            case CLARTISTIC: return "http://hl7.org/fhir/spdx-license";
4146            case CLIPS: return "http://hl7.org/fhir/spdx-license";
4147            case CMU_MACH: return "http://hl7.org/fhir/spdx-license";
4148            case CNRI_JYTHON: return "http://hl7.org/fhir/spdx-license";
4149            case CNRI_PYTHON: return "http://hl7.org/fhir/spdx-license";
4150            case CNRI_PYTHON_GPL_COMPATIBLE: return "http://hl7.org/fhir/spdx-license";
4151            case COIL_1_0: return "http://hl7.org/fhir/spdx-license";
4152            case COMMUNITY_SPEC_1_0: return "http://hl7.org/fhir/spdx-license";
4153            case CONDOR_1_1: return "http://hl7.org/fhir/spdx-license";
4154            case COPYLEFT_NEXT_0_3_0: return "http://hl7.org/fhir/spdx-license";
4155            case COPYLEFT_NEXT_0_3_1: return "http://hl7.org/fhir/spdx-license";
4156            case CORNELL_LOSSLESS_JPEG: return "http://hl7.org/fhir/spdx-license";
4157            case CPAL_1_0: return "http://hl7.org/fhir/spdx-license";
4158            case CPL_1_0: return "http://hl7.org/fhir/spdx-license";
4159            case CPOL_1_02: return "http://hl7.org/fhir/spdx-license";
4160            case CROSSWORD: return "http://hl7.org/fhir/spdx-license";
4161            case CRYSTALSTACKER: return "http://hl7.org/fhir/spdx-license";
4162            case CUA_OPL_1_0: return "http://hl7.org/fhir/spdx-license";
4163            case CUBE: return "http://hl7.org/fhir/spdx-license";
4164            case CURL: return "http://hl7.org/fhir/spdx-license";
4165            case D_FSL_1_0: return "http://hl7.org/fhir/spdx-license";
4166            case DIFFMARK: return "http://hl7.org/fhir/spdx-license";
4167            case DL_DE_BY_2_0: return "http://hl7.org/fhir/spdx-license";
4168            case DOC: return "http://hl7.org/fhir/spdx-license";
4169            case DOTSEQN: return "http://hl7.org/fhir/spdx-license";
4170            case DRL_1_0: return "http://hl7.org/fhir/spdx-license";
4171            case DSDP: return "http://hl7.org/fhir/spdx-license";
4172            case DTOA: return "http://hl7.org/fhir/spdx-license";
4173            case DVIPDFM: return "http://hl7.org/fhir/spdx-license";
4174            case ECL_1_0: return "http://hl7.org/fhir/spdx-license";
4175            case ECL_2_0: return "http://hl7.org/fhir/spdx-license";
4176            case ECOS_2_0: return "http://hl7.org/fhir/spdx-license";
4177            case EFL_1_0: return "http://hl7.org/fhir/spdx-license";
4178            case EFL_2_0: return "http://hl7.org/fhir/spdx-license";
4179            case EGENIX: return "http://hl7.org/fhir/spdx-license";
4180            case ELASTIC_2_0: return "http://hl7.org/fhir/spdx-license";
4181            case ENTESSA: return "http://hl7.org/fhir/spdx-license";
4182            case EPICS: return "http://hl7.org/fhir/spdx-license";
4183            case EPL_1_0: return "http://hl7.org/fhir/spdx-license";
4184            case EPL_2_0: return "http://hl7.org/fhir/spdx-license";
4185            case ERLPL_1_1: return "http://hl7.org/fhir/spdx-license";
4186            case ETALAB_2_0: return "http://hl7.org/fhir/spdx-license";
4187            case EUDATAGRID: return "http://hl7.org/fhir/spdx-license";
4188            case EUPL_1_0: return "http://hl7.org/fhir/spdx-license";
4189            case EUPL_1_1: return "http://hl7.org/fhir/spdx-license";
4190            case EUPL_1_2: return "http://hl7.org/fhir/spdx-license";
4191            case EUROSYM: return "http://hl7.org/fhir/spdx-license";
4192            case FAIR: return "http://hl7.org/fhir/spdx-license";
4193            case FDK_AAC: return "http://hl7.org/fhir/spdx-license";
4194            case FRAMEWORX_1_0: return "http://hl7.org/fhir/spdx-license";
4195            case FREEBSD_DOC: return "http://hl7.org/fhir/spdx-license";
4196            case FREEIMAGE: return "http://hl7.org/fhir/spdx-license";
4197            case FSFAP: return "http://hl7.org/fhir/spdx-license";
4198            case FSFUL: return "http://hl7.org/fhir/spdx-license";
4199            case FSFULLR: return "http://hl7.org/fhir/spdx-license";
4200            case FSFULLRWD: return "http://hl7.org/fhir/spdx-license";
4201            case FTL: return "http://hl7.org/fhir/spdx-license";
4202            case GD: return "http://hl7.org/fhir/spdx-license";
4203            case GFDL_1_1: return "http://hl7.org/fhir/spdx-license";
4204            case GFDL_1_1_INVARIANTS_ONLY: return "http://hl7.org/fhir/spdx-license";
4205            case GFDL_1_1_INVARIANTS_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4206            case GFDL_1_1_NO_INVARIANTS_ONLY: return "http://hl7.org/fhir/spdx-license";
4207            case GFDL_1_1_NO_INVARIANTS_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4208            case GFDL_1_1_ONLY: return "http://hl7.org/fhir/spdx-license";
4209            case GFDL_1_1_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4210            case GFDL_1_2: return "http://hl7.org/fhir/spdx-license";
4211            case GFDL_1_2_INVARIANTS_ONLY: return "http://hl7.org/fhir/spdx-license";
4212            case GFDL_1_2_INVARIANTS_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4213            case GFDL_1_2_NO_INVARIANTS_ONLY: return "http://hl7.org/fhir/spdx-license";
4214            case GFDL_1_2_NO_INVARIANTS_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4215            case GFDL_1_2_ONLY: return "http://hl7.org/fhir/spdx-license";
4216            case GFDL_1_2_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4217            case GFDL_1_3: return "http://hl7.org/fhir/spdx-license";
4218            case GFDL_1_3_INVARIANTS_ONLY: return "http://hl7.org/fhir/spdx-license";
4219            case GFDL_1_3_INVARIANTS_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4220            case GFDL_1_3_NO_INVARIANTS_ONLY: return "http://hl7.org/fhir/spdx-license";
4221            case GFDL_1_3_NO_INVARIANTS_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4222            case GFDL_1_3_ONLY: return "http://hl7.org/fhir/spdx-license";
4223            case GFDL_1_3_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4224            case GIFTWARE: return "http://hl7.org/fhir/spdx-license";
4225            case GL2PS: return "http://hl7.org/fhir/spdx-license";
4226            case GLIDE: return "http://hl7.org/fhir/spdx-license";
4227            case GLULXE: return "http://hl7.org/fhir/spdx-license";
4228            case GLWTPL: return "http://hl7.org/fhir/spdx-license";
4229            case GNUPLOT: return "http://hl7.org/fhir/spdx-license";
4230            case GPL_1_0: return "http://hl7.org/fhir/spdx-license";
4231            case GPL_1_0PLUS: return "http://hl7.org/fhir/spdx-license";
4232            case GPL_1_0_ONLY: return "http://hl7.org/fhir/spdx-license";
4233            case GPL_1_0_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4234            case GPL_2_0: return "http://hl7.org/fhir/spdx-license";
4235            case GPL_2_0PLUS: return "http://hl7.org/fhir/spdx-license";
4236            case GPL_2_0_ONLY: return "http://hl7.org/fhir/spdx-license";
4237            case GPL_2_0_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4238            case GPL_2_0_WITH_AUTOCONF_EXCEPTION: return "http://hl7.org/fhir/spdx-license";
4239            case GPL_2_0_WITH_BISON_EXCEPTION: return "http://hl7.org/fhir/spdx-license";
4240            case GPL_2_0_WITH_CLASSPATH_EXCEPTION: return "http://hl7.org/fhir/spdx-license";
4241            case GPL_2_0_WITH_FONT_EXCEPTION: return "http://hl7.org/fhir/spdx-license";
4242            case GPL_2_0_WITH_GCC_EXCEPTION: return "http://hl7.org/fhir/spdx-license";
4243            case GPL_3_0: return "http://hl7.org/fhir/spdx-license";
4244            case GPL_3_0PLUS: return "http://hl7.org/fhir/spdx-license";
4245            case GPL_3_0_ONLY: return "http://hl7.org/fhir/spdx-license";
4246            case GPL_3_0_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4247            case GPL_3_0_WITH_AUTOCONF_EXCEPTION: return "http://hl7.org/fhir/spdx-license";
4248            case GPL_3_0_WITH_GCC_EXCEPTION: return "http://hl7.org/fhir/spdx-license";
4249            case GRAPHICS_GEMS: return "http://hl7.org/fhir/spdx-license";
4250            case GSOAP_1_3B: return "http://hl7.org/fhir/spdx-license";
4251            case HASKELLREPORT: return "http://hl7.org/fhir/spdx-license";
4252            case HIPPOCRATIC_2_1: return "http://hl7.org/fhir/spdx-license";
4253            case HP_1986: return "http://hl7.org/fhir/spdx-license";
4254            case HPND: return "http://hl7.org/fhir/spdx-license";
4255            case HPND_EXPORT_US: return "http://hl7.org/fhir/spdx-license";
4256            case HPND_MARKUS_KUHN: return "http://hl7.org/fhir/spdx-license";
4257            case HPND_SELL_VARIANT: return "http://hl7.org/fhir/spdx-license";
4258            case HPND_SELL_VARIANT_MIT_DISCLAIMER: return "http://hl7.org/fhir/spdx-license";
4259            case HTMLTIDY: return "http://hl7.org/fhir/spdx-license";
4260            case IBM_PIBS: return "http://hl7.org/fhir/spdx-license";
4261            case ICU: return "http://hl7.org/fhir/spdx-license";
4262            case IEC_CODE_COMPONENTS_EULA: return "http://hl7.org/fhir/spdx-license";
4263            case IJG: return "http://hl7.org/fhir/spdx-license";
4264            case IJG_SHORT: return "http://hl7.org/fhir/spdx-license";
4265            case IMAGEMAGICK: return "http://hl7.org/fhir/spdx-license";
4266            case IMATIX: return "http://hl7.org/fhir/spdx-license";
4267            case IMLIB2: return "http://hl7.org/fhir/spdx-license";
4268            case INFO_ZIP: return "http://hl7.org/fhir/spdx-license";
4269            case INNER_NET_2_0: return "http://hl7.org/fhir/spdx-license";
4270            case INTEL: return "http://hl7.org/fhir/spdx-license";
4271            case INTEL_ACPI: return "http://hl7.org/fhir/spdx-license";
4272            case INTERBASE_1_0: return "http://hl7.org/fhir/spdx-license";
4273            case IPA: return "http://hl7.org/fhir/spdx-license";
4274            case IPL_1_0: return "http://hl7.org/fhir/spdx-license";
4275            case ISC: return "http://hl7.org/fhir/spdx-license";
4276            case JAM: return "http://hl7.org/fhir/spdx-license";
4277            case JASPER_2_0: return "http://hl7.org/fhir/spdx-license";
4278            case JPL_IMAGE: return "http://hl7.org/fhir/spdx-license";
4279            case JPNIC: return "http://hl7.org/fhir/spdx-license";
4280            case JSON: return "http://hl7.org/fhir/spdx-license";
4281            case KAZLIB: return "http://hl7.org/fhir/spdx-license";
4282            case KNUTH_CTAN: return "http://hl7.org/fhir/spdx-license";
4283            case LAL_1_2: return "http://hl7.org/fhir/spdx-license";
4284            case LAL_1_3: return "http://hl7.org/fhir/spdx-license";
4285            case LATEX2E: return "http://hl7.org/fhir/spdx-license";
4286            case LATEX2E_TRANSLATED_NOTICE: return "http://hl7.org/fhir/spdx-license";
4287            case LEPTONICA: return "http://hl7.org/fhir/spdx-license";
4288            case LGPL_2_0: return "http://hl7.org/fhir/spdx-license";
4289            case LGPL_2_0PLUS: return "http://hl7.org/fhir/spdx-license";
4290            case LGPL_2_0_ONLY: return "http://hl7.org/fhir/spdx-license";
4291            case LGPL_2_0_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4292            case LGPL_2_1: return "http://hl7.org/fhir/spdx-license";
4293            case LGPL_2_1PLUS: return "http://hl7.org/fhir/spdx-license";
4294            case LGPL_2_1_ONLY: return "http://hl7.org/fhir/spdx-license";
4295            case LGPL_2_1_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4296            case LGPL_3_0: return "http://hl7.org/fhir/spdx-license";
4297            case LGPL_3_0PLUS: return "http://hl7.org/fhir/spdx-license";
4298            case LGPL_3_0_ONLY: return "http://hl7.org/fhir/spdx-license";
4299            case LGPL_3_0_OR_LATER: return "http://hl7.org/fhir/spdx-license";
4300            case LGPLLR: return "http://hl7.org/fhir/spdx-license";
4301            case LIBPNG: return "http://hl7.org/fhir/spdx-license";
4302            case LIBPNG_2_0: return "http://hl7.org/fhir/spdx-license";
4303            case LIBSELINUX_1_0: return "http://hl7.org/fhir/spdx-license";
4304            case LIBTIFF: return "http://hl7.org/fhir/spdx-license";
4305            case LIBUTIL_DAVID_NUGENT: return "http://hl7.org/fhir/spdx-license";
4306            case LILIQ_P_1_1: return "http://hl7.org/fhir/spdx-license";
4307            case LILIQ_R_1_1: return "http://hl7.org/fhir/spdx-license";
4308            case LILIQ_RPLUS_1_1: return "http://hl7.org/fhir/spdx-license";
4309            case LINUX_MAN_PAGES_1_PARA: return "http://hl7.org/fhir/spdx-license";
4310            case LINUX_MAN_PAGES_COPYLEFT: return "http://hl7.org/fhir/spdx-license";
4311            case LINUX_MAN_PAGES_COPYLEFT_2_PARA: return "http://hl7.org/fhir/spdx-license";
4312            case LINUX_MAN_PAGES_COPYLEFT_VAR: return "http://hl7.org/fhir/spdx-license";
4313            case LINUX_OPENIB: return "http://hl7.org/fhir/spdx-license";
4314            case LOOP: return "http://hl7.org/fhir/spdx-license";
4315            case LPL_1_0: return "http://hl7.org/fhir/spdx-license";
4316            case LPL_1_02: return "http://hl7.org/fhir/spdx-license";
4317            case LPPL_1_0: return "http://hl7.org/fhir/spdx-license";
4318            case LPPL_1_1: return "http://hl7.org/fhir/spdx-license";
4319            case LPPL_1_2: return "http://hl7.org/fhir/spdx-license";
4320            case LPPL_1_3A: return "http://hl7.org/fhir/spdx-license";
4321            case LPPL_1_3C: return "http://hl7.org/fhir/spdx-license";
4322            case LZMA_SDK_9_11_TO_9_20: return "http://hl7.org/fhir/spdx-license";
4323            case LZMA_SDK_9_22: return "http://hl7.org/fhir/spdx-license";
4324            case MAKEINDEX: return "http://hl7.org/fhir/spdx-license";
4325            case MARTIN_BIRGMEIER: return "http://hl7.org/fhir/spdx-license";
4326            case METAMAIL: return "http://hl7.org/fhir/spdx-license";
4327            case MINPACK: return "http://hl7.org/fhir/spdx-license";
4328            case MIROS: return "http://hl7.org/fhir/spdx-license";
4329            case MIT: return "http://hl7.org/fhir/spdx-license";
4330            case MIT_0: return "http://hl7.org/fhir/spdx-license";
4331            case MIT_ADVERTISING: return "http://hl7.org/fhir/spdx-license";
4332            case MIT_CMU: return "http://hl7.org/fhir/spdx-license";
4333            case MIT_ENNA: return "http://hl7.org/fhir/spdx-license";
4334            case MIT_FEH: return "http://hl7.org/fhir/spdx-license";
4335            case MIT_FESTIVAL: return "http://hl7.org/fhir/spdx-license";
4336            case MIT_MODERN_VARIANT: return "http://hl7.org/fhir/spdx-license";
4337            case MIT_OPEN_GROUP: return "http://hl7.org/fhir/spdx-license";
4338            case MIT_WU: return "http://hl7.org/fhir/spdx-license";
4339            case MITNFA: return "http://hl7.org/fhir/spdx-license";
4340            case MOTOSOTO: return "http://hl7.org/fhir/spdx-license";
4341            case MPI_PERMISSIVE: return "http://hl7.org/fhir/spdx-license";
4342            case MPICH2: return "http://hl7.org/fhir/spdx-license";
4343            case MPL_1_0: return "http://hl7.org/fhir/spdx-license";
4344            case MPL_1_1: return "http://hl7.org/fhir/spdx-license";
4345            case MPL_2_0: return "http://hl7.org/fhir/spdx-license";
4346            case MPL_2_0_NO_COPYLEFT_EXCEPTION: return "http://hl7.org/fhir/spdx-license";
4347            case MPLUS: return "http://hl7.org/fhir/spdx-license";
4348            case MS_LPL: return "http://hl7.org/fhir/spdx-license";
4349            case MS_PL: return "http://hl7.org/fhir/spdx-license";
4350            case MS_RL: return "http://hl7.org/fhir/spdx-license";
4351            case MTLL: return "http://hl7.org/fhir/spdx-license";
4352            case MULANPSL_1_0: return "http://hl7.org/fhir/spdx-license";
4353            case MULANPSL_2_0: return "http://hl7.org/fhir/spdx-license";
4354            case MULTICS: return "http://hl7.org/fhir/spdx-license";
4355            case MUP: return "http://hl7.org/fhir/spdx-license";
4356            case NAIST_2003: return "http://hl7.org/fhir/spdx-license";
4357            case NASA_1_3: return "http://hl7.org/fhir/spdx-license";
4358            case NAUMEN: return "http://hl7.org/fhir/spdx-license";
4359            case NBPL_1_0: return "http://hl7.org/fhir/spdx-license";
4360            case NCGL_UK_2_0: return "http://hl7.org/fhir/spdx-license";
4361            case NCSA: return "http://hl7.org/fhir/spdx-license";
4362            case NET_SNMP: return "http://hl7.org/fhir/spdx-license";
4363            case NETCDF: return "http://hl7.org/fhir/spdx-license";
4364            case NEWSLETR: return "http://hl7.org/fhir/spdx-license";
4365            case NGPL: return "http://hl7.org/fhir/spdx-license";
4366            case NICTA_1_0: return "http://hl7.org/fhir/spdx-license";
4367            case NIST_PD: return "http://hl7.org/fhir/spdx-license";
4368            case NIST_PD_FALLBACK: return "http://hl7.org/fhir/spdx-license";
4369            case NIST_SOFTWARE: return "http://hl7.org/fhir/spdx-license";
4370            case NLOD_1_0: return "http://hl7.org/fhir/spdx-license";
4371            case NLOD_2_0: return "http://hl7.org/fhir/spdx-license";
4372            case NLPL: return "http://hl7.org/fhir/spdx-license";
4373            case NOKIA: return "http://hl7.org/fhir/spdx-license";
4374            case NOSL: return "http://hl7.org/fhir/spdx-license";
4375            case NOT_OPEN_SOURCE: return "http://hl7.org/fhir/spdx-license";
4376            case NOWEB: return "http://hl7.org/fhir/spdx-license";
4377            case NPL_1_0: return "http://hl7.org/fhir/spdx-license";
4378            case NPL_1_1: return "http://hl7.org/fhir/spdx-license";
4379            case NPOSL_3_0: return "http://hl7.org/fhir/spdx-license";
4380            case NRL: return "http://hl7.org/fhir/spdx-license";
4381            case NTP: return "http://hl7.org/fhir/spdx-license";
4382            case NTP_0: return "http://hl7.org/fhir/spdx-license";
4383            case NUNIT: return "http://hl7.org/fhir/spdx-license";
4384            case O_UDA_1_0: return "http://hl7.org/fhir/spdx-license";
4385            case OCCT_PL: return "http://hl7.org/fhir/spdx-license";
4386            case OCLC_2_0: return "http://hl7.org/fhir/spdx-license";
4387            case ODBL_1_0: return "http://hl7.org/fhir/spdx-license";
4388            case ODC_BY_1_0: return "http://hl7.org/fhir/spdx-license";
4389            case OFFIS: return "http://hl7.org/fhir/spdx-license";
4390            case OFL_1_0: return "http://hl7.org/fhir/spdx-license";
4391            case OFL_1_0_NO_RFN: return "http://hl7.org/fhir/spdx-license";
4392            case OFL_1_0_RFN: return "http://hl7.org/fhir/spdx-license";
4393            case OFL_1_1: return "http://hl7.org/fhir/spdx-license";
4394            case OFL_1_1_NO_RFN: return "http://hl7.org/fhir/spdx-license";
4395            case OFL_1_1_RFN: return "http://hl7.org/fhir/spdx-license";
4396            case OGC_1_0: return "http://hl7.org/fhir/spdx-license";
4397            case OGDL_TAIWAN_1_0: return "http://hl7.org/fhir/spdx-license";
4398            case OGL_CANADA_2_0: return "http://hl7.org/fhir/spdx-license";
4399            case OGL_UK_1_0: return "http://hl7.org/fhir/spdx-license";
4400            case OGL_UK_2_0: return "http://hl7.org/fhir/spdx-license";
4401            case OGL_UK_3_0: return "http://hl7.org/fhir/spdx-license";
4402            case OGTSL: return "http://hl7.org/fhir/spdx-license";
4403            case OLDAP_1_1: return "http://hl7.org/fhir/spdx-license";
4404            case OLDAP_1_2: return "http://hl7.org/fhir/spdx-license";
4405            case OLDAP_1_3: return "http://hl7.org/fhir/spdx-license";
4406            case OLDAP_1_4: return "http://hl7.org/fhir/spdx-license";
4407            case OLDAP_2_0: return "http://hl7.org/fhir/spdx-license";
4408            case OLDAP_2_0_1: return "http://hl7.org/fhir/spdx-license";
4409            case OLDAP_2_1: return "http://hl7.org/fhir/spdx-license";
4410            case OLDAP_2_2: return "http://hl7.org/fhir/spdx-license";
4411            case OLDAP_2_2_1: return "http://hl7.org/fhir/spdx-license";
4412            case OLDAP_2_2_2: return "http://hl7.org/fhir/spdx-license";
4413            case OLDAP_2_3: return "http://hl7.org/fhir/spdx-license";
4414            case OLDAP_2_4: return "http://hl7.org/fhir/spdx-license";
4415            case OLDAP_2_5: return "http://hl7.org/fhir/spdx-license";
4416            case OLDAP_2_6: return "http://hl7.org/fhir/spdx-license";
4417            case OLDAP_2_7: return "http://hl7.org/fhir/spdx-license";
4418            case OLDAP_2_8: return "http://hl7.org/fhir/spdx-license";
4419            case OLFL_1_3: return "http://hl7.org/fhir/spdx-license";
4420            case OML: return "http://hl7.org/fhir/spdx-license";
4421            case OPENPBS_2_3: return "http://hl7.org/fhir/spdx-license";
4422            case OPENSSL: return "http://hl7.org/fhir/spdx-license";
4423            case OPL_1_0: return "http://hl7.org/fhir/spdx-license";
4424            case OPL_UK_3_0: return "http://hl7.org/fhir/spdx-license";
4425            case OPUBL_1_0: return "http://hl7.org/fhir/spdx-license";
4426            case OSET_PL_2_1: return "http://hl7.org/fhir/spdx-license";
4427            case OSL_1_0: return "http://hl7.org/fhir/spdx-license";
4428            case OSL_1_1: return "http://hl7.org/fhir/spdx-license";
4429            case OSL_2_0: return "http://hl7.org/fhir/spdx-license";
4430            case OSL_2_1: return "http://hl7.org/fhir/spdx-license";
4431            case OSL_3_0: return "http://hl7.org/fhir/spdx-license";
4432            case PARITY_6_0_0: return "http://hl7.org/fhir/spdx-license";
4433            case PARITY_7_0_0: return "http://hl7.org/fhir/spdx-license";
4434            case PDDL_1_0: return "http://hl7.org/fhir/spdx-license";
4435            case PHP_3_0: return "http://hl7.org/fhir/spdx-license";
4436            case PHP_3_01: return "http://hl7.org/fhir/spdx-license";
4437            case PLEXUS: return "http://hl7.org/fhir/spdx-license";
4438            case POLYFORM_NONCOMMERCIAL_1_0_0: return "http://hl7.org/fhir/spdx-license";
4439            case POLYFORM_SMALL_BUSINESS_1_0_0: return "http://hl7.org/fhir/spdx-license";
4440            case POSTGRESQL: return "http://hl7.org/fhir/spdx-license";
4441            case PSF_2_0: return "http://hl7.org/fhir/spdx-license";
4442            case PSFRAG: return "http://hl7.org/fhir/spdx-license";
4443            case PSUTILS: return "http://hl7.org/fhir/spdx-license";
4444            case PYTHON_2_0: return "http://hl7.org/fhir/spdx-license";
4445            case PYTHON_2_0_1: return "http://hl7.org/fhir/spdx-license";
4446            case QHULL: return "http://hl7.org/fhir/spdx-license";
4447            case QPL_1_0: return "http://hl7.org/fhir/spdx-license";
4448            case QPL_1_0_INRIA_2004: return "http://hl7.org/fhir/spdx-license";
4449            case RDISC: return "http://hl7.org/fhir/spdx-license";
4450            case RHECOS_1_1: return "http://hl7.org/fhir/spdx-license";
4451            case RPL_1_1: return "http://hl7.org/fhir/spdx-license";
4452            case RPL_1_5: return "http://hl7.org/fhir/spdx-license";
4453            case RPSL_1_0: return "http://hl7.org/fhir/spdx-license";
4454            case RSA_MD: return "http://hl7.org/fhir/spdx-license";
4455            case RSCPL: return "http://hl7.org/fhir/spdx-license";
4456            case RUBY: return "http://hl7.org/fhir/spdx-license";
4457            case SAX_PD: return "http://hl7.org/fhir/spdx-license";
4458            case SAXPATH: return "http://hl7.org/fhir/spdx-license";
4459            case SCEA: return "http://hl7.org/fhir/spdx-license";
4460            case SCHEMEREPORT: return "http://hl7.org/fhir/spdx-license";
4461            case SENDMAIL: return "http://hl7.org/fhir/spdx-license";
4462            case SENDMAIL_8_23: return "http://hl7.org/fhir/spdx-license";
4463            case SGI_B_1_0: return "http://hl7.org/fhir/spdx-license";
4464            case SGI_B_1_1: return "http://hl7.org/fhir/spdx-license";
4465            case SGI_B_2_0: return "http://hl7.org/fhir/spdx-license";
4466            case SGP4: return "http://hl7.org/fhir/spdx-license";
4467            case SHL_0_5: return "http://hl7.org/fhir/spdx-license";
4468            case SHL_0_51: return "http://hl7.org/fhir/spdx-license";
4469            case SIMPL_2_0: return "http://hl7.org/fhir/spdx-license";
4470            case SISSL: return "http://hl7.org/fhir/spdx-license";
4471            case SISSL_1_2: return "http://hl7.org/fhir/spdx-license";
4472            case SLEEPYCAT: return "http://hl7.org/fhir/spdx-license";
4473            case SMLNJ: return "http://hl7.org/fhir/spdx-license";
4474            case SMPPL: return "http://hl7.org/fhir/spdx-license";
4475            case SNIA: return "http://hl7.org/fhir/spdx-license";
4476            case SNPRINTF: return "http://hl7.org/fhir/spdx-license";
4477            case SPENCER_86: return "http://hl7.org/fhir/spdx-license";
4478            case SPENCER_94: return "http://hl7.org/fhir/spdx-license";
4479            case SPENCER_99: return "http://hl7.org/fhir/spdx-license";
4480            case SPL_1_0: return "http://hl7.org/fhir/spdx-license";
4481            case SSH_OPENSSH: return "http://hl7.org/fhir/spdx-license";
4482            case SSH_SHORT: return "http://hl7.org/fhir/spdx-license";
4483            case SSPL_1_0: return "http://hl7.org/fhir/spdx-license";
4484            case STANDARDML_NJ: return "http://hl7.org/fhir/spdx-license";
4485            case SUGARCRM_1_1_3: return "http://hl7.org/fhir/spdx-license";
4486            case SUNPRO: return "http://hl7.org/fhir/spdx-license";
4487            case SWL: return "http://hl7.org/fhir/spdx-license";
4488            case SYMLINKS: return "http://hl7.org/fhir/spdx-license";
4489            case TAPR_OHL_1_0: return "http://hl7.org/fhir/spdx-license";
4490            case TCL: return "http://hl7.org/fhir/spdx-license";
4491            case TCP_WRAPPERS: return "http://hl7.org/fhir/spdx-license";
4492            case TERMREADKEY: return "http://hl7.org/fhir/spdx-license";
4493            case TMATE: return "http://hl7.org/fhir/spdx-license";
4494            case TORQUE_1_1: return "http://hl7.org/fhir/spdx-license";
4495            case TOSL: return "http://hl7.org/fhir/spdx-license";
4496            case TPDL: return "http://hl7.org/fhir/spdx-license";
4497            case TPL_1_0: return "http://hl7.org/fhir/spdx-license";
4498            case TTWL: return "http://hl7.org/fhir/spdx-license";
4499            case TU_BERLIN_1_0: return "http://hl7.org/fhir/spdx-license";
4500            case TU_BERLIN_2_0: return "http://hl7.org/fhir/spdx-license";
4501            case UCAR: return "http://hl7.org/fhir/spdx-license";
4502            case UCL_1_0: return "http://hl7.org/fhir/spdx-license";
4503            case UNICODE_DFS_2015: return "http://hl7.org/fhir/spdx-license";
4504            case UNICODE_DFS_2016: return "http://hl7.org/fhir/spdx-license";
4505            case UNICODE_TOU: return "http://hl7.org/fhir/spdx-license";
4506            case UNIXCRYPT: return "http://hl7.org/fhir/spdx-license";
4507            case UNLICENSE: return "http://hl7.org/fhir/spdx-license";
4508            case UPL_1_0: return "http://hl7.org/fhir/spdx-license";
4509            case VIM: return "http://hl7.org/fhir/spdx-license";
4510            case VOSTROM: return "http://hl7.org/fhir/spdx-license";
4511            case VSL_1_0: return "http://hl7.org/fhir/spdx-license";
4512            case W3C: return "http://hl7.org/fhir/spdx-license";
4513            case W3C_19980720: return "http://hl7.org/fhir/spdx-license";
4514            case W3C_20150513: return "http://hl7.org/fhir/spdx-license";
4515            case W3M: return "http://hl7.org/fhir/spdx-license";
4516            case WATCOM_1_0: return "http://hl7.org/fhir/spdx-license";
4517            case WIDGET_WORKSHOP: return "http://hl7.org/fhir/spdx-license";
4518            case WSUIPA: return "http://hl7.org/fhir/spdx-license";
4519            case WTFPL: return "http://hl7.org/fhir/spdx-license";
4520            case WXWINDOWS: return "http://hl7.org/fhir/spdx-license";
4521            case X11: return "http://hl7.org/fhir/spdx-license";
4522            case X11_DISTRIBUTE_MODIFICATIONS_VARIANT: return "http://hl7.org/fhir/spdx-license";
4523            case XDEBUG_1_03: return "http://hl7.org/fhir/spdx-license";
4524            case XEROX: return "http://hl7.org/fhir/spdx-license";
4525            case XFIG: return "http://hl7.org/fhir/spdx-license";
4526            case XFREE86_1_1: return "http://hl7.org/fhir/spdx-license";
4527            case XINETD: return "http://hl7.org/fhir/spdx-license";
4528            case XLOCK: return "http://hl7.org/fhir/spdx-license";
4529            case XNET: return "http://hl7.org/fhir/spdx-license";
4530            case XPP: return "http://hl7.org/fhir/spdx-license";
4531            case XSKAT: return "http://hl7.org/fhir/spdx-license";
4532            case YPL_1_0: return "http://hl7.org/fhir/spdx-license";
4533            case YPL_1_1: return "http://hl7.org/fhir/spdx-license";
4534            case ZED: return "http://hl7.org/fhir/spdx-license";
4535            case ZEND_2_0: return "http://hl7.org/fhir/spdx-license";
4536            case ZIMBRA_1_3: return "http://hl7.org/fhir/spdx-license";
4537            case ZIMBRA_1_4: return "http://hl7.org/fhir/spdx-license";
4538            case ZLIB: return "http://hl7.org/fhir/spdx-license";
4539            case ZLIB_ACKNOWLEDGEMENT: return "http://hl7.org/fhir/spdx-license";
4540            case ZPL_1_1: return "http://hl7.org/fhir/spdx-license";
4541            case ZPL_2_0: return "http://hl7.org/fhir/spdx-license";
4542            case ZPL_2_1: return "http://hl7.org/fhir/spdx-license";
4543            case NULL: return null;
4544            default: return "?";
4545          }
4546        }
4547        public String getDefinition() {
4548          switch (this) {
4549            case _0BSD: return "BSD Zero Clause License";
4550            case AAL: return "Attribution Assurance License";
4551            case ABSTYLES: return "Abstyles License";
4552            case ADACORE_DOC: return "AdaCore Doc License";
4553            case ADOBE_2006: return "Adobe Systems Incorporated Source Code License Agreement";
4554            case ADOBE_GLYPH: return "Adobe Glyph List License";
4555            case ADSL: return "Amazon Digital Services License";
4556            case AFL_1_1: return "Academic Free License v1.1";
4557            case AFL_1_2: return "Academic Free License v1.2";
4558            case AFL_2_0: return "Academic Free License v2.0";
4559            case AFL_2_1: return "Academic Free License v2.1";
4560            case AFL_3_0: return "Academic Free License v3.0";
4561            case AFMPARSE: return "Afmparse License";
4562            case AGPL_1_0: return "Affero General Public License v1.0";
4563            case AGPL_1_0_ONLY: return "Affero General Public License v1.0 only";
4564            case AGPL_1_0_OR_LATER: return "Affero General Public License v1.0 or later";
4565            case AGPL_3_0: return "GNU Affero General Public License v3.0";
4566            case AGPL_3_0_ONLY: return "GNU Affero General Public License v3.0 only";
4567            case AGPL_3_0_OR_LATER: return "GNU Affero General Public License v3.0 or later";
4568            case ALADDIN: return "Aladdin Free Public License";
4569            case AMDPLPA: return "AMD's plpa_map.c License";
4570            case AML: return "Apple MIT License";
4571            case AMPAS: return "Academy of Motion Picture Arts and Sciences BSD";
4572            case ANTLR_PD: return "ANTLR Software Rights Notice";
4573            case ANTLR_PD_FALLBACK: return "ANTLR Software Rights Notice with license fallback";
4574            case APACHE_1_0: return "Apache License 1.0";
4575            case APACHE_1_1: return "Apache License 1.1";
4576            case APACHE_2_0: return "Apache License 2.0";
4577            case APAFML: return "Adobe Postscript AFM License";
4578            case APL_1_0: return "Adaptive Public License 1.0";
4579            case APP_S2P: return "App::s2p License";
4580            case APSL_1_0: return "Apple Public Source License 1.0";
4581            case APSL_1_1: return "Apple Public Source License 1.1";
4582            case APSL_1_2: return "Apple Public Source License 1.2";
4583            case APSL_2_0: return "Apple Public Source License 2.0";
4584            case ARPHIC_1999: return "Arphic Public License";
4585            case ARTISTIC_1_0: return "Artistic License 1.0";
4586            case ARTISTIC_1_0_CL8: return "Artistic License 1.0 w/clause 8";
4587            case ARTISTIC_1_0_PERL: return "Artistic License 1.0 (Perl)";
4588            case ARTISTIC_2_0: return "Artistic License 2.0";
4589            case ASWF_DIGITAL_ASSETS_1_0: return "ASWF Digital Assets License version 1.0";
4590            case ASWF_DIGITAL_ASSETS_1_1: return "ASWF Digital Assets License 1.1";
4591            case BAEKMUK: return "Baekmuk License";
4592            case BAHYPH: return "Bahyph License";
4593            case BARR: return "Barr License";
4594            case BEERWARE: return "Beerware License";
4595            case BITSTREAM_CHARTER: return "Bitstream Charter Font License";
4596            case BITSTREAM_VERA: return "Bitstream Vera Font License";
4597            case BITTORRENT_1_0: return "BitTorrent Open Source License v1.0";
4598            case BITTORRENT_1_1: return "BitTorrent Open Source License v1.1";
4599            case BLESSING: return "SQLite Blessing";
4600            case BLUEOAK_1_0_0: return "Blue Oak Model License 1.0.0";
4601            case BOEHM_GC: return "Boehm-Demers-Weiser GC License";
4602            case BORCEUX: return "Borceux license";
4603            case BRIAN_GLADMAN_3_CLAUSE: return "Brian Gladman 3-Clause License";
4604            case BSD_1_CLAUSE: return "BSD 1-Clause License";
4605            case BSD_2_CLAUSE: return "BSD 2-Clause \"Simplified\" License";
4606            case BSD_2_CLAUSE_FREEBSD: return "BSD 2-Clause FreeBSD License";
4607            case BSD_2_CLAUSE_NETBSD: return "BSD 2-Clause NetBSD License";
4608            case BSD_2_CLAUSE_PATENT: return "BSD-2-Clause Plus Patent License";
4609            case BSD_2_CLAUSE_VIEWS: return "BSD 2-Clause with views sentence";
4610            case BSD_3_CLAUSE: return "BSD 3-Clause \"New\" or \"Revised\" License";
4611            case BSD_3_CLAUSE_ATTRIBUTION: return "BSD with attribution";
4612            case BSD_3_CLAUSE_CLEAR: return "BSD 3-Clause Clear License";
4613            case BSD_3_CLAUSE_LBNL: return "Lawrence Berkeley National Labs BSD variant license";
4614            case BSD_3_CLAUSE_MODIFICATION: return "BSD 3-Clause Modification";
4615            case BSD_3_CLAUSE_NO_MILITARY_LICENSE: return "BSD 3-Clause No Military License";
4616            case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE: return "BSD 3-Clause No Nuclear License";
4617            case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014: return "BSD 3-Clause No Nuclear License 2014";
4618            case BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY: return "BSD 3-Clause No Nuclear Warranty";
4619            case BSD_3_CLAUSE_OPEN_MPI: return "BSD 3-Clause Open MPI variant";
4620            case BSD_4_CLAUSE: return "BSD 4-Clause \"Original\" or \"Old\" License";
4621            case BSD_4_CLAUSE_SHORTENED: return "BSD 4 Clause Shortened";
4622            case BSD_4_CLAUSE_UC: return "BSD-4-Clause (University of California-Specific)";
4623            case BSD_4_3RENO: return "BSD 4.3 RENO License";
4624            case BSD_4_3TAHOE: return "BSD 4.3 TAHOE License";
4625            case BSD_ADVERTISING_ACKNOWLEDGEMENT: return "BSD Advertising Acknowledgement License";
4626            case BSD_ATTRIBUTION_HPND_DISCLAIMER: return "BSD with Attribution and HPND disclaimer";
4627            case BSD_PROTECTION: return "BSD Protection License";
4628            case BSD_SOURCE_CODE: return "BSD Source Code Attribution";
4629            case BSL_1_0: return "Boost Software License 1.0";
4630            case BUSL_1_1: return "Business Source License 1.1";
4631            case BZIP2_1_0_5: return "bzip2 and libbzip2 License v1.0.5";
4632            case BZIP2_1_0_6: return "bzip2 and libbzip2 License v1.0.6";
4633            case C_UDA_1_0: return "Computational Use of Data Agreement v1.0";
4634            case CAL_1_0: return "Cryptographic Autonomy License 1.0";
4635            case CAL_1_0_COMBINED_WORK_EXCEPTION: return "Cryptographic Autonomy License 1.0 (Combined Work Exception)";
4636            case CALDERA: return "Caldera License";
4637            case CATOSL_1_1: return "Computer Associates Trusted Open Source License 1.1";
4638            case CC_BY_1_0: return "Creative Commons Attribution 1.0 Generic";
4639            case CC_BY_2_0: return "Creative Commons Attribution 2.0 Generic";
4640            case CC_BY_2_5: return "Creative Commons Attribution 2.5 Generic";
4641            case CC_BY_2_5_AU: return "Creative Commons Attribution 2.5 Australia";
4642            case CC_BY_3_0: return "Creative Commons Attribution 3.0 Unported";
4643            case CC_BY_3_0_AT: return "Creative Commons Attribution 3.0 Austria";
4644            case CC_BY_3_0_DE: return "Creative Commons Attribution 3.0 Germany";
4645            case CC_BY_3_0_IGO: return "Creative Commons Attribution 3.0 IGO";
4646            case CC_BY_3_0_NL: return "Creative Commons Attribution 3.0 Netherlands";
4647            case CC_BY_3_0_US: return "Creative Commons Attribution 3.0 United States";
4648            case CC_BY_4_0: return "Creative Commons Attribution 4.0 International";
4649            case CC_BY_NC_1_0: return "Creative Commons Attribution Non Commercial 1.0 Generic";
4650            case CC_BY_NC_2_0: return "Creative Commons Attribution Non Commercial 2.0 Generic";
4651            case CC_BY_NC_2_5: return "Creative Commons Attribution Non Commercial 2.5 Generic";
4652            case CC_BY_NC_3_0: return "Creative Commons Attribution Non Commercial 3.0 Unported";
4653            case CC_BY_NC_3_0_DE: return "Creative Commons Attribution Non Commercial 3.0 Germany";
4654            case CC_BY_NC_4_0: return "Creative Commons Attribution Non Commercial 4.0 International";
4655            case CC_BY_NC_ND_1_0: return "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic";
4656            case CC_BY_NC_ND_2_0: return "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic";
4657            case CC_BY_NC_ND_2_5: return "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic";
4658            case CC_BY_NC_ND_3_0: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported";
4659            case CC_BY_NC_ND_3_0_DE: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Germany";
4660            case CC_BY_NC_ND_3_0_IGO: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO";
4661            case CC_BY_NC_ND_4_0: return "Creative Commons Attribution Non Commercial No Derivatives 4.0 International";
4662            case CC_BY_NC_SA_1_0: return "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic";
4663            case CC_BY_NC_SA_2_0: return "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic";
4664            case CC_BY_NC_SA_2_0_DE: return "Creative Commons Attribution Non Commercial Share Alike 2.0 Germany";
4665            case CC_BY_NC_SA_2_0_FR: return "Creative Commons Attribution-NonCommercial-ShareAlike 2.0 France";
4666            case CC_BY_NC_SA_2_0_UK: return "Creative Commons Attribution Non Commercial Share Alike 2.0 England and Wales";
4667            case CC_BY_NC_SA_2_5: return "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic";
4668            case CC_BY_NC_SA_3_0: return "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported";
4669            case CC_BY_NC_SA_3_0_DE: return "Creative Commons Attribution Non Commercial Share Alike 3.0 Germany";
4670            case CC_BY_NC_SA_3_0_IGO: return "Creative Commons Attribution Non Commercial Share Alike 3.0 IGO";
4671            case CC_BY_NC_SA_4_0: return "Creative Commons Attribution Non Commercial Share Alike 4.0 International";
4672            case CC_BY_ND_1_0: return "Creative Commons Attribution No Derivatives 1.0 Generic";
4673            case CC_BY_ND_2_0: return "Creative Commons Attribution No Derivatives 2.0 Generic";
4674            case CC_BY_ND_2_5: return "Creative Commons Attribution No Derivatives 2.5 Generic";
4675            case CC_BY_ND_3_0: return "Creative Commons Attribution No Derivatives 3.0 Unported";
4676            case CC_BY_ND_3_0_DE: return "Creative Commons Attribution No Derivatives 3.0 Germany";
4677            case CC_BY_ND_4_0: return "Creative Commons Attribution No Derivatives 4.0 International";
4678            case CC_BY_SA_1_0: return "Creative Commons Attribution Share Alike 1.0 Generic";
4679            case CC_BY_SA_2_0: return "Creative Commons Attribution Share Alike 2.0 Generic";
4680            case CC_BY_SA_2_0_UK: return "Creative Commons Attribution Share Alike 2.0 England and Wales";
4681            case CC_BY_SA_2_1_JP: return "Creative Commons Attribution Share Alike 2.1 Japan";
4682            case CC_BY_SA_2_5: return "Creative Commons Attribution Share Alike 2.5 Generic";
4683            case CC_BY_SA_3_0: return "Creative Commons Attribution Share Alike 3.0 Unported";
4684            case CC_BY_SA_3_0_AT: return "Creative Commons Attribution Share Alike 3.0 Austria";
4685            case CC_BY_SA_3_0_DE: return "Creative Commons Attribution Share Alike 3.0 Germany";
4686            case CC_BY_SA_3_0_IGO: return "Creative Commons Attribution-ShareAlike 3.0 IGO";
4687            case CC_BY_SA_4_0: return "Creative Commons Attribution Share Alike 4.0 International";
4688            case CC_PDDC: return "Creative Commons Public Domain Dedication and Certification";
4689            case CC0_1_0: return "Creative Commons Zero v1.0 Universal";
4690            case CDDL_1_0: return "Common Development and Distribution License 1.0";
4691            case CDDL_1_1: return "Common Development and Distribution License 1.1";
4692            case CDL_1_0: return "Common Documentation License 1.0";
4693            case CDLA_PERMISSIVE_1_0: return "Community Data License Agreement Permissive 1.0";
4694            case CDLA_PERMISSIVE_2_0: return "Community Data License Agreement Permissive 2.0";
4695            case CDLA_SHARING_1_0: return "Community Data License Agreement Sharing 1.0";
4696            case CECILL_1_0: return "CeCILL Free Software License Agreement v1.0";
4697            case CECILL_1_1: return "CeCILL Free Software License Agreement v1.1";
4698            case CECILL_2_0: return "CeCILL Free Software License Agreement v2.0";
4699            case CECILL_2_1: return "CeCILL Free Software License Agreement v2.1";
4700            case CECILL_B: return "CeCILL-B Free Software License Agreement";
4701            case CECILL_C: return "CeCILL-C Free Software License Agreement";
4702            case CERN_OHL_1_1: return "CERN Open Hardware Licence v1.1";
4703            case CERN_OHL_1_2: return "CERN Open Hardware Licence v1.2";
4704            case CERN_OHL_P_2_0: return "CERN Open Hardware Licence Version 2 - Permissive";
4705            case CERN_OHL_S_2_0: return "CERN Open Hardware Licence Version 2 - Strongly Reciprocal";
4706            case CERN_OHL_W_2_0: return "CERN Open Hardware Licence Version 2 - Weakly Reciprocal";
4707            case CFITSIO: return "CFITSIO License";
4708            case CHECKMK: return "Checkmk License";
4709            case CLARTISTIC: return "Clarified Artistic License";
4710            case CLIPS: return "Clips License";
4711            case CMU_MACH: return "CMU Mach License";
4712            case CNRI_JYTHON: return "CNRI Jython License";
4713            case CNRI_PYTHON: return "CNRI Python License";
4714            case CNRI_PYTHON_GPL_COMPATIBLE: return "CNRI Python Open Source GPL Compatible License Agreement";
4715            case COIL_1_0: return "Copyfree Open Innovation License";
4716            case COMMUNITY_SPEC_1_0: return "Community Specification License 1.0";
4717            case CONDOR_1_1: return "Condor Public License v1.1";
4718            case COPYLEFT_NEXT_0_3_0: return "copyleft-next 0.3.0";
4719            case COPYLEFT_NEXT_0_3_1: return "copyleft-next 0.3.1";
4720            case CORNELL_LOSSLESS_JPEG: return "Cornell Lossless JPEG License";
4721            case CPAL_1_0: return "Common Public Attribution License 1.0";
4722            case CPL_1_0: return "Common Public License 1.0";
4723            case CPOL_1_02: return "Code Project Open License 1.02";
4724            case CROSSWORD: return "Crossword License";
4725            case CRYSTALSTACKER: return "CrystalStacker License";
4726            case CUA_OPL_1_0: return "CUA Office Public License v1.0";
4727            case CUBE: return "Cube License";
4728            case CURL: return "curl License";
4729            case D_FSL_1_0: return "Deutsche Freie Software Lizenz";
4730            case DIFFMARK: return "diffmark license";
4731            case DL_DE_BY_2_0: return "Data licence Germany – attribution – version 2.0";
4732            case DOC: return "DOC License";
4733            case DOTSEQN: return "Dotseqn License";
4734            case DRL_1_0: return "Detection Rule License 1.0";
4735            case DSDP: return "DSDP License";
4736            case DTOA: return "David M. Gay dtoa License";
4737            case DVIPDFM: return "dvipdfm License";
4738            case ECL_1_0: return "Educational Community License v1.0";
4739            case ECL_2_0: return "Educational Community License v2.0";
4740            case ECOS_2_0: return "eCos license version 2.0";
4741            case EFL_1_0: return "Eiffel Forum License v1.0";
4742            case EFL_2_0: return "Eiffel Forum License v2.0";
4743            case EGENIX: return "eGenix.com Public License 1.1.0";
4744            case ELASTIC_2_0: return "Elastic License 2.0";
4745            case ENTESSA: return "Entessa Public License v1.0";
4746            case EPICS: return "EPICS Open License";
4747            case EPL_1_0: return "Eclipse Public License 1.0";
4748            case EPL_2_0: return "Eclipse Public License 2.0";
4749            case ERLPL_1_1: return "Erlang Public License v1.1";
4750            case ETALAB_2_0: return "Etalab Open License 2.0";
4751            case EUDATAGRID: return "EU DataGrid Software License";
4752            case EUPL_1_0: return "European Union Public License 1.0";
4753            case EUPL_1_1: return "European Union Public License 1.1";
4754            case EUPL_1_2: return "European Union Public License 1.2";
4755            case EUROSYM: return "Eurosym License";
4756            case FAIR: return "Fair License";
4757            case FDK_AAC: return "Fraunhofer FDK AAC Codec Library";
4758            case FRAMEWORX_1_0: return "Frameworx Open License 1.0";
4759            case FREEBSD_DOC: return "FreeBSD Documentation License";
4760            case FREEIMAGE: return "FreeImage Public License v1.0";
4761            case FSFAP: return "FSF All Permissive License";
4762            case FSFUL: return "FSF Unlimited License";
4763            case FSFULLR: return "FSF Unlimited License (with License Retention)";
4764            case FSFULLRWD: return "FSF Unlimited License (With License Retention and Warranty Disclaimer)";
4765            case FTL: return "Freetype Project License";
4766            case GD: return "GD License";
4767            case GFDL_1_1: return "GNU Free Documentation License v1.1";
4768            case GFDL_1_1_INVARIANTS_ONLY: return "GNU Free Documentation License v1.1 only - invariants";
4769            case GFDL_1_1_INVARIANTS_OR_LATER: return "GNU Free Documentation License v1.1 or later - invariants";
4770            case GFDL_1_1_NO_INVARIANTS_ONLY: return "GNU Free Documentation License v1.1 only - no invariants";
4771            case GFDL_1_1_NO_INVARIANTS_OR_LATER: return "GNU Free Documentation License v1.1 or later - no invariants";
4772            case GFDL_1_1_ONLY: return "GNU Free Documentation License v1.1 only";
4773            case GFDL_1_1_OR_LATER: return "GNU Free Documentation License v1.1 or later";
4774            case GFDL_1_2: return "GNU Free Documentation License v1.2";
4775            case GFDL_1_2_INVARIANTS_ONLY: return "GNU Free Documentation License v1.2 only - invariants";
4776            case GFDL_1_2_INVARIANTS_OR_LATER: return "GNU Free Documentation License v1.2 or later - invariants";
4777            case GFDL_1_2_NO_INVARIANTS_ONLY: return "GNU Free Documentation License v1.2 only - no invariants";
4778            case GFDL_1_2_NO_INVARIANTS_OR_LATER: return "GNU Free Documentation License v1.2 or later - no invariants";
4779            case GFDL_1_2_ONLY: return "GNU Free Documentation License v1.2 only";
4780            case GFDL_1_2_OR_LATER: return "GNU Free Documentation License v1.2 or later";
4781            case GFDL_1_3: return "GNU Free Documentation License v1.3";
4782            case GFDL_1_3_INVARIANTS_ONLY: return "GNU Free Documentation License v1.3 only - invariants";
4783            case GFDL_1_3_INVARIANTS_OR_LATER: return "GNU Free Documentation License v1.3 or later - invariants";
4784            case GFDL_1_3_NO_INVARIANTS_ONLY: return "GNU Free Documentation License v1.3 only - no invariants";
4785            case GFDL_1_3_NO_INVARIANTS_OR_LATER: return "GNU Free Documentation License v1.3 or later - no invariants";
4786            case GFDL_1_3_ONLY: return "GNU Free Documentation License v1.3 only";
4787            case GFDL_1_3_OR_LATER: return "GNU Free Documentation License v1.3 or later";
4788            case GIFTWARE: return "Giftware License";
4789            case GL2PS: return "GL2PS License";
4790            case GLIDE: return "3dfx Glide License";
4791            case GLULXE: return "Glulxe License";
4792            case GLWTPL: return "Good Luck With That Public License";
4793            case GNUPLOT: return "gnuplot License";
4794            case GPL_1_0: return "GNU General Public License v1.0 only";
4795            case GPL_1_0PLUS: return "GNU General Public License v1.0 or later";
4796            case GPL_1_0_ONLY: return "GNU General Public License v1.0 only";
4797            case GPL_1_0_OR_LATER: return "GNU General Public License v1.0 or later";
4798            case GPL_2_0: return "GNU General Public License v2.0 only";
4799            case GPL_2_0PLUS: return "GNU General Public License v2.0 or later";
4800            case GPL_2_0_ONLY: return "GNU General Public License v2.0 only";
4801            case GPL_2_0_OR_LATER: return "GNU General Public License v2.0 or later";
4802            case GPL_2_0_WITH_AUTOCONF_EXCEPTION: return "GNU General Public License v2.0 w/Autoconf exception";
4803            case GPL_2_0_WITH_BISON_EXCEPTION: return "GNU General Public License v2.0 w/Bison exception";
4804            case GPL_2_0_WITH_CLASSPATH_EXCEPTION: return "GNU General Public License v2.0 w/Classpath exception";
4805            case GPL_2_0_WITH_FONT_EXCEPTION: return "GNU General Public License v2.0 w/Font exception";
4806            case GPL_2_0_WITH_GCC_EXCEPTION: return "GNU General Public License v2.0 w/GCC Runtime Library exception";
4807            case GPL_3_0: return "GNU General Public License v3.0 only";
4808            case GPL_3_0PLUS: return "GNU General Public License v3.0 or later";
4809            case GPL_3_0_ONLY: return "GNU General Public License v3.0 only";
4810            case GPL_3_0_OR_LATER: return "GNU General Public License v3.0 or later";
4811            case GPL_3_0_WITH_AUTOCONF_EXCEPTION: return "GNU General Public License v3.0 w/Autoconf exception";
4812            case GPL_3_0_WITH_GCC_EXCEPTION: return "GNU General Public License v3.0 w/GCC Runtime Library exception";
4813            case GRAPHICS_GEMS: return "Graphics Gems License";
4814            case GSOAP_1_3B: return "gSOAP Public License v1.3b";
4815            case HASKELLREPORT: return "Haskell Language Report License";
4816            case HIPPOCRATIC_2_1: return "Hippocratic License 2.1";
4817            case HP_1986: return "Hewlett-Packard 1986 License";
4818            case HPND: return "Historical Permission Notice and Disclaimer";
4819            case HPND_EXPORT_US: return "HPND with US Government export control warning";
4820            case HPND_MARKUS_KUHN: return "Historical Permission Notice and Disclaimer - Markus Kuhn variant";
4821            case HPND_SELL_VARIANT: return "Historical Permission Notice and Disclaimer - sell variant";
4822            case HPND_SELL_VARIANT_MIT_DISCLAIMER: return "HPND sell variant with MIT disclaimer";
4823            case HTMLTIDY: return "HTML Tidy License";
4824            case IBM_PIBS: return "IBM PowerPC Initialization and Boot Software";
4825            case ICU: return "ICU License";
4826            case IEC_CODE_COMPONENTS_EULA: return "IEC    Code Components End-user licence agreement";
4827            case IJG: return "Independent JPEG Group License";
4828            case IJG_SHORT: return "Independent JPEG Group License - short";
4829            case IMAGEMAGICK: return "ImageMagick License";
4830            case IMATIX: return "iMatix Standard Function Library Agreement";
4831            case IMLIB2: return "Imlib2 License";
4832            case INFO_ZIP: return "Info-ZIP License";
4833            case INNER_NET_2_0: return "Inner Net License v2.0";
4834            case INTEL: return "Intel Open Source License";
4835            case INTEL_ACPI: return "Intel ACPI Software License Agreement";
4836            case INTERBASE_1_0: return "Interbase Public License v1.0";
4837            case IPA: return "IPA Font License";
4838            case IPL_1_0: return "IBM Public License v1.0";
4839            case ISC: return "ISC License";
4840            case JAM: return "Jam License";
4841            case JASPER_2_0: return "JasPer License";
4842            case JPL_IMAGE: return "JPL Image Use Policy";
4843            case JPNIC: return "Japan Network Information Center License";
4844            case JSON: return "JSON License";
4845            case KAZLIB: return "Kazlib License";
4846            case KNUTH_CTAN: return "Knuth CTAN License";
4847            case LAL_1_2: return "Licence Art Libre 1.2";
4848            case LAL_1_3: return "Licence Art Libre 1.3";
4849            case LATEX2E: return "Latex2e License";
4850            case LATEX2E_TRANSLATED_NOTICE: return "Latex2e with translated notice permission";
4851            case LEPTONICA: return "Leptonica License";
4852            case LGPL_2_0: return "GNU Library General Public License v2 only";
4853            case LGPL_2_0PLUS: return "GNU Library General Public License v2 or later";
4854            case LGPL_2_0_ONLY: return "GNU Library General Public License v2 only";
4855            case LGPL_2_0_OR_LATER: return "GNU Library General Public License v2 or later";
4856            case LGPL_2_1: return "GNU Lesser General Public License v2.1 only";
4857            case LGPL_2_1PLUS: return "GNU Lesser General Public License v2.1 or later";
4858            case LGPL_2_1_ONLY: return "GNU Lesser General Public License v2.1 only";
4859            case LGPL_2_1_OR_LATER: return "GNU Lesser General Public License v2.1 or later";
4860            case LGPL_3_0: return "GNU Lesser General Public License v3.0 only";
4861            case LGPL_3_0PLUS: return "GNU Lesser General Public License v3.0 or later";
4862            case LGPL_3_0_ONLY: return "GNU Lesser General Public License v3.0 only";
4863            case LGPL_3_0_OR_LATER: return "GNU Lesser General Public License v3.0 or later";
4864            case LGPLLR: return "Lesser General Public License For Linguistic Resources";
4865            case LIBPNG: return "libpng License";
4866            case LIBPNG_2_0: return "PNG Reference Library version 2";
4867            case LIBSELINUX_1_0: return "libselinux public domain notice";
4868            case LIBTIFF: return "libtiff License";
4869            case LIBUTIL_DAVID_NUGENT: return "libutil David Nugent License";
4870            case LILIQ_P_1_1: return "Licence Libre du Québec – Permissive version 1.1";
4871            case LILIQ_R_1_1: return "Licence Libre du Québec – Réciprocité version 1.1";
4872            case LILIQ_RPLUS_1_1: return "Licence Libre du Québec – Réciprocité forte version 1.1";
4873            case LINUX_MAN_PAGES_1_PARA: return "Linux man-pages - 1 paragraph";
4874            case LINUX_MAN_PAGES_COPYLEFT: return "Linux man-pages Copyleft";
4875            case LINUX_MAN_PAGES_COPYLEFT_2_PARA: return "Linux man-pages Copyleft - 2 paragraphs";
4876            case LINUX_MAN_PAGES_COPYLEFT_VAR: return "Linux man-pages Copyleft Variant";
4877            case LINUX_OPENIB: return "Linux Kernel Variant of OpenIB.org license";
4878            case LOOP: return "Common Lisp LOOP License";
4879            case LPL_1_0: return "Lucent Public License Version 1.0";
4880            case LPL_1_02: return "Lucent Public License v1.02";
4881            case LPPL_1_0: return "LaTeX Project Public License v1.0";
4882            case LPPL_1_1: return "LaTeX Project Public License v1.1";
4883            case LPPL_1_2: return "LaTeX Project Public License v1.2";
4884            case LPPL_1_3A: return "LaTeX Project Public License v1.3a";
4885            case LPPL_1_3C: return "LaTeX Project Public License v1.3c";
4886            case LZMA_SDK_9_11_TO_9_20: return "LZMA SDK License (versions 9.11 to 9.20)";
4887            case LZMA_SDK_9_22: return "LZMA SDK License (versions 9.22 and beyond)";
4888            case MAKEINDEX: return "MakeIndex License";
4889            case MARTIN_BIRGMEIER: return "Martin Birgmeier License";
4890            case METAMAIL: return "metamail License";
4891            case MINPACK: return "Minpack License";
4892            case MIROS: return "The MirOS Licence";
4893            case MIT: return "MIT License";
4894            case MIT_0: return "MIT No Attribution";
4895            case MIT_ADVERTISING: return "Enlightenment License (e16)";
4896            case MIT_CMU: return "CMU License";
4897            case MIT_ENNA: return "enna License";
4898            case MIT_FEH: return "feh License";
4899            case MIT_FESTIVAL: return "MIT Festival Variant";
4900            case MIT_MODERN_VARIANT: return "MIT License Modern Variant";
4901            case MIT_OPEN_GROUP: return "MIT Open Group variant";
4902            case MIT_WU: return "MIT Tom Wu Variant";
4903            case MITNFA: return "MIT +no-false-attribs license";
4904            case MOTOSOTO: return "Motosoto License";
4905            case MPI_PERMISSIVE: return "mpi Permissive License";
4906            case MPICH2: return "mpich2 License";
4907            case MPL_1_0: return "Mozilla Public License 1.0";
4908            case MPL_1_1: return "Mozilla Public License 1.1";
4909            case MPL_2_0: return "Mozilla Public License 2.0";
4910            case MPL_2_0_NO_COPYLEFT_EXCEPTION: return "Mozilla Public License 2.0 (no copyleft exception)";
4911            case MPLUS: return "mplus Font License";
4912            case MS_LPL: return "Microsoft Limited Public License";
4913            case MS_PL: return "Microsoft Public License";
4914            case MS_RL: return "Microsoft Reciprocal License";
4915            case MTLL: return "Matrix Template Library License";
4916            case MULANPSL_1_0: return "Mulan Permissive Software License, Version 1";
4917            case MULANPSL_2_0: return "Mulan Permissive Software License, Version 2";
4918            case MULTICS: return "Multics License";
4919            case MUP: return "Mup License";
4920            case NAIST_2003: return "Nara Institute of Science and Technology License (2003)";
4921            case NASA_1_3: return "NASA Open Source Agreement 1.3";
4922            case NAUMEN: return "Naumen Public License";
4923            case NBPL_1_0: return "Net Boolean Public License v1";
4924            case NCGL_UK_2_0: return "Non-Commercial Government Licence";
4925            case NCSA: return "University of Illinois/NCSA Open Source License";
4926            case NET_SNMP: return "Net-SNMP License";
4927            case NETCDF: return "NetCDF license";
4928            case NEWSLETR: return "Newsletr License";
4929            case NGPL: return "Nethack General Public License";
4930            case NICTA_1_0: return "NICTA Public Software License, Version 1.0";
4931            case NIST_PD: return "NIST Public Domain Notice";
4932            case NIST_PD_FALLBACK: return "NIST Public Domain Notice with license fallback";
4933            case NIST_SOFTWARE: return "NIST Software License";
4934            case NLOD_1_0: return "Norwegian Licence for Open Government Data (NLOD) 1.0";
4935            case NLOD_2_0: return "Norwegian Licence for Open Government Data (NLOD) 2.0";
4936            case NLPL: return "No Limit Public License";
4937            case NOKIA: return "Nokia Open Source License";
4938            case NOSL: return "Netizen Open Source License";
4939            case NOT_OPEN_SOURCE: return "Not an open source license.";
4940            case NOWEB: return "Noweb License";
4941            case NPL_1_0: return "Netscape Public License v1.0";
4942            case NPL_1_1: return "Netscape Public License v1.1";
4943            case NPOSL_3_0: return "Non-Profit Open Software License 3.0";
4944            case NRL: return "NRL License";
4945            case NTP: return "NTP License";
4946            case NTP_0: return "NTP No Attribution";
4947            case NUNIT: return "Nunit License";
4948            case O_UDA_1_0: return "Open Use of Data Agreement v1.0";
4949            case OCCT_PL: return "Open CASCADE Technology Public License";
4950            case OCLC_2_0: return "OCLC Research Public License 2.0";
4951            case ODBL_1_0: return "Open Data Commons Open Database License v1.0";
4952            case ODC_BY_1_0: return "Open Data Commons Attribution License v1.0";
4953            case OFFIS: return "OFFIS License";
4954            case OFL_1_0: return "SIL Open Font License 1.0";
4955            case OFL_1_0_NO_RFN: return "SIL Open Font License 1.0 with no Reserved Font Name";
4956            case OFL_1_0_RFN: return "SIL Open Font License 1.0 with Reserved Font Name";
4957            case OFL_1_1: return "SIL Open Font License 1.1";
4958            case OFL_1_1_NO_RFN: return "SIL Open Font License 1.1 with no Reserved Font Name";
4959            case OFL_1_1_RFN: return "SIL Open Font License 1.1 with Reserved Font Name";
4960            case OGC_1_0: return "OGC Software License, Version 1.0";
4961            case OGDL_TAIWAN_1_0: return "Taiwan Open Government Data License, version 1.0";
4962            case OGL_CANADA_2_0: return "Open Government Licence - Canada";
4963            case OGL_UK_1_0: return "Open Government Licence v1.0";
4964            case OGL_UK_2_0: return "Open Government Licence v2.0";
4965            case OGL_UK_3_0: return "Open Government Licence v3.0";
4966            case OGTSL: return "Open Group Test Suite License";
4967            case OLDAP_1_1: return "Open LDAP Public License v1.1";
4968            case OLDAP_1_2: return "Open LDAP Public License v1.2";
4969            case OLDAP_1_3: return "Open LDAP Public License v1.3";
4970            case OLDAP_1_4: return "Open LDAP Public License v1.4";
4971            case OLDAP_2_0: return "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)";
4972            case OLDAP_2_0_1: return "Open LDAP Public License v2.0.1";
4973            case OLDAP_2_1: return "Open LDAP Public License v2.1";
4974            case OLDAP_2_2: return "Open LDAP Public License v2.2";
4975            case OLDAP_2_2_1: return "Open LDAP Public License v2.2.1";
4976            case OLDAP_2_2_2: return "Open LDAP Public License 2.2.2";
4977            case OLDAP_2_3: return "Open LDAP Public License v2.3";
4978            case OLDAP_2_4: return "Open LDAP Public License v2.4";
4979            case OLDAP_2_5: return "Open LDAP Public License v2.5";
4980            case OLDAP_2_6: return "Open LDAP Public License v2.6";
4981            case OLDAP_2_7: return "Open LDAP Public License v2.7";
4982            case OLDAP_2_8: return "Open LDAP Public License v2.8";
4983            case OLFL_1_3: return "Open Logistics Foundation License Version 1.3";
4984            case OML: return "Open Market License";
4985            case OPENPBS_2_3: return "OpenPBS v2.3 Software License";
4986            case OPENSSL: return "OpenSSL License";
4987            case OPL_1_0: return "Open Public License v1.0";
4988            case OPL_UK_3_0: return "United    Kingdom Open Parliament Licence v3.0";
4989            case OPUBL_1_0: return "Open Publication License v1.0";
4990            case OSET_PL_2_1: return "OSET Public License version 2.1";
4991            case OSL_1_0: return "Open Software License 1.0";
4992            case OSL_1_1: return "Open Software License 1.1";
4993            case OSL_2_0: return "Open Software License 2.0";
4994            case OSL_2_1: return "Open Software License 2.1";
4995            case OSL_3_0: return "Open Software License 3.0";
4996            case PARITY_6_0_0: return "The Parity Public License 6.0.0";
4997            case PARITY_7_0_0: return "The Parity Public License 7.0.0";
4998            case PDDL_1_0: return "Open Data Commons Public Domain Dedication & License 1.0";
4999            case PHP_3_0: return "PHP License v3.0";
5000            case PHP_3_01: return "PHP License v3.01";
5001            case PLEXUS: return "Plexus Classworlds License";
5002            case POLYFORM_NONCOMMERCIAL_1_0_0: return "PolyForm Noncommercial License 1.0.0";
5003            case POLYFORM_SMALL_BUSINESS_1_0_0: return "PolyForm Small Business License 1.0.0";
5004            case POSTGRESQL: return "PostgreSQL License";
5005            case PSF_2_0: return "Python Software Foundation License 2.0";
5006            case PSFRAG: return "psfrag License";
5007            case PSUTILS: return "psutils License";
5008            case PYTHON_2_0: return "Python License 2.0";
5009            case PYTHON_2_0_1: return "Python License 2.0.1";
5010            case QHULL: return "Qhull License";
5011            case QPL_1_0: return "Q Public License 1.0";
5012            case QPL_1_0_INRIA_2004: return "Q Public License 1.0 - INRIA 2004 variant";
5013            case RDISC: return "Rdisc License";
5014            case RHECOS_1_1: return "Red Hat eCos Public License v1.1";
5015            case RPL_1_1: return "Reciprocal Public License 1.1";
5016            case RPL_1_5: return "Reciprocal Public License 1.5";
5017            case RPSL_1_0: return "RealNetworks Public Source License v1.0";
5018            case RSA_MD: return "RSA Message-Digest License";
5019            case RSCPL: return "Ricoh Source Code Public License";
5020            case RUBY: return "Ruby License";
5021            case SAX_PD: return "Sax Public Domain Notice";
5022            case SAXPATH: return "Saxpath License";
5023            case SCEA: return "SCEA Shared Source License";
5024            case SCHEMEREPORT: return "Scheme Language Report License";
5025            case SENDMAIL: return "Sendmail License";
5026            case SENDMAIL_8_23: return "Sendmail License 8.23";
5027            case SGI_B_1_0: return "SGI Free Software License B v1.0";
5028            case SGI_B_1_1: return "SGI Free Software License B v1.1";
5029            case SGI_B_2_0: return "SGI Free Software License B v2.0";
5030            case SGP4: return "SGP4 Permission Notice";
5031            case SHL_0_5: return "Solderpad Hardware License v0.5";
5032            case SHL_0_51: return "Solderpad Hardware License, Version 0.51";
5033            case SIMPL_2_0: return "Simple Public License 2.0";
5034            case SISSL: return "Sun Industry Standards Source License v1.1";
5035            case SISSL_1_2: return "Sun Industry Standards Source License v1.2";
5036            case SLEEPYCAT: return "Sleepycat License";
5037            case SMLNJ: return "Standard ML of New Jersey License";
5038            case SMPPL: return "Secure Messaging Protocol Public License";
5039            case SNIA: return "SNIA Public License 1.1";
5040            case SNPRINTF: return "snprintf License";
5041            case SPENCER_86: return "Spencer License 86";
5042            case SPENCER_94: return "Spencer License 94";
5043            case SPENCER_99: return "Spencer License 99";
5044            case SPL_1_0: return "Sun Public License v1.0";
5045            case SSH_OPENSSH: return "SSH OpenSSH license";
5046            case SSH_SHORT: return "SSH short notice";
5047            case SSPL_1_0: return "Server Side Public License, v 1";
5048            case STANDARDML_NJ: return "Standard ML of New Jersey License";
5049            case SUGARCRM_1_1_3: return "SugarCRM Public License v1.1.3";
5050            case SUNPRO: return "SunPro License";
5051            case SWL: return "Scheme Widget Library (SWL) Software License Agreement";
5052            case SYMLINKS: return "Symlinks License";
5053            case TAPR_OHL_1_0: return "TAPR Open Hardware License v1.0";
5054            case TCL: return "TCL/TK License";
5055            case TCP_WRAPPERS: return "TCP Wrappers License";
5056            case TERMREADKEY: return "TermReadKey License";
5057            case TMATE: return "TMate Open Source License";
5058            case TORQUE_1_1: return "TORQUE v2.5+ Software License v1.1";
5059            case TOSL: return "Trusster Open Source License";
5060            case TPDL: return "Time::ParseDate License";
5061            case TPL_1_0: return "THOR Public License 1.0";
5062            case TTWL: return "Text-Tabs+Wrap License";
5063            case TU_BERLIN_1_0: return "Technische Universitaet Berlin License 1.0";
5064            case TU_BERLIN_2_0: return "Technische Universitaet Berlin License 2.0";
5065            case UCAR: return "UCAR License";
5066            case UCL_1_0: return "Upstream Compatibility License v1.0";
5067            case UNICODE_DFS_2015: return "Unicode License Agreement - Data Files and Software (2015)";
5068            case UNICODE_DFS_2016: return "Unicode License Agreement - Data Files and Software (2016)";
5069            case UNICODE_TOU: return "Unicode Terms of Use";
5070            case UNIXCRYPT: return "UnixCrypt License";
5071            case UNLICENSE: return "The Unlicense";
5072            case UPL_1_0: return "Universal Permissive License v1.0";
5073            case VIM: return "Vim License";
5074            case VOSTROM: return "VOSTROM Public License for Open Source";
5075            case VSL_1_0: return "Vovida Software License v1.0";
5076            case W3C: return "W3C Software Notice and License (2002-12-31)";
5077            case W3C_19980720: return "W3C Software Notice and License (1998-07-20)";
5078            case W3C_20150513: return "W3C Software Notice and Document License (2015-05-13)";
5079            case W3M: return "w3m License";
5080            case WATCOM_1_0: return "Sybase Open Watcom Public License 1.0";
5081            case WIDGET_WORKSHOP: return "Widget Workshop License";
5082            case WSUIPA: return "Wsuipa License";
5083            case WTFPL: return "Do What The F*ck You Want To Public License";
5084            case WXWINDOWS: return "wxWindows Library License";
5085            case X11: return "X11 License";
5086            case X11_DISTRIBUTE_MODIFICATIONS_VARIANT: return "X11 License Distribution Modification Variant";
5087            case XDEBUG_1_03: return "Xdebug License v 1.03";
5088            case XEROX: return "Xerox License";
5089            case XFIG: return "Xfig License";
5090            case XFREE86_1_1: return "XFree86 License 1.1";
5091            case XINETD: return "xinetd License";
5092            case XLOCK: return "xlock License";
5093            case XNET: return "X.Net License";
5094            case XPP: return "XPP License";
5095            case XSKAT: return "XSkat License";
5096            case YPL_1_0: return "Yahoo! Public License v1.0";
5097            case YPL_1_1: return "Yahoo! Public License v1.1";
5098            case ZED: return "Zed License";
5099            case ZEND_2_0: return "Zend License v2.0";
5100            case ZIMBRA_1_3: return "Zimbra Public License v1.3";
5101            case ZIMBRA_1_4: return "Zimbra Public License v1.4";
5102            case ZLIB: return "zlib License";
5103            case ZLIB_ACKNOWLEDGEMENT: return "zlib/libpng License with Acknowledgement";
5104            case ZPL_1_1: return "Zope Public License 1.1";
5105            case ZPL_2_0: return "Zope Public License 2.0";
5106            case ZPL_2_1: return "Zope Public License 2.1";
5107            case NULL: return null;
5108            default: return "?";
5109          }
5110        }
5111        public String getDisplay() {
5112          switch (this) {
5113            case _0BSD: return "BSD Zero Clause License";
5114            case AAL: return "Attribution Assurance License";
5115            case ABSTYLES: return "Abstyles License";
5116            case ADACORE_DOC: return "AdaCore Doc License";
5117            case ADOBE_2006: return "Adobe Systems Incorporated Source Code License Agreement";
5118            case ADOBE_GLYPH: return "Adobe Glyph List License";
5119            case ADSL: return "Amazon Digital Services License";
5120            case AFL_1_1: return "Academic Free License v1.1";
5121            case AFL_1_2: return "Academic Free License v1.2";
5122            case AFL_2_0: return "Academic Free License v2.0";
5123            case AFL_2_1: return "Academic Free License v2.1";
5124            case AFL_3_0: return "Academic Free License v3.0";
5125            case AFMPARSE: return "Afmparse License";
5126            case AGPL_1_0: return "Affero General Public License v1.0";
5127            case AGPL_1_0_ONLY: return "Affero General Public License v1.0 only";
5128            case AGPL_1_0_OR_LATER: return "Affero General Public License v1.0 or later";
5129            case AGPL_3_0: return "GNU Affero General Public License v3.0";
5130            case AGPL_3_0_ONLY: return "GNU Affero General Public License v3.0 only";
5131            case AGPL_3_0_OR_LATER: return "GNU Affero General Public License v3.0 or later";
5132            case ALADDIN: return "Aladdin Free Public License";
5133            case AMDPLPA: return "AMD's plpa_map.c License";
5134            case AML: return "Apple MIT License";
5135            case AMPAS: return "Academy of Motion Picture Arts and Sciences BSD";
5136            case ANTLR_PD: return "ANTLR Software Rights Notice";
5137            case ANTLR_PD_FALLBACK: return "ANTLR Software Rights Notice with license fallback";
5138            case APACHE_1_0: return "Apache License 1.0";
5139            case APACHE_1_1: return "Apache License 1.1";
5140            case APACHE_2_0: return "Apache License 2.0";
5141            case APAFML: return "Adobe Postscript AFM License";
5142            case APL_1_0: return "Adaptive Public License 1.0";
5143            case APP_S2P: return "App::s2p License";
5144            case APSL_1_0: return "Apple Public Source License 1.0";
5145            case APSL_1_1: return "Apple Public Source License 1.1";
5146            case APSL_1_2: return "Apple Public Source License 1.2";
5147            case APSL_2_0: return "Apple Public Source License 2.0";
5148            case ARPHIC_1999: return "Arphic Public License";
5149            case ARTISTIC_1_0: return "Artistic License 1.0";
5150            case ARTISTIC_1_0_CL8: return "Artistic License 1.0 w/clause 8";
5151            case ARTISTIC_1_0_PERL: return "Artistic License 1.0 (Perl)";
5152            case ARTISTIC_2_0: return "Artistic License 2.0";
5153            case ASWF_DIGITAL_ASSETS_1_0: return "ASWF Digital Assets License version 1.0";
5154            case ASWF_DIGITAL_ASSETS_1_1: return "ASWF Digital Assets License 1.1";
5155            case BAEKMUK: return "Baekmuk License";
5156            case BAHYPH: return "Bahyph License";
5157            case BARR: return "Barr License";
5158            case BEERWARE: return "Beerware License";
5159            case BITSTREAM_CHARTER: return "Bitstream Charter Font License";
5160            case BITSTREAM_VERA: return "Bitstream Vera Font License";
5161            case BITTORRENT_1_0: return "BitTorrent Open Source License v1.0";
5162            case BITTORRENT_1_1: return "BitTorrent Open Source License v1.1";
5163            case BLESSING: return "SQLite Blessing";
5164            case BLUEOAK_1_0_0: return "Blue Oak Model License 1.0.0";
5165            case BOEHM_GC: return "Boehm-Demers-Weiser GC License";
5166            case BORCEUX: return "Borceux license";
5167            case BRIAN_GLADMAN_3_CLAUSE: return "Brian Gladman 3-Clause License";
5168            case BSD_1_CLAUSE: return "BSD 1-Clause License";
5169            case BSD_2_CLAUSE: return "BSD 2-Clause \"Simplified\" License";
5170            case BSD_2_CLAUSE_FREEBSD: return "BSD 2-Clause FreeBSD License";
5171            case BSD_2_CLAUSE_NETBSD: return "BSD 2-Clause NetBSD License";
5172            case BSD_2_CLAUSE_PATENT: return "BSD-2-Clause Plus Patent License";
5173            case BSD_2_CLAUSE_VIEWS: return "BSD 2-Clause with views sentence";
5174            case BSD_3_CLAUSE: return "BSD 3-Clause \"New\" or \"Revised\" License";
5175            case BSD_3_CLAUSE_ATTRIBUTION: return "BSD with attribution";
5176            case BSD_3_CLAUSE_CLEAR: return "BSD 3-Clause Clear License";
5177            case BSD_3_CLAUSE_LBNL: return "Lawrence Berkeley National Labs BSD variant license";
5178            case BSD_3_CLAUSE_MODIFICATION: return "BSD 3-Clause Modification";
5179            case BSD_3_CLAUSE_NO_MILITARY_LICENSE: return "BSD 3-Clause No Military License";
5180            case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE: return "BSD 3-Clause No Nuclear License";
5181            case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014: return "BSD 3-Clause No Nuclear License 2014";
5182            case BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY: return "BSD 3-Clause No Nuclear Warranty";
5183            case BSD_3_CLAUSE_OPEN_MPI: return "BSD 3-Clause Open MPI variant";
5184            case BSD_4_CLAUSE: return "BSD 4-Clause \"Original\" or \"Old\" License";
5185            case BSD_4_CLAUSE_SHORTENED: return "BSD 4 Clause Shortened";
5186            case BSD_4_CLAUSE_UC: return "BSD-4-Clause (University of California-Specific)";
5187            case BSD_4_3RENO: return "BSD 4.3 RENO License";
5188            case BSD_4_3TAHOE: return "BSD 4.3 TAHOE License";
5189            case BSD_ADVERTISING_ACKNOWLEDGEMENT: return "BSD Advertising Acknowledgement License";
5190            case BSD_ATTRIBUTION_HPND_DISCLAIMER: return "BSD with Attribution and HPND disclaimer";
5191            case BSD_PROTECTION: return "BSD Protection License";
5192            case BSD_SOURCE_CODE: return "BSD Source Code Attribution";
5193            case BSL_1_0: return "Boost Software License 1.0";
5194            case BUSL_1_1: return "Business Source License 1.1";
5195            case BZIP2_1_0_5: return "bzip2 and libbzip2 License v1.0.5";
5196            case BZIP2_1_0_6: return "bzip2 and libbzip2 License v1.0.6";
5197            case C_UDA_1_0: return "Computational Use of Data Agreement v1.0";
5198            case CAL_1_0: return "Cryptographic Autonomy License 1.0";
5199            case CAL_1_0_COMBINED_WORK_EXCEPTION: return "Cryptographic Autonomy License 1.0 (Combined Work Exception)";
5200            case CALDERA: return "Caldera License";
5201            case CATOSL_1_1: return "Computer Associates Trusted Open Source License 1.1";
5202            case CC_BY_1_0: return "Creative Commons Attribution 1.0 Generic";
5203            case CC_BY_2_0: return "Creative Commons Attribution 2.0 Generic";
5204            case CC_BY_2_5: return "Creative Commons Attribution 2.5 Generic";
5205            case CC_BY_2_5_AU: return "Creative Commons Attribution 2.5 Australia";
5206            case CC_BY_3_0: return "Creative Commons Attribution 3.0 Unported";
5207            case CC_BY_3_0_AT: return "Creative Commons Attribution 3.0 Austria";
5208            case CC_BY_3_0_DE: return "Creative Commons Attribution 3.0 Germany";
5209            case CC_BY_3_0_IGO: return "Creative Commons Attribution 3.0 IGO";
5210            case CC_BY_3_0_NL: return "Creative Commons Attribution 3.0 Netherlands";
5211            case CC_BY_3_0_US: return "Creative Commons Attribution 3.0 United States";
5212            case CC_BY_4_0: return "Creative Commons Attribution 4.0 International";
5213            case CC_BY_NC_1_0: return "Creative Commons Attribution Non Commercial 1.0 Generic";
5214            case CC_BY_NC_2_0: return "Creative Commons Attribution Non Commercial 2.0 Generic";
5215            case CC_BY_NC_2_5: return "Creative Commons Attribution Non Commercial 2.5 Generic";
5216            case CC_BY_NC_3_0: return "Creative Commons Attribution Non Commercial 3.0 Unported";
5217            case CC_BY_NC_3_0_DE: return "Creative Commons Attribution Non Commercial 3.0 Germany";
5218            case CC_BY_NC_4_0: return "Creative Commons Attribution Non Commercial 4.0 International";
5219            case CC_BY_NC_ND_1_0: return "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic";
5220            case CC_BY_NC_ND_2_0: return "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic";
5221            case CC_BY_NC_ND_2_5: return "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic";
5222            case CC_BY_NC_ND_3_0: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported";
5223            case CC_BY_NC_ND_3_0_DE: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Germany";
5224            case CC_BY_NC_ND_3_0_IGO: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO";
5225            case CC_BY_NC_ND_4_0: return "Creative Commons Attribution Non Commercial No Derivatives 4.0 International";
5226            case CC_BY_NC_SA_1_0: return "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic";
5227            case CC_BY_NC_SA_2_0: return "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic";
5228            case CC_BY_NC_SA_2_0_DE: return "Creative Commons Attribution Non Commercial Share Alike 2.0 Germany";
5229            case CC_BY_NC_SA_2_0_FR: return "Creative Commons Attribution-NonCommercial-ShareAlike 2.0 France";
5230            case CC_BY_NC_SA_2_0_UK: return "Creative Commons Attribution Non Commercial Share Alike 2.0 England and Wales";
5231            case CC_BY_NC_SA_2_5: return "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic";
5232            case CC_BY_NC_SA_3_0: return "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported";
5233            case CC_BY_NC_SA_3_0_DE: return "Creative Commons Attribution Non Commercial Share Alike 3.0 Germany";
5234            case CC_BY_NC_SA_3_0_IGO: return "Creative Commons Attribution Non Commercial Share Alike 3.0 IGO";
5235            case CC_BY_NC_SA_4_0: return "Creative Commons Attribution Non Commercial Share Alike 4.0 International";
5236            case CC_BY_ND_1_0: return "Creative Commons Attribution No Derivatives 1.0 Generic";
5237            case CC_BY_ND_2_0: return "Creative Commons Attribution No Derivatives 2.0 Generic";
5238            case CC_BY_ND_2_5: return "Creative Commons Attribution No Derivatives 2.5 Generic";
5239            case CC_BY_ND_3_0: return "Creative Commons Attribution No Derivatives 3.0 Unported";
5240            case CC_BY_ND_3_0_DE: return "Creative Commons Attribution No Derivatives 3.0 Germany";
5241            case CC_BY_ND_4_0: return "Creative Commons Attribution No Derivatives 4.0 International";
5242            case CC_BY_SA_1_0: return "Creative Commons Attribution Share Alike 1.0 Generic";
5243            case CC_BY_SA_2_0: return "Creative Commons Attribution Share Alike 2.0 Generic";
5244            case CC_BY_SA_2_0_UK: return "Creative Commons Attribution Share Alike 2.0 England and Wales";
5245            case CC_BY_SA_2_1_JP: return "Creative Commons Attribution Share Alike 2.1 Japan";
5246            case CC_BY_SA_2_5: return "Creative Commons Attribution Share Alike 2.5 Generic";
5247            case CC_BY_SA_3_0: return "Creative Commons Attribution Share Alike 3.0 Unported";
5248            case CC_BY_SA_3_0_AT: return "Creative Commons Attribution Share Alike 3.0 Austria";
5249            case CC_BY_SA_3_0_DE: return "Creative Commons Attribution Share Alike 3.0 Germany";
5250            case CC_BY_SA_3_0_IGO: return "Creative Commons Attribution-ShareAlike 3.0 IGO";
5251            case CC_BY_SA_4_0: return "Creative Commons Attribution Share Alike 4.0 International";
5252            case CC_PDDC: return "Creative Commons Public Domain Dedication and Certification";
5253            case CC0_1_0: return "Creative Commons Zero v1.0 Universal";
5254            case CDDL_1_0: return "Common Development and Distribution License 1.0";
5255            case CDDL_1_1: return "Common Development and Distribution License 1.1";
5256            case CDL_1_0: return "Common Documentation License 1.0";
5257            case CDLA_PERMISSIVE_1_0: return "Community Data License Agreement Permissive 1.0";
5258            case CDLA_PERMISSIVE_2_0: return "Community Data License Agreement Permissive 2.0";
5259            case CDLA_SHARING_1_0: return "Community Data License Agreement Sharing 1.0";
5260            case CECILL_1_0: return "CeCILL Free Software License Agreement v1.0";
5261            case CECILL_1_1: return "CeCILL Free Software License Agreement v1.1";
5262            case CECILL_2_0: return "CeCILL Free Software License Agreement v2.0";
5263            case CECILL_2_1: return "CeCILL Free Software License Agreement v2.1";
5264            case CECILL_B: return "CeCILL-B Free Software License Agreement";
5265            case CECILL_C: return "CeCILL-C Free Software License Agreement";
5266            case CERN_OHL_1_1: return "CERN Open Hardware Licence v1.1";
5267            case CERN_OHL_1_2: return "CERN Open Hardware Licence v1.2";
5268            case CERN_OHL_P_2_0: return "CERN Open Hardware Licence Version 2 - Permissive";
5269            case CERN_OHL_S_2_0: return "CERN Open Hardware Licence Version 2 - Strongly Reciprocal";
5270            case CERN_OHL_W_2_0: return "CERN Open Hardware Licence Version 2 - Weakly Reciprocal";
5271            case CFITSIO: return "CFITSIO License";
5272            case CHECKMK: return "Checkmk License";
5273            case CLARTISTIC: return "Clarified Artistic License";
5274            case CLIPS: return "Clips License";
5275            case CMU_MACH: return "CMU Mach License";
5276            case CNRI_JYTHON: return "CNRI Jython License";
5277            case CNRI_PYTHON: return "CNRI Python License";
5278            case CNRI_PYTHON_GPL_COMPATIBLE: return "CNRI Python Open Source GPL Compatible License Agreement";
5279            case COIL_1_0: return "Copyfree Open Innovation License";
5280            case COMMUNITY_SPEC_1_0: return "Community Specification License 1.0";
5281            case CONDOR_1_1: return "Condor Public License v1.1";
5282            case COPYLEFT_NEXT_0_3_0: return "copyleft-next 0.3.0";
5283            case COPYLEFT_NEXT_0_3_1: return "copyleft-next 0.3.1";
5284            case CORNELL_LOSSLESS_JPEG: return "Cornell Lossless JPEG License";
5285            case CPAL_1_0: return "Common Public Attribution License 1.0";
5286            case CPL_1_0: return "Common Public License 1.0";
5287            case CPOL_1_02: return "Code Project Open License 1.02";
5288            case CROSSWORD: return "Crossword License";
5289            case CRYSTALSTACKER: return "CrystalStacker License";
5290            case CUA_OPL_1_0: return "CUA Office Public License v1.0";
5291            case CUBE: return "Cube License";
5292            case CURL: return "curl License";
5293            case D_FSL_1_0: return "Deutsche Freie Software Lizenz";
5294            case DIFFMARK: return "diffmark license";
5295            case DL_DE_BY_2_0: return "Data licence Germany – attribution – version 2.0";
5296            case DOC: return "DOC License";
5297            case DOTSEQN: return "Dotseqn License";
5298            case DRL_1_0: return "Detection Rule License 1.0";
5299            case DSDP: return "DSDP License";
5300            case DTOA: return "David M. Gay dtoa License";
5301            case DVIPDFM: return "dvipdfm License";
5302            case ECL_1_0: return "Educational Community License v1.0";
5303            case ECL_2_0: return "Educational Community License v2.0";
5304            case ECOS_2_0: return "eCos license version 2.0";
5305            case EFL_1_0: return "Eiffel Forum License v1.0";
5306            case EFL_2_0: return "Eiffel Forum License v2.0";
5307            case EGENIX: return "eGenix.com Public License 1.1.0";
5308            case ELASTIC_2_0: return "Elastic License 2.0";
5309            case ENTESSA: return "Entessa Public License v1.0";
5310            case EPICS: return "EPICS Open License";
5311            case EPL_1_0: return "Eclipse Public License 1.0";
5312            case EPL_2_0: return "Eclipse Public License 2.0";
5313            case ERLPL_1_1: return "Erlang Public License v1.1";
5314            case ETALAB_2_0: return "Etalab Open License 2.0";
5315            case EUDATAGRID: return "EU DataGrid Software License";
5316            case EUPL_1_0: return "European Union Public License 1.0";
5317            case EUPL_1_1: return "European Union Public License 1.1";
5318            case EUPL_1_2: return "European Union Public License 1.2";
5319            case EUROSYM: return "Eurosym License";
5320            case FAIR: return "Fair License";
5321            case FDK_AAC: return "Fraunhofer FDK AAC Codec Library";
5322            case FRAMEWORX_1_0: return "Frameworx Open License 1.0";
5323            case FREEBSD_DOC: return "FreeBSD Documentation License";
5324            case FREEIMAGE: return "FreeImage Public License v1.0";
5325            case FSFAP: return "FSF All Permissive License";
5326            case FSFUL: return "FSF Unlimited License";
5327            case FSFULLR: return "FSF Unlimited License (with License Retention)";
5328            case FSFULLRWD: return "FSF Unlimited License (With License Retention and Warranty Disclaimer)";
5329            case FTL: return "Freetype Project License";
5330            case GD: return "GD License";
5331            case GFDL_1_1: return "GNU Free Documentation License v1.1";
5332            case GFDL_1_1_INVARIANTS_ONLY: return "GNU Free Documentation License v1.1 only - invariants";
5333            case GFDL_1_1_INVARIANTS_OR_LATER: return "GNU Free Documentation License v1.1 or later - invariants";
5334            case GFDL_1_1_NO_INVARIANTS_ONLY: return "GNU Free Documentation License v1.1 only - no invariants";
5335            case GFDL_1_1_NO_INVARIANTS_OR_LATER: return "GNU Free Documentation License v1.1 or later - no invariants";
5336            case GFDL_1_1_ONLY: return "GNU Free Documentation License v1.1 only";
5337            case GFDL_1_1_OR_LATER: return "GNU Free Documentation License v1.1 or later";
5338            case GFDL_1_2: return "GNU Free Documentation License v1.2";
5339            case GFDL_1_2_INVARIANTS_ONLY: return "GNU Free Documentation License v1.2 only - invariants";
5340            case GFDL_1_2_INVARIANTS_OR_LATER: return "GNU Free Documentation License v1.2 or later - invariants";
5341            case GFDL_1_2_NO_INVARIANTS_ONLY: return "GNU Free Documentation License v1.2 only - no invariants";
5342            case GFDL_1_2_NO_INVARIANTS_OR_LATER: return "GNU Free Documentation License v1.2 or later - no invariants";
5343            case GFDL_1_2_ONLY: return "GNU Free Documentation License v1.2 only";
5344            case GFDL_1_2_OR_LATER: return "GNU Free Documentation License v1.2 or later";
5345            case GFDL_1_3: return "GNU Free Documentation License v1.3";
5346            case GFDL_1_3_INVARIANTS_ONLY: return "GNU Free Documentation License v1.3 only - invariants";
5347            case GFDL_1_3_INVARIANTS_OR_LATER: return "GNU Free Documentation License v1.3 or later - invariants";
5348            case GFDL_1_3_NO_INVARIANTS_ONLY: return "GNU Free Documentation License v1.3 only - no invariants";
5349            case GFDL_1_3_NO_INVARIANTS_OR_LATER: return "GNU Free Documentation License v1.3 or later - no invariants";
5350            case GFDL_1_3_ONLY: return "GNU Free Documentation License v1.3 only";
5351            case GFDL_1_3_OR_LATER: return "GNU Free Documentation License v1.3 or later";
5352            case GIFTWARE: return "Giftware License";
5353            case GL2PS: return "GL2PS License";
5354            case GLIDE: return "3dfx Glide License";
5355            case GLULXE: return "Glulxe License";
5356            case GLWTPL: return "Good Luck With That Public License";
5357            case GNUPLOT: return "gnuplot License";
5358            case GPL_1_0: return "GNU General Public License v1.0 only";
5359            case GPL_1_0PLUS: return "GNU General Public License v1.0 or later";
5360            case GPL_1_0_ONLY: return "GNU General Public License v1.0 only";
5361            case GPL_1_0_OR_LATER: return "GNU General Public License v1.0 or later";
5362            case GPL_2_0: return "GNU General Public License v2.0 only";
5363            case GPL_2_0PLUS: return "GNU General Public License v2.0 or later";
5364            case GPL_2_0_ONLY: return "GNU General Public License v2.0 only";
5365            case GPL_2_0_OR_LATER: return "GNU General Public License v2.0 or later";
5366            case GPL_2_0_WITH_AUTOCONF_EXCEPTION: return "GNU General Public License v2.0 w/Autoconf exception";
5367            case GPL_2_0_WITH_BISON_EXCEPTION: return "GNU General Public License v2.0 w/Bison exception";
5368            case GPL_2_0_WITH_CLASSPATH_EXCEPTION: return "GNU General Public License v2.0 w/Classpath exception";
5369            case GPL_2_0_WITH_FONT_EXCEPTION: return "GNU General Public License v2.0 w/Font exception";
5370            case GPL_2_0_WITH_GCC_EXCEPTION: return "GNU General Public License v2.0 w/GCC Runtime Library exception";
5371            case GPL_3_0: return "GNU General Public License v3.0 only";
5372            case GPL_3_0PLUS: return "GNU General Public License v3.0 or later";
5373            case GPL_3_0_ONLY: return "GNU General Public License v3.0 only";
5374            case GPL_3_0_OR_LATER: return "GNU General Public License v3.0 or later";
5375            case GPL_3_0_WITH_AUTOCONF_EXCEPTION: return "GNU General Public License v3.0 w/Autoconf exception";
5376            case GPL_3_0_WITH_GCC_EXCEPTION: return "GNU General Public License v3.0 w/GCC Runtime Library exception";
5377            case GRAPHICS_GEMS: return "Graphics Gems License";
5378            case GSOAP_1_3B: return "gSOAP Public License v1.3b";
5379            case HASKELLREPORT: return "Haskell Language Report License";
5380            case HIPPOCRATIC_2_1: return "Hippocratic License 2.1";
5381            case HP_1986: return "Hewlett-Packard 1986 License";
5382            case HPND: return "Historical Permission Notice and Disclaimer";
5383            case HPND_EXPORT_US: return "HPND with US Government export control warning";
5384            case HPND_MARKUS_KUHN: return "Historical Permission Notice and Disclaimer - Markus Kuhn variant";
5385            case HPND_SELL_VARIANT: return "Historical Permission Notice and Disclaimer - sell variant";
5386            case HPND_SELL_VARIANT_MIT_DISCLAIMER: return "HPND sell variant with MIT disclaimer";
5387            case HTMLTIDY: return "HTML Tidy License";
5388            case IBM_PIBS: return "IBM PowerPC Initialization and Boot Software";
5389            case ICU: return "ICU License";
5390            case IEC_CODE_COMPONENTS_EULA: return "IEC    Code Components End-user licence agreement";
5391            case IJG: return "Independent JPEG Group License";
5392            case IJG_SHORT: return "Independent JPEG Group License - short";
5393            case IMAGEMAGICK: return "ImageMagick License";
5394            case IMATIX: return "iMatix Standard Function Library Agreement";
5395            case IMLIB2: return "Imlib2 License";
5396            case INFO_ZIP: return "Info-ZIP License";
5397            case INNER_NET_2_0: return "Inner Net License v2.0";
5398            case INTEL: return "Intel Open Source License";
5399            case INTEL_ACPI: return "Intel ACPI Software License Agreement";
5400            case INTERBASE_1_0: return "Interbase Public License v1.0";
5401            case IPA: return "IPA Font License";
5402            case IPL_1_0: return "IBM Public License v1.0";
5403            case ISC: return "ISC License";
5404            case JAM: return "Jam License";
5405            case JASPER_2_0: return "JasPer License";
5406            case JPL_IMAGE: return "JPL Image Use Policy";
5407            case JPNIC: return "Japan Network Information Center License";
5408            case JSON: return "JSON License";
5409            case KAZLIB: return "Kazlib License";
5410            case KNUTH_CTAN: return "Knuth CTAN License";
5411            case LAL_1_2: return "Licence Art Libre 1.2";
5412            case LAL_1_3: return "Licence Art Libre 1.3";
5413            case LATEX2E: return "Latex2e License";
5414            case LATEX2E_TRANSLATED_NOTICE: return "Latex2e with translated notice permission";
5415            case LEPTONICA: return "Leptonica License";
5416            case LGPL_2_0: return "GNU Library General Public License v2 only";
5417            case LGPL_2_0PLUS: return "GNU Library General Public License v2 or later";
5418            case LGPL_2_0_ONLY: return "GNU Library General Public License v2 only";
5419            case LGPL_2_0_OR_LATER: return "GNU Library General Public License v2 or later";
5420            case LGPL_2_1: return "GNU Lesser General Public License v2.1 only";
5421            case LGPL_2_1PLUS: return "GNU Lesser General Public License v2.1 or later";
5422            case LGPL_2_1_ONLY: return "GNU Lesser General Public License v2.1 only";
5423            case LGPL_2_1_OR_LATER: return "GNU Lesser General Public License v2.1 or later";
5424            case LGPL_3_0: return "GNU Lesser General Public License v3.0 only";
5425            case LGPL_3_0PLUS: return "GNU Lesser General Public License v3.0 or later";
5426            case LGPL_3_0_ONLY: return "GNU Lesser General Public License v3.0 only";
5427            case LGPL_3_0_OR_LATER: return "GNU Lesser General Public License v3.0 or later";
5428            case LGPLLR: return "Lesser General Public License For Linguistic Resources";
5429            case LIBPNG: return "libpng License";
5430            case LIBPNG_2_0: return "PNG Reference Library version 2";
5431            case LIBSELINUX_1_0: return "libselinux public domain notice";
5432            case LIBTIFF: return "libtiff License";
5433            case LIBUTIL_DAVID_NUGENT: return "libutil David Nugent License";
5434            case LILIQ_P_1_1: return "Licence Libre du Québec – Permissive version 1.1";
5435            case LILIQ_R_1_1: return "Licence Libre du Québec – Réciprocité version 1.1";
5436            case LILIQ_RPLUS_1_1: return "Licence Libre du Québec – Réciprocité forte version 1.1";
5437            case LINUX_MAN_PAGES_1_PARA: return "Linux man-pages - 1 paragraph";
5438            case LINUX_MAN_PAGES_COPYLEFT: return "Linux man-pages Copyleft";
5439            case LINUX_MAN_PAGES_COPYLEFT_2_PARA: return "Linux man-pages Copyleft - 2 paragraphs";
5440            case LINUX_MAN_PAGES_COPYLEFT_VAR: return "Linux man-pages Copyleft Variant";
5441            case LINUX_OPENIB: return "Linux Kernel Variant of OpenIB.org license";
5442            case LOOP: return "Common Lisp LOOP License";
5443            case LPL_1_0: return "Lucent Public License Version 1.0";
5444            case LPL_1_02: return "Lucent Public License v1.02";
5445            case LPPL_1_0: return "LaTeX Project Public License v1.0";
5446            case LPPL_1_1: return "LaTeX Project Public License v1.1";
5447            case LPPL_1_2: return "LaTeX Project Public License v1.2";
5448            case LPPL_1_3A: return "LaTeX Project Public License v1.3a";
5449            case LPPL_1_3C: return "LaTeX Project Public License v1.3c";
5450            case LZMA_SDK_9_11_TO_9_20: return "LZMA SDK License (versions 9.11 to 9.20)";
5451            case LZMA_SDK_9_22: return "LZMA SDK License (versions 9.22 and beyond)";
5452            case MAKEINDEX: return "MakeIndex License";
5453            case MARTIN_BIRGMEIER: return "Martin Birgmeier License";
5454            case METAMAIL: return "metamail License";
5455            case MINPACK: return "Minpack License";
5456            case MIROS: return "The MirOS Licence";
5457            case MIT: return "MIT License";
5458            case MIT_0: return "MIT No Attribution";
5459            case MIT_ADVERTISING: return "Enlightenment License (e16)";
5460            case MIT_CMU: return "CMU License";
5461            case MIT_ENNA: return "enna License";
5462            case MIT_FEH: return "feh License";
5463            case MIT_FESTIVAL: return "MIT Festival Variant";
5464            case MIT_MODERN_VARIANT: return "MIT License Modern Variant";
5465            case MIT_OPEN_GROUP: return "MIT Open Group variant";
5466            case MIT_WU: return "MIT Tom Wu Variant";
5467            case MITNFA: return "MIT +no-false-attribs license";
5468            case MOTOSOTO: return "Motosoto License";
5469            case MPI_PERMISSIVE: return "mpi Permissive License";
5470            case MPICH2: return "mpich2 License";
5471            case MPL_1_0: return "Mozilla Public License 1.0";
5472            case MPL_1_1: return "Mozilla Public License 1.1";
5473            case MPL_2_0: return "Mozilla Public License 2.0";
5474            case MPL_2_0_NO_COPYLEFT_EXCEPTION: return "Mozilla Public License 2.0 (no copyleft exception)";
5475            case MPLUS: return "mplus Font License";
5476            case MS_LPL: return "Microsoft Limited Public License";
5477            case MS_PL: return "Microsoft Public License";
5478            case MS_RL: return "Microsoft Reciprocal License";
5479            case MTLL: return "Matrix Template Library License";
5480            case MULANPSL_1_0: return "Mulan Permissive Software License, Version 1";
5481            case MULANPSL_2_0: return "Mulan Permissive Software License, Version 2";
5482            case MULTICS: return "Multics License";
5483            case MUP: return "Mup License";
5484            case NAIST_2003: return "Nara Institute of Science and Technology License (2003)";
5485            case NASA_1_3: return "NASA Open Source Agreement 1.3";
5486            case NAUMEN: return "Naumen Public License";
5487            case NBPL_1_0: return "Net Boolean Public License v1";
5488            case NCGL_UK_2_0: return "Non-Commercial Government Licence";
5489            case NCSA: return "University of Illinois/NCSA Open Source License";
5490            case NET_SNMP: return "Net-SNMP License";
5491            case NETCDF: return "NetCDF license";
5492            case NEWSLETR: return "Newsletr License";
5493            case NGPL: return "Nethack General Public License";
5494            case NICTA_1_0: return "NICTA Public Software License, Version 1.0";
5495            case NIST_PD: return "NIST Public Domain Notice";
5496            case NIST_PD_FALLBACK: return "NIST Public Domain Notice with license fallback";
5497            case NIST_SOFTWARE: return "NIST Software License";
5498            case NLOD_1_0: return "Norwegian Licence for Open Government Data (NLOD) 1.0";
5499            case NLOD_2_0: return "Norwegian Licence for Open Government Data (NLOD) 2.0";
5500            case NLPL: return "No Limit Public License";
5501            case NOKIA: return "Nokia Open Source License";
5502            case NOSL: return "Netizen Open Source License";
5503            case NOT_OPEN_SOURCE: return "Not open source";
5504            case NOWEB: return "Noweb License";
5505            case NPL_1_0: return "Netscape Public License v1.0";
5506            case NPL_1_1: return "Netscape Public License v1.1";
5507            case NPOSL_3_0: return "Non-Profit Open Software License 3.0";
5508            case NRL: return "NRL License";
5509            case NTP: return "NTP License";
5510            case NTP_0: return "NTP No Attribution";
5511            case NUNIT: return "Nunit License";
5512            case O_UDA_1_0: return "Open Use of Data Agreement v1.0";
5513            case OCCT_PL: return "Open CASCADE Technology Public License";
5514            case OCLC_2_0: return "OCLC Research Public License 2.0";
5515            case ODBL_1_0: return "Open Data Commons Open Database License v1.0";
5516            case ODC_BY_1_0: return "Open Data Commons Attribution License v1.0";
5517            case OFFIS: return "OFFIS License";
5518            case OFL_1_0: return "SIL Open Font License 1.0";
5519            case OFL_1_0_NO_RFN: return "SIL Open Font License 1.0 with no Reserved Font Name";
5520            case OFL_1_0_RFN: return "SIL Open Font License 1.0 with Reserved Font Name";
5521            case OFL_1_1: return "SIL Open Font License 1.1";
5522            case OFL_1_1_NO_RFN: return "SIL Open Font License 1.1 with no Reserved Font Name";
5523            case OFL_1_1_RFN: return "SIL Open Font License 1.1 with Reserved Font Name";
5524            case OGC_1_0: return "OGC Software License, Version 1.0";
5525            case OGDL_TAIWAN_1_0: return "Taiwan Open Government Data License, version 1.0";
5526            case OGL_CANADA_2_0: return "Open Government Licence - Canada";
5527            case OGL_UK_1_0: return "Open Government Licence v1.0";
5528            case OGL_UK_2_0: return "Open Government Licence v2.0";
5529            case OGL_UK_3_0: return "Open Government Licence v3.0";
5530            case OGTSL: return "Open Group Test Suite License";
5531            case OLDAP_1_1: return "Open LDAP Public License v1.1";
5532            case OLDAP_1_2: return "Open LDAP Public License v1.2";
5533            case OLDAP_1_3: return "Open LDAP Public License v1.3";
5534            case OLDAP_1_4: return "Open LDAP Public License v1.4";
5535            case OLDAP_2_0: return "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)";
5536            case OLDAP_2_0_1: return "Open LDAP Public License v2.0.1";
5537            case OLDAP_2_1: return "Open LDAP Public License v2.1";
5538            case OLDAP_2_2: return "Open LDAP Public License v2.2";
5539            case OLDAP_2_2_1: return "Open LDAP Public License v2.2.1";
5540            case OLDAP_2_2_2: return "Open LDAP Public License 2.2.2";
5541            case OLDAP_2_3: return "Open LDAP Public License v2.3";
5542            case OLDAP_2_4: return "Open LDAP Public License v2.4";
5543            case OLDAP_2_5: return "Open LDAP Public License v2.5";
5544            case OLDAP_2_6: return "Open LDAP Public License v2.6";
5545            case OLDAP_2_7: return "Open LDAP Public License v2.7";
5546            case OLDAP_2_8: return "Open LDAP Public License v2.8";
5547            case OLFL_1_3: return "Open Logistics Foundation License Version 1.3";
5548            case OML: return "Open Market License";
5549            case OPENPBS_2_3: return "OpenPBS v2.3 Software License";
5550            case OPENSSL: return "OpenSSL License";
5551            case OPL_1_0: return "Open Public License v1.0";
5552            case OPL_UK_3_0: return "United    Kingdom Open Parliament Licence v3.0";
5553            case OPUBL_1_0: return "Open Publication License v1.0";
5554            case OSET_PL_2_1: return "OSET Public License version 2.1";
5555            case OSL_1_0: return "Open Software License 1.0";
5556            case OSL_1_1: return "Open Software License 1.1";
5557            case OSL_2_0: return "Open Software License 2.0";
5558            case OSL_2_1: return "Open Software License 2.1";
5559            case OSL_3_0: return "Open Software License 3.0";
5560            case PARITY_6_0_0: return "The Parity Public License 6.0.0";
5561            case PARITY_7_0_0: return "The Parity Public License 7.0.0";
5562            case PDDL_1_0: return "Open Data Commons Public Domain Dedication & License 1.0";
5563            case PHP_3_0: return "PHP License v3.0";
5564            case PHP_3_01: return "PHP License v3.01";
5565            case PLEXUS: return "Plexus Classworlds License";
5566            case POLYFORM_NONCOMMERCIAL_1_0_0: return "PolyForm Noncommercial License 1.0.0";
5567            case POLYFORM_SMALL_BUSINESS_1_0_0: return "PolyForm Small Business License 1.0.0";
5568            case POSTGRESQL: return "PostgreSQL License";
5569            case PSF_2_0: return "Python Software Foundation License 2.0";
5570            case PSFRAG: return "psfrag License";
5571            case PSUTILS: return "psutils License";
5572            case PYTHON_2_0: return "Python License 2.0";
5573            case PYTHON_2_0_1: return "Python License 2.0.1";
5574            case QHULL: return "Qhull License";
5575            case QPL_1_0: return "Q Public License 1.0";
5576            case QPL_1_0_INRIA_2004: return "Q Public License 1.0 - INRIA 2004 variant";
5577            case RDISC: return "Rdisc License";
5578            case RHECOS_1_1: return "Red Hat eCos Public License v1.1";
5579            case RPL_1_1: return "Reciprocal Public License 1.1";
5580            case RPL_1_5: return "Reciprocal Public License 1.5";
5581            case RPSL_1_0: return "RealNetworks Public Source License v1.0";
5582            case RSA_MD: return "RSA Message-Digest License";
5583            case RSCPL: return "Ricoh Source Code Public License";
5584            case RUBY: return "Ruby License";
5585            case SAX_PD: return "Sax Public Domain Notice";
5586            case SAXPATH: return "Saxpath License";
5587            case SCEA: return "SCEA Shared Source License";
5588            case SCHEMEREPORT: return "Scheme Language Report License";
5589            case SENDMAIL: return "Sendmail License";
5590            case SENDMAIL_8_23: return "Sendmail License 8.23";
5591            case SGI_B_1_0: return "SGI Free Software License B v1.0";
5592            case SGI_B_1_1: return "SGI Free Software License B v1.1";
5593            case SGI_B_2_0: return "SGI Free Software License B v2.0";
5594            case SGP4: return "SGP4 Permission Notice";
5595            case SHL_0_5: return "Solderpad Hardware License v0.5";
5596            case SHL_0_51: return "Solderpad Hardware License, Version 0.51";
5597            case SIMPL_2_0: return "Simple Public License 2.0";
5598            case SISSL: return "Sun Industry Standards Source License v1.1";
5599            case SISSL_1_2: return "Sun Industry Standards Source License v1.2";
5600            case SLEEPYCAT: return "Sleepycat License";
5601            case SMLNJ: return "Standard ML of New Jersey License";
5602            case SMPPL: return "Secure Messaging Protocol Public License";
5603            case SNIA: return "SNIA Public License 1.1";
5604            case SNPRINTF: return "snprintf License";
5605            case SPENCER_86: return "Spencer License 86";
5606            case SPENCER_94: return "Spencer License 94";
5607            case SPENCER_99: return "Spencer License 99";
5608            case SPL_1_0: return "Sun Public License v1.0";
5609            case SSH_OPENSSH: return "SSH OpenSSH license";
5610            case SSH_SHORT: return "SSH short notice";
5611            case SSPL_1_0: return "Server Side Public License, v 1";
5612            case STANDARDML_NJ: return "Standard ML of New Jersey License";
5613            case SUGARCRM_1_1_3: return "SugarCRM Public License v1.1.3";
5614            case SUNPRO: return "SunPro License";
5615            case SWL: return "Scheme Widget Library (SWL) Software License Agreement";
5616            case SYMLINKS: return "Symlinks License";
5617            case TAPR_OHL_1_0: return "TAPR Open Hardware License v1.0";
5618            case TCL: return "TCL/TK License";
5619            case TCP_WRAPPERS: return "TCP Wrappers License";
5620            case TERMREADKEY: return "TermReadKey License";
5621            case TMATE: return "TMate Open Source License";
5622            case TORQUE_1_1: return "TORQUE v2.5+ Software License v1.1";
5623            case TOSL: return "Trusster Open Source License";
5624            case TPDL: return "Time::ParseDate License";
5625            case TPL_1_0: return "THOR Public License 1.0";
5626            case TTWL: return "Text-Tabs+Wrap License";
5627            case TU_BERLIN_1_0: return "Technische Universitaet Berlin License 1.0";
5628            case TU_BERLIN_2_0: return "Technische Universitaet Berlin License 2.0";
5629            case UCAR: return "UCAR License";
5630            case UCL_1_0: return "Upstream Compatibility License v1.0";
5631            case UNICODE_DFS_2015: return "Unicode License Agreement - Data Files and Software (2015)";
5632            case UNICODE_DFS_2016: return "Unicode License Agreement - Data Files and Software (2016)";
5633            case UNICODE_TOU: return "Unicode Terms of Use";
5634            case UNIXCRYPT: return "UnixCrypt License";
5635            case UNLICENSE: return "The Unlicense";
5636            case UPL_1_0: return "Universal Permissive License v1.0";
5637            case VIM: return "Vim License";
5638            case VOSTROM: return "VOSTROM Public License for Open Source";
5639            case VSL_1_0: return "Vovida Software License v1.0";
5640            case W3C: return "W3C Software Notice and License (2002-12-31)";
5641            case W3C_19980720: return "W3C Software Notice and License (1998-07-20)";
5642            case W3C_20150513: return "W3C Software Notice and Document License (2015-05-13)";
5643            case W3M: return "w3m License";
5644            case WATCOM_1_0: return "Sybase Open Watcom Public License 1.0";
5645            case WIDGET_WORKSHOP: return "Widget Workshop License";
5646            case WSUIPA: return "Wsuipa License";
5647            case WTFPL: return "Do What The F*ck You Want To Public License";
5648            case WXWINDOWS: return "wxWindows Library License";
5649            case X11: return "X11 License";
5650            case X11_DISTRIBUTE_MODIFICATIONS_VARIANT: return "X11 License Distribution Modification Variant";
5651            case XDEBUG_1_03: return "Xdebug License v 1.03";
5652            case XEROX: return "Xerox License";
5653            case XFIG: return "Xfig License";
5654            case XFREE86_1_1: return "XFree86 License 1.1";
5655            case XINETD: return "xinetd License";
5656            case XLOCK: return "xlock License";
5657            case XNET: return "X.Net License";
5658            case XPP: return "XPP License";
5659            case XSKAT: return "XSkat License";
5660            case YPL_1_0: return "Yahoo! Public License v1.0";
5661            case YPL_1_1: return "Yahoo! Public License v1.1";
5662            case ZED: return "Zed License";
5663            case ZEND_2_0: return "Zend License v2.0";
5664            case ZIMBRA_1_3: return "Zimbra Public License v1.3";
5665            case ZIMBRA_1_4: return "Zimbra Public License v1.4";
5666            case ZLIB: return "zlib License";
5667            case ZLIB_ACKNOWLEDGEMENT: return "zlib/libpng License with Acknowledgement";
5668            case ZPL_1_1: return "Zope Public License 1.1";
5669            case ZPL_2_0: return "Zope Public License 2.0";
5670            case ZPL_2_1: return "Zope Public License 2.1";
5671            case NULL: return null;
5672            default: return "?";
5673          }
5674        }
5675    }
5676
5677  public static class SPDXLicenseEnumFactory implements EnumFactory<SPDXLicense> {
5678    public SPDXLicense fromCode(String codeString) throws IllegalArgumentException {
5679      if (codeString == null || "".equals(codeString))
5680            if (codeString == null || "".equals(codeString))
5681                return null;
5682        if ("0BSD".equals(codeString))
5683          return SPDXLicense._0BSD;
5684        if ("AAL".equals(codeString))
5685          return SPDXLicense.AAL;
5686        if ("Abstyles".equals(codeString))
5687          return SPDXLicense.ABSTYLES;
5688        if ("AdaCore-doc".equals(codeString))
5689          return SPDXLicense.ADACORE_DOC;
5690        if ("Adobe-2006".equals(codeString))
5691          return SPDXLicense.ADOBE_2006;
5692        if ("Adobe-Glyph".equals(codeString))
5693          return SPDXLicense.ADOBE_GLYPH;
5694        if ("ADSL".equals(codeString))
5695          return SPDXLicense.ADSL;
5696        if ("AFL-1.1".equals(codeString))
5697          return SPDXLicense.AFL_1_1;
5698        if ("AFL-1.2".equals(codeString))
5699          return SPDXLicense.AFL_1_2;
5700        if ("AFL-2.0".equals(codeString))
5701          return SPDXLicense.AFL_2_0;
5702        if ("AFL-2.1".equals(codeString))
5703          return SPDXLicense.AFL_2_1;
5704        if ("AFL-3.0".equals(codeString))
5705          return SPDXLicense.AFL_3_0;
5706        if ("Afmparse".equals(codeString))
5707          return SPDXLicense.AFMPARSE;
5708        if ("AGPL-1.0".equals(codeString))
5709          return SPDXLicense.AGPL_1_0;
5710        if ("AGPL-1.0-only".equals(codeString))
5711          return SPDXLicense.AGPL_1_0_ONLY;
5712        if ("AGPL-1.0-or-later".equals(codeString))
5713          return SPDXLicense.AGPL_1_0_OR_LATER;
5714        if ("AGPL-3.0".equals(codeString))
5715          return SPDXLicense.AGPL_3_0;
5716        if ("AGPL-3.0-only".equals(codeString))
5717          return SPDXLicense.AGPL_3_0_ONLY;
5718        if ("AGPL-3.0-or-later".equals(codeString))
5719          return SPDXLicense.AGPL_3_0_OR_LATER;
5720        if ("Aladdin".equals(codeString))
5721          return SPDXLicense.ALADDIN;
5722        if ("AMDPLPA".equals(codeString))
5723          return SPDXLicense.AMDPLPA;
5724        if ("AML".equals(codeString))
5725          return SPDXLicense.AML;
5726        if ("AMPAS".equals(codeString))
5727          return SPDXLicense.AMPAS;
5728        if ("ANTLR-PD".equals(codeString))
5729          return SPDXLicense.ANTLR_PD;
5730        if ("ANTLR-PD-fallback".equals(codeString))
5731          return SPDXLicense.ANTLR_PD_FALLBACK;
5732        if ("Apache-1.0".equals(codeString))
5733          return SPDXLicense.APACHE_1_0;
5734        if ("Apache-1.1".equals(codeString))
5735          return SPDXLicense.APACHE_1_1;
5736        if ("Apache-2.0".equals(codeString))
5737          return SPDXLicense.APACHE_2_0;
5738        if ("APAFML".equals(codeString))
5739          return SPDXLicense.APAFML;
5740        if ("APL-1.0".equals(codeString))
5741          return SPDXLicense.APL_1_0;
5742        if ("App-s2p".equals(codeString))
5743          return SPDXLicense.APP_S2P;
5744        if ("APSL-1.0".equals(codeString))
5745          return SPDXLicense.APSL_1_0;
5746        if ("APSL-1.1".equals(codeString))
5747          return SPDXLicense.APSL_1_1;
5748        if ("APSL-1.2".equals(codeString))
5749          return SPDXLicense.APSL_1_2;
5750        if ("APSL-2.0".equals(codeString))
5751          return SPDXLicense.APSL_2_0;
5752        if ("Arphic-1999".equals(codeString))
5753          return SPDXLicense.ARPHIC_1999;
5754        if ("Artistic-1.0".equals(codeString))
5755          return SPDXLicense.ARTISTIC_1_0;
5756        if ("Artistic-1.0-cl8".equals(codeString))
5757          return SPDXLicense.ARTISTIC_1_0_CL8;
5758        if ("Artistic-1.0-Perl".equals(codeString))
5759          return SPDXLicense.ARTISTIC_1_0_PERL;
5760        if ("Artistic-2.0".equals(codeString))
5761          return SPDXLicense.ARTISTIC_2_0;
5762        if ("ASWF-Digital-Assets-1.0".equals(codeString))
5763          return SPDXLicense.ASWF_DIGITAL_ASSETS_1_0;
5764        if ("ASWF-Digital-Assets-1.1".equals(codeString))
5765          return SPDXLicense.ASWF_DIGITAL_ASSETS_1_1;
5766        if ("Baekmuk".equals(codeString))
5767          return SPDXLicense.BAEKMUK;
5768        if ("Bahyph".equals(codeString))
5769          return SPDXLicense.BAHYPH;
5770        if ("Barr".equals(codeString))
5771          return SPDXLicense.BARR;
5772        if ("Beerware".equals(codeString))
5773          return SPDXLicense.BEERWARE;
5774        if ("Bitstream-Charter".equals(codeString))
5775          return SPDXLicense.BITSTREAM_CHARTER;
5776        if ("Bitstream-Vera".equals(codeString))
5777          return SPDXLicense.BITSTREAM_VERA;
5778        if ("BitTorrent-1.0".equals(codeString))
5779          return SPDXLicense.BITTORRENT_1_0;
5780        if ("BitTorrent-1.1".equals(codeString))
5781          return SPDXLicense.BITTORRENT_1_1;
5782        if ("blessing".equals(codeString))
5783          return SPDXLicense.BLESSING;
5784        if ("BlueOak-1.0.0".equals(codeString))
5785          return SPDXLicense.BLUEOAK_1_0_0;
5786        if ("Boehm-GC".equals(codeString))
5787          return SPDXLicense.BOEHM_GC;
5788        if ("Borceux".equals(codeString))
5789          return SPDXLicense.BORCEUX;
5790        if ("Brian-Gladman-3-Clause".equals(codeString))
5791          return SPDXLicense.BRIAN_GLADMAN_3_CLAUSE;
5792        if ("BSD-1-Clause".equals(codeString))
5793          return SPDXLicense.BSD_1_CLAUSE;
5794        if ("BSD-2-Clause".equals(codeString))
5795          return SPDXLicense.BSD_2_CLAUSE;
5796        if ("BSD-2-Clause-FreeBSD".equals(codeString))
5797          return SPDXLicense.BSD_2_CLAUSE_FREEBSD;
5798        if ("BSD-2-Clause-NetBSD".equals(codeString))
5799          return SPDXLicense.BSD_2_CLAUSE_NETBSD;
5800        if ("BSD-2-Clause-Patent".equals(codeString))
5801          return SPDXLicense.BSD_2_CLAUSE_PATENT;
5802        if ("BSD-2-Clause-Views".equals(codeString))
5803          return SPDXLicense.BSD_2_CLAUSE_VIEWS;
5804        if ("BSD-3-Clause".equals(codeString))
5805          return SPDXLicense.BSD_3_CLAUSE;
5806        if ("BSD-3-Clause-Attribution".equals(codeString))
5807          return SPDXLicense.BSD_3_CLAUSE_ATTRIBUTION;
5808        if ("BSD-3-Clause-Clear".equals(codeString))
5809          return SPDXLicense.BSD_3_CLAUSE_CLEAR;
5810        if ("BSD-3-Clause-LBNL".equals(codeString))
5811          return SPDXLicense.BSD_3_CLAUSE_LBNL;
5812        if ("BSD-3-Clause-Modification".equals(codeString))
5813          return SPDXLicense.BSD_3_CLAUSE_MODIFICATION;
5814        if ("BSD-3-Clause-No-Military-License".equals(codeString))
5815          return SPDXLicense.BSD_3_CLAUSE_NO_MILITARY_LICENSE;
5816        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
5817          return SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_LICENSE;
5818        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
5819          return SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014;
5820        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
5821          return SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY;
5822        if ("BSD-3-Clause-Open-MPI".equals(codeString))
5823          return SPDXLicense.BSD_3_CLAUSE_OPEN_MPI;
5824        if ("BSD-4-Clause".equals(codeString))
5825          return SPDXLicense.BSD_4_CLAUSE;
5826        if ("BSD-4-Clause-Shortened".equals(codeString))
5827          return SPDXLicense.BSD_4_CLAUSE_SHORTENED;
5828        if ("BSD-4-Clause-UC".equals(codeString))
5829          return SPDXLicense.BSD_4_CLAUSE_UC;
5830        if ("BSD-4.3RENO".equals(codeString))
5831          return SPDXLicense.BSD_4_3RENO;
5832        if ("BSD-4.3TAHOE".equals(codeString))
5833          return SPDXLicense.BSD_4_3TAHOE;
5834        if ("BSD-Advertising-Acknowledgement".equals(codeString))
5835          return SPDXLicense.BSD_ADVERTISING_ACKNOWLEDGEMENT;
5836        if ("BSD-Attribution-HPND-disclaimer".equals(codeString))
5837          return SPDXLicense.BSD_ATTRIBUTION_HPND_DISCLAIMER;
5838        if ("BSD-Protection".equals(codeString))
5839          return SPDXLicense.BSD_PROTECTION;
5840        if ("BSD-Source-Code".equals(codeString))
5841          return SPDXLicense.BSD_SOURCE_CODE;
5842        if ("BSL-1.0".equals(codeString))
5843          return SPDXLicense.BSL_1_0;
5844        if ("BUSL-1.1".equals(codeString))
5845          return SPDXLicense.BUSL_1_1;
5846        if ("bzip2-1.0.5".equals(codeString))
5847          return SPDXLicense.BZIP2_1_0_5;
5848        if ("bzip2-1.0.6".equals(codeString))
5849          return SPDXLicense.BZIP2_1_0_6;
5850        if ("C-UDA-1.0".equals(codeString))
5851          return SPDXLicense.C_UDA_1_0;
5852        if ("CAL-1.0".equals(codeString))
5853          return SPDXLicense.CAL_1_0;
5854        if ("CAL-1.0-Combined-Work-Exception".equals(codeString))
5855          return SPDXLicense.CAL_1_0_COMBINED_WORK_EXCEPTION;
5856        if ("Caldera".equals(codeString))
5857          return SPDXLicense.CALDERA;
5858        if ("CATOSL-1.1".equals(codeString))
5859          return SPDXLicense.CATOSL_1_1;
5860        if ("CC-BY-1.0".equals(codeString))
5861          return SPDXLicense.CC_BY_1_0;
5862        if ("CC-BY-2.0".equals(codeString))
5863          return SPDXLicense.CC_BY_2_0;
5864        if ("CC-BY-2.5".equals(codeString))
5865          return SPDXLicense.CC_BY_2_5;
5866        if ("CC-BY-2.5-AU".equals(codeString))
5867          return SPDXLicense.CC_BY_2_5_AU;
5868        if ("CC-BY-3.0".equals(codeString))
5869          return SPDXLicense.CC_BY_3_0;
5870        if ("CC-BY-3.0-AT".equals(codeString))
5871          return SPDXLicense.CC_BY_3_0_AT;
5872        if ("CC-BY-3.0-DE".equals(codeString))
5873          return SPDXLicense.CC_BY_3_0_DE;
5874        if ("CC-BY-3.0-IGO".equals(codeString))
5875          return SPDXLicense.CC_BY_3_0_IGO;
5876        if ("CC-BY-3.0-NL".equals(codeString))
5877          return SPDXLicense.CC_BY_3_0_NL;
5878        if ("CC-BY-3.0-US".equals(codeString))
5879          return SPDXLicense.CC_BY_3_0_US;
5880        if ("CC-BY-4.0".equals(codeString))
5881          return SPDXLicense.CC_BY_4_0;
5882        if ("CC-BY-NC-1.0".equals(codeString))
5883          return SPDXLicense.CC_BY_NC_1_0;
5884        if ("CC-BY-NC-2.0".equals(codeString))
5885          return SPDXLicense.CC_BY_NC_2_0;
5886        if ("CC-BY-NC-2.5".equals(codeString))
5887          return SPDXLicense.CC_BY_NC_2_5;
5888        if ("CC-BY-NC-3.0".equals(codeString))
5889          return SPDXLicense.CC_BY_NC_3_0;
5890        if ("CC-BY-NC-3.0-DE".equals(codeString))
5891          return SPDXLicense.CC_BY_NC_3_0_DE;
5892        if ("CC-BY-NC-4.0".equals(codeString))
5893          return SPDXLicense.CC_BY_NC_4_0;
5894        if ("CC-BY-NC-ND-1.0".equals(codeString))
5895          return SPDXLicense.CC_BY_NC_ND_1_0;
5896        if ("CC-BY-NC-ND-2.0".equals(codeString))
5897          return SPDXLicense.CC_BY_NC_ND_2_0;
5898        if ("CC-BY-NC-ND-2.5".equals(codeString))
5899          return SPDXLicense.CC_BY_NC_ND_2_5;
5900        if ("CC-BY-NC-ND-3.0".equals(codeString))
5901          return SPDXLicense.CC_BY_NC_ND_3_0;
5902        if ("CC-BY-NC-ND-3.0-DE".equals(codeString))
5903          return SPDXLicense.CC_BY_NC_ND_3_0_DE;
5904        if ("CC-BY-NC-ND-3.0-IGO".equals(codeString))
5905          return SPDXLicense.CC_BY_NC_ND_3_0_IGO;
5906        if ("CC-BY-NC-ND-4.0".equals(codeString))
5907          return SPDXLicense.CC_BY_NC_ND_4_0;
5908        if ("CC-BY-NC-SA-1.0".equals(codeString))
5909          return SPDXLicense.CC_BY_NC_SA_1_0;
5910        if ("CC-BY-NC-SA-2.0".equals(codeString))
5911          return SPDXLicense.CC_BY_NC_SA_2_0;
5912        if ("CC-BY-NC-SA-2.0-DE".equals(codeString))
5913          return SPDXLicense.CC_BY_NC_SA_2_0_DE;
5914        if ("CC-BY-NC-SA-2.0-FR".equals(codeString))
5915          return SPDXLicense.CC_BY_NC_SA_2_0_FR;
5916        if ("CC-BY-NC-SA-2.0-UK".equals(codeString))
5917          return SPDXLicense.CC_BY_NC_SA_2_0_UK;
5918        if ("CC-BY-NC-SA-2.5".equals(codeString))
5919          return SPDXLicense.CC_BY_NC_SA_2_5;
5920        if ("CC-BY-NC-SA-3.0".equals(codeString))
5921          return SPDXLicense.CC_BY_NC_SA_3_0;
5922        if ("CC-BY-NC-SA-3.0-DE".equals(codeString))
5923          return SPDXLicense.CC_BY_NC_SA_3_0_DE;
5924        if ("CC-BY-NC-SA-3.0-IGO".equals(codeString))
5925          return SPDXLicense.CC_BY_NC_SA_3_0_IGO;
5926        if ("CC-BY-NC-SA-4.0".equals(codeString))
5927          return SPDXLicense.CC_BY_NC_SA_4_0;
5928        if ("CC-BY-ND-1.0".equals(codeString))
5929          return SPDXLicense.CC_BY_ND_1_0;
5930        if ("CC-BY-ND-2.0".equals(codeString))
5931          return SPDXLicense.CC_BY_ND_2_0;
5932        if ("CC-BY-ND-2.5".equals(codeString))
5933          return SPDXLicense.CC_BY_ND_2_5;
5934        if ("CC-BY-ND-3.0".equals(codeString))
5935          return SPDXLicense.CC_BY_ND_3_0;
5936        if ("CC-BY-ND-3.0-DE".equals(codeString))
5937          return SPDXLicense.CC_BY_ND_3_0_DE;
5938        if ("CC-BY-ND-4.0".equals(codeString))
5939          return SPDXLicense.CC_BY_ND_4_0;
5940        if ("CC-BY-SA-1.0".equals(codeString))
5941          return SPDXLicense.CC_BY_SA_1_0;
5942        if ("CC-BY-SA-2.0".equals(codeString))
5943          return SPDXLicense.CC_BY_SA_2_0;
5944        if ("CC-BY-SA-2.0-UK".equals(codeString))
5945          return SPDXLicense.CC_BY_SA_2_0_UK;
5946        if ("CC-BY-SA-2.1-JP".equals(codeString))
5947          return SPDXLicense.CC_BY_SA_2_1_JP;
5948        if ("CC-BY-SA-2.5".equals(codeString))
5949          return SPDXLicense.CC_BY_SA_2_5;
5950        if ("CC-BY-SA-3.0".equals(codeString))
5951          return SPDXLicense.CC_BY_SA_3_0;
5952        if ("CC-BY-SA-3.0-AT".equals(codeString))
5953          return SPDXLicense.CC_BY_SA_3_0_AT;
5954        if ("CC-BY-SA-3.0-DE".equals(codeString))
5955          return SPDXLicense.CC_BY_SA_3_0_DE;
5956        if ("CC-BY-SA-3.0-IGO".equals(codeString))
5957          return SPDXLicense.CC_BY_SA_3_0_IGO;
5958        if ("CC-BY-SA-4.0".equals(codeString))
5959          return SPDXLicense.CC_BY_SA_4_0;
5960        if ("CC-PDDC".equals(codeString))
5961          return SPDXLicense.CC_PDDC;
5962        if ("CC0-1.0".equals(codeString))
5963          return SPDXLicense.CC0_1_0;
5964        if ("CDDL-1.0".equals(codeString))
5965          return SPDXLicense.CDDL_1_0;
5966        if ("CDDL-1.1".equals(codeString))
5967          return SPDXLicense.CDDL_1_1;
5968        if ("CDL-1.0".equals(codeString))
5969          return SPDXLicense.CDL_1_0;
5970        if ("CDLA-Permissive-1.0".equals(codeString))
5971          return SPDXLicense.CDLA_PERMISSIVE_1_0;
5972        if ("CDLA-Permissive-2.0".equals(codeString))
5973          return SPDXLicense.CDLA_PERMISSIVE_2_0;
5974        if ("CDLA-Sharing-1.0".equals(codeString))
5975          return SPDXLicense.CDLA_SHARING_1_0;
5976        if ("CECILL-1.0".equals(codeString))
5977          return SPDXLicense.CECILL_1_0;
5978        if ("CECILL-1.1".equals(codeString))
5979          return SPDXLicense.CECILL_1_1;
5980        if ("CECILL-2.0".equals(codeString))
5981          return SPDXLicense.CECILL_2_0;
5982        if ("CECILL-2.1".equals(codeString))
5983          return SPDXLicense.CECILL_2_1;
5984        if ("CECILL-B".equals(codeString))
5985          return SPDXLicense.CECILL_B;
5986        if ("CECILL-C".equals(codeString))
5987          return SPDXLicense.CECILL_C;
5988        if ("CERN-OHL-1.1".equals(codeString))
5989          return SPDXLicense.CERN_OHL_1_1;
5990        if ("CERN-OHL-1.2".equals(codeString))
5991          return SPDXLicense.CERN_OHL_1_2;
5992        if ("CERN-OHL-P-2.0".equals(codeString))
5993          return SPDXLicense.CERN_OHL_P_2_0;
5994        if ("CERN-OHL-S-2.0".equals(codeString))
5995          return SPDXLicense.CERN_OHL_S_2_0;
5996        if ("CERN-OHL-W-2.0".equals(codeString))
5997          return SPDXLicense.CERN_OHL_W_2_0;
5998        if ("CFITSIO".equals(codeString))
5999          return SPDXLicense.CFITSIO;
6000        if ("checkmk".equals(codeString))
6001          return SPDXLicense.CHECKMK;
6002        if ("ClArtistic".equals(codeString))
6003          return SPDXLicense.CLARTISTIC;
6004        if ("Clips".equals(codeString))
6005          return SPDXLicense.CLIPS;
6006        if ("CMU-Mach".equals(codeString))
6007          return SPDXLicense.CMU_MACH;
6008        if ("CNRI-Jython".equals(codeString))
6009          return SPDXLicense.CNRI_JYTHON;
6010        if ("CNRI-Python".equals(codeString))
6011          return SPDXLicense.CNRI_PYTHON;
6012        if ("CNRI-Python-GPL-Compatible".equals(codeString))
6013          return SPDXLicense.CNRI_PYTHON_GPL_COMPATIBLE;
6014        if ("COIL-1.0".equals(codeString))
6015          return SPDXLicense.COIL_1_0;
6016        if ("Community-Spec-1.0".equals(codeString))
6017          return SPDXLicense.COMMUNITY_SPEC_1_0;
6018        if ("Condor-1.1".equals(codeString))
6019          return SPDXLicense.CONDOR_1_1;
6020        if ("copyleft-next-0.3.0".equals(codeString))
6021          return SPDXLicense.COPYLEFT_NEXT_0_3_0;
6022        if ("copyleft-next-0.3.1".equals(codeString))
6023          return SPDXLicense.COPYLEFT_NEXT_0_3_1;
6024        if ("Cornell-Lossless-JPEG".equals(codeString))
6025          return SPDXLicense.CORNELL_LOSSLESS_JPEG;
6026        if ("CPAL-1.0".equals(codeString))
6027          return SPDXLicense.CPAL_1_0;
6028        if ("CPL-1.0".equals(codeString))
6029          return SPDXLicense.CPL_1_0;
6030        if ("CPOL-1.02".equals(codeString))
6031          return SPDXLicense.CPOL_1_02;
6032        if ("Crossword".equals(codeString))
6033          return SPDXLicense.CROSSWORD;
6034        if ("CrystalStacker".equals(codeString))
6035          return SPDXLicense.CRYSTALSTACKER;
6036        if ("CUA-OPL-1.0".equals(codeString))
6037          return SPDXLicense.CUA_OPL_1_0;
6038        if ("Cube".equals(codeString))
6039          return SPDXLicense.CUBE;
6040        if ("curl".equals(codeString))
6041          return SPDXLicense.CURL;
6042        if ("D-FSL-1.0".equals(codeString))
6043          return SPDXLicense.D_FSL_1_0;
6044        if ("diffmark".equals(codeString))
6045          return SPDXLicense.DIFFMARK;
6046        if ("DL-DE-BY-2.0".equals(codeString))
6047          return SPDXLicense.DL_DE_BY_2_0;
6048        if ("DOC".equals(codeString))
6049          return SPDXLicense.DOC;
6050        if ("Dotseqn".equals(codeString))
6051          return SPDXLicense.DOTSEQN;
6052        if ("DRL-1.0".equals(codeString))
6053          return SPDXLicense.DRL_1_0;
6054        if ("DSDP".equals(codeString))
6055          return SPDXLicense.DSDP;
6056        if ("dtoa".equals(codeString))
6057          return SPDXLicense.DTOA;
6058        if ("dvipdfm".equals(codeString))
6059          return SPDXLicense.DVIPDFM;
6060        if ("ECL-1.0".equals(codeString))
6061          return SPDXLicense.ECL_1_0;
6062        if ("ECL-2.0".equals(codeString))
6063          return SPDXLicense.ECL_2_0;
6064        if ("eCos-2.0".equals(codeString))
6065          return SPDXLicense.ECOS_2_0;
6066        if ("EFL-1.0".equals(codeString))
6067          return SPDXLicense.EFL_1_0;
6068        if ("EFL-2.0".equals(codeString))
6069          return SPDXLicense.EFL_2_0;
6070        if ("eGenix".equals(codeString))
6071          return SPDXLicense.EGENIX;
6072        if ("Elastic-2.0".equals(codeString))
6073          return SPDXLicense.ELASTIC_2_0;
6074        if ("Entessa".equals(codeString))
6075          return SPDXLicense.ENTESSA;
6076        if ("EPICS".equals(codeString))
6077          return SPDXLicense.EPICS;
6078        if ("EPL-1.0".equals(codeString))
6079          return SPDXLicense.EPL_1_0;
6080        if ("EPL-2.0".equals(codeString))
6081          return SPDXLicense.EPL_2_0;
6082        if ("ErlPL-1.1".equals(codeString))
6083          return SPDXLicense.ERLPL_1_1;
6084        if ("etalab-2.0".equals(codeString))
6085          return SPDXLicense.ETALAB_2_0;
6086        if ("EUDatagrid".equals(codeString))
6087          return SPDXLicense.EUDATAGRID;
6088        if ("EUPL-1.0".equals(codeString))
6089          return SPDXLicense.EUPL_1_0;
6090        if ("EUPL-1.1".equals(codeString))
6091          return SPDXLicense.EUPL_1_1;
6092        if ("EUPL-1.2".equals(codeString))
6093          return SPDXLicense.EUPL_1_2;
6094        if ("Eurosym".equals(codeString))
6095          return SPDXLicense.EUROSYM;
6096        if ("Fair".equals(codeString))
6097          return SPDXLicense.FAIR;
6098        if ("FDK-AAC".equals(codeString))
6099          return SPDXLicense.FDK_AAC;
6100        if ("Frameworx-1.0".equals(codeString))
6101          return SPDXLicense.FRAMEWORX_1_0;
6102        if ("FreeBSD-DOC".equals(codeString))
6103          return SPDXLicense.FREEBSD_DOC;
6104        if ("FreeImage".equals(codeString))
6105          return SPDXLicense.FREEIMAGE;
6106        if ("FSFAP".equals(codeString))
6107          return SPDXLicense.FSFAP;
6108        if ("FSFUL".equals(codeString))
6109          return SPDXLicense.FSFUL;
6110        if ("FSFULLR".equals(codeString))
6111          return SPDXLicense.FSFULLR;
6112        if ("FSFULLRWD".equals(codeString))
6113          return SPDXLicense.FSFULLRWD;
6114        if ("FTL".equals(codeString))
6115          return SPDXLicense.FTL;
6116        if ("GD".equals(codeString))
6117          return SPDXLicense.GD;
6118        if ("GFDL-1.1".equals(codeString))
6119          return SPDXLicense.GFDL_1_1;
6120        if ("GFDL-1.1-invariants-only".equals(codeString))
6121          return SPDXLicense.GFDL_1_1_INVARIANTS_ONLY;
6122        if ("GFDL-1.1-invariants-or-later".equals(codeString))
6123          return SPDXLicense.GFDL_1_1_INVARIANTS_OR_LATER;
6124        if ("GFDL-1.1-no-invariants-only".equals(codeString))
6125          return SPDXLicense.GFDL_1_1_NO_INVARIANTS_ONLY;
6126        if ("GFDL-1.1-no-invariants-or-later".equals(codeString))
6127          return SPDXLicense.GFDL_1_1_NO_INVARIANTS_OR_LATER;
6128        if ("GFDL-1.1-only".equals(codeString))
6129          return SPDXLicense.GFDL_1_1_ONLY;
6130        if ("GFDL-1.1-or-later".equals(codeString))
6131          return SPDXLicense.GFDL_1_1_OR_LATER;
6132        if ("GFDL-1.2".equals(codeString))
6133          return SPDXLicense.GFDL_1_2;
6134        if ("GFDL-1.2-invariants-only".equals(codeString))
6135          return SPDXLicense.GFDL_1_2_INVARIANTS_ONLY;
6136        if ("GFDL-1.2-invariants-or-later".equals(codeString))
6137          return SPDXLicense.GFDL_1_2_INVARIANTS_OR_LATER;
6138        if ("GFDL-1.2-no-invariants-only".equals(codeString))
6139          return SPDXLicense.GFDL_1_2_NO_INVARIANTS_ONLY;
6140        if ("GFDL-1.2-no-invariants-or-later".equals(codeString))
6141          return SPDXLicense.GFDL_1_2_NO_INVARIANTS_OR_LATER;
6142        if ("GFDL-1.2-only".equals(codeString))
6143          return SPDXLicense.GFDL_1_2_ONLY;
6144        if ("GFDL-1.2-or-later".equals(codeString))
6145          return SPDXLicense.GFDL_1_2_OR_LATER;
6146        if ("GFDL-1.3".equals(codeString))
6147          return SPDXLicense.GFDL_1_3;
6148        if ("GFDL-1.3-invariants-only".equals(codeString))
6149          return SPDXLicense.GFDL_1_3_INVARIANTS_ONLY;
6150        if ("GFDL-1.3-invariants-or-later".equals(codeString))
6151          return SPDXLicense.GFDL_1_3_INVARIANTS_OR_LATER;
6152        if ("GFDL-1.3-no-invariants-only".equals(codeString))
6153          return SPDXLicense.GFDL_1_3_NO_INVARIANTS_ONLY;
6154        if ("GFDL-1.3-no-invariants-or-later".equals(codeString))
6155          return SPDXLicense.GFDL_1_3_NO_INVARIANTS_OR_LATER;
6156        if ("GFDL-1.3-only".equals(codeString))
6157          return SPDXLicense.GFDL_1_3_ONLY;
6158        if ("GFDL-1.3-or-later".equals(codeString))
6159          return SPDXLicense.GFDL_1_3_OR_LATER;
6160        if ("Giftware".equals(codeString))
6161          return SPDXLicense.GIFTWARE;
6162        if ("GL2PS".equals(codeString))
6163          return SPDXLicense.GL2PS;
6164        if ("Glide".equals(codeString))
6165          return SPDXLicense.GLIDE;
6166        if ("Glulxe".equals(codeString))
6167          return SPDXLicense.GLULXE;
6168        if ("GLWTPL".equals(codeString))
6169          return SPDXLicense.GLWTPL;
6170        if ("gnuplot".equals(codeString))
6171          return SPDXLicense.GNUPLOT;
6172        if ("GPL-1.0".equals(codeString))
6173          return SPDXLicense.GPL_1_0;
6174        if ("GPL-1.0+".equals(codeString))
6175          return SPDXLicense.GPL_1_0PLUS;
6176        if ("GPL-1.0-only".equals(codeString))
6177          return SPDXLicense.GPL_1_0_ONLY;
6178        if ("GPL-1.0-or-later".equals(codeString))
6179          return SPDXLicense.GPL_1_0_OR_LATER;
6180        if ("GPL-2.0".equals(codeString))
6181          return SPDXLicense.GPL_2_0;
6182        if ("GPL-2.0+".equals(codeString))
6183          return SPDXLicense.GPL_2_0PLUS;
6184        if ("GPL-2.0-only".equals(codeString))
6185          return SPDXLicense.GPL_2_0_ONLY;
6186        if ("GPL-2.0-or-later".equals(codeString))
6187          return SPDXLicense.GPL_2_0_OR_LATER;
6188        if ("GPL-2.0-with-autoconf-exception".equals(codeString))
6189          return SPDXLicense.GPL_2_0_WITH_AUTOCONF_EXCEPTION;
6190        if ("GPL-2.0-with-bison-exception".equals(codeString))
6191          return SPDXLicense.GPL_2_0_WITH_BISON_EXCEPTION;
6192        if ("GPL-2.0-with-classpath-exception".equals(codeString))
6193          return SPDXLicense.GPL_2_0_WITH_CLASSPATH_EXCEPTION;
6194        if ("GPL-2.0-with-font-exception".equals(codeString))
6195          return SPDXLicense.GPL_2_0_WITH_FONT_EXCEPTION;
6196        if ("GPL-2.0-with-GCC-exception".equals(codeString))
6197          return SPDXLicense.GPL_2_0_WITH_GCC_EXCEPTION;
6198        if ("GPL-3.0".equals(codeString))
6199          return SPDXLicense.GPL_3_0;
6200        if ("GPL-3.0+".equals(codeString))
6201          return SPDXLicense.GPL_3_0PLUS;
6202        if ("GPL-3.0-only".equals(codeString))
6203          return SPDXLicense.GPL_3_0_ONLY;
6204        if ("GPL-3.0-or-later".equals(codeString))
6205          return SPDXLicense.GPL_3_0_OR_LATER;
6206        if ("GPL-3.0-with-autoconf-exception".equals(codeString))
6207          return SPDXLicense.GPL_3_0_WITH_AUTOCONF_EXCEPTION;
6208        if ("GPL-3.0-with-GCC-exception".equals(codeString))
6209          return SPDXLicense.GPL_3_0_WITH_GCC_EXCEPTION;
6210        if ("Graphics-Gems".equals(codeString))
6211          return SPDXLicense.GRAPHICS_GEMS;
6212        if ("gSOAP-1.3b".equals(codeString))
6213          return SPDXLicense.GSOAP_1_3B;
6214        if ("HaskellReport".equals(codeString))
6215          return SPDXLicense.HASKELLREPORT;
6216        if ("Hippocratic-2.1".equals(codeString))
6217          return SPDXLicense.HIPPOCRATIC_2_1;
6218        if ("HP-1986".equals(codeString))
6219          return SPDXLicense.HP_1986;
6220        if ("HPND".equals(codeString))
6221          return SPDXLicense.HPND;
6222        if ("HPND-export-US".equals(codeString))
6223          return SPDXLicense.HPND_EXPORT_US;
6224        if ("HPND-Markus-Kuhn".equals(codeString))
6225          return SPDXLicense.HPND_MARKUS_KUHN;
6226        if ("HPND-sell-variant".equals(codeString))
6227          return SPDXLicense.HPND_SELL_VARIANT;
6228        if ("HPND-sell-variant-MIT-disclaimer".equals(codeString))
6229          return SPDXLicense.HPND_SELL_VARIANT_MIT_DISCLAIMER;
6230        if ("HTMLTIDY".equals(codeString))
6231          return SPDXLicense.HTMLTIDY;
6232        if ("IBM-pibs".equals(codeString))
6233          return SPDXLicense.IBM_PIBS;
6234        if ("ICU".equals(codeString))
6235          return SPDXLicense.ICU;
6236        if ("IEC-Code-Components-EULA".equals(codeString))
6237          return SPDXLicense.IEC_CODE_COMPONENTS_EULA;
6238        if ("IJG".equals(codeString))
6239          return SPDXLicense.IJG;
6240        if ("IJG-short".equals(codeString))
6241          return SPDXLicense.IJG_SHORT;
6242        if ("ImageMagick".equals(codeString))
6243          return SPDXLicense.IMAGEMAGICK;
6244        if ("iMatix".equals(codeString))
6245          return SPDXLicense.IMATIX;
6246        if ("Imlib2".equals(codeString))
6247          return SPDXLicense.IMLIB2;
6248        if ("Info-ZIP".equals(codeString))
6249          return SPDXLicense.INFO_ZIP;
6250        if ("Inner-Net-2.0".equals(codeString))
6251          return SPDXLicense.INNER_NET_2_0;
6252        if ("Intel".equals(codeString))
6253          return SPDXLicense.INTEL;
6254        if ("Intel-ACPI".equals(codeString))
6255          return SPDXLicense.INTEL_ACPI;
6256        if ("Interbase-1.0".equals(codeString))
6257          return SPDXLicense.INTERBASE_1_0;
6258        if ("IPA".equals(codeString))
6259          return SPDXLicense.IPA;
6260        if ("IPL-1.0".equals(codeString))
6261          return SPDXLicense.IPL_1_0;
6262        if ("ISC".equals(codeString))
6263          return SPDXLicense.ISC;
6264        if ("Jam".equals(codeString))
6265          return SPDXLicense.JAM;
6266        if ("JasPer-2.0".equals(codeString))
6267          return SPDXLicense.JASPER_2_0;
6268        if ("JPL-image".equals(codeString))
6269          return SPDXLicense.JPL_IMAGE;
6270        if ("JPNIC".equals(codeString))
6271          return SPDXLicense.JPNIC;
6272        if ("JSON".equals(codeString))
6273          return SPDXLicense.JSON;
6274        if ("Kazlib".equals(codeString))
6275          return SPDXLicense.KAZLIB;
6276        if ("Knuth-CTAN".equals(codeString))
6277          return SPDXLicense.KNUTH_CTAN;
6278        if ("LAL-1.2".equals(codeString))
6279          return SPDXLicense.LAL_1_2;
6280        if ("LAL-1.3".equals(codeString))
6281          return SPDXLicense.LAL_1_3;
6282        if ("Latex2e".equals(codeString))
6283          return SPDXLicense.LATEX2E;
6284        if ("Latex2e-translated-notice".equals(codeString))
6285          return SPDXLicense.LATEX2E_TRANSLATED_NOTICE;
6286        if ("Leptonica".equals(codeString))
6287          return SPDXLicense.LEPTONICA;
6288        if ("LGPL-2.0".equals(codeString))
6289          return SPDXLicense.LGPL_2_0;
6290        if ("LGPL-2.0+".equals(codeString))
6291          return SPDXLicense.LGPL_2_0PLUS;
6292        if ("LGPL-2.0-only".equals(codeString))
6293          return SPDXLicense.LGPL_2_0_ONLY;
6294        if ("LGPL-2.0-or-later".equals(codeString))
6295          return SPDXLicense.LGPL_2_0_OR_LATER;
6296        if ("LGPL-2.1".equals(codeString))
6297          return SPDXLicense.LGPL_2_1;
6298        if ("LGPL-2.1+".equals(codeString))
6299          return SPDXLicense.LGPL_2_1PLUS;
6300        if ("LGPL-2.1-only".equals(codeString))
6301          return SPDXLicense.LGPL_2_1_ONLY;
6302        if ("LGPL-2.1-or-later".equals(codeString))
6303          return SPDXLicense.LGPL_2_1_OR_LATER;
6304        if ("LGPL-3.0".equals(codeString))
6305          return SPDXLicense.LGPL_3_0;
6306        if ("LGPL-3.0+".equals(codeString))
6307          return SPDXLicense.LGPL_3_0PLUS;
6308        if ("LGPL-3.0-only".equals(codeString))
6309          return SPDXLicense.LGPL_3_0_ONLY;
6310        if ("LGPL-3.0-or-later".equals(codeString))
6311          return SPDXLicense.LGPL_3_0_OR_LATER;
6312        if ("LGPLLR".equals(codeString))
6313          return SPDXLicense.LGPLLR;
6314        if ("Libpng".equals(codeString))
6315          return SPDXLicense.LIBPNG;
6316        if ("libpng-2.0".equals(codeString))
6317          return SPDXLicense.LIBPNG_2_0;
6318        if ("libselinux-1.0".equals(codeString))
6319          return SPDXLicense.LIBSELINUX_1_0;
6320        if ("libtiff".equals(codeString))
6321          return SPDXLicense.LIBTIFF;
6322        if ("libutil-David-Nugent".equals(codeString))
6323          return SPDXLicense.LIBUTIL_DAVID_NUGENT;
6324        if ("LiLiQ-P-1.1".equals(codeString))
6325          return SPDXLicense.LILIQ_P_1_1;
6326        if ("LiLiQ-R-1.1".equals(codeString))
6327          return SPDXLicense.LILIQ_R_1_1;
6328        if ("LiLiQ-Rplus-1.1".equals(codeString))
6329          return SPDXLicense.LILIQ_RPLUS_1_1;
6330        if ("Linux-man-pages-1-para".equals(codeString))
6331          return SPDXLicense.LINUX_MAN_PAGES_1_PARA;
6332        if ("Linux-man-pages-copyleft".equals(codeString))
6333          return SPDXLicense.LINUX_MAN_PAGES_COPYLEFT;
6334        if ("Linux-man-pages-copyleft-2-para".equals(codeString))
6335          return SPDXLicense.LINUX_MAN_PAGES_COPYLEFT_2_PARA;
6336        if ("Linux-man-pages-copyleft-var".equals(codeString))
6337          return SPDXLicense.LINUX_MAN_PAGES_COPYLEFT_VAR;
6338        if ("Linux-OpenIB".equals(codeString))
6339          return SPDXLicense.LINUX_OPENIB;
6340        if ("LOOP".equals(codeString))
6341          return SPDXLicense.LOOP;
6342        if ("LPL-1.0".equals(codeString))
6343          return SPDXLicense.LPL_1_0;
6344        if ("LPL-1.02".equals(codeString))
6345          return SPDXLicense.LPL_1_02;
6346        if ("LPPL-1.0".equals(codeString))
6347          return SPDXLicense.LPPL_1_0;
6348        if ("LPPL-1.1".equals(codeString))
6349          return SPDXLicense.LPPL_1_1;
6350        if ("LPPL-1.2".equals(codeString))
6351          return SPDXLicense.LPPL_1_2;
6352        if ("LPPL-1.3a".equals(codeString))
6353          return SPDXLicense.LPPL_1_3A;
6354        if ("LPPL-1.3c".equals(codeString))
6355          return SPDXLicense.LPPL_1_3C;
6356        if ("LZMA-SDK-9.11-to-9.20".equals(codeString))
6357          return SPDXLicense.LZMA_SDK_9_11_TO_9_20;
6358        if ("LZMA-SDK-9.22".equals(codeString))
6359          return SPDXLicense.LZMA_SDK_9_22;
6360        if ("MakeIndex".equals(codeString))
6361          return SPDXLicense.MAKEINDEX;
6362        if ("Martin-Birgmeier".equals(codeString))
6363          return SPDXLicense.MARTIN_BIRGMEIER;
6364        if ("metamail".equals(codeString))
6365          return SPDXLicense.METAMAIL;
6366        if ("Minpack".equals(codeString))
6367          return SPDXLicense.MINPACK;
6368        if ("MirOS".equals(codeString))
6369          return SPDXLicense.MIROS;
6370        if ("MIT".equals(codeString))
6371          return SPDXLicense.MIT;
6372        if ("MIT-0".equals(codeString))
6373          return SPDXLicense.MIT_0;
6374        if ("MIT-advertising".equals(codeString))
6375          return SPDXLicense.MIT_ADVERTISING;
6376        if ("MIT-CMU".equals(codeString))
6377          return SPDXLicense.MIT_CMU;
6378        if ("MIT-enna".equals(codeString))
6379          return SPDXLicense.MIT_ENNA;
6380        if ("MIT-feh".equals(codeString))
6381          return SPDXLicense.MIT_FEH;
6382        if ("MIT-Festival".equals(codeString))
6383          return SPDXLicense.MIT_FESTIVAL;
6384        if ("MIT-Modern-Variant".equals(codeString))
6385          return SPDXLicense.MIT_MODERN_VARIANT;
6386        if ("MIT-open-group".equals(codeString))
6387          return SPDXLicense.MIT_OPEN_GROUP;
6388        if ("MIT-Wu".equals(codeString))
6389          return SPDXLicense.MIT_WU;
6390        if ("MITNFA".equals(codeString))
6391          return SPDXLicense.MITNFA;
6392        if ("Motosoto".equals(codeString))
6393          return SPDXLicense.MOTOSOTO;
6394        if ("mpi-permissive".equals(codeString))
6395          return SPDXLicense.MPI_PERMISSIVE;
6396        if ("mpich2".equals(codeString))
6397          return SPDXLicense.MPICH2;
6398        if ("MPL-1.0".equals(codeString))
6399          return SPDXLicense.MPL_1_0;
6400        if ("MPL-1.1".equals(codeString))
6401          return SPDXLicense.MPL_1_1;
6402        if ("MPL-2.0".equals(codeString))
6403          return SPDXLicense.MPL_2_0;
6404        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
6405          return SPDXLicense.MPL_2_0_NO_COPYLEFT_EXCEPTION;
6406        if ("mplus".equals(codeString))
6407          return SPDXLicense.MPLUS;
6408        if ("MS-LPL".equals(codeString))
6409          return SPDXLicense.MS_LPL;
6410        if ("MS-PL".equals(codeString))
6411          return SPDXLicense.MS_PL;
6412        if ("MS-RL".equals(codeString))
6413          return SPDXLicense.MS_RL;
6414        if ("MTLL".equals(codeString))
6415          return SPDXLicense.MTLL;
6416        if ("MulanPSL-1.0".equals(codeString))
6417          return SPDXLicense.MULANPSL_1_0;
6418        if ("MulanPSL-2.0".equals(codeString))
6419          return SPDXLicense.MULANPSL_2_0;
6420        if ("Multics".equals(codeString))
6421          return SPDXLicense.MULTICS;
6422        if ("Mup".equals(codeString))
6423          return SPDXLicense.MUP;
6424        if ("NAIST-2003".equals(codeString))
6425          return SPDXLicense.NAIST_2003;
6426        if ("NASA-1.3".equals(codeString))
6427          return SPDXLicense.NASA_1_3;
6428        if ("Naumen".equals(codeString))
6429          return SPDXLicense.NAUMEN;
6430        if ("NBPL-1.0".equals(codeString))
6431          return SPDXLicense.NBPL_1_0;
6432        if ("NCGL-UK-2.0".equals(codeString))
6433          return SPDXLicense.NCGL_UK_2_0;
6434        if ("NCSA".equals(codeString))
6435          return SPDXLicense.NCSA;
6436        if ("Net-SNMP".equals(codeString))
6437          return SPDXLicense.NET_SNMP;
6438        if ("NetCDF".equals(codeString))
6439          return SPDXLicense.NETCDF;
6440        if ("Newsletr".equals(codeString))
6441          return SPDXLicense.NEWSLETR;
6442        if ("NGPL".equals(codeString))
6443          return SPDXLicense.NGPL;
6444        if ("NICTA-1.0".equals(codeString))
6445          return SPDXLicense.NICTA_1_0;
6446        if ("NIST-PD".equals(codeString))
6447          return SPDXLicense.NIST_PD;
6448        if ("NIST-PD-fallback".equals(codeString))
6449          return SPDXLicense.NIST_PD_FALLBACK;
6450        if ("NIST-Software".equals(codeString))
6451          return SPDXLicense.NIST_SOFTWARE;
6452        if ("NLOD-1.0".equals(codeString))
6453          return SPDXLicense.NLOD_1_0;
6454        if ("NLOD-2.0".equals(codeString))
6455          return SPDXLicense.NLOD_2_0;
6456        if ("NLPL".equals(codeString))
6457          return SPDXLicense.NLPL;
6458        if ("Nokia".equals(codeString))
6459          return SPDXLicense.NOKIA;
6460        if ("NOSL".equals(codeString))
6461          return SPDXLicense.NOSL;
6462        if ("not-open-source".equals(codeString))
6463          return SPDXLicense.NOT_OPEN_SOURCE;
6464        if ("Noweb".equals(codeString))
6465          return SPDXLicense.NOWEB;
6466        if ("NPL-1.0".equals(codeString))
6467          return SPDXLicense.NPL_1_0;
6468        if ("NPL-1.1".equals(codeString))
6469          return SPDXLicense.NPL_1_1;
6470        if ("NPOSL-3.0".equals(codeString))
6471          return SPDXLicense.NPOSL_3_0;
6472        if ("NRL".equals(codeString))
6473          return SPDXLicense.NRL;
6474        if ("NTP".equals(codeString))
6475          return SPDXLicense.NTP;
6476        if ("NTP-0".equals(codeString))
6477          return SPDXLicense.NTP_0;
6478        if ("Nunit".equals(codeString))
6479          return SPDXLicense.NUNIT;
6480        if ("O-UDA-1.0".equals(codeString))
6481          return SPDXLicense.O_UDA_1_0;
6482        if ("OCCT-PL".equals(codeString))
6483          return SPDXLicense.OCCT_PL;
6484        if ("OCLC-2.0".equals(codeString))
6485          return SPDXLicense.OCLC_2_0;
6486        if ("ODbL-1.0".equals(codeString))
6487          return SPDXLicense.ODBL_1_0;
6488        if ("ODC-By-1.0".equals(codeString))
6489          return SPDXLicense.ODC_BY_1_0;
6490        if ("OFFIS".equals(codeString))
6491          return SPDXLicense.OFFIS;
6492        if ("OFL-1.0".equals(codeString))
6493          return SPDXLicense.OFL_1_0;
6494        if ("OFL-1.0-no-RFN".equals(codeString))
6495          return SPDXLicense.OFL_1_0_NO_RFN;
6496        if ("OFL-1.0-RFN".equals(codeString))
6497          return SPDXLicense.OFL_1_0_RFN;
6498        if ("OFL-1.1".equals(codeString))
6499          return SPDXLicense.OFL_1_1;
6500        if ("OFL-1.1-no-RFN".equals(codeString))
6501          return SPDXLicense.OFL_1_1_NO_RFN;
6502        if ("OFL-1.1-RFN".equals(codeString))
6503          return SPDXLicense.OFL_1_1_RFN;
6504        if ("OGC-1.0".equals(codeString))
6505          return SPDXLicense.OGC_1_0;
6506        if ("OGDL-Taiwan-1.0".equals(codeString))
6507          return SPDXLicense.OGDL_TAIWAN_1_0;
6508        if ("OGL-Canada-2.0".equals(codeString))
6509          return SPDXLicense.OGL_CANADA_2_0;
6510        if ("OGL-UK-1.0".equals(codeString))
6511          return SPDXLicense.OGL_UK_1_0;
6512        if ("OGL-UK-2.0".equals(codeString))
6513          return SPDXLicense.OGL_UK_2_0;
6514        if ("OGL-UK-3.0".equals(codeString))
6515          return SPDXLicense.OGL_UK_3_0;
6516        if ("OGTSL".equals(codeString))
6517          return SPDXLicense.OGTSL;
6518        if ("OLDAP-1.1".equals(codeString))
6519          return SPDXLicense.OLDAP_1_1;
6520        if ("OLDAP-1.2".equals(codeString))
6521          return SPDXLicense.OLDAP_1_2;
6522        if ("OLDAP-1.3".equals(codeString))
6523          return SPDXLicense.OLDAP_1_3;
6524        if ("OLDAP-1.4".equals(codeString))
6525          return SPDXLicense.OLDAP_1_4;
6526        if ("OLDAP-2.0".equals(codeString))
6527          return SPDXLicense.OLDAP_2_0;
6528        if ("OLDAP-2.0.1".equals(codeString))
6529          return SPDXLicense.OLDAP_2_0_1;
6530        if ("OLDAP-2.1".equals(codeString))
6531          return SPDXLicense.OLDAP_2_1;
6532        if ("OLDAP-2.2".equals(codeString))
6533          return SPDXLicense.OLDAP_2_2;
6534        if ("OLDAP-2.2.1".equals(codeString))
6535          return SPDXLicense.OLDAP_2_2_1;
6536        if ("OLDAP-2.2.2".equals(codeString))
6537          return SPDXLicense.OLDAP_2_2_2;
6538        if ("OLDAP-2.3".equals(codeString))
6539          return SPDXLicense.OLDAP_2_3;
6540        if ("OLDAP-2.4".equals(codeString))
6541          return SPDXLicense.OLDAP_2_4;
6542        if ("OLDAP-2.5".equals(codeString))
6543          return SPDXLicense.OLDAP_2_5;
6544        if ("OLDAP-2.6".equals(codeString))
6545          return SPDXLicense.OLDAP_2_6;
6546        if ("OLDAP-2.7".equals(codeString))
6547          return SPDXLicense.OLDAP_2_7;
6548        if ("OLDAP-2.8".equals(codeString))
6549          return SPDXLicense.OLDAP_2_8;
6550        if ("OLFL-1.3".equals(codeString))
6551          return SPDXLicense.OLFL_1_3;
6552        if ("OML".equals(codeString))
6553          return SPDXLicense.OML;
6554        if ("OpenPBS-2.3".equals(codeString))
6555          return SPDXLicense.OPENPBS_2_3;
6556        if ("OpenSSL".equals(codeString))
6557          return SPDXLicense.OPENSSL;
6558        if ("OPL-1.0".equals(codeString))
6559          return SPDXLicense.OPL_1_0;
6560        if ("OPL-UK-3.0".equals(codeString))
6561          return SPDXLicense.OPL_UK_3_0;
6562        if ("OPUBL-1.0".equals(codeString))
6563          return SPDXLicense.OPUBL_1_0;
6564        if ("OSET-PL-2.1".equals(codeString))
6565          return SPDXLicense.OSET_PL_2_1;
6566        if ("OSL-1.0".equals(codeString))
6567          return SPDXLicense.OSL_1_0;
6568        if ("OSL-1.1".equals(codeString))
6569          return SPDXLicense.OSL_1_1;
6570        if ("OSL-2.0".equals(codeString))
6571          return SPDXLicense.OSL_2_0;
6572        if ("OSL-2.1".equals(codeString))
6573          return SPDXLicense.OSL_2_1;
6574        if ("OSL-3.0".equals(codeString))
6575          return SPDXLicense.OSL_3_0;
6576        if ("Parity-6.0.0".equals(codeString))
6577          return SPDXLicense.PARITY_6_0_0;
6578        if ("Parity-7.0.0".equals(codeString))
6579          return SPDXLicense.PARITY_7_0_0;
6580        if ("PDDL-1.0".equals(codeString))
6581          return SPDXLicense.PDDL_1_0;
6582        if ("PHP-3.0".equals(codeString))
6583          return SPDXLicense.PHP_3_0;
6584        if ("PHP-3.01".equals(codeString))
6585          return SPDXLicense.PHP_3_01;
6586        if ("Plexus".equals(codeString))
6587          return SPDXLicense.PLEXUS;
6588        if ("PolyForm-Noncommercial-1.0.0".equals(codeString))
6589          return SPDXLicense.POLYFORM_NONCOMMERCIAL_1_0_0;
6590        if ("PolyForm-Small-Business-1.0.0".equals(codeString))
6591          return SPDXLicense.POLYFORM_SMALL_BUSINESS_1_0_0;
6592        if ("PostgreSQL".equals(codeString))
6593          return SPDXLicense.POSTGRESQL;
6594        if ("PSF-2.0".equals(codeString))
6595          return SPDXLicense.PSF_2_0;
6596        if ("psfrag".equals(codeString))
6597          return SPDXLicense.PSFRAG;
6598        if ("psutils".equals(codeString))
6599          return SPDXLicense.PSUTILS;
6600        if ("Python-2.0".equals(codeString))
6601          return SPDXLicense.PYTHON_2_0;
6602        if ("Python-2.0.1".equals(codeString))
6603          return SPDXLicense.PYTHON_2_0_1;
6604        if ("Qhull".equals(codeString))
6605          return SPDXLicense.QHULL;
6606        if ("QPL-1.0".equals(codeString))
6607          return SPDXLicense.QPL_1_0;
6608        if ("QPL-1.0-INRIA-2004".equals(codeString))
6609          return SPDXLicense.QPL_1_0_INRIA_2004;
6610        if ("Rdisc".equals(codeString))
6611          return SPDXLicense.RDISC;
6612        if ("RHeCos-1.1".equals(codeString))
6613          return SPDXLicense.RHECOS_1_1;
6614        if ("RPL-1.1".equals(codeString))
6615          return SPDXLicense.RPL_1_1;
6616        if ("RPL-1.5".equals(codeString))
6617          return SPDXLicense.RPL_1_5;
6618        if ("RPSL-1.0".equals(codeString))
6619          return SPDXLicense.RPSL_1_0;
6620        if ("RSA-MD".equals(codeString))
6621          return SPDXLicense.RSA_MD;
6622        if ("RSCPL".equals(codeString))
6623          return SPDXLicense.RSCPL;
6624        if ("Ruby".equals(codeString))
6625          return SPDXLicense.RUBY;
6626        if ("SAX-PD".equals(codeString))
6627          return SPDXLicense.SAX_PD;
6628        if ("Saxpath".equals(codeString))
6629          return SPDXLicense.SAXPATH;
6630        if ("SCEA".equals(codeString))
6631          return SPDXLicense.SCEA;
6632        if ("SchemeReport".equals(codeString))
6633          return SPDXLicense.SCHEMEREPORT;
6634        if ("Sendmail".equals(codeString))
6635          return SPDXLicense.SENDMAIL;
6636        if ("Sendmail-8.23".equals(codeString))
6637          return SPDXLicense.SENDMAIL_8_23;
6638        if ("SGI-B-1.0".equals(codeString))
6639          return SPDXLicense.SGI_B_1_0;
6640        if ("SGI-B-1.1".equals(codeString))
6641          return SPDXLicense.SGI_B_1_1;
6642        if ("SGI-B-2.0".equals(codeString))
6643          return SPDXLicense.SGI_B_2_0;
6644        if ("SGP4".equals(codeString))
6645          return SPDXLicense.SGP4;
6646        if ("SHL-0.5".equals(codeString))
6647          return SPDXLicense.SHL_0_5;
6648        if ("SHL-0.51".equals(codeString))
6649          return SPDXLicense.SHL_0_51;
6650        if ("SimPL-2.0".equals(codeString))
6651          return SPDXLicense.SIMPL_2_0;
6652        if ("SISSL".equals(codeString))
6653          return SPDXLicense.SISSL;
6654        if ("SISSL-1.2".equals(codeString))
6655          return SPDXLicense.SISSL_1_2;
6656        if ("Sleepycat".equals(codeString))
6657          return SPDXLicense.SLEEPYCAT;
6658        if ("SMLNJ".equals(codeString))
6659          return SPDXLicense.SMLNJ;
6660        if ("SMPPL".equals(codeString))
6661          return SPDXLicense.SMPPL;
6662        if ("SNIA".equals(codeString))
6663          return SPDXLicense.SNIA;
6664        if ("snprintf".equals(codeString))
6665          return SPDXLicense.SNPRINTF;
6666        if ("Spencer-86".equals(codeString))
6667          return SPDXLicense.SPENCER_86;
6668        if ("Spencer-94".equals(codeString))
6669          return SPDXLicense.SPENCER_94;
6670        if ("Spencer-99".equals(codeString))
6671          return SPDXLicense.SPENCER_99;
6672        if ("SPL-1.0".equals(codeString))
6673          return SPDXLicense.SPL_1_0;
6674        if ("SSH-OpenSSH".equals(codeString))
6675          return SPDXLicense.SSH_OPENSSH;
6676        if ("SSH-short".equals(codeString))
6677          return SPDXLicense.SSH_SHORT;
6678        if ("SSPL-1.0".equals(codeString))
6679          return SPDXLicense.SSPL_1_0;
6680        if ("StandardML-NJ".equals(codeString))
6681          return SPDXLicense.STANDARDML_NJ;
6682        if ("SugarCRM-1.1.3".equals(codeString))
6683          return SPDXLicense.SUGARCRM_1_1_3;
6684        if ("SunPro".equals(codeString))
6685          return SPDXLicense.SUNPRO;
6686        if ("SWL".equals(codeString))
6687          return SPDXLicense.SWL;
6688        if ("Symlinks".equals(codeString))
6689          return SPDXLicense.SYMLINKS;
6690        if ("TAPR-OHL-1.0".equals(codeString))
6691          return SPDXLicense.TAPR_OHL_1_0;
6692        if ("TCL".equals(codeString))
6693          return SPDXLicense.TCL;
6694        if ("TCP-wrappers".equals(codeString))
6695          return SPDXLicense.TCP_WRAPPERS;
6696        if ("TermReadKey".equals(codeString))
6697          return SPDXLicense.TERMREADKEY;
6698        if ("TMate".equals(codeString))
6699          return SPDXLicense.TMATE;
6700        if ("TORQUE-1.1".equals(codeString))
6701          return SPDXLicense.TORQUE_1_1;
6702        if ("TOSL".equals(codeString))
6703          return SPDXLicense.TOSL;
6704        if ("TPDL".equals(codeString))
6705          return SPDXLicense.TPDL;
6706        if ("TPL-1.0".equals(codeString))
6707          return SPDXLicense.TPL_1_0;
6708        if ("TTWL".equals(codeString))
6709          return SPDXLicense.TTWL;
6710        if ("TU-Berlin-1.0".equals(codeString))
6711          return SPDXLicense.TU_BERLIN_1_0;
6712        if ("TU-Berlin-2.0".equals(codeString))
6713          return SPDXLicense.TU_BERLIN_2_0;
6714        if ("UCAR".equals(codeString))
6715          return SPDXLicense.UCAR;
6716        if ("UCL-1.0".equals(codeString))
6717          return SPDXLicense.UCL_1_0;
6718        if ("Unicode-DFS-2015".equals(codeString))
6719          return SPDXLicense.UNICODE_DFS_2015;
6720        if ("Unicode-DFS-2016".equals(codeString))
6721          return SPDXLicense.UNICODE_DFS_2016;
6722        if ("Unicode-TOU".equals(codeString))
6723          return SPDXLicense.UNICODE_TOU;
6724        if ("UnixCrypt".equals(codeString))
6725          return SPDXLicense.UNIXCRYPT;
6726        if ("Unlicense".equals(codeString))
6727          return SPDXLicense.UNLICENSE;
6728        if ("UPL-1.0".equals(codeString))
6729          return SPDXLicense.UPL_1_0;
6730        if ("Vim".equals(codeString))
6731          return SPDXLicense.VIM;
6732        if ("VOSTROM".equals(codeString))
6733          return SPDXLicense.VOSTROM;
6734        if ("VSL-1.0".equals(codeString))
6735          return SPDXLicense.VSL_1_0;
6736        if ("W3C".equals(codeString))
6737          return SPDXLicense.W3C;
6738        if ("W3C-19980720".equals(codeString))
6739          return SPDXLicense.W3C_19980720;
6740        if ("W3C-20150513".equals(codeString))
6741          return SPDXLicense.W3C_20150513;
6742        if ("w3m".equals(codeString))
6743          return SPDXLicense.W3M;
6744        if ("Watcom-1.0".equals(codeString))
6745          return SPDXLicense.WATCOM_1_0;
6746        if ("Widget-Workshop".equals(codeString))
6747          return SPDXLicense.WIDGET_WORKSHOP;
6748        if ("Wsuipa".equals(codeString))
6749          return SPDXLicense.WSUIPA;
6750        if ("WTFPL".equals(codeString))
6751          return SPDXLicense.WTFPL;
6752        if ("wxWindows".equals(codeString))
6753          return SPDXLicense.WXWINDOWS;
6754        if ("X11".equals(codeString))
6755          return SPDXLicense.X11;
6756        if ("X11-distribute-modifications-variant".equals(codeString))
6757          return SPDXLicense.X11_DISTRIBUTE_MODIFICATIONS_VARIANT;
6758        if ("Xdebug-1.03".equals(codeString))
6759          return SPDXLicense.XDEBUG_1_03;
6760        if ("Xerox".equals(codeString))
6761          return SPDXLicense.XEROX;
6762        if ("Xfig".equals(codeString))
6763          return SPDXLicense.XFIG;
6764        if ("XFree86-1.1".equals(codeString))
6765          return SPDXLicense.XFREE86_1_1;
6766        if ("xinetd".equals(codeString))
6767          return SPDXLicense.XINETD;
6768        if ("xlock".equals(codeString))
6769          return SPDXLicense.XLOCK;
6770        if ("Xnet".equals(codeString))
6771          return SPDXLicense.XNET;
6772        if ("xpp".equals(codeString))
6773          return SPDXLicense.XPP;
6774        if ("XSkat".equals(codeString))
6775          return SPDXLicense.XSKAT;
6776        if ("YPL-1.0".equals(codeString))
6777          return SPDXLicense.YPL_1_0;
6778        if ("YPL-1.1".equals(codeString))
6779          return SPDXLicense.YPL_1_1;
6780        if ("Zed".equals(codeString))
6781          return SPDXLicense.ZED;
6782        if ("Zend-2.0".equals(codeString))
6783          return SPDXLicense.ZEND_2_0;
6784        if ("Zimbra-1.3".equals(codeString))
6785          return SPDXLicense.ZIMBRA_1_3;
6786        if ("Zimbra-1.4".equals(codeString))
6787          return SPDXLicense.ZIMBRA_1_4;
6788        if ("Zlib".equals(codeString))
6789          return SPDXLicense.ZLIB;
6790        if ("zlib-acknowledgement".equals(codeString))
6791          return SPDXLicense.ZLIB_ACKNOWLEDGEMENT;
6792        if ("ZPL-1.1".equals(codeString))
6793          return SPDXLicense.ZPL_1_1;
6794        if ("ZPL-2.0".equals(codeString))
6795          return SPDXLicense.ZPL_2_0;
6796        if ("ZPL-2.1".equals(codeString))
6797          return SPDXLicense.ZPL_2_1;
6798        throw new IllegalArgumentException("Unknown SPDXLicense code '"+codeString+"'");
6799        }
6800
6801        public Enumeration<SPDXLicense> fromType(PrimitiveType<?> code) throws FHIRException {
6802          if (code == null)
6803            return null;
6804          if (code.isEmpty())
6805            return new Enumeration<SPDXLicense>(this, SPDXLicense.NULL, code);
6806          String codeString = ((PrimitiveType) code).asStringValue();
6807          if (codeString == null || "".equals(codeString))
6808            return new Enumeration<SPDXLicense>(this, SPDXLicense.NULL, code);
6809        if ("0BSD".equals(codeString))
6810          return new Enumeration<SPDXLicense>(this, SPDXLicense._0BSD, code);
6811        if ("AAL".equals(codeString))
6812          return new Enumeration<SPDXLicense>(this, SPDXLicense.AAL, code);
6813        if ("Abstyles".equals(codeString))
6814          return new Enumeration<SPDXLicense>(this, SPDXLicense.ABSTYLES, code);
6815        if ("AdaCore-doc".equals(codeString))
6816          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADACORE_DOC, code);
6817        if ("Adobe-2006".equals(codeString))
6818          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADOBE_2006, code);
6819        if ("Adobe-Glyph".equals(codeString))
6820          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADOBE_GLYPH, code);
6821        if ("ADSL".equals(codeString))
6822          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADSL, code);
6823        if ("AFL-1.1".equals(codeString))
6824          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL_1_1, code);
6825        if ("AFL-1.2".equals(codeString))
6826          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL_1_2, code);
6827        if ("AFL-2.0".equals(codeString))
6828          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL_2_0, code);
6829        if ("AFL-2.1".equals(codeString))
6830          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL_2_1, code);
6831        if ("AFL-3.0".equals(codeString))
6832          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL_3_0, code);
6833        if ("Afmparse".equals(codeString))
6834          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFMPARSE, code);
6835        if ("AGPL-1.0".equals(codeString))
6836          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL_1_0, code);
6837        if ("AGPL-1.0-only".equals(codeString))
6838          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL_1_0_ONLY, code);
6839        if ("AGPL-1.0-or-later".equals(codeString))
6840          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL_1_0_OR_LATER, code);
6841        if ("AGPL-3.0".equals(codeString))
6842          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL_3_0, code);
6843        if ("AGPL-3.0-only".equals(codeString))
6844          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL_3_0_ONLY, code);
6845        if ("AGPL-3.0-or-later".equals(codeString))
6846          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL_3_0_OR_LATER, code);
6847        if ("Aladdin".equals(codeString))
6848          return new Enumeration<SPDXLicense>(this, SPDXLicense.ALADDIN, code);
6849        if ("AMDPLPA".equals(codeString))
6850          return new Enumeration<SPDXLicense>(this, SPDXLicense.AMDPLPA, code);
6851        if ("AML".equals(codeString))
6852          return new Enumeration<SPDXLicense>(this, SPDXLicense.AML, code);
6853        if ("AMPAS".equals(codeString))
6854          return new Enumeration<SPDXLicense>(this, SPDXLicense.AMPAS, code);
6855        if ("ANTLR-PD".equals(codeString))
6856          return new Enumeration<SPDXLicense>(this, SPDXLicense.ANTLR_PD, code);
6857        if ("ANTLR-PD-fallback".equals(codeString))
6858          return new Enumeration<SPDXLicense>(this, SPDXLicense.ANTLR_PD_FALLBACK, code);
6859        if ("Apache-1.0".equals(codeString))
6860          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE_1_0, code);
6861        if ("Apache-1.1".equals(codeString))
6862          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE_1_1, code);
6863        if ("Apache-2.0".equals(codeString))
6864          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE_2_0, code);
6865        if ("APAFML".equals(codeString))
6866          return new Enumeration<SPDXLicense>(this, SPDXLicense.APAFML, code);
6867        if ("APL-1.0".equals(codeString))
6868          return new Enumeration<SPDXLicense>(this, SPDXLicense.APL_1_0, code);
6869        if ("App-s2p".equals(codeString))
6870          return new Enumeration<SPDXLicense>(this, SPDXLicense.APP_S2P, code);
6871        if ("APSL-1.0".equals(codeString))
6872          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL_1_0, code);
6873        if ("APSL-1.1".equals(codeString))
6874          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL_1_1, code);
6875        if ("APSL-1.2".equals(codeString))
6876          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL_1_2, code);
6877        if ("APSL-2.0".equals(codeString))
6878          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL_2_0, code);
6879        if ("Arphic-1999".equals(codeString))
6880          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARPHIC_1999, code);
6881        if ("Artistic-1.0".equals(codeString))
6882          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC_1_0, code);
6883        if ("Artistic-1.0-cl8".equals(codeString))
6884          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC_1_0_CL8, code);
6885        if ("Artistic-1.0-Perl".equals(codeString))
6886          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC_1_0_PERL, code);
6887        if ("Artistic-2.0".equals(codeString))
6888          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC_2_0, code);
6889        if ("ASWF-Digital-Assets-1.0".equals(codeString))
6890          return new Enumeration<SPDXLicense>(this, SPDXLicense.ASWF_DIGITAL_ASSETS_1_0, code);
6891        if ("ASWF-Digital-Assets-1.1".equals(codeString))
6892          return new Enumeration<SPDXLicense>(this, SPDXLicense.ASWF_DIGITAL_ASSETS_1_1, code);
6893        if ("Baekmuk".equals(codeString))
6894          return new Enumeration<SPDXLicense>(this, SPDXLicense.BAEKMUK, code);
6895        if ("Bahyph".equals(codeString))
6896          return new Enumeration<SPDXLicense>(this, SPDXLicense.BAHYPH, code);
6897        if ("Barr".equals(codeString))
6898          return new Enumeration<SPDXLicense>(this, SPDXLicense.BARR, code);
6899        if ("Beerware".equals(codeString))
6900          return new Enumeration<SPDXLicense>(this, SPDXLicense.BEERWARE, code);
6901        if ("Bitstream-Charter".equals(codeString))
6902          return new Enumeration<SPDXLicense>(this, SPDXLicense.BITSTREAM_CHARTER, code);
6903        if ("Bitstream-Vera".equals(codeString))
6904          return new Enumeration<SPDXLicense>(this, SPDXLicense.BITSTREAM_VERA, code);
6905        if ("BitTorrent-1.0".equals(codeString))
6906          return new Enumeration<SPDXLicense>(this, SPDXLicense.BITTORRENT_1_0, code);
6907        if ("BitTorrent-1.1".equals(codeString))
6908          return new Enumeration<SPDXLicense>(this, SPDXLicense.BITTORRENT_1_1, code);
6909        if ("blessing".equals(codeString))
6910          return new Enumeration<SPDXLicense>(this, SPDXLicense.BLESSING, code);
6911        if ("BlueOak-1.0.0".equals(codeString))
6912          return new Enumeration<SPDXLicense>(this, SPDXLicense.BLUEOAK_1_0_0, code);
6913        if ("Boehm-GC".equals(codeString))
6914          return new Enumeration<SPDXLicense>(this, SPDXLicense.BOEHM_GC, code);
6915        if ("Borceux".equals(codeString))
6916          return new Enumeration<SPDXLicense>(this, SPDXLicense.BORCEUX, code);
6917        if ("Brian-Gladman-3-Clause".equals(codeString))
6918          return new Enumeration<SPDXLicense>(this, SPDXLicense.BRIAN_GLADMAN_3_CLAUSE, code);
6919        if ("BSD-1-Clause".equals(codeString))
6920          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_1_CLAUSE, code);
6921        if ("BSD-2-Clause".equals(codeString))
6922          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_2_CLAUSE, code);
6923        if ("BSD-2-Clause-FreeBSD".equals(codeString))
6924          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_2_CLAUSE_FREEBSD, code);
6925        if ("BSD-2-Clause-NetBSD".equals(codeString))
6926          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_2_CLAUSE_NETBSD, code);
6927        if ("BSD-2-Clause-Patent".equals(codeString))
6928          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_2_CLAUSE_PATENT, code);
6929        if ("BSD-2-Clause-Views".equals(codeString))
6930          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_2_CLAUSE_VIEWS, code);
6931        if ("BSD-3-Clause".equals(codeString))
6932          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE, code);
6933        if ("BSD-3-Clause-Attribution".equals(codeString))
6934          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_ATTRIBUTION, code);
6935        if ("BSD-3-Clause-Clear".equals(codeString))
6936          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_CLEAR, code);
6937        if ("BSD-3-Clause-LBNL".equals(codeString))
6938          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_LBNL, code);
6939        if ("BSD-3-Clause-Modification".equals(codeString))
6940          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_MODIFICATION, code);
6941        if ("BSD-3-Clause-No-Military-License".equals(codeString))
6942          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_NO_MILITARY_LICENSE, code);
6943        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
6944          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_LICENSE, code);
6945        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
6946          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014, code);
6947        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
6948          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY, code);
6949        if ("BSD-3-Clause-Open-MPI".equals(codeString))
6950          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_OPEN_MPI, code);
6951        if ("BSD-4-Clause".equals(codeString))
6952          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_4_CLAUSE, code);
6953        if ("BSD-4-Clause-Shortened".equals(codeString))
6954          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_4_CLAUSE_SHORTENED, code);
6955        if ("BSD-4-Clause-UC".equals(codeString))
6956          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_4_CLAUSE_UC, code);
6957        if ("BSD-4.3RENO".equals(codeString))
6958          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_4_3RENO, code);
6959        if ("BSD-4.3TAHOE".equals(codeString))
6960          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_4_3TAHOE, code);
6961        if ("BSD-Advertising-Acknowledgement".equals(codeString))
6962          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_ADVERTISING_ACKNOWLEDGEMENT, code);
6963        if ("BSD-Attribution-HPND-disclaimer".equals(codeString))
6964          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_ATTRIBUTION_HPND_DISCLAIMER, code);
6965        if ("BSD-Protection".equals(codeString))
6966          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_PROTECTION, code);
6967        if ("BSD-Source-Code".equals(codeString))
6968          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_SOURCE_CODE, code);
6969        if ("BSL-1.0".equals(codeString))
6970          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSL_1_0, code);
6971        if ("BUSL-1.1".equals(codeString))
6972          return new Enumeration<SPDXLicense>(this, SPDXLicense.BUSL_1_1, code);
6973        if ("bzip2-1.0.5".equals(codeString))
6974          return new Enumeration<SPDXLicense>(this, SPDXLicense.BZIP2_1_0_5, code);
6975        if ("bzip2-1.0.6".equals(codeString))
6976          return new Enumeration<SPDXLicense>(this, SPDXLicense.BZIP2_1_0_6, code);
6977        if ("C-UDA-1.0".equals(codeString))
6978          return new Enumeration<SPDXLicense>(this, SPDXLicense.C_UDA_1_0, code);
6979        if ("CAL-1.0".equals(codeString))
6980          return new Enumeration<SPDXLicense>(this, SPDXLicense.CAL_1_0, code);
6981        if ("CAL-1.0-Combined-Work-Exception".equals(codeString))
6982          return new Enumeration<SPDXLicense>(this, SPDXLicense.CAL_1_0_COMBINED_WORK_EXCEPTION, code);
6983        if ("Caldera".equals(codeString))
6984          return new Enumeration<SPDXLicense>(this, SPDXLicense.CALDERA, code);
6985        if ("CATOSL-1.1".equals(codeString))
6986          return new Enumeration<SPDXLicense>(this, SPDXLicense.CATOSL_1_1, code);
6987        if ("CC-BY-1.0".equals(codeString))
6988          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_1_0, code);
6989        if ("CC-BY-2.0".equals(codeString))
6990          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_2_0, code);
6991        if ("CC-BY-2.5".equals(codeString))
6992          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_2_5, code);
6993        if ("CC-BY-2.5-AU".equals(codeString))
6994          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_2_5_AU, code);
6995        if ("CC-BY-3.0".equals(codeString))
6996          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_3_0, code);
6997        if ("CC-BY-3.0-AT".equals(codeString))
6998          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_3_0_AT, code);
6999        if ("CC-BY-3.0-DE".equals(codeString))
7000          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_3_0_DE, code);
7001        if ("CC-BY-3.0-IGO".equals(codeString))
7002          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_3_0_IGO, code);
7003        if ("CC-BY-3.0-NL".equals(codeString))
7004          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_3_0_NL, code);
7005        if ("CC-BY-3.0-US".equals(codeString))
7006          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_3_0_US, code);
7007        if ("CC-BY-4.0".equals(codeString))
7008          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_4_0, code);
7009        if ("CC-BY-NC-1.0".equals(codeString))
7010          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_1_0, code);
7011        if ("CC-BY-NC-2.0".equals(codeString))
7012          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_2_0, code);
7013        if ("CC-BY-NC-2.5".equals(codeString))
7014          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_2_5, code);
7015        if ("CC-BY-NC-3.0".equals(codeString))
7016          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_3_0, code);
7017        if ("CC-BY-NC-3.0-DE".equals(codeString))
7018          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_3_0_DE, code);
7019        if ("CC-BY-NC-4.0".equals(codeString))
7020          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_4_0, code);
7021        if ("CC-BY-NC-ND-1.0".equals(codeString))
7022          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_1_0, code);
7023        if ("CC-BY-NC-ND-2.0".equals(codeString))
7024          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_2_0, code);
7025        if ("CC-BY-NC-ND-2.5".equals(codeString))
7026          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_2_5, code);
7027        if ("CC-BY-NC-ND-3.0".equals(codeString))
7028          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_3_0, code);
7029        if ("CC-BY-NC-ND-3.0-DE".equals(codeString))
7030          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_3_0_DE, code);
7031        if ("CC-BY-NC-ND-3.0-IGO".equals(codeString))
7032          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_3_0_IGO, code);
7033        if ("CC-BY-NC-ND-4.0".equals(codeString))
7034          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_4_0, code);
7035        if ("CC-BY-NC-SA-1.0".equals(codeString))
7036          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_1_0, code);
7037        if ("CC-BY-NC-SA-2.0".equals(codeString))
7038          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_2_0, code);
7039        if ("CC-BY-NC-SA-2.0-DE".equals(codeString))
7040          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_2_0_DE, code);
7041        if ("CC-BY-NC-SA-2.0-FR".equals(codeString))
7042          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_2_0_FR, code);
7043        if ("CC-BY-NC-SA-2.0-UK".equals(codeString))
7044          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_2_0_UK, code);
7045        if ("CC-BY-NC-SA-2.5".equals(codeString))
7046          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_2_5, code);
7047        if ("CC-BY-NC-SA-3.0".equals(codeString))
7048          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_3_0, code);
7049        if ("CC-BY-NC-SA-3.0-DE".equals(codeString))
7050          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_3_0_DE, code);
7051        if ("CC-BY-NC-SA-3.0-IGO".equals(codeString))
7052          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_3_0_IGO, code);
7053        if ("CC-BY-NC-SA-4.0".equals(codeString))
7054          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_4_0, code);
7055        if ("CC-BY-ND-1.0".equals(codeString))
7056          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_ND_1_0, code);
7057        if ("CC-BY-ND-2.0".equals(codeString))
7058          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_ND_2_0, code);
7059        if ("CC-BY-ND-2.5".equals(codeString))
7060          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_ND_2_5, code);
7061        if ("CC-BY-ND-3.0".equals(codeString))
7062          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_ND_3_0, code);
7063        if ("CC-BY-ND-3.0-DE".equals(codeString))
7064          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_ND_3_0_DE, code);
7065        if ("CC-BY-ND-4.0".equals(codeString))
7066          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_ND_4_0, code);
7067        if ("CC-BY-SA-1.0".equals(codeString))
7068          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_1_0, code);
7069        if ("CC-BY-SA-2.0".equals(codeString))
7070          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_2_0, code);
7071        if ("CC-BY-SA-2.0-UK".equals(codeString))
7072          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_2_0_UK, code);
7073        if ("CC-BY-SA-2.1-JP".equals(codeString))
7074          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_2_1_JP, code);
7075        if ("CC-BY-SA-2.5".equals(codeString))
7076          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_2_5, code);
7077        if ("CC-BY-SA-3.0".equals(codeString))
7078          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_3_0, code);
7079        if ("CC-BY-SA-3.0-AT".equals(codeString))
7080          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_3_0_AT, code);
7081        if ("CC-BY-SA-3.0-DE".equals(codeString))
7082          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_3_0_DE, code);
7083        if ("CC-BY-SA-3.0-IGO".equals(codeString))
7084          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_3_0_IGO, code);
7085        if ("CC-BY-SA-4.0".equals(codeString))
7086          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_4_0, code);
7087        if ("CC-PDDC".equals(codeString))
7088          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_PDDC, code);
7089        if ("CC0-1.0".equals(codeString))
7090          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC0_1_0, code);
7091        if ("CDDL-1.0".equals(codeString))
7092          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDDL_1_0, code);
7093        if ("CDDL-1.1".equals(codeString))
7094          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDDL_1_1, code);
7095        if ("CDL-1.0".equals(codeString))
7096          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDL_1_0, code);
7097        if ("CDLA-Permissive-1.0".equals(codeString))
7098          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLA_PERMISSIVE_1_0, code);
7099        if ("CDLA-Permissive-2.0".equals(codeString))
7100          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLA_PERMISSIVE_2_0, code);
7101        if ("CDLA-Sharing-1.0".equals(codeString))
7102          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLA_SHARING_1_0, code);
7103        if ("CECILL-1.0".equals(codeString))
7104          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL_1_0, code);
7105        if ("CECILL-1.1".equals(codeString))
7106          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL_1_1, code);
7107        if ("CECILL-2.0".equals(codeString))
7108          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL_2_0, code);
7109        if ("CECILL-2.1".equals(codeString))
7110          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL_2_1, code);
7111        if ("CECILL-B".equals(codeString))
7112          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL_B, code);
7113        if ("CECILL-C".equals(codeString))
7114          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL_C, code);
7115        if ("CERN-OHL-1.1".equals(codeString))
7116          return new Enumeration<SPDXLicense>(this, SPDXLicense.CERN_OHL_1_1, code);
7117        if ("CERN-OHL-1.2".equals(codeString))
7118          return new Enumeration<SPDXLicense>(this, SPDXLicense.CERN_OHL_1_2, code);
7119        if ("CERN-OHL-P-2.0".equals(codeString))
7120          return new Enumeration<SPDXLicense>(this, SPDXLicense.CERN_OHL_P_2_0, code);
7121        if ("CERN-OHL-S-2.0".equals(codeString))
7122          return new Enumeration<SPDXLicense>(this, SPDXLicense.CERN_OHL_S_2_0, code);
7123        if ("CERN-OHL-W-2.0".equals(codeString))
7124          return new Enumeration<SPDXLicense>(this, SPDXLicense.CERN_OHL_W_2_0, code);
7125        if ("CFITSIO".equals(codeString))
7126          return new Enumeration<SPDXLicense>(this, SPDXLicense.CFITSIO, code);
7127        if ("checkmk".equals(codeString))
7128          return new Enumeration<SPDXLicense>(this, SPDXLicense.CHECKMK, code);
7129        if ("ClArtistic".equals(codeString))
7130          return new Enumeration<SPDXLicense>(this, SPDXLicense.CLARTISTIC, code);
7131        if ("Clips".equals(codeString))
7132          return new Enumeration<SPDXLicense>(this, SPDXLicense.CLIPS, code);
7133        if ("CMU-Mach".equals(codeString))
7134          return new Enumeration<SPDXLicense>(this, SPDXLicense.CMU_MACH, code);
7135        if ("CNRI-Jython".equals(codeString))
7136          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRI_JYTHON, code);
7137        if ("CNRI-Python".equals(codeString))
7138          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRI_PYTHON, code);
7139        if ("CNRI-Python-GPL-Compatible".equals(codeString))
7140          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRI_PYTHON_GPL_COMPATIBLE, code);
7141        if ("COIL-1.0".equals(codeString))
7142          return new Enumeration<SPDXLicense>(this, SPDXLicense.COIL_1_0, code);
7143        if ("Community-Spec-1.0".equals(codeString))
7144          return new Enumeration<SPDXLicense>(this, SPDXLicense.COMMUNITY_SPEC_1_0, code);
7145        if ("Condor-1.1".equals(codeString))
7146          return new Enumeration<SPDXLicense>(this, SPDXLicense.CONDOR_1_1, code);
7147        if ("copyleft-next-0.3.0".equals(codeString))
7148          return new Enumeration<SPDXLicense>(this, SPDXLicense.COPYLEFT_NEXT_0_3_0, code);
7149        if ("copyleft-next-0.3.1".equals(codeString))
7150          return new Enumeration<SPDXLicense>(this, SPDXLicense.COPYLEFT_NEXT_0_3_1, code);
7151        if ("Cornell-Lossless-JPEG".equals(codeString))
7152          return new Enumeration<SPDXLicense>(this, SPDXLicense.CORNELL_LOSSLESS_JPEG, code);
7153        if ("CPAL-1.0".equals(codeString))
7154          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPAL_1_0, code);
7155        if ("CPL-1.0".equals(codeString))
7156          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPL_1_0, code);
7157        if ("CPOL-1.02".equals(codeString))
7158          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPOL_1_02, code);
7159        if ("Crossword".equals(codeString))
7160          return new Enumeration<SPDXLicense>(this, SPDXLicense.CROSSWORD, code);
7161        if ("CrystalStacker".equals(codeString))
7162          return new Enumeration<SPDXLicense>(this, SPDXLicense.CRYSTALSTACKER, code);
7163        if ("CUA-OPL-1.0".equals(codeString))
7164          return new Enumeration<SPDXLicense>(this, SPDXLicense.CUA_OPL_1_0, code);
7165        if ("Cube".equals(codeString))
7166          return new Enumeration<SPDXLicense>(this, SPDXLicense.CUBE, code);
7167        if ("curl".equals(codeString))
7168          return new Enumeration<SPDXLicense>(this, SPDXLicense.CURL, code);
7169        if ("D-FSL-1.0".equals(codeString))
7170          return new Enumeration<SPDXLicense>(this, SPDXLicense.D_FSL_1_0, code);
7171        if ("diffmark".equals(codeString))
7172          return new Enumeration<SPDXLicense>(this, SPDXLicense.DIFFMARK, code);
7173        if ("DL-DE-BY-2.0".equals(codeString))
7174          return new Enumeration<SPDXLicense>(this, SPDXLicense.DL_DE_BY_2_0, code);
7175        if ("DOC".equals(codeString))
7176          return new Enumeration<SPDXLicense>(this, SPDXLicense.DOC, code);
7177        if ("Dotseqn".equals(codeString))
7178          return new Enumeration<SPDXLicense>(this, SPDXLicense.DOTSEQN, code);
7179        if ("DRL-1.0".equals(codeString))
7180          return new Enumeration<SPDXLicense>(this, SPDXLicense.DRL_1_0, code);
7181        if ("DSDP".equals(codeString))
7182          return new Enumeration<SPDXLicense>(this, SPDXLicense.DSDP, code);
7183        if ("dtoa".equals(codeString))
7184          return new Enumeration<SPDXLicense>(this, SPDXLicense.DTOA, code);
7185        if ("dvipdfm".equals(codeString))
7186          return new Enumeration<SPDXLicense>(this, SPDXLicense.DVIPDFM, code);
7187        if ("ECL-1.0".equals(codeString))
7188          return new Enumeration<SPDXLicense>(this, SPDXLicense.ECL_1_0, code);
7189        if ("ECL-2.0".equals(codeString))
7190          return new Enumeration<SPDXLicense>(this, SPDXLicense.ECL_2_0, code);
7191        if ("eCos-2.0".equals(codeString))
7192          return new Enumeration<SPDXLicense>(this, SPDXLicense.ECOS_2_0, code);
7193        if ("EFL-1.0".equals(codeString))
7194          return new Enumeration<SPDXLicense>(this, SPDXLicense.EFL_1_0, code);
7195        if ("EFL-2.0".equals(codeString))
7196          return new Enumeration<SPDXLicense>(this, SPDXLicense.EFL_2_0, code);
7197        if ("eGenix".equals(codeString))
7198          return new Enumeration<SPDXLicense>(this, SPDXLicense.EGENIX, code);
7199        if ("Elastic-2.0".equals(codeString))
7200          return new Enumeration<SPDXLicense>(this, SPDXLicense.ELASTIC_2_0, code);
7201        if ("Entessa".equals(codeString))
7202          return new Enumeration<SPDXLicense>(this, SPDXLicense.ENTESSA, code);
7203        if ("EPICS".equals(codeString))
7204          return new Enumeration<SPDXLicense>(this, SPDXLicense.EPICS, code);
7205        if ("EPL-1.0".equals(codeString))
7206          return new Enumeration<SPDXLicense>(this, SPDXLicense.EPL_1_0, code);
7207        if ("EPL-2.0".equals(codeString))
7208          return new Enumeration<SPDXLicense>(this, SPDXLicense.EPL_2_0, code);
7209        if ("ErlPL-1.1".equals(codeString))
7210          return new Enumeration<SPDXLicense>(this, SPDXLicense.ERLPL_1_1, code);
7211        if ("etalab-2.0".equals(codeString))
7212          return new Enumeration<SPDXLicense>(this, SPDXLicense.ETALAB_2_0, code);
7213        if ("EUDatagrid".equals(codeString))
7214          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUDATAGRID, code);
7215        if ("EUPL-1.0".equals(codeString))
7216          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL_1_0, code);
7217        if ("EUPL-1.1".equals(codeString))
7218          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL_1_1, code);
7219        if ("EUPL-1.2".equals(codeString))
7220          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL_1_2, code);
7221        if ("Eurosym".equals(codeString))
7222          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUROSYM, code);
7223        if ("Fair".equals(codeString))
7224          return new Enumeration<SPDXLicense>(this, SPDXLicense.FAIR, code);
7225        if ("FDK-AAC".equals(codeString))
7226          return new Enumeration<SPDXLicense>(this, SPDXLicense.FDK_AAC, code);
7227        if ("Frameworx-1.0".equals(codeString))
7228          return new Enumeration<SPDXLicense>(this, SPDXLicense.FRAMEWORX_1_0, code);
7229        if ("FreeBSD-DOC".equals(codeString))
7230          return new Enumeration<SPDXLicense>(this, SPDXLicense.FREEBSD_DOC, code);
7231        if ("FreeImage".equals(codeString))
7232          return new Enumeration<SPDXLicense>(this, SPDXLicense.FREEIMAGE, code);
7233        if ("FSFAP".equals(codeString))
7234          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFAP, code);
7235        if ("FSFUL".equals(codeString))
7236          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFUL, code);
7237        if ("FSFULLR".equals(codeString))
7238          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFULLR, code);
7239        if ("FSFULLRWD".equals(codeString))
7240          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFULLRWD, code);
7241        if ("FTL".equals(codeString))
7242          return new Enumeration<SPDXLicense>(this, SPDXLicense.FTL, code);
7243        if ("GD".equals(codeString))
7244          return new Enumeration<SPDXLicense>(this, SPDXLicense.GD, code);
7245        if ("GFDL-1.1".equals(codeString))
7246          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1, code);
7247        if ("GFDL-1.1-invariants-only".equals(codeString))
7248          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1_INVARIANTS_ONLY, code);
7249        if ("GFDL-1.1-invariants-or-later".equals(codeString))
7250          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1_INVARIANTS_OR_LATER, code);
7251        if ("GFDL-1.1-no-invariants-only".equals(codeString))
7252          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1_NO_INVARIANTS_ONLY, code);
7253        if ("GFDL-1.1-no-invariants-or-later".equals(codeString))
7254          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1_NO_INVARIANTS_OR_LATER, code);
7255        if ("GFDL-1.1-only".equals(codeString))
7256          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1_ONLY, code);
7257        if ("GFDL-1.1-or-later".equals(codeString))
7258          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1_OR_LATER, code);
7259        if ("GFDL-1.2".equals(codeString))
7260          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2, code);
7261        if ("GFDL-1.2-invariants-only".equals(codeString))
7262          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2_INVARIANTS_ONLY, code);
7263        if ("GFDL-1.2-invariants-or-later".equals(codeString))
7264          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2_INVARIANTS_OR_LATER, code);
7265        if ("GFDL-1.2-no-invariants-only".equals(codeString))
7266          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2_NO_INVARIANTS_ONLY, code);
7267        if ("GFDL-1.2-no-invariants-or-later".equals(codeString))
7268          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2_NO_INVARIANTS_OR_LATER, code);
7269        if ("GFDL-1.2-only".equals(codeString))
7270          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2_ONLY, code);
7271        if ("GFDL-1.2-or-later".equals(codeString))
7272          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2_OR_LATER, code);
7273        if ("GFDL-1.3".equals(codeString))
7274          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3, code);
7275        if ("GFDL-1.3-invariants-only".equals(codeString))
7276          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3_INVARIANTS_ONLY, code);
7277        if ("GFDL-1.3-invariants-or-later".equals(codeString))
7278          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3_INVARIANTS_OR_LATER, code);
7279        if ("GFDL-1.3-no-invariants-only".equals(codeString))
7280          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3_NO_INVARIANTS_ONLY, code);
7281        if ("GFDL-1.3-no-invariants-or-later".equals(codeString))
7282          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3_NO_INVARIANTS_OR_LATER, code);
7283        if ("GFDL-1.3-only".equals(codeString))
7284          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3_ONLY, code);
7285        if ("GFDL-1.3-or-later".equals(codeString))
7286          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3_OR_LATER, code);
7287        if ("Giftware".equals(codeString))
7288          return new Enumeration<SPDXLicense>(this, SPDXLicense.GIFTWARE, code);
7289        if ("GL2PS".equals(codeString))
7290          return new Enumeration<SPDXLicense>(this, SPDXLicense.GL2PS, code);
7291        if ("Glide".equals(codeString))
7292          return new Enumeration<SPDXLicense>(this, SPDXLicense.GLIDE, code);
7293        if ("Glulxe".equals(codeString))
7294          return new Enumeration<SPDXLicense>(this, SPDXLicense.GLULXE, code);
7295        if ("GLWTPL".equals(codeString))
7296          return new Enumeration<SPDXLicense>(this, SPDXLicense.GLWTPL, code);
7297        if ("gnuplot".equals(codeString))
7298          return new Enumeration<SPDXLicense>(this, SPDXLicense.GNUPLOT, code);
7299        if ("GPL-1.0".equals(codeString))
7300          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_1_0, code);
7301        if ("GPL-1.0+".equals(codeString))
7302          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_1_0PLUS, code);
7303        if ("GPL-1.0-only".equals(codeString))
7304          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_1_0_ONLY, code);
7305        if ("GPL-1.0-or-later".equals(codeString))
7306          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_1_0_OR_LATER, code);
7307        if ("GPL-2.0".equals(codeString))
7308          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0, code);
7309        if ("GPL-2.0+".equals(codeString))
7310          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0PLUS, code);
7311        if ("GPL-2.0-only".equals(codeString))
7312          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_ONLY, code);
7313        if ("GPL-2.0-or-later".equals(codeString))
7314          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_OR_LATER, code);
7315        if ("GPL-2.0-with-autoconf-exception".equals(codeString))
7316          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_WITH_AUTOCONF_EXCEPTION, code);
7317        if ("GPL-2.0-with-bison-exception".equals(codeString))
7318          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_WITH_BISON_EXCEPTION, code);
7319        if ("GPL-2.0-with-classpath-exception".equals(codeString))
7320          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_WITH_CLASSPATH_EXCEPTION, code);
7321        if ("GPL-2.0-with-font-exception".equals(codeString))
7322          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_WITH_FONT_EXCEPTION, code);
7323        if ("GPL-2.0-with-GCC-exception".equals(codeString))
7324          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_WITH_GCC_EXCEPTION, code);
7325        if ("GPL-3.0".equals(codeString))
7326          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_3_0, code);
7327        if ("GPL-3.0+".equals(codeString))
7328          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_3_0PLUS, code);
7329        if ("GPL-3.0-only".equals(codeString))
7330          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_3_0_ONLY, code);
7331        if ("GPL-3.0-or-later".equals(codeString))
7332          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_3_0_OR_LATER, code);
7333        if ("GPL-3.0-with-autoconf-exception".equals(codeString))
7334          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_3_0_WITH_AUTOCONF_EXCEPTION, code);
7335        if ("GPL-3.0-with-GCC-exception".equals(codeString))
7336          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_3_0_WITH_GCC_EXCEPTION, code);
7337        if ("Graphics-Gems".equals(codeString))
7338          return new Enumeration<SPDXLicense>(this, SPDXLicense.GRAPHICS_GEMS, code);
7339        if ("gSOAP-1.3b".equals(codeString))
7340          return new Enumeration<SPDXLicense>(this, SPDXLicense.GSOAP_1_3B, code);
7341        if ("HaskellReport".equals(codeString))
7342          return new Enumeration<SPDXLicense>(this, SPDXLicense.HASKELLREPORT, code);
7343        if ("Hippocratic-2.1".equals(codeString))
7344          return new Enumeration<SPDXLicense>(this, SPDXLicense.HIPPOCRATIC_2_1, code);
7345        if ("HP-1986".equals(codeString))
7346          return new Enumeration<SPDXLicense>(this, SPDXLicense.HP_1986, code);
7347        if ("HPND".equals(codeString))
7348          return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND, code);
7349        if ("HPND-export-US".equals(codeString))
7350          return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND_EXPORT_US, code);
7351        if ("HPND-Markus-Kuhn".equals(codeString))
7352          return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND_MARKUS_KUHN, code);
7353        if ("HPND-sell-variant".equals(codeString))
7354          return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND_SELL_VARIANT, code);
7355        if ("HPND-sell-variant-MIT-disclaimer".equals(codeString))
7356          return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND_SELL_VARIANT_MIT_DISCLAIMER, code);
7357        if ("HTMLTIDY".equals(codeString))
7358          return new Enumeration<SPDXLicense>(this, SPDXLicense.HTMLTIDY, code);
7359        if ("IBM-pibs".equals(codeString))
7360          return new Enumeration<SPDXLicense>(this, SPDXLicense.IBM_PIBS, code);
7361        if ("ICU".equals(codeString))
7362          return new Enumeration<SPDXLicense>(this, SPDXLicense.ICU, code);
7363        if ("IEC-Code-Components-EULA".equals(codeString))
7364          return new Enumeration<SPDXLicense>(this, SPDXLicense.IEC_CODE_COMPONENTS_EULA, code);
7365        if ("IJG".equals(codeString))
7366          return new Enumeration<SPDXLicense>(this, SPDXLicense.IJG, code);
7367        if ("IJG-short".equals(codeString))
7368          return new Enumeration<SPDXLicense>(this, SPDXLicense.IJG_SHORT, code);
7369        if ("ImageMagick".equals(codeString))
7370          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMAGEMAGICK, code);
7371        if ("iMatix".equals(codeString))
7372          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMATIX, code);
7373        if ("Imlib2".equals(codeString))
7374          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMLIB2, code);
7375        if ("Info-ZIP".equals(codeString))
7376          return new Enumeration<SPDXLicense>(this, SPDXLicense.INFO_ZIP, code);
7377        if ("Inner-Net-2.0".equals(codeString))
7378          return new Enumeration<SPDXLicense>(this, SPDXLicense.INNER_NET_2_0, code);
7379        if ("Intel".equals(codeString))
7380          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTEL, code);
7381        if ("Intel-ACPI".equals(codeString))
7382          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTEL_ACPI, code);
7383        if ("Interbase-1.0".equals(codeString))
7384          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTERBASE_1_0, code);
7385        if ("IPA".equals(codeString))
7386          return new Enumeration<SPDXLicense>(this, SPDXLicense.IPA, code);
7387        if ("IPL-1.0".equals(codeString))
7388          return new Enumeration<SPDXLicense>(this, SPDXLicense.IPL_1_0, code);
7389        if ("ISC".equals(codeString))
7390          return new Enumeration<SPDXLicense>(this, SPDXLicense.ISC, code);
7391        if ("Jam".equals(codeString))
7392          return new Enumeration<SPDXLicense>(this, SPDXLicense.JAM, code);
7393        if ("JasPer-2.0".equals(codeString))
7394          return new Enumeration<SPDXLicense>(this, SPDXLicense.JASPER_2_0, code);
7395        if ("JPL-image".equals(codeString))
7396          return new Enumeration<SPDXLicense>(this, SPDXLicense.JPL_IMAGE, code);
7397        if ("JPNIC".equals(codeString))
7398          return new Enumeration<SPDXLicense>(this, SPDXLicense.JPNIC, code);
7399        if ("JSON".equals(codeString))
7400          return new Enumeration<SPDXLicense>(this, SPDXLicense.JSON, code);
7401        if ("Kazlib".equals(codeString))
7402          return new Enumeration<SPDXLicense>(this, SPDXLicense.KAZLIB, code);
7403        if ("Knuth-CTAN".equals(codeString))
7404          return new Enumeration<SPDXLicense>(this, SPDXLicense.KNUTH_CTAN, code);
7405        if ("LAL-1.2".equals(codeString))
7406          return new Enumeration<SPDXLicense>(this, SPDXLicense.LAL_1_2, code);
7407        if ("LAL-1.3".equals(codeString))
7408          return new Enumeration<SPDXLicense>(this, SPDXLicense.LAL_1_3, code);
7409        if ("Latex2e".equals(codeString))
7410          return new Enumeration<SPDXLicense>(this, SPDXLicense.LATEX2E, code);
7411        if ("Latex2e-translated-notice".equals(codeString))
7412          return new Enumeration<SPDXLicense>(this, SPDXLicense.LATEX2E_TRANSLATED_NOTICE, code);
7413        if ("Leptonica".equals(codeString))
7414          return new Enumeration<SPDXLicense>(this, SPDXLicense.LEPTONICA, code);
7415        if ("LGPL-2.0".equals(codeString))
7416          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_0, code);
7417        if ("LGPL-2.0+".equals(codeString))
7418          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_0PLUS, code);
7419        if ("LGPL-2.0-only".equals(codeString))
7420          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_0_ONLY, code);
7421        if ("LGPL-2.0-or-later".equals(codeString))
7422          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_0_OR_LATER, code);
7423        if ("LGPL-2.1".equals(codeString))
7424          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_1, code);
7425        if ("LGPL-2.1+".equals(codeString))
7426          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_1PLUS, code);
7427        if ("LGPL-2.1-only".equals(codeString))
7428          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_1_ONLY, code);
7429        if ("LGPL-2.1-or-later".equals(codeString))
7430          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_1_OR_LATER, code);
7431        if ("LGPL-3.0".equals(codeString))
7432          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_3_0, code);
7433        if ("LGPL-3.0+".equals(codeString))
7434          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_3_0PLUS, code);
7435        if ("LGPL-3.0-only".equals(codeString))
7436          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_3_0_ONLY, code);
7437        if ("LGPL-3.0-or-later".equals(codeString))
7438          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_3_0_OR_LATER, code);
7439        if ("LGPLLR".equals(codeString))
7440          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPLLR, code);
7441        if ("Libpng".equals(codeString))
7442          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBPNG, code);
7443        if ("libpng-2.0".equals(codeString))
7444          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBPNG_2_0, code);
7445        if ("libselinux-1.0".equals(codeString))
7446          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBSELINUX_1_0, code);
7447        if ("libtiff".equals(codeString))
7448          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBTIFF, code);
7449        if ("libutil-David-Nugent".equals(codeString))
7450          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBUTIL_DAVID_NUGENT, code);
7451        if ("LiLiQ-P-1.1".equals(codeString))
7452          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQ_P_1_1, code);
7453        if ("LiLiQ-R-1.1".equals(codeString))
7454          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQ_R_1_1, code);
7455        if ("LiLiQ-Rplus-1.1".equals(codeString))
7456          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQ_RPLUS_1_1, code);
7457        if ("Linux-man-pages-1-para".equals(codeString))
7458          return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUX_MAN_PAGES_1_PARA, code);
7459        if ("Linux-man-pages-copyleft".equals(codeString))
7460          return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUX_MAN_PAGES_COPYLEFT, code);
7461        if ("Linux-man-pages-copyleft-2-para".equals(codeString))
7462          return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUX_MAN_PAGES_COPYLEFT_2_PARA, code);
7463        if ("Linux-man-pages-copyleft-var".equals(codeString))
7464          return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUX_MAN_PAGES_COPYLEFT_VAR, code);
7465        if ("Linux-OpenIB".equals(codeString))
7466          return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUX_OPENIB, code);
7467        if ("LOOP".equals(codeString))
7468          return new Enumeration<SPDXLicense>(this, SPDXLicense.LOOP, code);
7469        if ("LPL-1.0".equals(codeString))
7470          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPL_1_0, code);
7471        if ("LPL-1.02".equals(codeString))
7472          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPL_1_02, code);
7473        if ("LPPL-1.0".equals(codeString))
7474          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL_1_0, code);
7475        if ("LPPL-1.1".equals(codeString))
7476          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL_1_1, code);
7477        if ("LPPL-1.2".equals(codeString))
7478          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL_1_2, code);
7479        if ("LPPL-1.3a".equals(codeString))
7480          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL_1_3A, code);
7481        if ("LPPL-1.3c".equals(codeString))
7482          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL_1_3C, code);
7483        if ("LZMA-SDK-9.11-to-9.20".equals(codeString))
7484          return new Enumeration<SPDXLicense>(this, SPDXLicense.LZMA_SDK_9_11_TO_9_20, code);
7485        if ("LZMA-SDK-9.22".equals(codeString))
7486          return new Enumeration<SPDXLicense>(this, SPDXLicense.LZMA_SDK_9_22, code);
7487        if ("MakeIndex".equals(codeString))
7488          return new Enumeration<SPDXLicense>(this, SPDXLicense.MAKEINDEX, code);
7489        if ("Martin-Birgmeier".equals(codeString))
7490          return new Enumeration<SPDXLicense>(this, SPDXLicense.MARTIN_BIRGMEIER, code);
7491        if ("metamail".equals(codeString))
7492          return new Enumeration<SPDXLicense>(this, SPDXLicense.METAMAIL, code);
7493        if ("Minpack".equals(codeString))
7494          return new Enumeration<SPDXLicense>(this, SPDXLicense.MINPACK, code);
7495        if ("MirOS".equals(codeString))
7496          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIROS, code);
7497        if ("MIT".equals(codeString))
7498          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT, code);
7499        if ("MIT-0".equals(codeString))
7500          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_0, code);
7501        if ("MIT-advertising".equals(codeString))
7502          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_ADVERTISING, code);
7503        if ("MIT-CMU".equals(codeString))
7504          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_CMU, code);
7505        if ("MIT-enna".equals(codeString))
7506          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_ENNA, code);
7507        if ("MIT-feh".equals(codeString))
7508          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_FEH, code);
7509        if ("MIT-Festival".equals(codeString))
7510          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_FESTIVAL, code);
7511        if ("MIT-Modern-Variant".equals(codeString))
7512          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_MODERN_VARIANT, code);
7513        if ("MIT-open-group".equals(codeString))
7514          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_OPEN_GROUP, code);
7515        if ("MIT-Wu".equals(codeString))
7516          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_WU, code);
7517        if ("MITNFA".equals(codeString))
7518          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITNFA, code);
7519        if ("Motosoto".equals(codeString))
7520          return new Enumeration<SPDXLicense>(this, SPDXLicense.MOTOSOTO, code);
7521        if ("mpi-permissive".equals(codeString))
7522          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPI_PERMISSIVE, code);
7523        if ("mpich2".equals(codeString))
7524          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPICH2, code);
7525        if ("MPL-1.0".equals(codeString))
7526          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL_1_0, code);
7527        if ("MPL-1.1".equals(codeString))
7528          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL_1_1, code);
7529        if ("MPL-2.0".equals(codeString))
7530          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL_2_0, code);
7531        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
7532          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL_2_0_NO_COPYLEFT_EXCEPTION, code);
7533        if ("mplus".equals(codeString))
7534          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPLUS, code);
7535        if ("MS-LPL".equals(codeString))
7536          return new Enumeration<SPDXLicense>(this, SPDXLicense.MS_LPL, code);
7537        if ("MS-PL".equals(codeString))
7538          return new Enumeration<SPDXLicense>(this, SPDXLicense.MS_PL, code);
7539        if ("MS-RL".equals(codeString))
7540          return new Enumeration<SPDXLicense>(this, SPDXLicense.MS_RL, code);
7541        if ("MTLL".equals(codeString))
7542          return new Enumeration<SPDXLicense>(this, SPDXLicense.MTLL, code);
7543        if ("MulanPSL-1.0".equals(codeString))
7544          return new Enumeration<SPDXLicense>(this, SPDXLicense.MULANPSL_1_0, code);
7545        if ("MulanPSL-2.0".equals(codeString))
7546          return new Enumeration<SPDXLicense>(this, SPDXLicense.MULANPSL_2_0, code);
7547        if ("Multics".equals(codeString))
7548          return new Enumeration<SPDXLicense>(this, SPDXLicense.MULTICS, code);
7549        if ("Mup".equals(codeString))
7550          return new Enumeration<SPDXLicense>(this, SPDXLicense.MUP, code);
7551        if ("NAIST-2003".equals(codeString))
7552          return new Enumeration<SPDXLicense>(this, SPDXLicense.NAIST_2003, code);
7553        if ("NASA-1.3".equals(codeString))
7554          return new Enumeration<SPDXLicense>(this, SPDXLicense.NASA_1_3, code);
7555        if ("Naumen".equals(codeString))
7556          return new Enumeration<SPDXLicense>(this, SPDXLicense.NAUMEN, code);
7557        if ("NBPL-1.0".equals(codeString))
7558          return new Enumeration<SPDXLicense>(this, SPDXLicense.NBPL_1_0, code);
7559        if ("NCGL-UK-2.0".equals(codeString))
7560          return new Enumeration<SPDXLicense>(this, SPDXLicense.NCGL_UK_2_0, code);
7561        if ("NCSA".equals(codeString))
7562          return new Enumeration<SPDXLicense>(this, SPDXLicense.NCSA, code);
7563        if ("Net-SNMP".equals(codeString))
7564          return new Enumeration<SPDXLicense>(this, SPDXLicense.NET_SNMP, code);
7565        if ("NetCDF".equals(codeString))
7566          return new Enumeration<SPDXLicense>(this, SPDXLicense.NETCDF, code);
7567        if ("Newsletr".equals(codeString))
7568          return new Enumeration<SPDXLicense>(this, SPDXLicense.NEWSLETR, code);
7569        if ("NGPL".equals(codeString))
7570          return new Enumeration<SPDXLicense>(this, SPDXLicense.NGPL, code);
7571        if ("NICTA-1.0".equals(codeString))
7572          return new Enumeration<SPDXLicense>(this, SPDXLicense.NICTA_1_0, code);
7573        if ("NIST-PD".equals(codeString))
7574          return new Enumeration<SPDXLicense>(this, SPDXLicense.NIST_PD, code);
7575        if ("NIST-PD-fallback".equals(codeString))
7576          return new Enumeration<SPDXLicense>(this, SPDXLicense.NIST_PD_FALLBACK, code);
7577        if ("NIST-Software".equals(codeString))
7578          return new Enumeration<SPDXLicense>(this, SPDXLicense.NIST_SOFTWARE, code);
7579        if ("NLOD-1.0".equals(codeString))
7580          return new Enumeration<SPDXLicense>(this, SPDXLicense.NLOD_1_0, code);
7581        if ("NLOD-2.0".equals(codeString))
7582          return new Enumeration<SPDXLicense>(this, SPDXLicense.NLOD_2_0, code);
7583        if ("NLPL".equals(codeString))
7584          return new Enumeration<SPDXLicense>(this, SPDXLicense.NLPL, code);
7585        if ("Nokia".equals(codeString))
7586          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOKIA, code);
7587        if ("NOSL".equals(codeString))
7588          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOSL, code);
7589        if ("not-open-source".equals(codeString))
7590          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOT_OPEN_SOURCE, code);
7591        if ("Noweb".equals(codeString))
7592          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOWEB, code);
7593        if ("NPL-1.0".equals(codeString))
7594          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPL_1_0, code);
7595        if ("NPL-1.1".equals(codeString))
7596          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPL_1_1, code);
7597        if ("NPOSL-3.0".equals(codeString))
7598          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPOSL_3_0, code);
7599        if ("NRL".equals(codeString))
7600          return new Enumeration<SPDXLicense>(this, SPDXLicense.NRL, code);
7601        if ("NTP".equals(codeString))
7602          return new Enumeration<SPDXLicense>(this, SPDXLicense.NTP, code);
7603        if ("NTP-0".equals(codeString))
7604          return new Enumeration<SPDXLicense>(this, SPDXLicense.NTP_0, code);
7605        if ("Nunit".equals(codeString))
7606          return new Enumeration<SPDXLicense>(this, SPDXLicense.NUNIT, code);
7607        if ("O-UDA-1.0".equals(codeString))
7608          return new Enumeration<SPDXLicense>(this, SPDXLicense.O_UDA_1_0, code);
7609        if ("OCCT-PL".equals(codeString))
7610          return new Enumeration<SPDXLicense>(this, SPDXLicense.OCCT_PL, code);
7611        if ("OCLC-2.0".equals(codeString))
7612          return new Enumeration<SPDXLicense>(this, SPDXLicense.OCLC_2_0, code);
7613        if ("ODbL-1.0".equals(codeString))
7614          return new Enumeration<SPDXLicense>(this, SPDXLicense.ODBL_1_0, code);
7615        if ("ODC-By-1.0".equals(codeString))
7616          return new Enumeration<SPDXLicense>(this, SPDXLicense.ODC_BY_1_0, code);
7617        if ("OFFIS".equals(codeString))
7618          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFFIS, code);
7619        if ("OFL-1.0".equals(codeString))
7620          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL_1_0, code);
7621        if ("OFL-1.0-no-RFN".equals(codeString))
7622          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL_1_0_NO_RFN, code);
7623        if ("OFL-1.0-RFN".equals(codeString))
7624          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL_1_0_RFN, code);
7625        if ("OFL-1.1".equals(codeString))
7626          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL_1_1, code);
7627        if ("OFL-1.1-no-RFN".equals(codeString))
7628          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL_1_1_NO_RFN, code);
7629        if ("OFL-1.1-RFN".equals(codeString))
7630          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL_1_1_RFN, code);
7631        if ("OGC-1.0".equals(codeString))
7632          return new Enumeration<SPDXLicense>(this, SPDXLicense.OGC_1_0, code);
7633        if ("OGDL-Taiwan-1.0".equals(codeString))
7634          return new Enumeration<SPDXLicense>(this, SPDXLicense.OGDL_TAIWAN_1_0, code);
7635        if ("OGL-Canada-2.0".equals(codeString))
7636          return new Enumeration<SPDXLicense>(this, SPDXLicense.OGL_CANADA_2_0, code);
7637        if ("OGL-UK-1.0".equals(codeString))
7638          return new Enumeration<SPDXLicense>(this, SPDXLicense.OGL_UK_1_0, code);
7639        if ("OGL-UK-2.0".equals(codeString))
7640          return new Enumeration<SPDXLicense>(this, SPDXLicense.OGL_UK_2_0, code);
7641        if ("OGL-UK-3.0".equals(codeString))
7642          return new Enumeration<SPDXLicense>(this, SPDXLicense.OGL_UK_3_0, code);
7643        if ("OGTSL".equals(codeString))
7644          return new Enumeration<SPDXLicense>(this, SPDXLicense.OGTSL, code);
7645        if ("OLDAP-1.1".equals(codeString))
7646          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_1_1, code);
7647        if ("OLDAP-1.2".equals(codeString))
7648          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_1_2, code);
7649        if ("OLDAP-1.3".equals(codeString))
7650          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_1_3, code);
7651        if ("OLDAP-1.4".equals(codeString))
7652          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_1_4, code);
7653        if ("OLDAP-2.0".equals(codeString))
7654          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_0, code);
7655        if ("OLDAP-2.0.1".equals(codeString))
7656          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_0_1, code);
7657        if ("OLDAP-2.1".equals(codeString))
7658          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_1, code);
7659        if ("OLDAP-2.2".equals(codeString))
7660          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_2, code);
7661        if ("OLDAP-2.2.1".equals(codeString))
7662          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_2_1, code);
7663        if ("OLDAP-2.2.2".equals(codeString))
7664          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_2_2, code);
7665        if ("OLDAP-2.3".equals(codeString))
7666          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_3, code);
7667        if ("OLDAP-2.4".equals(codeString))
7668          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_4, code);
7669        if ("OLDAP-2.5".equals(codeString))
7670          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_5, code);
7671        if ("OLDAP-2.6".equals(codeString))
7672          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_6, code);
7673        if ("OLDAP-2.7".equals(codeString))
7674          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_7, code);
7675        if ("OLDAP-2.8".equals(codeString))
7676          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_8, code);
7677        if ("OLFL-1.3".equals(codeString))
7678          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLFL_1_3, code);
7679        if ("OML".equals(codeString))
7680          return new Enumeration<SPDXLicense>(this, SPDXLicense.OML, code);
7681        if ("OpenPBS-2.3".equals(codeString))
7682          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPENPBS_2_3, code);
7683        if ("OpenSSL".equals(codeString))
7684          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPENSSL, code);
7685        if ("OPL-1.0".equals(codeString))
7686          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPL_1_0, code);
7687        if ("OPL-UK-3.0".equals(codeString))
7688          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPL_UK_3_0, code);
7689        if ("OPUBL-1.0".equals(codeString))
7690          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPUBL_1_0, code);
7691        if ("OSET-PL-2.1".equals(codeString))
7692          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSET_PL_2_1, code);
7693        if ("OSL-1.0".equals(codeString))
7694          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL_1_0, code);
7695        if ("OSL-1.1".equals(codeString))
7696          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL_1_1, code);
7697        if ("OSL-2.0".equals(codeString))
7698          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL_2_0, code);
7699        if ("OSL-2.1".equals(codeString))
7700          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL_2_1, code);
7701        if ("OSL-3.0".equals(codeString))
7702          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL_3_0, code);
7703        if ("Parity-6.0.0".equals(codeString))
7704          return new Enumeration<SPDXLicense>(this, SPDXLicense.PARITY_6_0_0, code);
7705        if ("Parity-7.0.0".equals(codeString))
7706          return new Enumeration<SPDXLicense>(this, SPDXLicense.PARITY_7_0_0, code);
7707        if ("PDDL-1.0".equals(codeString))
7708          return new Enumeration<SPDXLicense>(this, SPDXLicense.PDDL_1_0, code);
7709        if ("PHP-3.0".equals(codeString))
7710          return new Enumeration<SPDXLicense>(this, SPDXLicense.PHP_3_0, code);
7711        if ("PHP-3.01".equals(codeString))
7712          return new Enumeration<SPDXLicense>(this, SPDXLicense.PHP_3_01, code);
7713        if ("Plexus".equals(codeString))
7714          return new Enumeration<SPDXLicense>(this, SPDXLicense.PLEXUS, code);
7715        if ("PolyForm-Noncommercial-1.0.0".equals(codeString))
7716          return new Enumeration<SPDXLicense>(this, SPDXLicense.POLYFORM_NONCOMMERCIAL_1_0_0, code);
7717        if ("PolyForm-Small-Business-1.0.0".equals(codeString))
7718          return new Enumeration<SPDXLicense>(this, SPDXLicense.POLYFORM_SMALL_BUSINESS_1_0_0, code);
7719        if ("PostgreSQL".equals(codeString))
7720          return new Enumeration<SPDXLicense>(this, SPDXLicense.POSTGRESQL, code);
7721        if ("PSF-2.0".equals(codeString))
7722          return new Enumeration<SPDXLicense>(this, SPDXLicense.PSF_2_0, code);
7723        if ("psfrag".equals(codeString))
7724          return new Enumeration<SPDXLicense>(this, SPDXLicense.PSFRAG, code);
7725        if ("psutils".equals(codeString))
7726          return new Enumeration<SPDXLicense>(this, SPDXLicense.PSUTILS, code);
7727        if ("Python-2.0".equals(codeString))
7728          return new Enumeration<SPDXLicense>(this, SPDXLicense.PYTHON_2_0, code);
7729        if ("Python-2.0.1".equals(codeString))
7730          return new Enumeration<SPDXLicense>(this, SPDXLicense.PYTHON_2_0_1, code);
7731        if ("Qhull".equals(codeString))
7732          return new Enumeration<SPDXLicense>(this, SPDXLicense.QHULL, code);
7733        if ("QPL-1.0".equals(codeString))
7734          return new Enumeration<SPDXLicense>(this, SPDXLicense.QPL_1_0, code);
7735        if ("QPL-1.0-INRIA-2004".equals(codeString))
7736          return new Enumeration<SPDXLicense>(this, SPDXLicense.QPL_1_0_INRIA_2004, code);
7737        if ("Rdisc".equals(codeString))
7738          return new Enumeration<SPDXLicense>(this, SPDXLicense.RDISC, code);
7739        if ("RHeCos-1.1".equals(codeString))
7740          return new Enumeration<SPDXLicense>(this, SPDXLicense.RHECOS_1_1, code);
7741        if ("RPL-1.1".equals(codeString))
7742          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPL_1_1, code);
7743        if ("RPL-1.5".equals(codeString))
7744          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPL_1_5, code);
7745        if ("RPSL-1.0".equals(codeString))
7746          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPSL_1_0, code);
7747        if ("RSA-MD".equals(codeString))
7748          return new Enumeration<SPDXLicense>(this, SPDXLicense.RSA_MD, code);
7749        if ("RSCPL".equals(codeString))
7750          return new Enumeration<SPDXLicense>(this, SPDXLicense.RSCPL, code);
7751        if ("Ruby".equals(codeString))
7752          return new Enumeration<SPDXLicense>(this, SPDXLicense.RUBY, code);
7753        if ("SAX-PD".equals(codeString))
7754          return new Enumeration<SPDXLicense>(this, SPDXLicense.SAX_PD, code);
7755        if ("Saxpath".equals(codeString))
7756          return new Enumeration<SPDXLicense>(this, SPDXLicense.SAXPATH, code);
7757        if ("SCEA".equals(codeString))
7758          return new Enumeration<SPDXLicense>(this, SPDXLicense.SCEA, code);
7759        if ("SchemeReport".equals(codeString))
7760          return new Enumeration<SPDXLicense>(this, SPDXLicense.SCHEMEREPORT, code);
7761        if ("Sendmail".equals(codeString))
7762          return new Enumeration<SPDXLicense>(this, SPDXLicense.SENDMAIL, code);
7763        if ("Sendmail-8.23".equals(codeString))
7764          return new Enumeration<SPDXLicense>(this, SPDXLicense.SENDMAIL_8_23, code);
7765        if ("SGI-B-1.0".equals(codeString))
7766          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGI_B_1_0, code);
7767        if ("SGI-B-1.1".equals(codeString))
7768          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGI_B_1_1, code);
7769        if ("SGI-B-2.0".equals(codeString))
7770          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGI_B_2_0, code);
7771        if ("SGP4".equals(codeString))
7772          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGP4, code);
7773        if ("SHL-0.5".equals(codeString))
7774          return new Enumeration<SPDXLicense>(this, SPDXLicense.SHL_0_5, code);
7775        if ("SHL-0.51".equals(codeString))
7776          return new Enumeration<SPDXLicense>(this, SPDXLicense.SHL_0_51, code);
7777        if ("SimPL-2.0".equals(codeString))
7778          return new Enumeration<SPDXLicense>(this, SPDXLicense.SIMPL_2_0, code);
7779        if ("SISSL".equals(codeString))
7780          return new Enumeration<SPDXLicense>(this, SPDXLicense.SISSL, code);
7781        if ("SISSL-1.2".equals(codeString))
7782          return new Enumeration<SPDXLicense>(this, SPDXLicense.SISSL_1_2, code);
7783        if ("Sleepycat".equals(codeString))
7784          return new Enumeration<SPDXLicense>(this, SPDXLicense.SLEEPYCAT, code);
7785        if ("SMLNJ".equals(codeString))
7786          return new Enumeration<SPDXLicense>(this, SPDXLicense.SMLNJ, code);
7787        if ("SMPPL".equals(codeString))
7788          return new Enumeration<SPDXLicense>(this, SPDXLicense.SMPPL, code);
7789        if ("SNIA".equals(codeString))
7790          return new Enumeration<SPDXLicense>(this, SPDXLicense.SNIA, code);
7791        if ("snprintf".equals(codeString))
7792          return new Enumeration<SPDXLicense>(this, SPDXLicense.SNPRINTF, code);
7793        if ("Spencer-86".equals(codeString))
7794          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER_86, code);
7795        if ("Spencer-94".equals(codeString))
7796          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER_94, code);
7797        if ("Spencer-99".equals(codeString))
7798          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER_99, code);
7799        if ("SPL-1.0".equals(codeString))
7800          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPL_1_0, code);
7801        if ("SSH-OpenSSH".equals(codeString))
7802          return new Enumeration<SPDXLicense>(this, SPDXLicense.SSH_OPENSSH, code);
7803        if ("SSH-short".equals(codeString))
7804          return new Enumeration<SPDXLicense>(this, SPDXLicense.SSH_SHORT, code);
7805        if ("SSPL-1.0".equals(codeString))
7806          return new Enumeration<SPDXLicense>(this, SPDXLicense.SSPL_1_0, code);
7807        if ("StandardML-NJ".equals(codeString))
7808          return new Enumeration<SPDXLicense>(this, SPDXLicense.STANDARDML_NJ, code);
7809        if ("SugarCRM-1.1.3".equals(codeString))
7810          return new Enumeration<SPDXLicense>(this, SPDXLicense.SUGARCRM_1_1_3, code);
7811        if ("SunPro".equals(codeString))
7812          return new Enumeration<SPDXLicense>(this, SPDXLicense.SUNPRO, code);
7813        if ("SWL".equals(codeString))
7814          return new Enumeration<SPDXLicense>(this, SPDXLicense.SWL, code);
7815        if ("Symlinks".equals(codeString))
7816          return new Enumeration<SPDXLicense>(this, SPDXLicense.SYMLINKS, code);
7817        if ("TAPR-OHL-1.0".equals(codeString))
7818          return new Enumeration<SPDXLicense>(this, SPDXLicense.TAPR_OHL_1_0, code);
7819        if ("TCL".equals(codeString))
7820          return new Enumeration<SPDXLicense>(this, SPDXLicense.TCL, code);
7821        if ("TCP-wrappers".equals(codeString))
7822          return new Enumeration<SPDXLicense>(this, SPDXLicense.TCP_WRAPPERS, code);
7823        if ("TermReadKey".equals(codeString))
7824          return new Enumeration<SPDXLicense>(this, SPDXLicense.TERMREADKEY, code);
7825        if ("TMate".equals(codeString))
7826          return new Enumeration<SPDXLicense>(this, SPDXLicense.TMATE, code);
7827        if ("TORQUE-1.1".equals(codeString))
7828          return new Enumeration<SPDXLicense>(this, SPDXLicense.TORQUE_1_1, code);
7829        if ("TOSL".equals(codeString))
7830          return new Enumeration<SPDXLicense>(this, SPDXLicense.TOSL, code);
7831        if ("TPDL".equals(codeString))
7832          return new Enumeration<SPDXLicense>(this, SPDXLicense.TPDL, code);
7833        if ("TPL-1.0".equals(codeString))
7834          return new Enumeration<SPDXLicense>(this, SPDXLicense.TPL_1_0, code);
7835        if ("TTWL".equals(codeString))
7836          return new Enumeration<SPDXLicense>(this, SPDXLicense.TTWL, code);
7837        if ("TU-Berlin-1.0".equals(codeString))
7838          return new Enumeration<SPDXLicense>(this, SPDXLicense.TU_BERLIN_1_0, code);
7839        if ("TU-Berlin-2.0".equals(codeString))
7840          return new Enumeration<SPDXLicense>(this, SPDXLicense.TU_BERLIN_2_0, code);
7841        if ("UCAR".equals(codeString))
7842          return new Enumeration<SPDXLicense>(this, SPDXLicense.UCAR, code);
7843        if ("UCL-1.0".equals(codeString))
7844          return new Enumeration<SPDXLicense>(this, SPDXLicense.UCL_1_0, code);
7845        if ("Unicode-DFS-2015".equals(codeString))
7846          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODE_DFS_2015, code);
7847        if ("Unicode-DFS-2016".equals(codeString))
7848          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODE_DFS_2016, code);
7849        if ("Unicode-TOU".equals(codeString))
7850          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODE_TOU, code);
7851        if ("UnixCrypt".equals(codeString))
7852          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNIXCRYPT, code);
7853        if ("Unlicense".equals(codeString))
7854          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNLICENSE, code);
7855        if ("UPL-1.0".equals(codeString))
7856          return new Enumeration<SPDXLicense>(this, SPDXLicense.UPL_1_0, code);
7857        if ("Vim".equals(codeString))
7858          return new Enumeration<SPDXLicense>(this, SPDXLicense.VIM, code);
7859        if ("VOSTROM".equals(codeString))
7860          return new Enumeration<SPDXLicense>(this, SPDXLicense.VOSTROM, code);
7861        if ("VSL-1.0".equals(codeString))
7862          return new Enumeration<SPDXLicense>(this, SPDXLicense.VSL_1_0, code);
7863        if ("W3C".equals(codeString))
7864          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C, code);
7865        if ("W3C-19980720".equals(codeString))
7866          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C_19980720, code);
7867        if ("W3C-20150513".equals(codeString))
7868          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C_20150513, code);
7869        if ("w3m".equals(codeString))
7870          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3M, code);
7871        if ("Watcom-1.0".equals(codeString))
7872          return new Enumeration<SPDXLicense>(this, SPDXLicense.WATCOM_1_0, code);
7873        if ("Widget-Workshop".equals(codeString))
7874          return new Enumeration<SPDXLicense>(this, SPDXLicense.WIDGET_WORKSHOP, code);
7875        if ("Wsuipa".equals(codeString))
7876          return new Enumeration<SPDXLicense>(this, SPDXLicense.WSUIPA, code);
7877        if ("WTFPL".equals(codeString))
7878          return new Enumeration<SPDXLicense>(this, SPDXLicense.WTFPL, code);
7879        if ("wxWindows".equals(codeString))
7880          return new Enumeration<SPDXLicense>(this, SPDXLicense.WXWINDOWS, code);
7881        if ("X11".equals(codeString))
7882          return new Enumeration<SPDXLicense>(this, SPDXLicense.X11, code);
7883        if ("X11-distribute-modifications-variant".equals(codeString))
7884          return new Enumeration<SPDXLicense>(this, SPDXLicense.X11_DISTRIBUTE_MODIFICATIONS_VARIANT, code);
7885        if ("Xdebug-1.03".equals(codeString))
7886          return new Enumeration<SPDXLicense>(this, SPDXLicense.XDEBUG_1_03, code);
7887        if ("Xerox".equals(codeString))
7888          return new Enumeration<SPDXLicense>(this, SPDXLicense.XEROX, code);
7889        if ("Xfig".equals(codeString))
7890          return new Enumeration<SPDXLicense>(this, SPDXLicense.XFIG, code);
7891        if ("XFree86-1.1".equals(codeString))
7892          return new Enumeration<SPDXLicense>(this, SPDXLicense.XFREE86_1_1, code);
7893        if ("xinetd".equals(codeString))
7894          return new Enumeration<SPDXLicense>(this, SPDXLicense.XINETD, code);
7895        if ("xlock".equals(codeString))
7896          return new Enumeration<SPDXLicense>(this, SPDXLicense.XLOCK, code);
7897        if ("Xnet".equals(codeString))
7898          return new Enumeration<SPDXLicense>(this, SPDXLicense.XNET, code);
7899        if ("xpp".equals(codeString))
7900          return new Enumeration<SPDXLicense>(this, SPDXLicense.XPP, code);
7901        if ("XSkat".equals(codeString))
7902          return new Enumeration<SPDXLicense>(this, SPDXLicense.XSKAT, code);
7903        if ("YPL-1.0".equals(codeString))
7904          return new Enumeration<SPDXLicense>(this, SPDXLicense.YPL_1_0, code);
7905        if ("YPL-1.1".equals(codeString))
7906          return new Enumeration<SPDXLicense>(this, SPDXLicense.YPL_1_1, code);
7907        if ("Zed".equals(codeString))
7908          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZED, code);
7909        if ("Zend-2.0".equals(codeString))
7910          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZEND_2_0, code);
7911        if ("Zimbra-1.3".equals(codeString))
7912          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZIMBRA_1_3, code);
7913        if ("Zimbra-1.4".equals(codeString))
7914          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZIMBRA_1_4, code);
7915        if ("Zlib".equals(codeString))
7916          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZLIB, code);
7917        if ("zlib-acknowledgement".equals(codeString))
7918          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZLIB_ACKNOWLEDGEMENT, code);
7919        if ("ZPL-1.1".equals(codeString))
7920          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL_1_1, code);
7921        if ("ZPL-2.0".equals(codeString))
7922          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL_2_0, code);
7923        if ("ZPL-2.1".equals(codeString))
7924          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL_2_1, code);
7925        throw new FHIRException("Unknown SPDXLicense code '"+codeString+"'");
7926        }
7927    public String toCode(SPDXLicense code) {
7928      if (code == SPDXLicense._0BSD)
7929        return "0BSD";
7930      if (code == SPDXLicense.AAL)
7931        return "AAL";
7932      if (code == SPDXLicense.ABSTYLES)
7933        return "Abstyles";
7934      if (code == SPDXLicense.ADACORE_DOC)
7935        return "AdaCore-doc";
7936      if (code == SPDXLicense.ADOBE_2006)
7937        return "Adobe-2006";
7938      if (code == SPDXLicense.ADOBE_GLYPH)
7939        return "Adobe-Glyph";
7940      if (code == SPDXLicense.ADSL)
7941        return "ADSL";
7942      if (code == SPDXLicense.AFL_1_1)
7943        return "AFL-1.1";
7944      if (code == SPDXLicense.AFL_1_2)
7945        return "AFL-1.2";
7946      if (code == SPDXLicense.AFL_2_0)
7947        return "AFL-2.0";
7948      if (code == SPDXLicense.AFL_2_1)
7949        return "AFL-2.1";
7950      if (code == SPDXLicense.AFL_3_0)
7951        return "AFL-3.0";
7952      if (code == SPDXLicense.AFMPARSE)
7953        return "Afmparse";
7954      if (code == SPDXLicense.AGPL_1_0)
7955        return "AGPL-1.0";
7956      if (code == SPDXLicense.AGPL_1_0_ONLY)
7957        return "AGPL-1.0-only";
7958      if (code == SPDXLicense.AGPL_1_0_OR_LATER)
7959        return "AGPL-1.0-or-later";
7960      if (code == SPDXLicense.AGPL_3_0)
7961        return "AGPL-3.0";
7962      if (code == SPDXLicense.AGPL_3_0_ONLY)
7963        return "AGPL-3.0-only";
7964      if (code == SPDXLicense.AGPL_3_0_OR_LATER)
7965        return "AGPL-3.0-or-later";
7966      if (code == SPDXLicense.ALADDIN)
7967        return "Aladdin";
7968      if (code == SPDXLicense.AMDPLPA)
7969        return "AMDPLPA";
7970      if (code == SPDXLicense.AML)
7971        return "AML";
7972      if (code == SPDXLicense.AMPAS)
7973        return "AMPAS";
7974      if (code == SPDXLicense.ANTLR_PD)
7975        return "ANTLR-PD";
7976      if (code == SPDXLicense.ANTLR_PD_FALLBACK)
7977        return "ANTLR-PD-fallback";
7978      if (code == SPDXLicense.APACHE_1_0)
7979        return "Apache-1.0";
7980      if (code == SPDXLicense.APACHE_1_1)
7981        return "Apache-1.1";
7982      if (code == SPDXLicense.APACHE_2_0)
7983        return "Apache-2.0";
7984      if (code == SPDXLicense.APAFML)
7985        return "APAFML";
7986      if (code == SPDXLicense.APL_1_0)
7987        return "APL-1.0";
7988      if (code == SPDXLicense.APP_S2P)
7989        return "App-s2p";
7990      if (code == SPDXLicense.APSL_1_0)
7991        return "APSL-1.0";
7992      if (code == SPDXLicense.APSL_1_1)
7993        return "APSL-1.1";
7994      if (code == SPDXLicense.APSL_1_2)
7995        return "APSL-1.2";
7996      if (code == SPDXLicense.APSL_2_0)
7997        return "APSL-2.0";
7998      if (code == SPDXLicense.ARPHIC_1999)
7999        return "Arphic-1999";
8000      if (code == SPDXLicense.ARTISTIC_1_0)
8001        return "Artistic-1.0";
8002      if (code == SPDXLicense.ARTISTIC_1_0_CL8)
8003        return "Artistic-1.0-cl8";
8004      if (code == SPDXLicense.ARTISTIC_1_0_PERL)
8005        return "Artistic-1.0-Perl";
8006      if (code == SPDXLicense.ARTISTIC_2_0)
8007        return "Artistic-2.0";
8008      if (code == SPDXLicense.ASWF_DIGITAL_ASSETS_1_0)
8009        return "ASWF-Digital-Assets-1.0";
8010      if (code == SPDXLicense.ASWF_DIGITAL_ASSETS_1_1)
8011        return "ASWF-Digital-Assets-1.1";
8012      if (code == SPDXLicense.BAEKMUK)
8013        return "Baekmuk";
8014      if (code == SPDXLicense.BAHYPH)
8015        return "Bahyph";
8016      if (code == SPDXLicense.BARR)
8017        return "Barr";
8018      if (code == SPDXLicense.BEERWARE)
8019        return "Beerware";
8020      if (code == SPDXLicense.BITSTREAM_CHARTER)
8021        return "Bitstream-Charter";
8022      if (code == SPDXLicense.BITSTREAM_VERA)
8023        return "Bitstream-Vera";
8024      if (code == SPDXLicense.BITTORRENT_1_0)
8025        return "BitTorrent-1.0";
8026      if (code == SPDXLicense.BITTORRENT_1_1)
8027        return "BitTorrent-1.1";
8028      if (code == SPDXLicense.BLESSING)
8029        return "blessing";
8030      if (code == SPDXLicense.BLUEOAK_1_0_0)
8031        return "BlueOak-1.0.0";
8032      if (code == SPDXLicense.BOEHM_GC)
8033        return "Boehm-GC";
8034      if (code == SPDXLicense.BORCEUX)
8035        return "Borceux";
8036      if (code == SPDXLicense.BRIAN_GLADMAN_3_CLAUSE)
8037        return "Brian-Gladman-3-Clause";
8038      if (code == SPDXLicense.BSD_1_CLAUSE)
8039        return "BSD-1-Clause";
8040      if (code == SPDXLicense.BSD_2_CLAUSE)
8041        return "BSD-2-Clause";
8042      if (code == SPDXLicense.BSD_2_CLAUSE_FREEBSD)
8043        return "BSD-2-Clause-FreeBSD";
8044      if (code == SPDXLicense.BSD_2_CLAUSE_NETBSD)
8045        return "BSD-2-Clause-NetBSD";
8046      if (code == SPDXLicense.BSD_2_CLAUSE_PATENT)
8047        return "BSD-2-Clause-Patent";
8048      if (code == SPDXLicense.BSD_2_CLAUSE_VIEWS)
8049        return "BSD-2-Clause-Views";
8050      if (code == SPDXLicense.BSD_3_CLAUSE)
8051        return "BSD-3-Clause";
8052      if (code == SPDXLicense.BSD_3_CLAUSE_ATTRIBUTION)
8053        return "BSD-3-Clause-Attribution";
8054      if (code == SPDXLicense.BSD_3_CLAUSE_CLEAR)
8055        return "BSD-3-Clause-Clear";
8056      if (code == SPDXLicense.BSD_3_CLAUSE_LBNL)
8057        return "BSD-3-Clause-LBNL";
8058      if (code == SPDXLicense.BSD_3_CLAUSE_MODIFICATION)
8059        return "BSD-3-Clause-Modification";
8060      if (code == SPDXLicense.BSD_3_CLAUSE_NO_MILITARY_LICENSE)
8061        return "BSD-3-Clause-No-Military-License";
8062      if (code == SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_LICENSE)
8063        return "BSD-3-Clause-No-Nuclear-License";
8064      if (code == SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014)
8065        return "BSD-3-Clause-No-Nuclear-License-2014";
8066      if (code == SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY)
8067        return "BSD-3-Clause-No-Nuclear-Warranty";
8068      if (code == SPDXLicense.BSD_3_CLAUSE_OPEN_MPI)
8069        return "BSD-3-Clause-Open-MPI";
8070      if (code == SPDXLicense.BSD_4_CLAUSE)
8071        return "BSD-4-Clause";
8072      if (code == SPDXLicense.BSD_4_CLAUSE_SHORTENED)
8073        return "BSD-4-Clause-Shortened";
8074      if (code == SPDXLicense.BSD_4_CLAUSE_UC)
8075        return "BSD-4-Clause-UC";
8076      if (code == SPDXLicense.BSD_4_3RENO)
8077        return "BSD-4.3RENO";
8078      if (code == SPDXLicense.BSD_4_3TAHOE)
8079        return "BSD-4.3TAHOE";
8080      if (code == SPDXLicense.BSD_ADVERTISING_ACKNOWLEDGEMENT)
8081        return "BSD-Advertising-Acknowledgement";
8082      if (code == SPDXLicense.BSD_ATTRIBUTION_HPND_DISCLAIMER)
8083        return "BSD-Attribution-HPND-disclaimer";
8084      if (code == SPDXLicense.BSD_PROTECTION)
8085        return "BSD-Protection";
8086      if (code == SPDXLicense.BSD_SOURCE_CODE)
8087        return "BSD-Source-Code";
8088      if (code == SPDXLicense.BSL_1_0)
8089        return "BSL-1.0";
8090      if (code == SPDXLicense.BUSL_1_1)
8091        return "BUSL-1.1";
8092      if (code == SPDXLicense.BZIP2_1_0_5)
8093        return "bzip2-1.0.5";
8094      if (code == SPDXLicense.BZIP2_1_0_6)
8095        return "bzip2-1.0.6";
8096      if (code == SPDXLicense.C_UDA_1_0)
8097        return "C-UDA-1.0";
8098      if (code == SPDXLicense.CAL_1_0)
8099        return "CAL-1.0";
8100      if (code == SPDXLicense.CAL_1_0_COMBINED_WORK_EXCEPTION)
8101        return "CAL-1.0-Combined-Work-Exception";
8102      if (code == SPDXLicense.CALDERA)
8103        return "Caldera";
8104      if (code == SPDXLicense.CATOSL_1_1)
8105        return "CATOSL-1.1";
8106      if (code == SPDXLicense.CC_BY_1_0)
8107        return "CC-BY-1.0";
8108      if (code == SPDXLicense.CC_BY_2_0)
8109        return "CC-BY-2.0";
8110      if (code == SPDXLicense.CC_BY_2_5)
8111        return "CC-BY-2.5";
8112      if (code == SPDXLicense.CC_BY_2_5_AU)
8113        return "CC-BY-2.5-AU";
8114      if (code == SPDXLicense.CC_BY_3_0)
8115        return "CC-BY-3.0";
8116      if (code == SPDXLicense.CC_BY_3_0_AT)
8117        return "CC-BY-3.0-AT";
8118      if (code == SPDXLicense.CC_BY_3_0_DE)
8119        return "CC-BY-3.0-DE";
8120      if (code == SPDXLicense.CC_BY_3_0_IGO)
8121        return "CC-BY-3.0-IGO";
8122      if (code == SPDXLicense.CC_BY_3_0_NL)
8123        return "CC-BY-3.0-NL";
8124      if (code == SPDXLicense.CC_BY_3_0_US)
8125        return "CC-BY-3.0-US";
8126      if (code == SPDXLicense.CC_BY_4_0)
8127        return "CC-BY-4.0";
8128      if (code == SPDXLicense.CC_BY_NC_1_0)
8129        return "CC-BY-NC-1.0";
8130      if (code == SPDXLicense.CC_BY_NC_2_0)
8131        return "CC-BY-NC-2.0";
8132      if (code == SPDXLicense.CC_BY_NC_2_5)
8133        return "CC-BY-NC-2.5";
8134      if (code == SPDXLicense.CC_BY_NC_3_0)
8135        return "CC-BY-NC-3.0";
8136      if (code == SPDXLicense.CC_BY_NC_3_0_DE)
8137        return "CC-BY-NC-3.0-DE";
8138      if (code == SPDXLicense.CC_BY_NC_4_0)
8139        return "CC-BY-NC-4.0";
8140      if (code == SPDXLicense.CC_BY_NC_ND_1_0)
8141        return "CC-BY-NC-ND-1.0";
8142      if (code == SPDXLicense.CC_BY_NC_ND_2_0)
8143        return "CC-BY-NC-ND-2.0";
8144      if (code == SPDXLicense.CC_BY_NC_ND_2_5)
8145        return "CC-BY-NC-ND-2.5";
8146      if (code == SPDXLicense.CC_BY_NC_ND_3_0)
8147        return "CC-BY-NC-ND-3.0";
8148      if (code == SPDXLicense.CC_BY_NC_ND_3_0_DE)
8149        return "CC-BY-NC-ND-3.0-DE";
8150      if (code == SPDXLicense.CC_BY_NC_ND_3_0_IGO)
8151        return "CC-BY-NC-ND-3.0-IGO";
8152      if (code == SPDXLicense.CC_BY_NC_ND_4_0)
8153        return "CC-BY-NC-ND-4.0";
8154      if (code == SPDXLicense.CC_BY_NC_SA_1_0)
8155        return "CC-BY-NC-SA-1.0";
8156      if (code == SPDXLicense.CC_BY_NC_SA_2_0)
8157        return "CC-BY-NC-SA-2.0";
8158      if (code == SPDXLicense.CC_BY_NC_SA_2_0_DE)
8159        return "CC-BY-NC-SA-2.0-DE";
8160      if (code == SPDXLicense.CC_BY_NC_SA_2_0_FR)
8161        return "CC-BY-NC-SA-2.0-FR";
8162      if (code == SPDXLicense.CC_BY_NC_SA_2_0_UK)
8163        return "CC-BY-NC-SA-2.0-UK";
8164      if (code == SPDXLicense.CC_BY_NC_SA_2_5)
8165        return "CC-BY-NC-SA-2.5";
8166      if (code == SPDXLicense.CC_BY_NC_SA_3_0)
8167        return "CC-BY-NC-SA-3.0";
8168      if (code == SPDXLicense.CC_BY_NC_SA_3_0_DE)
8169        return "CC-BY-NC-SA-3.0-DE";
8170      if (code == SPDXLicense.CC_BY_NC_SA_3_0_IGO)
8171        return "CC-BY-NC-SA-3.0-IGO";
8172      if (code == SPDXLicense.CC_BY_NC_SA_4_0)
8173        return "CC-BY-NC-SA-4.0";
8174      if (code == SPDXLicense.CC_BY_ND_1_0)
8175        return "CC-BY-ND-1.0";
8176      if (code == SPDXLicense.CC_BY_ND_2_0)
8177        return "CC-BY-ND-2.0";
8178      if (code == SPDXLicense.CC_BY_ND_2_5)
8179        return "CC-BY-ND-2.5";
8180      if (code == SPDXLicense.CC_BY_ND_3_0)
8181        return "CC-BY-ND-3.0";
8182      if (code == SPDXLicense.CC_BY_ND_3_0_DE)
8183        return "CC-BY-ND-3.0-DE";
8184      if (code == SPDXLicense.CC_BY_ND_4_0)
8185        return "CC-BY-ND-4.0";
8186      if (code == SPDXLicense.CC_BY_SA_1_0)
8187        return "CC-BY-SA-1.0";
8188      if (code == SPDXLicense.CC_BY_SA_2_0)
8189        return "CC-BY-SA-2.0";
8190      if (code == SPDXLicense.CC_BY_SA_2_0_UK)
8191        return "CC-BY-SA-2.0-UK";
8192      if (code == SPDXLicense.CC_BY_SA_2_1_JP)
8193        return "CC-BY-SA-2.1-JP";
8194      if (code == SPDXLicense.CC_BY_SA_2_5)
8195        return "CC-BY-SA-2.5";
8196      if (code == SPDXLicense.CC_BY_SA_3_0)
8197        return "CC-BY-SA-3.0";
8198      if (code == SPDXLicense.CC_BY_SA_3_0_AT)
8199        return "CC-BY-SA-3.0-AT";
8200      if (code == SPDXLicense.CC_BY_SA_3_0_DE)
8201        return "CC-BY-SA-3.0-DE";
8202      if (code == SPDXLicense.CC_BY_SA_3_0_IGO)
8203        return "CC-BY-SA-3.0-IGO";
8204      if (code == SPDXLicense.CC_BY_SA_4_0)
8205        return "CC-BY-SA-4.0";
8206      if (code == SPDXLicense.CC_PDDC)
8207        return "CC-PDDC";
8208      if (code == SPDXLicense.CC0_1_0)
8209        return "CC0-1.0";
8210      if (code == SPDXLicense.CDDL_1_0)
8211        return "CDDL-1.0";
8212      if (code == SPDXLicense.CDDL_1_1)
8213        return "CDDL-1.1";
8214      if (code == SPDXLicense.CDL_1_0)
8215        return "CDL-1.0";
8216      if (code == SPDXLicense.CDLA_PERMISSIVE_1_0)
8217        return "CDLA-Permissive-1.0";
8218      if (code == SPDXLicense.CDLA_PERMISSIVE_2_0)
8219        return "CDLA-Permissive-2.0";
8220      if (code == SPDXLicense.CDLA_SHARING_1_0)
8221        return "CDLA-Sharing-1.0";
8222      if (code == SPDXLicense.CECILL_1_0)
8223        return "CECILL-1.0";
8224      if (code == SPDXLicense.CECILL_1_1)
8225        return "CECILL-1.1";
8226      if (code == SPDXLicense.CECILL_2_0)
8227        return "CECILL-2.0";
8228      if (code == SPDXLicense.CECILL_2_1)
8229        return "CECILL-2.1";
8230      if (code == SPDXLicense.CECILL_B)
8231        return "CECILL-B";
8232      if (code == SPDXLicense.CECILL_C)
8233        return "CECILL-C";
8234      if (code == SPDXLicense.CERN_OHL_1_1)
8235        return "CERN-OHL-1.1";
8236      if (code == SPDXLicense.CERN_OHL_1_2)
8237        return "CERN-OHL-1.2";
8238      if (code == SPDXLicense.CERN_OHL_P_2_0)
8239        return "CERN-OHL-P-2.0";
8240      if (code == SPDXLicense.CERN_OHL_S_2_0)
8241        return "CERN-OHL-S-2.0";
8242      if (code == SPDXLicense.CERN_OHL_W_2_0)
8243        return "CERN-OHL-W-2.0";
8244      if (code == SPDXLicense.CFITSIO)
8245        return "CFITSIO";
8246      if (code == SPDXLicense.CHECKMK)
8247        return "checkmk";
8248      if (code == SPDXLicense.CLARTISTIC)
8249        return "ClArtistic";
8250      if (code == SPDXLicense.CLIPS)
8251        return "Clips";
8252      if (code == SPDXLicense.CMU_MACH)
8253        return "CMU-Mach";
8254      if (code == SPDXLicense.CNRI_JYTHON)
8255        return "CNRI-Jython";
8256      if (code == SPDXLicense.CNRI_PYTHON)
8257        return "CNRI-Python";
8258      if (code == SPDXLicense.CNRI_PYTHON_GPL_COMPATIBLE)
8259        return "CNRI-Python-GPL-Compatible";
8260      if (code == SPDXLicense.COIL_1_0)
8261        return "COIL-1.0";
8262      if (code == SPDXLicense.COMMUNITY_SPEC_1_0)
8263        return "Community-Spec-1.0";
8264      if (code == SPDXLicense.CONDOR_1_1)
8265        return "Condor-1.1";
8266      if (code == SPDXLicense.COPYLEFT_NEXT_0_3_0)
8267        return "copyleft-next-0.3.0";
8268      if (code == SPDXLicense.COPYLEFT_NEXT_0_3_1)
8269        return "copyleft-next-0.3.1";
8270      if (code == SPDXLicense.CORNELL_LOSSLESS_JPEG)
8271        return "Cornell-Lossless-JPEG";
8272      if (code == SPDXLicense.CPAL_1_0)
8273        return "CPAL-1.0";
8274      if (code == SPDXLicense.CPL_1_0)
8275        return "CPL-1.0";
8276      if (code == SPDXLicense.CPOL_1_02)
8277        return "CPOL-1.02";
8278      if (code == SPDXLicense.CROSSWORD)
8279        return "Crossword";
8280      if (code == SPDXLicense.CRYSTALSTACKER)
8281        return "CrystalStacker";
8282      if (code == SPDXLicense.CUA_OPL_1_0)
8283        return "CUA-OPL-1.0";
8284      if (code == SPDXLicense.CUBE)
8285        return "Cube";
8286      if (code == SPDXLicense.CURL)
8287        return "curl";
8288      if (code == SPDXLicense.D_FSL_1_0)
8289        return "D-FSL-1.0";
8290      if (code == SPDXLicense.DIFFMARK)
8291        return "diffmark";
8292      if (code == SPDXLicense.DL_DE_BY_2_0)
8293        return "DL-DE-BY-2.0";
8294      if (code == SPDXLicense.DOC)
8295        return "DOC";
8296      if (code == SPDXLicense.DOTSEQN)
8297        return "Dotseqn";
8298      if (code == SPDXLicense.DRL_1_0)
8299        return "DRL-1.0";
8300      if (code == SPDXLicense.DSDP)
8301        return "DSDP";
8302      if (code == SPDXLicense.DTOA)
8303        return "dtoa";
8304      if (code == SPDXLicense.DVIPDFM)
8305        return "dvipdfm";
8306      if (code == SPDXLicense.ECL_1_0)
8307        return "ECL-1.0";
8308      if (code == SPDXLicense.ECL_2_0)
8309        return "ECL-2.0";
8310      if (code == SPDXLicense.ECOS_2_0)
8311        return "eCos-2.0";
8312      if (code == SPDXLicense.EFL_1_0)
8313        return "EFL-1.0";
8314      if (code == SPDXLicense.EFL_2_0)
8315        return "EFL-2.0";
8316      if (code == SPDXLicense.EGENIX)
8317        return "eGenix";
8318      if (code == SPDXLicense.ELASTIC_2_0)
8319        return "Elastic-2.0";
8320      if (code == SPDXLicense.ENTESSA)
8321        return "Entessa";
8322      if (code == SPDXLicense.EPICS)
8323        return "EPICS";
8324      if (code == SPDXLicense.EPL_1_0)
8325        return "EPL-1.0";
8326      if (code == SPDXLicense.EPL_2_0)
8327        return "EPL-2.0";
8328      if (code == SPDXLicense.ERLPL_1_1)
8329        return "ErlPL-1.1";
8330      if (code == SPDXLicense.ETALAB_2_0)
8331        return "etalab-2.0";
8332      if (code == SPDXLicense.EUDATAGRID)
8333        return "EUDatagrid";
8334      if (code == SPDXLicense.EUPL_1_0)
8335        return "EUPL-1.0";
8336      if (code == SPDXLicense.EUPL_1_1)
8337        return "EUPL-1.1";
8338      if (code == SPDXLicense.EUPL_1_2)
8339        return "EUPL-1.2";
8340      if (code == SPDXLicense.EUROSYM)
8341        return "Eurosym";
8342      if (code == SPDXLicense.FAIR)
8343        return "Fair";
8344      if (code == SPDXLicense.FDK_AAC)
8345        return "FDK-AAC";
8346      if (code == SPDXLicense.FRAMEWORX_1_0)
8347        return "Frameworx-1.0";
8348      if (code == SPDXLicense.FREEBSD_DOC)
8349        return "FreeBSD-DOC";
8350      if (code == SPDXLicense.FREEIMAGE)
8351        return "FreeImage";
8352      if (code == SPDXLicense.FSFAP)
8353        return "FSFAP";
8354      if (code == SPDXLicense.FSFUL)
8355        return "FSFUL";
8356      if (code == SPDXLicense.FSFULLR)
8357        return "FSFULLR";
8358      if (code == SPDXLicense.FSFULLRWD)
8359        return "FSFULLRWD";
8360      if (code == SPDXLicense.FTL)
8361        return "FTL";
8362      if (code == SPDXLicense.GD)
8363        return "GD";
8364      if (code == SPDXLicense.GFDL_1_1)
8365        return "GFDL-1.1";
8366      if (code == SPDXLicense.GFDL_1_1_INVARIANTS_ONLY)
8367        return "GFDL-1.1-invariants-only";
8368      if (code == SPDXLicense.GFDL_1_1_INVARIANTS_OR_LATER)
8369        return "GFDL-1.1-invariants-or-later";
8370      if (code == SPDXLicense.GFDL_1_1_NO_INVARIANTS_ONLY)
8371        return "GFDL-1.1-no-invariants-only";
8372      if (code == SPDXLicense.GFDL_1_1_NO_INVARIANTS_OR_LATER)
8373        return "GFDL-1.1-no-invariants-or-later";
8374      if (code == SPDXLicense.GFDL_1_1_ONLY)
8375        return "GFDL-1.1-only";
8376      if (code == SPDXLicense.GFDL_1_1_OR_LATER)
8377        return "GFDL-1.1-or-later";
8378      if (code == SPDXLicense.GFDL_1_2)
8379        return "GFDL-1.2";
8380      if (code == SPDXLicense.GFDL_1_2_INVARIANTS_ONLY)
8381        return "GFDL-1.2-invariants-only";
8382      if (code == SPDXLicense.GFDL_1_2_INVARIANTS_OR_LATER)
8383        return "GFDL-1.2-invariants-or-later";
8384      if (code == SPDXLicense.GFDL_1_2_NO_INVARIANTS_ONLY)
8385        return "GFDL-1.2-no-invariants-only";
8386      if (code == SPDXLicense.GFDL_1_2_NO_INVARIANTS_OR_LATER)
8387        return "GFDL-1.2-no-invariants-or-later";
8388      if (code == SPDXLicense.GFDL_1_2_ONLY)
8389        return "GFDL-1.2-only";
8390      if (code == SPDXLicense.GFDL_1_2_OR_LATER)
8391        return "GFDL-1.2-or-later";
8392      if (code == SPDXLicense.GFDL_1_3)
8393        return "GFDL-1.3";
8394      if (code == SPDXLicense.GFDL_1_3_INVARIANTS_ONLY)
8395        return "GFDL-1.3-invariants-only";
8396      if (code == SPDXLicense.GFDL_1_3_INVARIANTS_OR_LATER)
8397        return "GFDL-1.3-invariants-or-later";
8398      if (code == SPDXLicense.GFDL_1_3_NO_INVARIANTS_ONLY)
8399        return "GFDL-1.3-no-invariants-only";
8400      if (code == SPDXLicense.GFDL_1_3_NO_INVARIANTS_OR_LATER)
8401        return "GFDL-1.3-no-invariants-or-later";
8402      if (code == SPDXLicense.GFDL_1_3_ONLY)
8403        return "GFDL-1.3-only";
8404      if (code == SPDXLicense.GFDL_1_3_OR_LATER)
8405        return "GFDL-1.3-or-later";
8406      if (code == SPDXLicense.GIFTWARE)
8407        return "Giftware";
8408      if (code == SPDXLicense.GL2PS)
8409        return "GL2PS";
8410      if (code == SPDXLicense.GLIDE)
8411        return "Glide";
8412      if (code == SPDXLicense.GLULXE)
8413        return "Glulxe";
8414      if (code == SPDXLicense.GLWTPL)
8415        return "GLWTPL";
8416      if (code == SPDXLicense.GNUPLOT)
8417        return "gnuplot";
8418      if (code == SPDXLicense.GPL_1_0)
8419        return "GPL-1.0";
8420      if (code == SPDXLicense.GPL_1_0PLUS)
8421        return "GPL-1.0+";
8422      if (code == SPDXLicense.GPL_1_0_ONLY)
8423        return "GPL-1.0-only";
8424      if (code == SPDXLicense.GPL_1_0_OR_LATER)
8425        return "GPL-1.0-or-later";
8426      if (code == SPDXLicense.GPL_2_0)
8427        return "GPL-2.0";
8428      if (code == SPDXLicense.GPL_2_0PLUS)
8429        return "GPL-2.0+";
8430      if (code == SPDXLicense.GPL_2_0_ONLY)
8431        return "GPL-2.0-only";
8432      if (code == SPDXLicense.GPL_2_0_OR_LATER)
8433        return "GPL-2.0-or-later";
8434      if (code == SPDXLicense.GPL_2_0_WITH_AUTOCONF_EXCEPTION)
8435        return "GPL-2.0-with-autoconf-exception";
8436      if (code == SPDXLicense.GPL_2_0_WITH_BISON_EXCEPTION)
8437        return "GPL-2.0-with-bison-exception";
8438      if (code == SPDXLicense.GPL_2_0_WITH_CLASSPATH_EXCEPTION)
8439        return "GPL-2.0-with-classpath-exception";
8440      if (code == SPDXLicense.GPL_2_0_WITH_FONT_EXCEPTION)
8441        return "GPL-2.0-with-font-exception";
8442      if (code == SPDXLicense.GPL_2_0_WITH_GCC_EXCEPTION)
8443        return "GPL-2.0-with-GCC-exception";
8444      if (code == SPDXLicense.GPL_3_0)
8445        return "GPL-3.0";
8446      if (code == SPDXLicense.GPL_3_0PLUS)
8447        return "GPL-3.0+";
8448      if (code == SPDXLicense.GPL_3_0_ONLY)
8449        return "GPL-3.0-only";
8450      if (code == SPDXLicense.GPL_3_0_OR_LATER)
8451        return "GPL-3.0-or-later";
8452      if (code == SPDXLicense.GPL_3_0_WITH_AUTOCONF_EXCEPTION)
8453        return "GPL-3.0-with-autoconf-exception";
8454      if (code == SPDXLicense.GPL_3_0_WITH_GCC_EXCEPTION)
8455        return "GPL-3.0-with-GCC-exception";
8456      if (code == SPDXLicense.GRAPHICS_GEMS)
8457        return "Graphics-Gems";
8458      if (code == SPDXLicense.GSOAP_1_3B)
8459        return "gSOAP-1.3b";
8460      if (code == SPDXLicense.HASKELLREPORT)
8461        return "HaskellReport";
8462      if (code == SPDXLicense.HIPPOCRATIC_2_1)
8463        return "Hippocratic-2.1";
8464      if (code == SPDXLicense.HP_1986)
8465        return "HP-1986";
8466      if (code == SPDXLicense.HPND)
8467        return "HPND";
8468      if (code == SPDXLicense.HPND_EXPORT_US)
8469        return "HPND-export-US";
8470      if (code == SPDXLicense.HPND_MARKUS_KUHN)
8471        return "HPND-Markus-Kuhn";
8472      if (code == SPDXLicense.HPND_SELL_VARIANT)
8473        return "HPND-sell-variant";
8474      if (code == SPDXLicense.HPND_SELL_VARIANT_MIT_DISCLAIMER)
8475        return "HPND-sell-variant-MIT-disclaimer";
8476      if (code == SPDXLicense.HTMLTIDY)
8477        return "HTMLTIDY";
8478      if (code == SPDXLicense.IBM_PIBS)
8479        return "IBM-pibs";
8480      if (code == SPDXLicense.ICU)
8481        return "ICU";
8482      if (code == SPDXLicense.IEC_CODE_COMPONENTS_EULA)
8483        return "IEC-Code-Components-EULA";
8484      if (code == SPDXLicense.IJG)
8485        return "IJG";
8486      if (code == SPDXLicense.IJG_SHORT)
8487        return "IJG-short";
8488      if (code == SPDXLicense.IMAGEMAGICK)
8489        return "ImageMagick";
8490      if (code == SPDXLicense.IMATIX)
8491        return "iMatix";
8492      if (code == SPDXLicense.IMLIB2)
8493        return "Imlib2";
8494      if (code == SPDXLicense.INFO_ZIP)
8495        return "Info-ZIP";
8496      if (code == SPDXLicense.INNER_NET_2_0)
8497        return "Inner-Net-2.0";
8498      if (code == SPDXLicense.INTEL)
8499        return "Intel";
8500      if (code == SPDXLicense.INTEL_ACPI)
8501        return "Intel-ACPI";
8502      if (code == SPDXLicense.INTERBASE_1_0)
8503        return "Interbase-1.0";
8504      if (code == SPDXLicense.IPA)
8505        return "IPA";
8506      if (code == SPDXLicense.IPL_1_0)
8507        return "IPL-1.0";
8508      if (code == SPDXLicense.ISC)
8509        return "ISC";
8510      if (code == SPDXLicense.JAM)
8511        return "Jam";
8512      if (code == SPDXLicense.JASPER_2_0)
8513        return "JasPer-2.0";
8514      if (code == SPDXLicense.JPL_IMAGE)
8515        return "JPL-image";
8516      if (code == SPDXLicense.JPNIC)
8517        return "JPNIC";
8518      if (code == SPDXLicense.JSON)
8519        return "JSON";
8520      if (code == SPDXLicense.KAZLIB)
8521        return "Kazlib";
8522      if (code == SPDXLicense.KNUTH_CTAN)
8523        return "Knuth-CTAN";
8524      if (code == SPDXLicense.LAL_1_2)
8525        return "LAL-1.2";
8526      if (code == SPDXLicense.LAL_1_3)
8527        return "LAL-1.3";
8528      if (code == SPDXLicense.LATEX2E)
8529        return "Latex2e";
8530      if (code == SPDXLicense.LATEX2E_TRANSLATED_NOTICE)
8531        return "Latex2e-translated-notice";
8532      if (code == SPDXLicense.LEPTONICA)
8533        return "Leptonica";
8534      if (code == SPDXLicense.LGPL_2_0)
8535        return "LGPL-2.0";
8536      if (code == SPDXLicense.LGPL_2_0PLUS)
8537        return "LGPL-2.0+";
8538      if (code == SPDXLicense.LGPL_2_0_ONLY)
8539        return "LGPL-2.0-only";
8540      if (code == SPDXLicense.LGPL_2_0_OR_LATER)
8541        return "LGPL-2.0-or-later";
8542      if (code == SPDXLicense.LGPL_2_1)
8543        return "LGPL-2.1";
8544      if (code == SPDXLicense.LGPL_2_1PLUS)
8545        return "LGPL-2.1+";
8546      if (code == SPDXLicense.LGPL_2_1_ONLY)
8547        return "LGPL-2.1-only";
8548      if (code == SPDXLicense.LGPL_2_1_OR_LATER)
8549        return "LGPL-2.1-or-later";
8550      if (code == SPDXLicense.LGPL_3_0)
8551        return "LGPL-3.0";
8552      if (code == SPDXLicense.LGPL_3_0PLUS)
8553        return "LGPL-3.0+";
8554      if (code == SPDXLicense.LGPL_3_0_ONLY)
8555        return "LGPL-3.0-only";
8556      if (code == SPDXLicense.LGPL_3_0_OR_LATER)
8557        return "LGPL-3.0-or-later";
8558      if (code == SPDXLicense.LGPLLR)
8559        return "LGPLLR";
8560      if (code == SPDXLicense.LIBPNG)
8561        return "Libpng";
8562      if (code == SPDXLicense.LIBPNG_2_0)
8563        return "libpng-2.0";
8564      if (code == SPDXLicense.LIBSELINUX_1_0)
8565        return "libselinux-1.0";
8566      if (code == SPDXLicense.LIBTIFF)
8567        return "libtiff";
8568      if (code == SPDXLicense.LIBUTIL_DAVID_NUGENT)
8569        return "libutil-David-Nugent";
8570      if (code == SPDXLicense.LILIQ_P_1_1)
8571        return "LiLiQ-P-1.1";
8572      if (code == SPDXLicense.LILIQ_R_1_1)
8573        return "LiLiQ-R-1.1";
8574      if (code == SPDXLicense.LILIQ_RPLUS_1_1)
8575        return "LiLiQ-Rplus-1.1";
8576      if (code == SPDXLicense.LINUX_MAN_PAGES_1_PARA)
8577        return "Linux-man-pages-1-para";
8578      if (code == SPDXLicense.LINUX_MAN_PAGES_COPYLEFT)
8579        return "Linux-man-pages-copyleft";
8580      if (code == SPDXLicense.LINUX_MAN_PAGES_COPYLEFT_2_PARA)
8581        return "Linux-man-pages-copyleft-2-para";
8582      if (code == SPDXLicense.LINUX_MAN_PAGES_COPYLEFT_VAR)
8583        return "Linux-man-pages-copyleft-var";
8584      if (code == SPDXLicense.LINUX_OPENIB)
8585        return "Linux-OpenIB";
8586      if (code == SPDXLicense.LOOP)
8587        return "LOOP";
8588      if (code == SPDXLicense.LPL_1_0)
8589        return "LPL-1.0";
8590      if (code == SPDXLicense.LPL_1_02)
8591        return "LPL-1.02";
8592      if (code == SPDXLicense.LPPL_1_0)
8593        return "LPPL-1.0";
8594      if (code == SPDXLicense.LPPL_1_1)
8595        return "LPPL-1.1";
8596      if (code == SPDXLicense.LPPL_1_2)
8597        return "LPPL-1.2";
8598      if (code == SPDXLicense.LPPL_1_3A)
8599        return "LPPL-1.3a";
8600      if (code == SPDXLicense.LPPL_1_3C)
8601        return "LPPL-1.3c";
8602      if (code == SPDXLicense.LZMA_SDK_9_11_TO_9_20)
8603        return "LZMA-SDK-9.11-to-9.20";
8604      if (code == SPDXLicense.LZMA_SDK_9_22)
8605        return "LZMA-SDK-9.22";
8606      if (code == SPDXLicense.MAKEINDEX)
8607        return "MakeIndex";
8608      if (code == SPDXLicense.MARTIN_BIRGMEIER)
8609        return "Martin-Birgmeier";
8610      if (code == SPDXLicense.METAMAIL)
8611        return "metamail";
8612      if (code == SPDXLicense.MINPACK)
8613        return "Minpack";
8614      if (code == SPDXLicense.MIROS)
8615        return "MirOS";
8616      if (code == SPDXLicense.MIT)
8617        return "MIT";
8618      if (code == SPDXLicense.MIT_0)
8619        return "MIT-0";
8620      if (code == SPDXLicense.MIT_ADVERTISING)
8621        return "MIT-advertising";
8622      if (code == SPDXLicense.MIT_CMU)
8623        return "MIT-CMU";
8624      if (code == SPDXLicense.MIT_ENNA)
8625        return "MIT-enna";
8626      if (code == SPDXLicense.MIT_FEH)
8627        return "MIT-feh";
8628      if (code == SPDXLicense.MIT_FESTIVAL)
8629        return "MIT-Festival";
8630      if (code == SPDXLicense.MIT_MODERN_VARIANT)
8631        return "MIT-Modern-Variant";
8632      if (code == SPDXLicense.MIT_OPEN_GROUP)
8633        return "MIT-open-group";
8634      if (code == SPDXLicense.MIT_WU)
8635        return "MIT-Wu";
8636      if (code == SPDXLicense.MITNFA)
8637        return "MITNFA";
8638      if (code == SPDXLicense.MOTOSOTO)
8639        return "Motosoto";
8640      if (code == SPDXLicense.MPI_PERMISSIVE)
8641        return "mpi-permissive";
8642      if (code == SPDXLicense.MPICH2)
8643        return "mpich2";
8644      if (code == SPDXLicense.MPL_1_0)
8645        return "MPL-1.0";
8646      if (code == SPDXLicense.MPL_1_1)
8647        return "MPL-1.1";
8648      if (code == SPDXLicense.MPL_2_0)
8649        return "MPL-2.0";
8650      if (code == SPDXLicense.MPL_2_0_NO_COPYLEFT_EXCEPTION)
8651        return "MPL-2.0-no-copyleft-exception";
8652      if (code == SPDXLicense.MPLUS)
8653        return "mplus";
8654      if (code == SPDXLicense.MS_LPL)
8655        return "MS-LPL";
8656      if (code == SPDXLicense.MS_PL)
8657        return "MS-PL";
8658      if (code == SPDXLicense.MS_RL)
8659        return "MS-RL";
8660      if (code == SPDXLicense.MTLL)
8661        return "MTLL";
8662      if (code == SPDXLicense.MULANPSL_1_0)
8663        return "MulanPSL-1.0";
8664      if (code == SPDXLicense.MULANPSL_2_0)
8665        return "MulanPSL-2.0";
8666      if (code == SPDXLicense.MULTICS)
8667        return "Multics";
8668      if (code == SPDXLicense.MUP)
8669        return "Mup";
8670      if (code == SPDXLicense.NAIST_2003)
8671        return "NAIST-2003";
8672      if (code == SPDXLicense.NASA_1_3)
8673        return "NASA-1.3";
8674      if (code == SPDXLicense.NAUMEN)
8675        return "Naumen";
8676      if (code == SPDXLicense.NBPL_1_0)
8677        return "NBPL-1.0";
8678      if (code == SPDXLicense.NCGL_UK_2_0)
8679        return "NCGL-UK-2.0";
8680      if (code == SPDXLicense.NCSA)
8681        return "NCSA";
8682      if (code == SPDXLicense.NET_SNMP)
8683        return "Net-SNMP";
8684      if (code == SPDXLicense.NETCDF)
8685        return "NetCDF";
8686      if (code == SPDXLicense.NEWSLETR)
8687        return "Newsletr";
8688      if (code == SPDXLicense.NGPL)
8689        return "NGPL";
8690      if (code == SPDXLicense.NICTA_1_0)
8691        return "NICTA-1.0";
8692      if (code == SPDXLicense.NIST_PD)
8693        return "NIST-PD";
8694      if (code == SPDXLicense.NIST_PD_FALLBACK)
8695        return "NIST-PD-fallback";
8696      if (code == SPDXLicense.NIST_SOFTWARE)
8697        return "NIST-Software";
8698      if (code == SPDXLicense.NLOD_1_0)
8699        return "NLOD-1.0";
8700      if (code == SPDXLicense.NLOD_2_0)
8701        return "NLOD-2.0";
8702      if (code == SPDXLicense.NLPL)
8703        return "NLPL";
8704      if (code == SPDXLicense.NOKIA)
8705        return "Nokia";
8706      if (code == SPDXLicense.NOSL)
8707        return "NOSL";
8708      if (code == SPDXLicense.NOT_OPEN_SOURCE)
8709        return "not-open-source";
8710      if (code == SPDXLicense.NOWEB)
8711        return "Noweb";
8712      if (code == SPDXLicense.NPL_1_0)
8713        return "NPL-1.0";
8714      if (code == SPDXLicense.NPL_1_1)
8715        return "NPL-1.1";
8716      if (code == SPDXLicense.NPOSL_3_0)
8717        return "NPOSL-3.0";
8718      if (code == SPDXLicense.NRL)
8719        return "NRL";
8720      if (code == SPDXLicense.NTP)
8721        return "NTP";
8722      if (code == SPDXLicense.NTP_0)
8723        return "NTP-0";
8724      if (code == SPDXLicense.NUNIT)
8725        return "Nunit";
8726      if (code == SPDXLicense.O_UDA_1_0)
8727        return "O-UDA-1.0";
8728      if (code == SPDXLicense.OCCT_PL)
8729        return "OCCT-PL";
8730      if (code == SPDXLicense.OCLC_2_0)
8731        return "OCLC-2.0";
8732      if (code == SPDXLicense.ODBL_1_0)
8733        return "ODbL-1.0";
8734      if (code == SPDXLicense.ODC_BY_1_0)
8735        return "ODC-By-1.0";
8736      if (code == SPDXLicense.OFFIS)
8737        return "OFFIS";
8738      if (code == SPDXLicense.OFL_1_0)
8739        return "OFL-1.0";
8740      if (code == SPDXLicense.OFL_1_0_NO_RFN)
8741        return "OFL-1.0-no-RFN";
8742      if (code == SPDXLicense.OFL_1_0_RFN)
8743        return "OFL-1.0-RFN";
8744      if (code == SPDXLicense.OFL_1_1)
8745        return "OFL-1.1";
8746      if (code == SPDXLicense.OFL_1_1_NO_RFN)
8747        return "OFL-1.1-no-RFN";
8748      if (code == SPDXLicense.OFL_1_1_RFN)
8749        return "OFL-1.1-RFN";
8750      if (code == SPDXLicense.OGC_1_0)
8751        return "OGC-1.0";
8752      if (code == SPDXLicense.OGDL_TAIWAN_1_0)
8753        return "OGDL-Taiwan-1.0";
8754      if (code == SPDXLicense.OGL_CANADA_2_0)
8755        return "OGL-Canada-2.0";
8756      if (code == SPDXLicense.OGL_UK_1_0)
8757        return "OGL-UK-1.0";
8758      if (code == SPDXLicense.OGL_UK_2_0)
8759        return "OGL-UK-2.0";
8760      if (code == SPDXLicense.OGL_UK_3_0)
8761        return "OGL-UK-3.0";
8762      if (code == SPDXLicense.OGTSL)
8763        return "OGTSL";
8764      if (code == SPDXLicense.OLDAP_1_1)
8765        return "OLDAP-1.1";
8766      if (code == SPDXLicense.OLDAP_1_2)
8767        return "OLDAP-1.2";
8768      if (code == SPDXLicense.OLDAP_1_3)
8769        return "OLDAP-1.3";
8770      if (code == SPDXLicense.OLDAP_1_4)
8771        return "OLDAP-1.4";
8772      if (code == SPDXLicense.OLDAP_2_0)
8773        return "OLDAP-2.0";
8774      if (code == SPDXLicense.OLDAP_2_0_1)
8775        return "OLDAP-2.0.1";
8776      if (code == SPDXLicense.OLDAP_2_1)
8777        return "OLDAP-2.1";
8778      if (code == SPDXLicense.OLDAP_2_2)
8779        return "OLDAP-2.2";
8780      if (code == SPDXLicense.OLDAP_2_2_1)
8781        return "OLDAP-2.2.1";
8782      if (code == SPDXLicense.OLDAP_2_2_2)
8783        return "OLDAP-2.2.2";
8784      if (code == SPDXLicense.OLDAP_2_3)
8785        return "OLDAP-2.3";
8786      if (code == SPDXLicense.OLDAP_2_4)
8787        return "OLDAP-2.4";
8788      if (code == SPDXLicense.OLDAP_2_5)
8789        return "OLDAP-2.5";
8790      if (code == SPDXLicense.OLDAP_2_6)
8791        return "OLDAP-2.6";
8792      if (code == SPDXLicense.OLDAP_2_7)
8793        return "OLDAP-2.7";
8794      if (code == SPDXLicense.OLDAP_2_8)
8795        return "OLDAP-2.8";
8796      if (code == SPDXLicense.OLFL_1_3)
8797        return "OLFL-1.3";
8798      if (code == SPDXLicense.OML)
8799        return "OML";
8800      if (code == SPDXLicense.OPENPBS_2_3)
8801        return "OpenPBS-2.3";
8802      if (code == SPDXLicense.OPENSSL)
8803        return "OpenSSL";
8804      if (code == SPDXLicense.OPL_1_0)
8805        return "OPL-1.0";
8806      if (code == SPDXLicense.OPL_UK_3_0)
8807        return "OPL-UK-3.0";
8808      if (code == SPDXLicense.OPUBL_1_0)
8809        return "OPUBL-1.0";
8810      if (code == SPDXLicense.OSET_PL_2_1)
8811        return "OSET-PL-2.1";
8812      if (code == SPDXLicense.OSL_1_0)
8813        return "OSL-1.0";
8814      if (code == SPDXLicense.OSL_1_1)
8815        return "OSL-1.1";
8816      if (code == SPDXLicense.OSL_2_0)
8817        return "OSL-2.0";
8818      if (code == SPDXLicense.OSL_2_1)
8819        return "OSL-2.1";
8820      if (code == SPDXLicense.OSL_3_0)
8821        return "OSL-3.0";
8822      if (code == SPDXLicense.PARITY_6_0_0)
8823        return "Parity-6.0.0";
8824      if (code == SPDXLicense.PARITY_7_0_0)
8825        return "Parity-7.0.0";
8826      if (code == SPDXLicense.PDDL_1_0)
8827        return "PDDL-1.0";
8828      if (code == SPDXLicense.PHP_3_0)
8829        return "PHP-3.0";
8830      if (code == SPDXLicense.PHP_3_01)
8831        return "PHP-3.01";
8832      if (code == SPDXLicense.PLEXUS)
8833        return "Plexus";
8834      if (code == SPDXLicense.POLYFORM_NONCOMMERCIAL_1_0_0)
8835        return "PolyForm-Noncommercial-1.0.0";
8836      if (code == SPDXLicense.POLYFORM_SMALL_BUSINESS_1_0_0)
8837        return "PolyForm-Small-Business-1.0.0";
8838      if (code == SPDXLicense.POSTGRESQL)
8839        return "PostgreSQL";
8840      if (code == SPDXLicense.PSF_2_0)
8841        return "PSF-2.0";
8842      if (code == SPDXLicense.PSFRAG)
8843        return "psfrag";
8844      if (code == SPDXLicense.PSUTILS)
8845        return "psutils";
8846      if (code == SPDXLicense.PYTHON_2_0)
8847        return "Python-2.0";
8848      if (code == SPDXLicense.PYTHON_2_0_1)
8849        return "Python-2.0.1";
8850      if (code == SPDXLicense.QHULL)
8851        return "Qhull";
8852      if (code == SPDXLicense.QPL_1_0)
8853        return "QPL-1.0";
8854      if (code == SPDXLicense.QPL_1_0_INRIA_2004)
8855        return "QPL-1.0-INRIA-2004";
8856      if (code == SPDXLicense.RDISC)
8857        return "Rdisc";
8858      if (code == SPDXLicense.RHECOS_1_1)
8859        return "RHeCos-1.1";
8860      if (code == SPDXLicense.RPL_1_1)
8861        return "RPL-1.1";
8862      if (code == SPDXLicense.RPL_1_5)
8863        return "RPL-1.5";
8864      if (code == SPDXLicense.RPSL_1_0)
8865        return "RPSL-1.0";
8866      if (code == SPDXLicense.RSA_MD)
8867        return "RSA-MD";
8868      if (code == SPDXLicense.RSCPL)
8869        return "RSCPL";
8870      if (code == SPDXLicense.RUBY)
8871        return "Ruby";
8872      if (code == SPDXLicense.SAX_PD)
8873        return "SAX-PD";
8874      if (code == SPDXLicense.SAXPATH)
8875        return "Saxpath";
8876      if (code == SPDXLicense.SCEA)
8877        return "SCEA";
8878      if (code == SPDXLicense.SCHEMEREPORT)
8879        return "SchemeReport";
8880      if (code == SPDXLicense.SENDMAIL)
8881        return "Sendmail";
8882      if (code == SPDXLicense.SENDMAIL_8_23)
8883        return "Sendmail-8.23";
8884      if (code == SPDXLicense.SGI_B_1_0)
8885        return "SGI-B-1.0";
8886      if (code == SPDXLicense.SGI_B_1_1)
8887        return "SGI-B-1.1";
8888      if (code == SPDXLicense.SGI_B_2_0)
8889        return "SGI-B-2.0";
8890      if (code == SPDXLicense.SGP4)
8891        return "SGP4";
8892      if (code == SPDXLicense.SHL_0_5)
8893        return "SHL-0.5";
8894      if (code == SPDXLicense.SHL_0_51)
8895        return "SHL-0.51";
8896      if (code == SPDXLicense.SIMPL_2_0)
8897        return "SimPL-2.0";
8898      if (code == SPDXLicense.SISSL)
8899        return "SISSL";
8900      if (code == SPDXLicense.SISSL_1_2)
8901        return "SISSL-1.2";
8902      if (code == SPDXLicense.SLEEPYCAT)
8903        return "Sleepycat";
8904      if (code == SPDXLicense.SMLNJ)
8905        return "SMLNJ";
8906      if (code == SPDXLicense.SMPPL)
8907        return "SMPPL";
8908      if (code == SPDXLicense.SNIA)
8909        return "SNIA";
8910      if (code == SPDXLicense.SNPRINTF)
8911        return "snprintf";
8912      if (code == SPDXLicense.SPENCER_86)
8913        return "Spencer-86";
8914      if (code == SPDXLicense.SPENCER_94)
8915        return "Spencer-94";
8916      if (code == SPDXLicense.SPENCER_99)
8917        return "Spencer-99";
8918      if (code == SPDXLicense.SPL_1_0)
8919        return "SPL-1.0";
8920      if (code == SPDXLicense.SSH_OPENSSH)
8921        return "SSH-OpenSSH";
8922      if (code == SPDXLicense.SSH_SHORT)
8923        return "SSH-short";
8924      if (code == SPDXLicense.SSPL_1_0)
8925        return "SSPL-1.0";
8926      if (code == SPDXLicense.STANDARDML_NJ)
8927        return "StandardML-NJ";
8928      if (code == SPDXLicense.SUGARCRM_1_1_3)
8929        return "SugarCRM-1.1.3";
8930      if (code == SPDXLicense.SUNPRO)
8931        return "SunPro";
8932      if (code == SPDXLicense.SWL)
8933        return "SWL";
8934      if (code == SPDXLicense.SYMLINKS)
8935        return "Symlinks";
8936      if (code == SPDXLicense.TAPR_OHL_1_0)
8937        return "TAPR-OHL-1.0";
8938      if (code == SPDXLicense.TCL)
8939        return "TCL";
8940      if (code == SPDXLicense.TCP_WRAPPERS)
8941        return "TCP-wrappers";
8942      if (code == SPDXLicense.TERMREADKEY)
8943        return "TermReadKey";
8944      if (code == SPDXLicense.TMATE)
8945        return "TMate";
8946      if (code == SPDXLicense.TORQUE_1_1)
8947        return "TORQUE-1.1";
8948      if (code == SPDXLicense.TOSL)
8949        return "TOSL";
8950      if (code == SPDXLicense.TPDL)
8951        return "TPDL";
8952      if (code == SPDXLicense.TPL_1_0)
8953        return "TPL-1.0";
8954      if (code == SPDXLicense.TTWL)
8955        return "TTWL";
8956      if (code == SPDXLicense.TU_BERLIN_1_0)
8957        return "TU-Berlin-1.0";
8958      if (code == SPDXLicense.TU_BERLIN_2_0)
8959        return "TU-Berlin-2.0";
8960      if (code == SPDXLicense.UCAR)
8961        return "UCAR";
8962      if (code == SPDXLicense.UCL_1_0)
8963        return "UCL-1.0";
8964      if (code == SPDXLicense.UNICODE_DFS_2015)
8965        return "Unicode-DFS-2015";
8966      if (code == SPDXLicense.UNICODE_DFS_2016)
8967        return "Unicode-DFS-2016";
8968      if (code == SPDXLicense.UNICODE_TOU)
8969        return "Unicode-TOU";
8970      if (code == SPDXLicense.UNIXCRYPT)
8971        return "UnixCrypt";
8972      if (code == SPDXLicense.UNLICENSE)
8973        return "Unlicense";
8974      if (code == SPDXLicense.UPL_1_0)
8975        return "UPL-1.0";
8976      if (code == SPDXLicense.VIM)
8977        return "Vim";
8978      if (code == SPDXLicense.VOSTROM)
8979        return "VOSTROM";
8980      if (code == SPDXLicense.VSL_1_0)
8981        return "VSL-1.0";
8982      if (code == SPDXLicense.W3C)
8983        return "W3C";
8984      if (code == SPDXLicense.W3C_19980720)
8985        return "W3C-19980720";
8986      if (code == SPDXLicense.W3C_20150513)
8987        return "W3C-20150513";
8988      if (code == SPDXLicense.W3M)
8989        return "w3m";
8990      if (code == SPDXLicense.WATCOM_1_0)
8991        return "Watcom-1.0";
8992      if (code == SPDXLicense.WIDGET_WORKSHOP)
8993        return "Widget-Workshop";
8994      if (code == SPDXLicense.WSUIPA)
8995        return "Wsuipa";
8996      if (code == SPDXLicense.WTFPL)
8997        return "WTFPL";
8998      if (code == SPDXLicense.WXWINDOWS)
8999        return "wxWindows";
9000      if (code == SPDXLicense.X11)
9001        return "X11";
9002      if (code == SPDXLicense.X11_DISTRIBUTE_MODIFICATIONS_VARIANT)
9003        return "X11-distribute-modifications-variant";
9004      if (code == SPDXLicense.XDEBUG_1_03)
9005        return "Xdebug-1.03";
9006      if (code == SPDXLicense.XEROX)
9007        return "Xerox";
9008      if (code == SPDXLicense.XFIG)
9009        return "Xfig";
9010      if (code == SPDXLicense.XFREE86_1_1)
9011        return "XFree86-1.1";
9012      if (code == SPDXLicense.XINETD)
9013        return "xinetd";
9014      if (code == SPDXLicense.XLOCK)
9015        return "xlock";
9016      if (code == SPDXLicense.XNET)
9017        return "Xnet";
9018      if (code == SPDXLicense.XPP)
9019        return "xpp";
9020      if (code == SPDXLicense.XSKAT)
9021        return "XSkat";
9022      if (code == SPDXLicense.YPL_1_0)
9023        return "YPL-1.0";
9024      if (code == SPDXLicense.YPL_1_1)
9025        return "YPL-1.1";
9026      if (code == SPDXLicense.ZED)
9027        return "Zed";
9028      if (code == SPDXLicense.ZEND_2_0)
9029        return "Zend-2.0";
9030      if (code == SPDXLicense.ZIMBRA_1_3)
9031        return "Zimbra-1.3";
9032      if (code == SPDXLicense.ZIMBRA_1_4)
9033        return "Zimbra-1.4";
9034      if (code == SPDXLicense.ZLIB)
9035        return "Zlib";
9036      if (code == SPDXLicense.ZLIB_ACKNOWLEDGEMENT)
9037        return "zlib-acknowledgement";
9038      if (code == SPDXLicense.ZPL_1_1)
9039        return "ZPL-1.1";
9040      if (code == SPDXLicense.ZPL_2_0)
9041        return "ZPL-2.0";
9042      if (code == SPDXLicense.ZPL_2_1)
9043        return "ZPL-2.1";
9044      return "?";
9045      }
9046    public String toSystem(SPDXLicense code) {
9047      return code.getSystem();
9048      }
9049    }
9050
9051
9052
9053  public enum GuidePageGeneration {
9054    /**
9055     * Page is proper xhtml with no templating.  Will be brought across unchanged for standard post-processing.
9056     */
9057    HTML, 
9058    /**
9059     * Page is markdown with templating.  Will use the template to create a file that imports the markdown file prior to post-processing.
9060     */
9061    MARKDOWN, 
9062    /**
9063     * 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.
9064     */
9065    XML, 
9066    /**
9067     * Page will be generated by the publication process - no source to bring across.
9068     */
9069    GENERATED, 
9070    /**
9071     * added to help the parsers with the generic types
9072     */
9073    NULL;
9074    public static GuidePageGeneration fromCode(String codeString) throws FHIRException {
9075      if (codeString == null || "".equals(codeString))
9076        return null;
9077      if ("html".equals(codeString))
9078        return HTML;
9079      if ("markdown".equals(codeString))
9080        return MARKDOWN;
9081      if ("xml".equals(codeString))
9082        return XML;
9083      if ("generated".equals(codeString))
9084        return GENERATED;
9085      if (Configuration.isAcceptInvalidEnums())
9086        return null;
9087      else
9088        throw new FHIRException("Unknown GuidePageGeneration code '"+codeString+"'");
9089    }
9090    public String toCode() {
9091      switch (this) {
9092      case HTML: return "html";
9093      case MARKDOWN: return "markdown";
9094      case XML: return "xml";
9095      case GENERATED: return "generated";
9096      case NULL: return null;
9097      default: return "?";
9098      }
9099    }
9100    public String getSystem() {
9101      switch (this) {
9102      case HTML: return "http://hl7.org/fhir/guide-page-generation";
9103      case MARKDOWN: return "http://hl7.org/fhir/guide-page-generation";
9104      case XML: return "http://hl7.org/fhir/guide-page-generation";
9105      case GENERATED: return "http://hl7.org/fhir/guide-page-generation";
9106      case NULL: return null;
9107      default: return "?";
9108      }
9109    }
9110    public String getDefinition() {
9111      switch (this) {
9112      case HTML: return "Page is proper xhtml with no templating.  Will be brought across unchanged for standard post-processing.";
9113      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.";
9114      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.";
9115      case GENERATED: return "Page will be generated by the publication process - no source to bring across.";
9116      case NULL: return null;
9117      default: return "?";
9118      }
9119    }
9120    public String getDisplay() {
9121      switch (this) {
9122      case HTML: return "HTML";
9123      case MARKDOWN: return "Markdown";
9124      case XML: return "XML";
9125      case GENERATED: return "Generated";
9126      case NULL: return null;
9127      default: return "?";
9128      }
9129    }
9130  }
9131
9132  public static class GuidePageGenerationEnumFactory implements EnumFactory<GuidePageGeneration> {
9133    public GuidePageGeneration fromCode(String codeString) throws IllegalArgumentException {
9134      if (codeString == null || "".equals(codeString))
9135        if (codeString == null || "".equals(codeString))
9136          return null;
9137      if ("html".equals(codeString))
9138        return GuidePageGeneration.HTML;
9139      if ("markdown".equals(codeString))
9140        return GuidePageGeneration.MARKDOWN;
9141      if ("xml".equals(codeString))
9142        return GuidePageGeneration.XML;
9143      if ("generated".equals(codeString))
9144        return GuidePageGeneration.GENERATED;
9145      throw new IllegalArgumentException("Unknown GuidePageGeneration code '"+codeString+"'");
9146    }
9147    public Enumeration<GuidePageGeneration> fromType(PrimitiveType<?> code) throws FHIRException {
9148      if (code == null)
9149        return null;
9150      if (code.isEmpty())
9151        return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.NULL, code);
9152      String codeString = code.asStringValue();
9153      if (codeString == null || "".equals(codeString))
9154        return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.NULL, code);
9155      if ("html".equals(codeString))
9156        return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.HTML, code);
9157      if ("markdown".equals(codeString))
9158        return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.MARKDOWN, code);
9159      if ("xml".equals(codeString))
9160        return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.XML, code);
9161      if ("generated".equals(codeString))
9162        return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.GENERATED, code);
9163      throw new FHIRException("Unknown GuidePageGeneration code '"+codeString+"'");
9164    }
9165    public String toCode(GuidePageGeneration code) {
9166      if (code == GuidePageGeneration.HTML)
9167        return "html";
9168      if (code == GuidePageGeneration.MARKDOWN)
9169        return "markdown";
9170      if (code == GuidePageGeneration.XML)
9171        return "xml";
9172      if (code == GuidePageGeneration.GENERATED)
9173        return "generated";
9174      return "?";
9175    }
9176    public String toSystem(GuidePageGeneration code) {
9177      return code.getSystem();
9178    }
9179  }
9180
9181  public enum GuideParameterCode {
9182    /**
9183     * If the value of this string 0..* parameter is one of the metadata fields then all conformance resources will have any specified [Resource].[field] overwritten with the ImplementationGuide.[field], where field is one of: version, date, status, publisher, contact, copyright, experimental, jurisdiction, useContext.
9184     */
9185    APPLY, 
9186    /**
9187     * 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.
9188     */
9189    PATHRESOURCE, 
9190    /**
9191     * 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.
9192     */
9193    PATHPAGES, 
9194    /**
9195     * 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.
9196     */
9197    PATHTXCACHE, 
9198    /**
9199     * 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.
9200     */
9201    EXPANSIONPARAMETER, 
9202    /**
9203     * 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.
9204     */
9205    RULEBROKENLINKS, 
9206    /**
9207     * 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.
9208     */
9209    GENERATEXML, 
9210    /**
9211     * 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.
9212     */
9213    GENERATEJSON, 
9214    /**
9215     * 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.
9216     */
9217    GENERATETURTLE, 
9218    /**
9219     * 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).
9220     */
9221    HTMLTEMPLATE, 
9222    /**
9223     * added to help the parsers with the generic types
9224     */
9225    NULL;
9226    public static GuideParameterCode fromCode(String codeString) throws FHIRException {
9227      if (codeString == null || "".equals(codeString))
9228        return null;
9229      if ("apply".equals(codeString))
9230        return APPLY;
9231      if ("path-resource".equals(codeString))
9232        return PATHRESOURCE;
9233      if ("path-pages".equals(codeString))
9234        return PATHPAGES;
9235      if ("path-tx-cache".equals(codeString))
9236        return PATHTXCACHE;
9237      if ("expansion-parameter".equals(codeString))
9238        return EXPANSIONPARAMETER;
9239      if ("rule-broken-links".equals(codeString))
9240        return RULEBROKENLINKS;
9241      if ("generate-xml".equals(codeString))
9242        return GENERATEXML;
9243      if ("generate-json".equals(codeString))
9244        return GENERATEJSON;
9245      if ("generate-turtle".equals(codeString))
9246        return GENERATETURTLE;
9247      if ("html-template".equals(codeString))
9248        return HTMLTEMPLATE;
9249      if (Configuration.isAcceptInvalidEnums())
9250        return null;
9251      else
9252        throw new FHIRException("Unknown GuideParameterCode code '"+codeString+"'");
9253    }
9254    public String toCode() {
9255      switch (this) {
9256      case APPLY: return "apply";
9257      case PATHRESOURCE: return "path-resource";
9258      case PATHPAGES: return "path-pages";
9259      case PATHTXCACHE: return "path-tx-cache";
9260      case EXPANSIONPARAMETER: return "expansion-parameter";
9261      case RULEBROKENLINKS: return "rule-broken-links";
9262      case GENERATEXML: return "generate-xml";
9263      case GENERATEJSON: return "generate-json";
9264      case GENERATETURTLE: return "generate-turtle";
9265      case HTMLTEMPLATE: return "html-template";
9266      case NULL: return null;
9267      default: return "?";
9268      }
9269    }
9270    public String getSystem() {
9271      switch (this) {
9272      case APPLY: return "http://hl7.org/fhir/guide-parameter-code";
9273      case PATHRESOURCE: return "http://hl7.org/fhir/guide-parameter-code";
9274      case PATHPAGES: return "http://hl7.org/fhir/guide-parameter-code";
9275      case PATHTXCACHE: return "http://hl7.org/fhir/guide-parameter-code";
9276      case EXPANSIONPARAMETER: return "http://hl7.org/fhir/guide-parameter-code";
9277      case RULEBROKENLINKS: return "http://hl7.org/fhir/guide-parameter-code";
9278      case GENERATEXML: return "http://hl7.org/fhir/guide-parameter-code";
9279      case GENERATEJSON: return "http://hl7.org/fhir/guide-parameter-code";
9280      case GENERATETURTLE: return "http://hl7.org/fhir/guide-parameter-code";
9281      case HTMLTEMPLATE: return "http://hl7.org/fhir/guide-parameter-code";
9282      case NULL: return null;
9283      default: return "?";
9284      }
9285    }
9286    public String getDefinition() {
9287      switch (this) {
9288      case APPLY: return "If the value of this string 0..* parameter is one of the metadata fields then all conformance resources will have any specified [Resource].[field] overwritten with the ImplementationGuide.[field], where field is one of: version, date, status, publisher, contact, copyright, experimental, jurisdiction, useContext.";
9289      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.";
9290      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.";
9291      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.";
9292      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.";
9293      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.";
9294      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.";
9295      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.";
9296      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.";
9297      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).";
9298      case NULL: return null;
9299      default: return "?";
9300      }
9301    }
9302    public String getDisplay() {
9303      switch (this) {
9304      case APPLY: return "Apply Metadata Value";
9305      case PATHRESOURCE: return "Resource Path";
9306      case PATHPAGES: return "Pages Path";
9307      case PATHTXCACHE: return "Terminology Cache Path";
9308      case EXPANSIONPARAMETER: return "Expansion Profile";
9309      case RULEBROKENLINKS: return "Broken Links Rule";
9310      case GENERATEXML: return "Generate XML";
9311      case GENERATEJSON: return "Generate JSON";
9312      case GENERATETURTLE: return "Generate Turtle";
9313      case HTMLTEMPLATE: return "HTML Template";
9314      case NULL: return null;
9315      default: return "?";
9316      }
9317    }
9318  }
9319
9320  public static class GuideParameterCodeEnumFactory implements EnumFactory<GuideParameterCode> {
9321    public GuideParameterCode fromCode(String codeString) throws IllegalArgumentException {
9322      if (codeString == null || "".equals(codeString))
9323        if (codeString == null || "".equals(codeString))
9324          return null;
9325      if ("apply".equals(codeString))
9326        return GuideParameterCode.APPLY;
9327      if ("path-resource".equals(codeString))
9328        return GuideParameterCode.PATHRESOURCE;
9329      if ("path-pages".equals(codeString))
9330        return GuideParameterCode.PATHPAGES;
9331      if ("path-tx-cache".equals(codeString))
9332        return GuideParameterCode.PATHTXCACHE;
9333      if ("expansion-parameter".equals(codeString))
9334        return GuideParameterCode.EXPANSIONPARAMETER;
9335      if ("rule-broken-links".equals(codeString))
9336        return GuideParameterCode.RULEBROKENLINKS;
9337      if ("generate-xml".equals(codeString))
9338        return GuideParameterCode.GENERATEXML;
9339      if ("generate-json".equals(codeString))
9340        return GuideParameterCode.GENERATEJSON;
9341      if ("generate-turtle".equals(codeString))
9342        return GuideParameterCode.GENERATETURTLE;
9343      if ("html-template".equals(codeString))
9344        return GuideParameterCode.HTMLTEMPLATE;
9345      throw new IllegalArgumentException("Unknown GuideParameterCode code '"+codeString+"'");
9346    }
9347    public Enumeration<GuideParameterCode> fromType(PrimitiveType<?> code) throws FHIRException {
9348      if (code == null)
9349        return null;
9350      if (code.isEmpty())
9351        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.NULL, code);
9352      String codeString = code.asStringValue();
9353      if (codeString == null || "".equals(codeString))
9354        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.NULL, code);
9355      if ("apply".equals(codeString))
9356        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.APPLY, code);
9357      if ("path-resource".equals(codeString))
9358        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.PATHRESOURCE, code);
9359      if ("path-pages".equals(codeString))
9360        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.PATHPAGES, code);
9361      if ("path-tx-cache".equals(codeString))
9362        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.PATHTXCACHE, code);
9363      if ("expansion-parameter".equals(codeString))
9364        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.EXPANSIONPARAMETER, code);
9365      if ("rule-broken-links".equals(codeString))
9366        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.RULEBROKENLINKS, code);
9367      if ("generate-xml".equals(codeString))
9368        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.GENERATEXML, code);
9369      if ("generate-json".equals(codeString))
9370        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.GENERATEJSON, code);
9371      if ("generate-turtle".equals(codeString))
9372        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.GENERATETURTLE, code);
9373      if ("html-template".equals(codeString))
9374        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.HTMLTEMPLATE, code);
9375      throw new FHIRException("Unknown GuideParameterCode code '"+codeString+"'");
9376    }
9377    public String toCode(GuideParameterCode code) {
9378      if (code == GuideParameterCode.APPLY)
9379        return "apply";
9380      if (code == GuideParameterCode.PATHRESOURCE)
9381        return "path-resource";
9382      if (code == GuideParameterCode.PATHPAGES)
9383        return "path-pages";
9384      if (code == GuideParameterCode.PATHTXCACHE)
9385        return "path-tx-cache";
9386      if (code == GuideParameterCode.EXPANSIONPARAMETER)
9387        return "expansion-parameter";
9388      if (code == GuideParameterCode.RULEBROKENLINKS)
9389        return "rule-broken-links";
9390      if (code == GuideParameterCode.GENERATEXML)
9391        return "generate-xml";
9392      if (code == GuideParameterCode.GENERATEJSON)
9393        return "generate-json";
9394      if (code == GuideParameterCode.GENERATETURTLE)
9395        return "generate-turtle";
9396      if (code == GuideParameterCode.HTMLTEMPLATE)
9397        return "html-template";
9398      return "?";
9399    }
9400    public String toSystem(GuideParameterCode code) {
9401      return code.getSystem();
9402    }
9403  }
9404
9405  @Block()
9406  public static class ImplementationGuideDependsOnComponent extends BackboneElement implements IBaseBackboneElement {
9407    /**
9408     * A canonical reference to the Implementation guide for the dependency.
9409     */
9410    @Child(name = "uri", type = {CanonicalType.class}, order=1, min=1, max=1, modifier=false, summary=true)
9411    @Description(shortDefinition="Identity of the IG that this depends on", formalDefinition="A canonical reference to the Implementation guide for the dependency." )
9412    protected CanonicalType uri;
9413
9414    /**
9415     * The NPM package name for the Implementation Guide that this IG depends on.
9416     */
9417    @Child(name = "packageId", type = {IdType.class}, order=2, min=0, max=1, modifier=false, summary=true)
9418    @Description(shortDefinition="NPM Package name for IG this depends on", formalDefinition="The NPM package name for the Implementation Guide that this IG depends on." )
9419    protected IdType packageId;
9420
9421    /**
9422     * The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
9423     */
9424    @Child(name = "version", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
9425    @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." )
9426    protected StringType version;
9427
9428    private static final long serialVersionUID = -215808797L;
9429
9430    /**
9431     * Constructor
9432     */
9433    public ImplementationGuideDependsOnComponent() {
9434      super();
9435    }
9436
9437    /**
9438     * Constructor
9439     */
9440    public ImplementationGuideDependsOnComponent(CanonicalType uri) {
9441      super();
9442      this.uri = uri;
9443    }
9444
9445    /**
9446     * @return {@link #uri} (A canonical reference to 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
9447     */
9448    public CanonicalType getUriElement() { 
9449      if (this.uri == null)
9450        if (Configuration.errorOnAutoCreate())
9451          throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.uri");
9452        else if (Configuration.doAutoCreate())
9453          this.uri = new CanonicalType(); // bb
9454      return this.uri;
9455    }
9456
9457    public boolean hasUriElement() { 
9458      return this.uri != null && !this.uri.isEmpty();
9459    }
9460
9461    public boolean hasUri() { 
9462      return this.uri != null && !this.uri.isEmpty();
9463    }
9464
9465    /**
9466     * @param value {@link #uri} (A canonical reference to 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
9467     */
9468    public ImplementationGuideDependsOnComponent setUriElement(CanonicalType value) { 
9469      this.uri = value;
9470      return this;
9471    }
9472
9473    /**
9474     * @return A canonical reference to the Implementation guide for the dependency.
9475     */
9476    public String getUri() { 
9477      return this.uri == null ? null : this.uri.getValue();
9478    }
9479
9480    /**
9481     * @param value A canonical reference to the Implementation guide for the dependency.
9482     */
9483    public ImplementationGuideDependsOnComponent setUri(String value) { 
9484      if (this.uri == null)
9485        this.uri = new CanonicalType();
9486      this.uri.setValue(value);
9487      return this;
9488    }
9489
9490    /**
9491     * @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
9492     */
9493    public IdType getPackageIdElement() { 
9494      if (this.packageId == null)
9495        if (Configuration.errorOnAutoCreate())
9496          throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.packageId");
9497        else if (Configuration.doAutoCreate())
9498          this.packageId = new IdType(); // bb
9499      return this.packageId;
9500    }
9501
9502    public boolean hasPackageIdElement() { 
9503      return this.packageId != null && !this.packageId.isEmpty();
9504    }
9505
9506    public boolean hasPackageId() { 
9507      return this.packageId != null && !this.packageId.isEmpty();
9508    }
9509
9510    /**
9511     * @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
9512     */
9513    public ImplementationGuideDependsOnComponent setPackageIdElement(IdType value) { 
9514      this.packageId = value;
9515      return this;
9516    }
9517
9518    /**
9519     * @return The NPM package name for the Implementation Guide that this IG depends on.
9520     */
9521    public String getPackageId() { 
9522      return this.packageId == null ? null : this.packageId.getValue();
9523    }
9524
9525    /**
9526     * @param value The NPM package name for the Implementation Guide that this IG depends on.
9527     */
9528    public ImplementationGuideDependsOnComponent setPackageId(String value) { 
9529      if (Utilities.noString(value))
9530        this.packageId = null;
9531      else {
9532        if (this.packageId == null)
9533          this.packageId = new IdType();
9534        this.packageId.setValue(value);
9535      }
9536      return this;
9537    }
9538
9539    /**
9540     * @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
9541     */
9542    public StringType getVersionElement() { 
9543      if (this.version == null)
9544        if (Configuration.errorOnAutoCreate())
9545          throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.version");
9546        else if (Configuration.doAutoCreate())
9547          this.version = new StringType(); // bb
9548      return this.version;
9549    }
9550
9551    public boolean hasVersionElement() { 
9552      return this.version != null && !this.version.isEmpty();
9553    }
9554
9555    public boolean hasVersion() { 
9556      return this.version != null && !this.version.isEmpty();
9557    }
9558
9559    /**
9560     * @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
9561     */
9562    public ImplementationGuideDependsOnComponent setVersionElement(StringType value) { 
9563      this.version = value;
9564      return this;
9565    }
9566
9567    /**
9568     * @return The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
9569     */
9570    public String getVersion() { 
9571      return this.version == null ? null : this.version.getValue();
9572    }
9573
9574    /**
9575     * @param value The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
9576     */
9577    public ImplementationGuideDependsOnComponent setVersion(String value) { 
9578      if (Utilities.noString(value))
9579        this.version = null;
9580      else {
9581        if (this.version == null)
9582          this.version = new StringType();
9583        this.version.setValue(value);
9584      }
9585      return this;
9586    }
9587
9588    protected void listChildren(List<Property> children) {
9589      super.listChildren(children);
9590      children.add(new Property("uri", "canonical(ImplementationGuide)", "A canonical reference to the Implementation guide for the dependency.", 0, 1, uri));
9591      children.add(new Property("packageId", "id", "The NPM package name for the Implementation Guide that this IG depends on.", 0, 1, packageId));
9592      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));
9593    }
9594
9595    @Override
9596    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
9597      switch (_hash) {
9598      case 116076: /*uri*/  return new Property("uri", "canonical(ImplementationGuide)", "A canonical reference to the Implementation guide for the dependency.", 0, 1, uri);
9599      case 1802060801: /*packageId*/  return new Property("packageId", "id", "The NPM package name for the Implementation Guide that this IG depends on.", 0, 1, packageId);
9600      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);
9601      default: return super.getNamedProperty(_hash, _name, _checkValid);
9602      }
9603
9604    }
9605
9606    @Override
9607    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
9608      switch (hash) {
9609      case 116076: /*uri*/ return this.uri == null ? new Base[0] : new Base[] {this.uri}; // CanonicalType
9610      case 1802060801: /*packageId*/ return this.packageId == null ? new Base[0] : new Base[] {this.packageId}; // IdType
9611      case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
9612      default: return super.getProperty(hash, name, checkValid);
9613      }
9614
9615    }
9616
9617    @Override
9618    public Base setProperty(int hash, String name, Base value) throws FHIRException {
9619      switch (hash) {
9620      case 116076: // uri
9621        this.uri = castToCanonical(value); // CanonicalType
9622        return value;
9623      case 1802060801: // packageId
9624        this.packageId = castToId(value); // IdType
9625        return value;
9626      case 351608024: // version
9627        this.version = castToString(value); // StringType
9628        return value;
9629      default: return super.setProperty(hash, name, value);
9630      }
9631
9632    }
9633
9634    @Override
9635    public Base setProperty(String name, Base value) throws FHIRException {
9636      if (name.equals("uri")) {
9637        this.uri = castToCanonical(value); // CanonicalType
9638      } else if (name.equals("packageId")) {
9639        this.packageId = castToId(value); // IdType
9640      } else if (name.equals("version")) {
9641        this.version = castToString(value); // StringType
9642      } else
9643        return super.setProperty(name, value);
9644      return value;
9645    }
9646
9647    @Override
9648    public Base makeProperty(int hash, String name) throws FHIRException {
9649      switch (hash) {
9650      case 116076:  return getUriElement();
9651      case 1802060801:  return getPackageIdElement();
9652      case 351608024:  return getVersionElement();
9653      default: return super.makeProperty(hash, name);
9654      }
9655
9656    }
9657
9658    @Override
9659    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
9660      switch (hash) {
9661      case 116076: /*uri*/ return new String[] {"canonical"};
9662      case 1802060801: /*packageId*/ return new String[] {"id"};
9663      case 351608024: /*version*/ return new String[] {"string"};
9664      default: return super.getTypesForProperty(hash, name);
9665      }
9666
9667    }
9668
9669    @Override
9670    public Base addChild(String name) throws FHIRException {
9671      if (name.equals("uri")) {
9672        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.uri");
9673      }
9674      else if (name.equals("packageId")) {
9675        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.packageId");
9676      }
9677      else if (name.equals("version")) {
9678        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.version");
9679      }
9680      else
9681        return super.addChild(name);
9682    }
9683
9684    public ImplementationGuideDependsOnComponent copy() {
9685      ImplementationGuideDependsOnComponent dst = new ImplementationGuideDependsOnComponent();
9686      copyValues(dst);
9687      return dst;
9688    }
9689
9690    public void copyValues(ImplementationGuideDependsOnComponent dst) {
9691      super.copyValues(dst);
9692      dst.uri = uri == null ? null : uri.copy();
9693      dst.packageId = packageId == null ? null : packageId.copy();
9694      dst.version = version == null ? null : version.copy();
9695    }
9696
9697    @Override
9698    public boolean equalsDeep(Base other_) {
9699      if (!super.equalsDeep(other_))
9700        return false;
9701      if (!(other_ instanceof ImplementationGuideDependsOnComponent))
9702        return false;
9703      ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
9704      return compareDeep(uri, o.uri, true) && compareDeep(packageId, o.packageId, true) && compareDeep(version, o.version, true)
9705          ;
9706    }
9707
9708    @Override
9709    public boolean equalsShallow(Base other_) {
9710      if (!super.equalsShallow(other_))
9711        return false;
9712      if (!(other_ instanceof ImplementationGuideDependsOnComponent))
9713        return false;
9714      ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
9715      return compareValues(packageId, o.packageId, true) && compareValues(version, o.version, true);
9716    }
9717
9718    public boolean isEmpty() {
9719      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(uri, packageId, version
9720          );
9721    }
9722
9723    public String fhirType() {
9724      return "ImplementationGuide.dependsOn";
9725
9726    }
9727
9728  }
9729
9730  @Block()
9731  public static class ImplementationGuideGlobalComponent extends BackboneElement implements IBaseBackboneElement {
9732    /**
9733     * The type of resource that all instances must conform to.
9734     */
9735    @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
9736    @Description(shortDefinition="Type this profile applies to", formalDefinition="The type of resource that all instances must conform to." )
9737    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types")
9738    protected CodeType type;
9739
9740    /**
9741     * A reference to the profile that all instances must conform to.
9742     */
9743    @Child(name = "profile", type = {CanonicalType.class}, order=2, min=1, max=1, modifier=false, summary=true)
9744    @Description(shortDefinition="Profile that all resources must conform to", formalDefinition="A reference to the profile that all instances must conform to." )
9745    protected CanonicalType profile;
9746
9747    private static final long serialVersionUID = 33894666L;
9748
9749    /**
9750     * Constructor
9751     */
9752    public ImplementationGuideGlobalComponent() {
9753      super();
9754    }
9755
9756    /**
9757     * Constructor
9758     */
9759    public ImplementationGuideGlobalComponent(CodeType type, CanonicalType profile) {
9760      super();
9761      this.type = type;
9762      this.profile = profile;
9763    }
9764
9765    /**
9766     * @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
9767     */
9768    public CodeType getTypeElement() { 
9769      if (this.type == null)
9770        if (Configuration.errorOnAutoCreate())
9771          throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.type");
9772        else if (Configuration.doAutoCreate())
9773          this.type = new CodeType(); // bb
9774      return this.type;
9775    }
9776
9777    public boolean hasTypeElement() { 
9778      return this.type != null && !this.type.isEmpty();
9779    }
9780
9781    public boolean hasType() { 
9782      return this.type != null && !this.type.isEmpty();
9783    }
9784
9785    /**
9786     * @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
9787     */
9788    public ImplementationGuideGlobalComponent setTypeElement(CodeType value) { 
9789      this.type = value;
9790      return this;
9791    }
9792
9793    /**
9794     * @return The type of resource that all instances must conform to.
9795     */
9796    public String getType() { 
9797      return this.type == null ? null : this.type.getValue();
9798    }
9799
9800    /**
9801     * @param value The type of resource that all instances must conform to.
9802     */
9803    public ImplementationGuideGlobalComponent setType(String value) { 
9804      if (this.type == null)
9805        this.type = new CodeType();
9806      this.type.setValue(value);
9807      return this;
9808    }
9809
9810    /**
9811     * @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
9812     */
9813    public CanonicalType getProfileElement() { 
9814      if (this.profile == null)
9815        if (Configuration.errorOnAutoCreate())
9816          throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.profile");
9817        else if (Configuration.doAutoCreate())
9818          this.profile = new CanonicalType(); // bb
9819      return this.profile;
9820    }
9821
9822    public boolean hasProfileElement() { 
9823      return this.profile != null && !this.profile.isEmpty();
9824    }
9825
9826    public boolean hasProfile() { 
9827      return this.profile != null && !this.profile.isEmpty();
9828    }
9829
9830    /**
9831     * @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
9832     */
9833    public ImplementationGuideGlobalComponent setProfileElement(CanonicalType value) { 
9834      this.profile = value;
9835      return this;
9836    }
9837
9838    /**
9839     * @return A reference to the profile that all instances must conform to.
9840     */
9841    public String getProfile() { 
9842      return this.profile == null ? null : this.profile.getValue();
9843    }
9844
9845    /**
9846     * @param value A reference to the profile that all instances must conform to.
9847     */
9848    public ImplementationGuideGlobalComponent setProfile(String value) { 
9849      if (this.profile == null)
9850        this.profile = new CanonicalType();
9851      this.profile.setValue(value);
9852      return this;
9853    }
9854
9855    protected void listChildren(List<Property> children) {
9856      super.listChildren(children);
9857      children.add(new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1, type));
9858      children.add(new Property("profile", "canonical(StructureDefinition)", "A reference to the profile that all instances must conform to.", 0, 1, profile));
9859    }
9860
9861    @Override
9862    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
9863      switch (_hash) {
9864      case 3575610: /*type*/  return new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1, type);
9865      case -309425751: /*profile*/  return new Property("profile", "canonical(StructureDefinition)", "A reference to the profile that all instances must conform to.", 0, 1, profile);
9866      default: return super.getNamedProperty(_hash, _name, _checkValid);
9867      }
9868
9869    }
9870
9871    @Override
9872    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
9873      switch (hash) {
9874      case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeType
9875      case -309425751: /*profile*/ return this.profile == null ? new Base[0] : new Base[] {this.profile}; // CanonicalType
9876      default: return super.getProperty(hash, name, checkValid);
9877      }
9878
9879    }
9880
9881    @Override
9882    public Base setProperty(int hash, String name, Base value) throws FHIRException {
9883      switch (hash) {
9884      case 3575610: // type
9885        this.type = castToCode(value); // CodeType
9886        return value;
9887      case -309425751: // profile
9888        this.profile = castToCanonical(value); // CanonicalType
9889        return value;
9890      default: return super.setProperty(hash, name, value);
9891      }
9892
9893    }
9894
9895    @Override
9896    public Base setProperty(String name, Base value) throws FHIRException {
9897      if (name.equals("type")) {
9898        this.type = castToCode(value); // CodeType
9899      } else if (name.equals("profile")) {
9900        this.profile = castToCanonical(value); // CanonicalType
9901      } else
9902        return super.setProperty(name, value);
9903      return value;
9904    }
9905
9906    @Override
9907    public Base makeProperty(int hash, String name) throws FHIRException {
9908      switch (hash) {
9909      case 3575610:  return getTypeElement();
9910      case -309425751:  return getProfileElement();
9911      default: return super.makeProperty(hash, name);
9912      }
9913
9914    }
9915
9916    @Override
9917    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
9918      switch (hash) {
9919      case 3575610: /*type*/ return new String[] {"code"};
9920      case -309425751: /*profile*/ return new String[] {"canonical"};
9921      default: return super.getTypesForProperty(hash, name);
9922      }
9923
9924    }
9925
9926    @Override
9927    public Base addChild(String name) throws FHIRException {
9928      if (name.equals("type")) {
9929        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.type");
9930      }
9931      else if (name.equals("profile")) {
9932        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.profile");
9933      }
9934      else
9935        return super.addChild(name);
9936    }
9937
9938    public ImplementationGuideGlobalComponent copy() {
9939      ImplementationGuideGlobalComponent dst = new ImplementationGuideGlobalComponent();
9940      copyValues(dst);
9941      return dst;
9942    }
9943
9944    public void copyValues(ImplementationGuideGlobalComponent dst) {
9945      super.copyValues(dst);
9946      dst.type = type == null ? null : type.copy();
9947      dst.profile = profile == null ? null : profile.copy();
9948    }
9949
9950    @Override
9951    public boolean equalsDeep(Base other_) {
9952      if (!super.equalsDeep(other_))
9953        return false;
9954      if (!(other_ instanceof ImplementationGuideGlobalComponent))
9955        return false;
9956      ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
9957      return compareDeep(type, o.type, true) && compareDeep(profile, o.profile, true);
9958    }
9959
9960    @Override
9961    public boolean equalsShallow(Base other_) {
9962      if (!super.equalsShallow(other_))
9963        return false;
9964      if (!(other_ instanceof ImplementationGuideGlobalComponent))
9965        return false;
9966      ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
9967      return compareValues(type, o.type, true);
9968    }
9969
9970    public boolean isEmpty() {
9971      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, profile);
9972    }
9973
9974    public String fhirType() {
9975      return "ImplementationGuide.global";
9976
9977    }
9978
9979  }
9980
9981  @Block()
9982  public static class ImplementationGuideDefinitionComponent extends BackboneElement implements IBaseBackboneElement {
9983    /**
9984     * A logical group of resources. Logical groups can be used when building pages.
9985     */
9986    @Child(name = "grouping", type = {}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
9987    @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." )
9988    protected List<ImplementationGuideDefinitionGroupingComponent> grouping;
9989
9990    /**
9991     * 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.
9992     */
9993    @Child(name = "resource", type = {}, order=2, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
9994    @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." )
9995    protected List<ImplementationGuideDefinitionResourceComponent> resource;
9996
9997    /**
9998     * A page / section in the implementation guide. The root page is the implementation guide home page.
9999     */
10000    @Child(name = "page", type = {}, order=3, min=0, max=1, modifier=false, summary=false)
10001    @Description(shortDefinition="Page/Section in the Guide", formalDefinition="A page / section in the implementation guide. The root page is the implementation guide home page." )
10002    protected ImplementationGuideDefinitionPageComponent page;
10003
10004    /**
10005     * Defines how IG is built by tools.
10006     */
10007    @Child(name = "parameter", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
10008    @Description(shortDefinition="Defines how IG is built by tools", formalDefinition="Defines how IG is built by tools." )
10009    protected List<ImplementationGuideDefinitionParameterComponent> parameter;
10010
10011    /**
10012     * A template for building resources.
10013     */
10014    @Child(name = "template", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
10015    @Description(shortDefinition="A template for building resources", formalDefinition="A template for building resources." )
10016    protected List<ImplementationGuideDefinitionTemplateComponent> template;
10017
10018    private static final long serialVersionUID = 179051968L;
10019
10020    /**
10021     * Constructor
10022     */
10023    public ImplementationGuideDefinitionComponent() {
10024      super();
10025    }
10026
10027    /**
10028     * @return {@link #grouping} (A logical group of resources. Logical groups can be used when building pages.)
10029     */
10030    public List<ImplementationGuideDefinitionGroupingComponent> getGrouping() { 
10031      if (this.grouping == null)
10032        this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
10033      return this.grouping;
10034    }
10035
10036    /**
10037     * @return Returns a reference to <code>this</code> for easy method chaining
10038     */
10039    public ImplementationGuideDefinitionComponent setGrouping(List<ImplementationGuideDefinitionGroupingComponent> theGrouping) { 
10040      this.grouping = theGrouping;
10041      return this;
10042    }
10043
10044    public boolean hasGrouping() { 
10045      if (this.grouping == null)
10046        return false;
10047      for (ImplementationGuideDefinitionGroupingComponent item : this.grouping)
10048        if (!item.isEmpty())
10049          return true;
10050      return false;
10051    }
10052
10053    public ImplementationGuideDefinitionGroupingComponent addGrouping() { //3
10054      ImplementationGuideDefinitionGroupingComponent t = new ImplementationGuideDefinitionGroupingComponent();
10055      if (this.grouping == null)
10056        this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
10057      this.grouping.add(t);
10058      return t;
10059    }
10060
10061    public ImplementationGuideDefinitionComponent addGrouping(ImplementationGuideDefinitionGroupingComponent t) { //3
10062      if (t == null)
10063        return this;
10064      if (this.grouping == null)
10065        this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
10066      this.grouping.add(t);
10067      return this;
10068    }
10069
10070    /**
10071     * @return The first repetition of repeating field {@link #grouping}, creating it if it does not already exist
10072     */
10073    public ImplementationGuideDefinitionGroupingComponent getGroupingFirstRep() { 
10074      if (getGrouping().isEmpty()) {
10075        addGrouping();
10076      }
10077      return getGrouping().get(0);
10078    }
10079
10080    /**
10081     * @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.)
10082     */
10083    public List<ImplementationGuideDefinitionResourceComponent> getResource() { 
10084      if (this.resource == null)
10085        this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
10086      return this.resource;
10087    }
10088
10089    /**
10090     * @return Returns a reference to <code>this</code> for easy method chaining
10091     */
10092    public ImplementationGuideDefinitionComponent setResource(List<ImplementationGuideDefinitionResourceComponent> theResource) { 
10093      this.resource = theResource;
10094      return this;
10095    }
10096
10097    public boolean hasResource() { 
10098      if (this.resource == null)
10099        return false;
10100      for (ImplementationGuideDefinitionResourceComponent item : this.resource)
10101        if (!item.isEmpty())
10102          return true;
10103      return false;
10104    }
10105
10106    public ImplementationGuideDefinitionResourceComponent addResource() { //3
10107      ImplementationGuideDefinitionResourceComponent t = new ImplementationGuideDefinitionResourceComponent();
10108      if (this.resource == null)
10109        this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
10110      this.resource.add(t);
10111      return t;
10112    }
10113
10114    public ImplementationGuideDefinitionComponent addResource(ImplementationGuideDefinitionResourceComponent t) { //3
10115      if (t == null)
10116        return this;
10117      if (this.resource == null)
10118        this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
10119      this.resource.add(t);
10120      return this;
10121    }
10122
10123    /**
10124     * @return The first repetition of repeating field {@link #resource}, creating it if it does not already exist
10125     */
10126    public ImplementationGuideDefinitionResourceComponent getResourceFirstRep() { 
10127      if (getResource().isEmpty()) {
10128        addResource();
10129      }
10130      return getResource().get(0);
10131    }
10132
10133    /**
10134     * @return {@link #page} (A page / section in the implementation guide. The root page is the implementation guide home page.)
10135     */
10136    public ImplementationGuideDefinitionPageComponent getPage() { 
10137      if (this.page == null)
10138        if (Configuration.errorOnAutoCreate())
10139          throw new Error("Attempt to auto-create ImplementationGuideDefinitionComponent.page");
10140        else if (Configuration.doAutoCreate())
10141          this.page = new ImplementationGuideDefinitionPageComponent(); // cc
10142      return this.page;
10143    }
10144
10145    public boolean hasPage() { 
10146      return this.page != null && !this.page.isEmpty();
10147    }
10148
10149    /**
10150     * @param value {@link #page} (A page / section in the implementation guide. The root page is the implementation guide home page.)
10151     */
10152    public ImplementationGuideDefinitionComponent setPage(ImplementationGuideDefinitionPageComponent value) { 
10153      this.page = value;
10154      return this;
10155    }
10156
10157    /**
10158     * @return {@link #parameter} (Defines how IG is built by tools.)
10159     */
10160    public List<ImplementationGuideDefinitionParameterComponent> getParameter() { 
10161      if (this.parameter == null)
10162        this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
10163      return this.parameter;
10164    }
10165
10166    /**
10167     * @return Returns a reference to <code>this</code> for easy method chaining
10168     */
10169    public ImplementationGuideDefinitionComponent setParameter(List<ImplementationGuideDefinitionParameterComponent> theParameter) { 
10170      this.parameter = theParameter;
10171      return this;
10172    }
10173
10174    public boolean hasParameter() { 
10175      if (this.parameter == null)
10176        return false;
10177      for (ImplementationGuideDefinitionParameterComponent item : this.parameter)
10178        if (!item.isEmpty())
10179          return true;
10180      return false;
10181    }
10182
10183    public ImplementationGuideDefinitionParameterComponent addParameter() { //3
10184      ImplementationGuideDefinitionParameterComponent t = new ImplementationGuideDefinitionParameterComponent();
10185      if (this.parameter == null)
10186        this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
10187      this.parameter.add(t);
10188      return t;
10189    }
10190
10191    public ImplementationGuideDefinitionComponent addParameter(ImplementationGuideDefinitionParameterComponent t) { //3
10192      if (t == null)
10193        return this;
10194      if (this.parameter == null)
10195        this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
10196      this.parameter.add(t);
10197      return this;
10198    }
10199
10200    /**
10201     * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist
10202     */
10203    public ImplementationGuideDefinitionParameterComponent getParameterFirstRep() { 
10204      if (getParameter().isEmpty()) {
10205        addParameter();
10206      }
10207      return getParameter().get(0);
10208    }
10209
10210    /**
10211     * @return {@link #template} (A template for building resources.)
10212     */
10213    public List<ImplementationGuideDefinitionTemplateComponent> getTemplate() { 
10214      if (this.template == null)
10215        this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
10216      return this.template;
10217    }
10218
10219    /**
10220     * @return Returns a reference to <code>this</code> for easy method chaining
10221     */
10222    public ImplementationGuideDefinitionComponent setTemplate(List<ImplementationGuideDefinitionTemplateComponent> theTemplate) { 
10223      this.template = theTemplate;
10224      return this;
10225    }
10226
10227    public boolean hasTemplate() { 
10228      if (this.template == null)
10229        return false;
10230      for (ImplementationGuideDefinitionTemplateComponent item : this.template)
10231        if (!item.isEmpty())
10232          return true;
10233      return false;
10234    }
10235
10236    public ImplementationGuideDefinitionTemplateComponent addTemplate() { //3
10237      ImplementationGuideDefinitionTemplateComponent t = new ImplementationGuideDefinitionTemplateComponent();
10238      if (this.template == null)
10239        this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
10240      this.template.add(t);
10241      return t;
10242    }
10243
10244    public ImplementationGuideDefinitionComponent addTemplate(ImplementationGuideDefinitionTemplateComponent t) { //3
10245      if (t == null)
10246        return this;
10247      if (this.template == null)
10248        this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
10249      this.template.add(t);
10250      return this;
10251    }
10252
10253    /**
10254     * @return The first repetition of repeating field {@link #template}, creating it if it does not already exist
10255     */
10256    public ImplementationGuideDefinitionTemplateComponent getTemplateFirstRep() { 
10257      if (getTemplate().isEmpty()) {
10258        addTemplate();
10259      }
10260      return getTemplate().get(0);
10261    }
10262
10263    protected void listChildren(List<Property> children) {
10264      super.listChildren(children);
10265      children.add(new Property("grouping", "", "A logical group of resources. Logical groups can be used when building pages.", 0, java.lang.Integer.MAX_VALUE, grouping));
10266      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));
10267      children.add(new Property("page", "", "A page / section in the implementation guide. The root page is the implementation guide home page.", 0, 1, page));
10268      children.add(new Property("parameter", "", "Defines how IG is built by tools.", 0, java.lang.Integer.MAX_VALUE, parameter));
10269      children.add(new Property("template", "", "A template for building resources.", 0, java.lang.Integer.MAX_VALUE, template));
10270    }
10271
10272    @Override
10273    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
10274      switch (_hash) {
10275      case 506371331: /*grouping*/  return new Property("grouping", "", "A logical group of resources. Logical groups can be used when building pages.", 0, java.lang.Integer.MAX_VALUE, grouping);
10276      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);
10277      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);
10278      case 1954460585: /*parameter*/  return new Property("parameter", "", "Defines how IG is built by tools.", 0, java.lang.Integer.MAX_VALUE, parameter);
10279      case -1321546630: /*template*/  return new Property("template", "", "A template for building resources.", 0, java.lang.Integer.MAX_VALUE, template);
10280      default: return super.getNamedProperty(_hash, _name, _checkValid);
10281      }
10282
10283    }
10284
10285    @Override
10286    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
10287      switch (hash) {
10288      case 506371331: /*grouping*/ return this.grouping == null ? new Base[0] : this.grouping.toArray(new Base[this.grouping.size()]); // ImplementationGuideDefinitionGroupingComponent
10289      case -341064690: /*resource*/ return this.resource == null ? new Base[0] : this.resource.toArray(new Base[this.resource.size()]); // ImplementationGuideDefinitionResourceComponent
10290      case 3433103: /*page*/ return this.page == null ? new Base[0] : new Base[] {this.page}; // ImplementationGuideDefinitionPageComponent
10291      case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // ImplementationGuideDefinitionParameterComponent
10292      case -1321546630: /*template*/ return this.template == null ? new Base[0] : this.template.toArray(new Base[this.template.size()]); // ImplementationGuideDefinitionTemplateComponent
10293      default: return super.getProperty(hash, name, checkValid);
10294      }
10295
10296    }
10297
10298    @Override
10299    public Base setProperty(int hash, String name, Base value) throws FHIRException {
10300      switch (hash) {
10301      case 506371331: // grouping
10302        this.getGrouping().add((ImplementationGuideDefinitionGroupingComponent) value); // ImplementationGuideDefinitionGroupingComponent
10303        return value;
10304      case -341064690: // resource
10305        this.getResource().add((ImplementationGuideDefinitionResourceComponent) value); // ImplementationGuideDefinitionResourceComponent
10306        return value;
10307      case 3433103: // page
10308        this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
10309        return value;
10310      case 1954460585: // parameter
10311        this.getParameter().add((ImplementationGuideDefinitionParameterComponent) value); // ImplementationGuideDefinitionParameterComponent
10312        return value;
10313      case -1321546630: // template
10314        this.getTemplate().add((ImplementationGuideDefinitionTemplateComponent) value); // ImplementationGuideDefinitionTemplateComponent
10315        return value;
10316      default: return super.setProperty(hash, name, value);
10317      }
10318
10319    }
10320
10321    @Override
10322    public Base setProperty(String name, Base value) throws FHIRException {
10323      if (name.equals("grouping")) {
10324        this.getGrouping().add((ImplementationGuideDefinitionGroupingComponent) value);
10325      } else if (name.equals("resource")) {
10326        this.getResource().add((ImplementationGuideDefinitionResourceComponent) value);
10327      } else if (name.equals("page")) {
10328        this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
10329      } else if (name.equals("parameter")) {
10330        this.getParameter().add((ImplementationGuideDefinitionParameterComponent) value);
10331      } else if (name.equals("template")) {
10332        this.getTemplate().add((ImplementationGuideDefinitionTemplateComponent) value);
10333      } else
10334        return super.setProperty(name, value);
10335      return value;
10336    }
10337
10338    @Override
10339    public Base makeProperty(int hash, String name) throws FHIRException {
10340      switch (hash) {
10341      case 506371331:  return addGrouping(); 
10342      case -341064690:  return addResource(); 
10343      case 3433103:  return getPage(); 
10344      case 1954460585:  return addParameter(); 
10345      case -1321546630:  return addTemplate(); 
10346      default: return super.makeProperty(hash, name);
10347      }
10348
10349    }
10350
10351    @Override
10352    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
10353      switch (hash) {
10354      case 506371331: /*grouping*/ return new String[] {};
10355      case -341064690: /*resource*/ return new String[] {};
10356      case 3433103: /*page*/ return new String[] {};
10357      case 1954460585: /*parameter*/ return new String[] {};
10358      case -1321546630: /*template*/ return new String[] {};
10359      default: return super.getTypesForProperty(hash, name);
10360      }
10361
10362    }
10363
10364    @Override
10365    public Base addChild(String name) throws FHIRException {
10366      if (name.equals("grouping")) {
10367        return addGrouping();
10368      }
10369      else if (name.equals("resource")) {
10370        return addResource();
10371      }
10372      else if (name.equals("page")) {
10373        this.page = new ImplementationGuideDefinitionPageComponent();
10374        return this.page;
10375      }
10376      else if (name.equals("parameter")) {
10377        return addParameter();
10378      }
10379      else if (name.equals("template")) {
10380        return addTemplate();
10381      }
10382      else
10383        return super.addChild(name);
10384    }
10385
10386    public ImplementationGuideDefinitionComponent copy() {
10387      ImplementationGuideDefinitionComponent dst = new ImplementationGuideDefinitionComponent();
10388      copyValues(dst);
10389      return dst;
10390    }
10391
10392    public void copyValues(ImplementationGuideDefinitionComponent dst) {
10393      super.copyValues(dst);
10394      if (grouping != null) {
10395        dst.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
10396        for (ImplementationGuideDefinitionGroupingComponent i : grouping)
10397          dst.grouping.add(i.copy());
10398      };
10399      if (resource != null) {
10400        dst.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
10401        for (ImplementationGuideDefinitionResourceComponent i : resource)
10402          dst.resource.add(i.copy());
10403      };
10404      dst.page = page == null ? null : page.copy();
10405      if (parameter != null) {
10406        dst.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
10407        for (ImplementationGuideDefinitionParameterComponent i : parameter)
10408          dst.parameter.add(i.copy());
10409      };
10410      if (template != null) {
10411        dst.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
10412        for (ImplementationGuideDefinitionTemplateComponent i : template)
10413          dst.template.add(i.copy());
10414      };
10415    }
10416
10417    @Override
10418    public boolean equalsDeep(Base other_) {
10419      if (!super.equalsDeep(other_))
10420        return false;
10421      if (!(other_ instanceof ImplementationGuideDefinitionComponent))
10422        return false;
10423      ImplementationGuideDefinitionComponent o = (ImplementationGuideDefinitionComponent) other_;
10424      return compareDeep(grouping, o.grouping, true) && compareDeep(resource, o.resource, true) && compareDeep(page, o.page, true)
10425          && compareDeep(parameter, o.parameter, true) && compareDeep(template, o.template, true);
10426    }
10427
10428    @Override
10429    public boolean equalsShallow(Base other_) {
10430      if (!super.equalsShallow(other_))
10431        return false;
10432      if (!(other_ instanceof ImplementationGuideDefinitionComponent))
10433        return false;
10434      ImplementationGuideDefinitionComponent o = (ImplementationGuideDefinitionComponent) other_;
10435      return true;
10436    }
10437
10438    public boolean isEmpty() {
10439      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(grouping, resource, page
10440          , parameter, template);
10441    }
10442
10443    public String fhirType() {
10444      return "ImplementationGuide.definition";
10445
10446    }
10447
10448  }
10449
10450  @Block()
10451  public static class ImplementationGuideDefinitionGroupingComponent extends BackboneElement implements IBaseBackboneElement {
10452    /**
10453     * The human-readable title to display for the package of resources when rendering the implementation guide.
10454     */
10455    @Child(name = "name", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
10456    @Description(shortDefinition="Descriptive name for the package", formalDefinition="The human-readable title to display for the package of resources when rendering the implementation guide." )
10457    protected StringType name;
10458
10459    /**
10460     * Human readable text describing the package.
10461     */
10462    @Child(name = "description", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
10463    @Description(shortDefinition="Human readable text describing the package", formalDefinition="Human readable text describing the package." )
10464    protected StringType description;
10465
10466    private static final long serialVersionUID = -1105523499L;
10467
10468    /**
10469     * Constructor
10470     */
10471    public ImplementationGuideDefinitionGroupingComponent() {
10472      super();
10473    }
10474
10475    /**
10476     * Constructor
10477     */
10478    public ImplementationGuideDefinitionGroupingComponent(StringType name) {
10479      super();
10480      this.name = name;
10481    }
10482
10483    /**
10484     * @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
10485     */
10486    public StringType getNameElement() { 
10487      if (this.name == null)
10488        if (Configuration.errorOnAutoCreate())
10489          throw new Error("Attempt to auto-create ImplementationGuideDefinitionGroupingComponent.name");
10490        else if (Configuration.doAutoCreate())
10491          this.name = new StringType(); // bb
10492      return this.name;
10493    }
10494
10495    public boolean hasNameElement() { 
10496      return this.name != null && !this.name.isEmpty();
10497    }
10498
10499    public boolean hasName() { 
10500      return this.name != null && !this.name.isEmpty();
10501    }
10502
10503    /**
10504     * @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
10505     */
10506    public ImplementationGuideDefinitionGroupingComponent setNameElement(StringType value) { 
10507      this.name = value;
10508      return this;
10509    }
10510
10511    /**
10512     * @return The human-readable title to display for the package of resources when rendering the implementation guide.
10513     */
10514    public String getName() { 
10515      return this.name == null ? null : this.name.getValue();
10516    }
10517
10518    /**
10519     * @param value The human-readable title to display for the package of resources when rendering the implementation guide.
10520     */
10521    public ImplementationGuideDefinitionGroupingComponent setName(String value) { 
10522      if (this.name == null)
10523        this.name = new StringType();
10524      this.name.setValue(value);
10525      return this;
10526    }
10527
10528    /**
10529     * @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
10530     */
10531    public StringType getDescriptionElement() { 
10532      if (this.description == null)
10533        if (Configuration.errorOnAutoCreate())
10534          throw new Error("Attempt to auto-create ImplementationGuideDefinitionGroupingComponent.description");
10535        else if (Configuration.doAutoCreate())
10536          this.description = new StringType(); // bb
10537      return this.description;
10538    }
10539
10540    public boolean hasDescriptionElement() { 
10541      return this.description != null && !this.description.isEmpty();
10542    }
10543
10544    public boolean hasDescription() { 
10545      return this.description != null && !this.description.isEmpty();
10546    }
10547
10548    /**
10549     * @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
10550     */
10551    public ImplementationGuideDefinitionGroupingComponent setDescriptionElement(StringType value) { 
10552      this.description = value;
10553      return this;
10554    }
10555
10556    /**
10557     * @return Human readable text describing the package.
10558     */
10559    public String getDescription() { 
10560      return this.description == null ? null : this.description.getValue();
10561    }
10562
10563    /**
10564     * @param value Human readable text describing the package.
10565     */
10566    public ImplementationGuideDefinitionGroupingComponent setDescription(String value) { 
10567      if (Utilities.noString(value))
10568        this.description = null;
10569      else {
10570        if (this.description == null)
10571          this.description = new StringType();
10572        this.description.setValue(value);
10573      }
10574      return this;
10575    }
10576
10577    protected void listChildren(List<Property> children) {
10578      super.listChildren(children);
10579      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));
10580      children.add(new Property("description", "string", "Human readable text describing the package.", 0, 1, description));
10581    }
10582
10583    @Override
10584    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
10585      switch (_hash) {
10586      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);
10587      case -1724546052: /*description*/  return new Property("description", "string", "Human readable text describing the package.", 0, 1, description);
10588      default: return super.getNamedProperty(_hash, _name, _checkValid);
10589      }
10590
10591    }
10592
10593    @Override
10594    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
10595      switch (hash) {
10596      case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
10597      case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
10598      default: return super.getProperty(hash, name, checkValid);
10599      }
10600
10601    }
10602
10603    @Override
10604    public Base setProperty(int hash, String name, Base value) throws FHIRException {
10605      switch (hash) {
10606      case 3373707: // name
10607        this.name = castToString(value); // StringType
10608        return value;
10609      case -1724546052: // description
10610        this.description = castToString(value); // StringType
10611        return value;
10612      default: return super.setProperty(hash, name, value);
10613      }
10614
10615    }
10616
10617    @Override
10618    public Base setProperty(String name, Base value) throws FHIRException {
10619      if (name.equals("name")) {
10620        this.name = castToString(value); // StringType
10621      } else if (name.equals("description")) {
10622        this.description = castToString(value); // StringType
10623      } else
10624        return super.setProperty(name, value);
10625      return value;
10626    }
10627
10628    @Override
10629    public Base makeProperty(int hash, String name) throws FHIRException {
10630      switch (hash) {
10631      case 3373707:  return getNameElement();
10632      case -1724546052:  return getDescriptionElement();
10633      default: return super.makeProperty(hash, name);
10634      }
10635
10636    }
10637
10638    @Override
10639    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
10640      switch (hash) {
10641      case 3373707: /*name*/ return new String[] {"string"};
10642      case -1724546052: /*description*/ return new String[] {"string"};
10643      default: return super.getTypesForProperty(hash, name);
10644      }
10645
10646    }
10647
10648    @Override
10649    public Base addChild(String name) throws FHIRException {
10650      if (name.equals("name")) {
10651        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.name");
10652      }
10653      else if (name.equals("description")) {
10654        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.description");
10655      }
10656      else
10657        return super.addChild(name);
10658    }
10659
10660    public ImplementationGuideDefinitionGroupingComponent copy() {
10661      ImplementationGuideDefinitionGroupingComponent dst = new ImplementationGuideDefinitionGroupingComponent();
10662      copyValues(dst);
10663      return dst;
10664    }
10665
10666    public void copyValues(ImplementationGuideDefinitionGroupingComponent dst) {
10667      super.copyValues(dst);
10668      dst.name = name == null ? null : name.copy();
10669      dst.description = description == null ? null : description.copy();
10670    }
10671
10672    @Override
10673    public boolean equalsDeep(Base other_) {
10674      if (!super.equalsDeep(other_))
10675        return false;
10676      if (!(other_ instanceof ImplementationGuideDefinitionGroupingComponent))
10677        return false;
10678      ImplementationGuideDefinitionGroupingComponent o = (ImplementationGuideDefinitionGroupingComponent) other_;
10679      return compareDeep(name, o.name, true) && compareDeep(description, o.description, true);
10680    }
10681
10682    @Override
10683    public boolean equalsShallow(Base other_) {
10684      if (!super.equalsShallow(other_))
10685        return false;
10686      if (!(other_ instanceof ImplementationGuideDefinitionGroupingComponent))
10687        return false;
10688      ImplementationGuideDefinitionGroupingComponent o = (ImplementationGuideDefinitionGroupingComponent) other_;
10689      return compareValues(name, o.name, true) && compareValues(description, o.description, true);
10690    }
10691
10692    public boolean isEmpty() {
10693      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, description);
10694    }
10695
10696    public String fhirType() {
10697      return "ImplementationGuide.definition.grouping";
10698
10699    }
10700
10701  }
10702
10703  @Block()
10704  public static class ImplementationGuideDefinitionResourceComponent extends BackboneElement implements IBaseBackboneElement {
10705    /**
10706     * Where this resource is found.
10707     */
10708    @Child(name = "reference", type = {Reference.class}, order=1, min=1, max=1, modifier=false, summary=false)
10709    @Description(shortDefinition="Location of the resource", formalDefinition="Where this resource is found." )
10710    protected Reference reference;
10711
10712    /**
10713     * The actual object that is the target of the reference (Where this resource is found.)
10714     */
10715    protected Resource referenceTarget;
10716
10717    /**
10718     * Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.
10719     */
10720    @Child(name = "fhirVersion", type = {CodeType.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
10721    @Description(shortDefinition="Versions this applies to (if different to IG)", formalDefinition="Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion." )
10722    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/FHIR-version")
10723    protected List<Enumeration<FHIRVersion>> fhirVersion;
10724
10725    /**
10726     * 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).
10727     */
10728    @Child(name = "name", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
10729    @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)." )
10730    protected StringType name;
10731
10732    /**
10733     * A description of the reason that a resource has been included in the implementation guide.
10734     */
10735    @Child(name = "description", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false)
10736    @Description(shortDefinition="Reason why included in guide", formalDefinition="A description of the reason that a resource has been included in the implementation guide." )
10737    protected StringType description;
10738
10739    /**
10740     * 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.
10741     */
10742    @Child(name = "example", type = {BooleanType.class, CanonicalType.class}, order=5, min=0, max=1, modifier=false, summary=false)
10743    @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." )
10744    protected Type example;
10745
10746    /**
10747     * Reference to the id of the grouping this resource appears in.
10748     */
10749    @Child(name = "groupingId", type = {IdType.class}, order=6, min=0, max=1, modifier=false, summary=false)
10750    @Description(shortDefinition="Grouping this is part of", formalDefinition="Reference to the id of the grouping this resource appears in." )
10751    protected IdType groupingId;
10752
10753    private static final long serialVersionUID = 1840689093L;
10754
10755    /**
10756     * Constructor
10757     */
10758    public ImplementationGuideDefinitionResourceComponent() {
10759      super();
10760    }
10761
10762    /**
10763     * Constructor
10764     */
10765    public ImplementationGuideDefinitionResourceComponent(Reference reference) {
10766      super();
10767      this.reference = reference;
10768    }
10769
10770    /**
10771     * @return {@link #reference} (Where this resource is found.)
10772     */
10773    public Reference getReference() { 
10774      if (this.reference == null)
10775        if (Configuration.errorOnAutoCreate())
10776          throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.reference");
10777        else if (Configuration.doAutoCreate())
10778          this.reference = new Reference(); // cc
10779      return this.reference;
10780    }
10781
10782    public boolean hasReference() { 
10783      return this.reference != null && !this.reference.isEmpty();
10784    }
10785
10786    /**
10787     * @param value {@link #reference} (Where this resource is found.)
10788     */
10789    public ImplementationGuideDefinitionResourceComponent setReference(Reference value) { 
10790      this.reference = value;
10791      return this;
10792    }
10793
10794    /**
10795     * @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.)
10796     */
10797    public Resource getReferenceTarget() { 
10798      return this.referenceTarget;
10799    }
10800
10801    /**
10802     * @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.)
10803     */
10804    public ImplementationGuideDefinitionResourceComponent setReferenceTarget(Resource value) { 
10805      this.referenceTarget = value;
10806      return this;
10807    }
10808
10809    /**
10810     * @return {@link #fhirVersion} (Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.)
10811     */
10812    public List<Enumeration<FHIRVersion>> getFhirVersion() { 
10813      if (this.fhirVersion == null)
10814        this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
10815      return this.fhirVersion;
10816    }
10817
10818    /**
10819     * @return Returns a reference to <code>this</code> for easy method chaining
10820     */
10821    public ImplementationGuideDefinitionResourceComponent setFhirVersion(List<Enumeration<FHIRVersion>> theFhirVersion) { 
10822      this.fhirVersion = theFhirVersion;
10823      return this;
10824    }
10825
10826    public boolean hasFhirVersion() { 
10827      if (this.fhirVersion == null)
10828        return false;
10829      for (Enumeration<FHIRVersion> item : this.fhirVersion)
10830        if (!item.isEmpty())
10831          return true;
10832      return false;
10833    }
10834
10835    /**
10836     * @return {@link #fhirVersion} (Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.)
10837     */
10838    public Enumeration<FHIRVersion> addFhirVersionElement() {//2 
10839      Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
10840      if (this.fhirVersion == null)
10841        this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
10842      this.fhirVersion.add(t);
10843      return t;
10844    }
10845
10846    /**
10847     * @param value {@link #fhirVersion} (Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.)
10848     */
10849    public ImplementationGuideDefinitionResourceComponent addFhirVersion(FHIRVersion value) { //1
10850      Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
10851      t.setValue(value);
10852      if (this.fhirVersion == null)
10853        this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
10854      this.fhirVersion.add(t);
10855      return this;
10856    }
10857
10858    /**
10859     * @param value {@link #fhirVersion} (Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.)
10860     */
10861    public boolean hasFhirVersion(FHIRVersion value) { 
10862      if (this.fhirVersion == null)
10863        return false;
10864      for (Enumeration<FHIRVersion> v : this.fhirVersion)
10865        if (v.getValue().equals(value)) // code
10866          return true;
10867      return false;
10868    }
10869
10870    /**
10871     * @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
10872     */
10873    public StringType getNameElement() { 
10874      if (this.name == null)
10875        if (Configuration.errorOnAutoCreate())
10876          throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.name");
10877        else if (Configuration.doAutoCreate())
10878          this.name = new StringType(); // bb
10879      return this.name;
10880    }
10881
10882    public boolean hasNameElement() { 
10883      return this.name != null && !this.name.isEmpty();
10884    }
10885
10886    public boolean hasName() { 
10887      return this.name != null && !this.name.isEmpty();
10888    }
10889
10890    /**
10891     * @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
10892     */
10893    public ImplementationGuideDefinitionResourceComponent setNameElement(StringType value) { 
10894      this.name = value;
10895      return this;
10896    }
10897
10898    /**
10899     * @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).
10900     */
10901    public String getName() { 
10902      return this.name == null ? null : this.name.getValue();
10903    }
10904
10905    /**
10906     * @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).
10907     */
10908    public ImplementationGuideDefinitionResourceComponent setName(String value) { 
10909      if (Utilities.noString(value))
10910        this.name = null;
10911      else {
10912        if (this.name == null)
10913          this.name = new StringType();
10914        this.name.setValue(value);
10915      }
10916      return this;
10917    }
10918
10919    /**
10920     * @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
10921     */
10922    public StringType getDescriptionElement() { 
10923      if (this.description == null)
10924        if (Configuration.errorOnAutoCreate())
10925          throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.description");
10926        else if (Configuration.doAutoCreate())
10927          this.description = new StringType(); // bb
10928      return this.description;
10929    }
10930
10931    public boolean hasDescriptionElement() { 
10932      return this.description != null && !this.description.isEmpty();
10933    }
10934
10935    public boolean hasDescription() { 
10936      return this.description != null && !this.description.isEmpty();
10937    }
10938
10939    /**
10940     * @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
10941     */
10942    public ImplementationGuideDefinitionResourceComponent setDescriptionElement(StringType value) { 
10943      this.description = value;
10944      return this;
10945    }
10946
10947    /**
10948     * @return A description of the reason that a resource has been included in the implementation guide.
10949     */
10950    public String getDescription() { 
10951      return this.description == null ? null : this.description.getValue();
10952    }
10953
10954    /**
10955     * @param value A description of the reason that a resource has been included in the implementation guide.
10956     */
10957    public ImplementationGuideDefinitionResourceComponent setDescription(String value) { 
10958      if (Utilities.noString(value))
10959        this.description = null;
10960      else {
10961        if (this.description == null)
10962          this.description = new StringType();
10963        this.description.setValue(value);
10964      }
10965      return this;
10966    }
10967
10968    /**
10969     * @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.)
10970     */
10971    public Type getExample() { 
10972      return this.example;
10973    }
10974
10975    /**
10976     * @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.)
10977     */
10978    public BooleanType getExampleBooleanType() throws FHIRException { 
10979      if (this.example == null)
10980        this.example = new BooleanType();
10981      if (!(this.example instanceof BooleanType))
10982        throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.example.getClass().getName()+" was encountered");
10983      return (BooleanType) this.example;
10984    }
10985
10986    public boolean hasExampleBooleanType() { 
10987      return this != null && this.example instanceof BooleanType;
10988    }
10989
10990    /**
10991     * @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.)
10992     */
10993    public CanonicalType getExampleCanonicalType() throws FHIRException { 
10994      if (this.example == null)
10995        this.example = new CanonicalType();
10996      if (!(this.example instanceof CanonicalType))
10997        throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.example.getClass().getName()+" was encountered");
10998      return (CanonicalType) this.example;
10999    }
11000
11001    public boolean hasExampleCanonicalType() { 
11002      return this != null && this.example instanceof CanonicalType;
11003    }
11004
11005    public boolean hasExample() { 
11006      return this.example != null && !this.example.isEmpty();
11007    }
11008
11009    /**
11010     * @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.)
11011     */
11012    public ImplementationGuideDefinitionResourceComponent setExample(Type value) { 
11013      if (value != null && !(value instanceof BooleanType || value instanceof CanonicalType))
11014        throw new Error("Not the right type for ImplementationGuide.definition.resource.example[x]: "+value.fhirType());
11015      this.example = value;
11016      return this;
11017    }
11018
11019    /**
11020     * @return {@link #groupingId} (Reference to the id of the grouping this resource appears in.). This is the underlying object with id, value and extensions. The accessor "getGroupingId" gives direct access to the value
11021     */
11022    public IdType getGroupingIdElement() { 
11023      if (this.groupingId == null)
11024        if (Configuration.errorOnAutoCreate())
11025          throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.groupingId");
11026        else if (Configuration.doAutoCreate())
11027          this.groupingId = new IdType(); // bb
11028      return this.groupingId;
11029    }
11030
11031    public boolean hasGroupingIdElement() { 
11032      return this.groupingId != null && !this.groupingId.isEmpty();
11033    }
11034
11035    public boolean hasGroupingId() { 
11036      return this.groupingId != null && !this.groupingId.isEmpty();
11037    }
11038
11039    /**
11040     * @param value {@link #groupingId} (Reference to the id of the grouping this resource appears in.). This is the underlying object with id, value and extensions. The accessor "getGroupingId" gives direct access to the value
11041     */
11042    public ImplementationGuideDefinitionResourceComponent setGroupingIdElement(IdType value) { 
11043      this.groupingId = value;
11044      return this;
11045    }
11046
11047    /**
11048     * @return Reference to the id of the grouping this resource appears in.
11049     */
11050    public String getGroupingId() { 
11051      return this.groupingId == null ? null : this.groupingId.getValue();
11052    }
11053
11054    /**
11055     * @param value Reference to the id of the grouping this resource appears in.
11056     */
11057    public ImplementationGuideDefinitionResourceComponent setGroupingId(String value) { 
11058      if (Utilities.noString(value))
11059        this.groupingId = null;
11060      else {
11061        if (this.groupingId == null)
11062          this.groupingId = new IdType();
11063        this.groupingId.setValue(value);
11064      }
11065      return this;
11066    }
11067
11068    protected void listChildren(List<Property> children) {
11069      super.listChildren(children);
11070      children.add(new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference));
11071      children.add(new Property("fhirVersion", "code", "Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.", 0, java.lang.Integer.MAX_VALUE, fhirVersion));
11072      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));
11073      children.add(new Property("description", "string", "A description of the reason that a resource has been included in the implementation guide.", 0, 1, description));
11074      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));
11075      children.add(new Property("groupingId", "id", "Reference to the id of the grouping this resource appears in.", 0, 1, groupingId));
11076    }
11077
11078    @Override
11079    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
11080      switch (_hash) {
11081      case -925155509: /*reference*/  return new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference);
11082      case 461006061: /*fhirVersion*/  return new Property("fhirVersion", "code", "Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.", 0, java.lang.Integer.MAX_VALUE, fhirVersion);
11083      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);
11084      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);
11085      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);
11086      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);
11087      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);
11088      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);
11089      case 1291547006: /*groupingId*/  return new Property("groupingId", "id", "Reference to the id of the grouping this resource appears in.", 0, 1, groupingId);
11090      default: return super.getNamedProperty(_hash, _name, _checkValid);
11091      }
11092
11093    }
11094
11095    @Override
11096    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
11097      switch (hash) {
11098      case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // Reference
11099      case 461006061: /*fhirVersion*/ return this.fhirVersion == null ? new Base[0] : this.fhirVersion.toArray(new Base[this.fhirVersion.size()]); // Enumeration<FHIRVersion>
11100      case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
11101      case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
11102      case -1322970774: /*example*/ return this.example == null ? new Base[0] : new Base[] {this.example}; // Type
11103      case 1291547006: /*groupingId*/ return this.groupingId == null ? new Base[0] : new Base[] {this.groupingId}; // IdType
11104      default: return super.getProperty(hash, name, checkValid);
11105      }
11106
11107    }
11108
11109    @Override
11110    public Base setProperty(int hash, String name, Base value) throws FHIRException {
11111      switch (hash) {
11112      case -925155509: // reference
11113        this.reference = castToReference(value); // Reference
11114        return value;
11115      case 461006061: // fhirVersion
11116        value = new FHIRVersionEnumFactory().fromType(castToCode(value));
11117        this.getFhirVersion().add((Enumeration) value); // Enumeration<FHIRVersion>
11118        return value;
11119      case 3373707: // name
11120        this.name = castToString(value); // StringType
11121        return value;
11122      case -1724546052: // description
11123        this.description = castToString(value); // StringType
11124        return value;
11125      case -1322970774: // example
11126        this.example = castToType(value); // Type
11127        return value;
11128      case 1291547006: // groupingId
11129        this.groupingId = castToId(value); // IdType
11130        return value;
11131      default: return super.setProperty(hash, name, value);
11132      }
11133
11134    }
11135
11136    @Override
11137    public Base setProperty(String name, Base value) throws FHIRException {
11138      if (name.equals("reference")) {
11139        this.reference = castToReference(value); // Reference
11140      } else if (name.equals("fhirVersion")) {
11141        value = new FHIRVersionEnumFactory().fromType(castToCode(value));
11142        this.getFhirVersion().add((Enumeration) value);
11143      } else if (name.equals("name")) {
11144        this.name = castToString(value); // StringType
11145      } else if (name.equals("description")) {
11146        this.description = castToString(value); // StringType
11147      } else if (name.equals("example[x]")) {
11148        this.example = castToType(value); // Type
11149      } else if (name.equals("groupingId")) {
11150        this.groupingId = castToId(value); // IdType
11151      } else
11152        return super.setProperty(name, value);
11153      return value;
11154    }
11155
11156    @Override
11157    public Base makeProperty(int hash, String name) throws FHIRException {
11158      switch (hash) {
11159      case -925155509:  return getReference(); 
11160      case 461006061:  return addFhirVersionElement();
11161      case 3373707:  return getNameElement();
11162      case -1724546052:  return getDescriptionElement();
11163      case -2002328874:  return getExample(); 
11164      case -1322970774:  return getExample(); 
11165      case 1291547006:  return getGroupingIdElement();
11166      default: return super.makeProperty(hash, name);
11167      }
11168
11169    }
11170
11171    @Override
11172    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
11173      switch (hash) {
11174      case -925155509: /*reference*/ return new String[] {"Reference"};
11175      case 461006061: /*fhirVersion*/ return new String[] {"code"};
11176      case 3373707: /*name*/ return new String[] {"string"};
11177      case -1724546052: /*description*/ return new String[] {"string"};
11178      case -1322970774: /*example*/ return new String[] {"boolean", "canonical"};
11179      case 1291547006: /*groupingId*/ return new String[] {"id"};
11180      default: return super.getTypesForProperty(hash, name);
11181      }
11182
11183    }
11184
11185    @Override
11186    public Base addChild(String name) throws FHIRException {
11187      if (name.equals("reference")) {
11188        this.reference = new Reference();
11189        return this.reference;
11190      }
11191      else if (name.equals("fhirVersion")) {
11192        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.fhirVersion");
11193      }
11194      else if (name.equals("name")) {
11195        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.name");
11196      }
11197      else if (name.equals("description")) {
11198        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.description");
11199      }
11200      else if (name.equals("exampleBoolean")) {
11201        this.example = new BooleanType();
11202        return this.example;
11203      }
11204      else if (name.equals("exampleCanonical")) {
11205        this.example = new CanonicalType();
11206        return this.example;
11207      }
11208      else if (name.equals("groupingId")) {
11209        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.groupingId");
11210      }
11211      else
11212        return super.addChild(name);
11213    }
11214
11215    public ImplementationGuideDefinitionResourceComponent copy() {
11216      ImplementationGuideDefinitionResourceComponent dst = new ImplementationGuideDefinitionResourceComponent();
11217      copyValues(dst);
11218      return dst;
11219    }
11220
11221    public void copyValues(ImplementationGuideDefinitionResourceComponent dst) {
11222      super.copyValues(dst);
11223      dst.reference = reference == null ? null : reference.copy();
11224      if (fhirVersion != null) {
11225        dst.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
11226        for (Enumeration<FHIRVersion> i : fhirVersion)
11227          dst.fhirVersion.add(i.copy());
11228      };
11229      dst.name = name == null ? null : name.copy();
11230      dst.description = description == null ? null : description.copy();
11231      dst.example = example == null ? null : example.copy();
11232      dst.groupingId = groupingId == null ? null : groupingId.copy();
11233    }
11234
11235    @Override
11236    public boolean equalsDeep(Base other_) {
11237      if (!super.equalsDeep(other_))
11238        return false;
11239      if (!(other_ instanceof ImplementationGuideDefinitionResourceComponent))
11240        return false;
11241      ImplementationGuideDefinitionResourceComponent o = (ImplementationGuideDefinitionResourceComponent) other_;
11242      return compareDeep(reference, o.reference, true) && compareDeep(fhirVersion, o.fhirVersion, true)
11243          && compareDeep(name, o.name, true) && compareDeep(description, o.description, true) && compareDeep(example, o.example, true)
11244          && compareDeep(groupingId, o.groupingId, true);
11245    }
11246
11247    @Override
11248    public boolean equalsShallow(Base other_) {
11249      if (!super.equalsShallow(other_))
11250        return false;
11251      if (!(other_ instanceof ImplementationGuideDefinitionResourceComponent))
11252        return false;
11253      ImplementationGuideDefinitionResourceComponent o = (ImplementationGuideDefinitionResourceComponent) other_;
11254      return compareValues(fhirVersion, o.fhirVersion, true) && compareValues(name, o.name, true) && compareValues(description, o.description, true)
11255          && compareValues(groupingId, o.groupingId, true);
11256    }
11257
11258    public boolean isEmpty() {
11259      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, fhirVersion, name
11260          , description, example, groupingId);
11261    }
11262
11263    public String fhirType() {
11264      return "ImplementationGuide.definition.resource";
11265
11266    }
11267
11268  }
11269
11270  @Block()
11271  public static class ImplementationGuideDefinitionPageComponent extends BackboneElement implements IBaseBackboneElement {
11272    /**
11273     * The source address for the page.
11274     */
11275    @Child(name = "name", type = {UrlType.class, Binary.class}, order=1, min=1, max=1, modifier=false, summary=false)
11276    @Description(shortDefinition="Where to find that page", formalDefinition="The source address for the page." )
11277    protected Type name;
11278
11279    /**
11280     * A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.
11281     */
11282    @Child(name = "title", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
11283    @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." )
11284    protected StringType title;
11285
11286    /**
11287     * A code that indicates how the page is generated.
11288     */
11289    @Child(name = "generation", type = {CodeType.class}, order=3, min=1, max=1, modifier=false, summary=false)
11290    @Description(shortDefinition="html | markdown | xml | generated", formalDefinition="A code that indicates how the page is generated." )
11291    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/guide-page-generation")
11292    protected Enumeration<GuidePageGeneration> generation;
11293
11294    /**
11295     * Nested Pages/Sections under this page.
11296     */
11297    @Child(name = "page", type = {ImplementationGuideDefinitionPageComponent.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
11298    @Description(shortDefinition="Nested Pages / Sections", formalDefinition="Nested Pages/Sections under this page." )
11299    protected List<ImplementationGuideDefinitionPageComponent> page;
11300
11301    private static final long serialVersionUID = -365655658L;
11302
11303    /**
11304     * Constructor
11305     */
11306    public ImplementationGuideDefinitionPageComponent() {
11307      super();
11308    }
11309
11310    /**
11311     * Constructor
11312     */
11313    public ImplementationGuideDefinitionPageComponent(Type name, StringType title, Enumeration<GuidePageGeneration> generation) {
11314      super();
11315      this.name = name;
11316      this.title = title;
11317      this.generation = generation;
11318    }
11319
11320    /**
11321     * @return {@link #name} (The source address for the page.)
11322     */
11323    public Type getName() { 
11324      return this.name;
11325    }
11326
11327    /**
11328     * @return {@link #name} (The source address for the page.)
11329     */
11330    public UrlType getNameUrlType() throws FHIRException { 
11331      if (this.name == null)
11332        this.name = new UrlType();
11333      if (!(this.name instanceof UrlType))
11334        throw new FHIRException("Type mismatch: the type UrlType was expected, but "+this.name.getClass().getName()+" was encountered");
11335      return (UrlType) this.name;
11336    }
11337
11338    public boolean hasNameUrlType() { 
11339      return this != null && this.name instanceof UrlType;
11340    }
11341
11342    /**
11343     * @return {@link #name} (The source address for the page.)
11344     */
11345    public Reference getNameReference() throws FHIRException { 
11346      if (this.name == null)
11347        this.name = new Reference();
11348      if (!(this.name instanceof Reference))
11349        throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.name.getClass().getName()+" was encountered");
11350      return (Reference) this.name;
11351    }
11352
11353    public boolean hasNameReference() { 
11354      return this != null && this.name instanceof Reference;
11355    }
11356
11357    public boolean hasName() { 
11358      return this.name != null && !this.name.isEmpty();
11359    }
11360
11361    /**
11362     * @param value {@link #name} (The source address for the page.)
11363     */
11364    public ImplementationGuideDefinitionPageComponent setName(Type value) { 
11365      if (value != null && !(value instanceof UrlType || value instanceof Reference))
11366        throw new Error("Not the right type for ImplementationGuide.definition.page.name[x]: "+value.fhirType());
11367      this.name = value;
11368      return this;
11369    }
11370
11371    /**
11372     * @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
11373     */
11374    public StringType getTitleElement() { 
11375      if (this.title == null)
11376        if (Configuration.errorOnAutoCreate())
11377          throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.title");
11378        else if (Configuration.doAutoCreate())
11379          this.title = new StringType(); // bb
11380      return this.title;
11381    }
11382
11383    public boolean hasTitleElement() { 
11384      return this.title != null && !this.title.isEmpty();
11385    }
11386
11387    public boolean hasTitle() { 
11388      return this.title != null && !this.title.isEmpty();
11389    }
11390
11391    /**
11392     * @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
11393     */
11394    public ImplementationGuideDefinitionPageComponent setTitleElement(StringType value) { 
11395      this.title = value;
11396      return this;
11397    }
11398
11399    /**
11400     * @return A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.
11401     */
11402    public String getTitle() { 
11403      return this.title == null ? null : this.title.getValue();
11404    }
11405
11406    /**
11407     * @param value A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.
11408     */
11409    public ImplementationGuideDefinitionPageComponent setTitle(String value) { 
11410      if (this.title == null)
11411        this.title = new StringType();
11412      this.title.setValue(value);
11413      return this;
11414    }
11415
11416    /**
11417     * @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
11418     */
11419    public Enumeration<GuidePageGeneration> getGenerationElement() { 
11420      if (this.generation == null)
11421        if (Configuration.errorOnAutoCreate())
11422          throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.generation");
11423        else if (Configuration.doAutoCreate())
11424          this.generation = new Enumeration<GuidePageGeneration>(new GuidePageGenerationEnumFactory()); // bb
11425      return this.generation;
11426    }
11427
11428    public boolean hasGenerationElement() { 
11429      return this.generation != null && !this.generation.isEmpty();
11430    }
11431
11432    public boolean hasGeneration() { 
11433      return this.generation != null && !this.generation.isEmpty();
11434    }
11435
11436    /**
11437     * @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
11438     */
11439    public ImplementationGuideDefinitionPageComponent setGenerationElement(Enumeration<GuidePageGeneration> value) { 
11440      this.generation = value;
11441      return this;
11442    }
11443
11444    /**
11445     * @return A code that indicates how the page is generated.
11446     */
11447    public GuidePageGeneration getGeneration() { 
11448      return this.generation == null ? null : this.generation.getValue();
11449    }
11450
11451    /**
11452     * @param value A code that indicates how the page is generated.
11453     */
11454    public ImplementationGuideDefinitionPageComponent setGeneration(GuidePageGeneration value) { 
11455      if (this.generation == null)
11456        this.generation = new Enumeration<GuidePageGeneration>(new GuidePageGenerationEnumFactory());
11457      this.generation.setValue(value);
11458      return this;
11459    }
11460
11461    /**
11462     * @return {@link #page} (Nested Pages/Sections under this page.)
11463     */
11464    public List<ImplementationGuideDefinitionPageComponent> getPage() { 
11465      if (this.page == null)
11466        this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
11467      return this.page;
11468    }
11469
11470    /**
11471     * @return Returns a reference to <code>this</code> for easy method chaining
11472     */
11473    public ImplementationGuideDefinitionPageComponent setPage(List<ImplementationGuideDefinitionPageComponent> thePage) { 
11474      this.page = thePage;
11475      return this;
11476    }
11477
11478    public boolean hasPage() { 
11479      if (this.page == null)
11480        return false;
11481      for (ImplementationGuideDefinitionPageComponent item : this.page)
11482        if (!item.isEmpty())
11483          return true;
11484      return false;
11485    }
11486
11487    public ImplementationGuideDefinitionPageComponent addPage() { //3
11488      ImplementationGuideDefinitionPageComponent t = new ImplementationGuideDefinitionPageComponent();
11489      if (this.page == null)
11490        this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
11491      this.page.add(t);
11492      return t;
11493    }
11494
11495    public ImplementationGuideDefinitionPageComponent addPage(ImplementationGuideDefinitionPageComponent t) { //3
11496      if (t == null)
11497        return this;
11498      if (this.page == null)
11499        this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
11500      this.page.add(t);
11501      return this;
11502    }
11503
11504    /**
11505     * @return The first repetition of repeating field {@link #page}, creating it if it does not already exist
11506     */
11507    public ImplementationGuideDefinitionPageComponent getPageFirstRep() { 
11508      if (getPage().isEmpty()) {
11509        addPage();
11510      }
11511      return getPage().get(0);
11512    }
11513
11514    protected void listChildren(List<Property> children) {
11515      super.listChildren(children);
11516      children.add(new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name));
11517      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));
11518      children.add(new Property("generation", "code", "A code that indicates how the page is generated.", 0, 1, generation));
11519      children.add(new Property("page", "@ImplementationGuide.definition.page", "Nested Pages/Sections under this page.", 0, java.lang.Integer.MAX_VALUE, page));
11520    }
11521
11522    @Override
11523    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
11524      switch (_hash) {
11525      case 1721948693: /*name[x]*/  return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name);
11526      case 3373707: /*name*/  return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name);
11527      case 1721942756: /*nameUrl*/  return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name);
11528      case 1833144576: /*nameReference*/  return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name);
11529      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);
11530      case 305703192: /*generation*/  return new Property("generation", "code", "A code that indicates how the page is generated.", 0, 1, generation);
11531      case 3433103: /*page*/  return new Property("page", "@ImplementationGuide.definition.page", "Nested Pages/Sections under this page.", 0, java.lang.Integer.MAX_VALUE, page);
11532      default: return super.getNamedProperty(_hash, _name, _checkValid);
11533      }
11534
11535    }
11536
11537    @Override
11538    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
11539      switch (hash) {
11540      case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // Type
11541      case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
11542      case 305703192: /*generation*/ return this.generation == null ? new Base[0] : new Base[] {this.generation}; // Enumeration<GuidePageGeneration>
11543      case 3433103: /*page*/ return this.page == null ? new Base[0] : this.page.toArray(new Base[this.page.size()]); // ImplementationGuideDefinitionPageComponent
11544      default: return super.getProperty(hash, name, checkValid);
11545      }
11546
11547    }
11548
11549    @Override
11550    public Base setProperty(int hash, String name, Base value) throws FHIRException {
11551      switch (hash) {
11552      case 3373707: // name
11553        this.name = castToType(value); // Type
11554        return value;
11555      case 110371416: // title
11556        this.title = castToString(value); // StringType
11557        return value;
11558      case 305703192: // generation
11559        value = new GuidePageGenerationEnumFactory().fromType(castToCode(value));
11560        this.generation = (Enumeration) value; // Enumeration<GuidePageGeneration>
11561        return value;
11562      case 3433103: // page
11563        this.getPage().add((ImplementationGuideDefinitionPageComponent) value); // ImplementationGuideDefinitionPageComponent
11564        return value;
11565      default: return super.setProperty(hash, name, value);
11566      }
11567
11568    }
11569
11570    @Override
11571    public Base setProperty(String name, Base value) throws FHIRException {
11572      if (name.equals("name[x]")) {
11573        this.name = castToType(value); // Type
11574      } else if (name.equals("title")) {
11575        this.title = castToString(value); // StringType
11576      } else if (name.equals("generation")) {
11577        value = new GuidePageGenerationEnumFactory().fromType(castToCode(value));
11578        this.generation = (Enumeration) value; // Enumeration<GuidePageGeneration>
11579      } else if (name.equals("page")) {
11580        this.getPage().add((ImplementationGuideDefinitionPageComponent) value);
11581      } else
11582        return super.setProperty(name, value);
11583      return value;
11584    }
11585
11586    @Override
11587    public Base makeProperty(int hash, String name) throws FHIRException {
11588      switch (hash) {
11589      case 1721948693:  return getName(); 
11590      case 3373707:  return getName(); 
11591      case 110371416:  return getTitleElement();
11592      case 305703192:  return getGenerationElement();
11593      case 3433103:  return addPage(); 
11594      default: return super.makeProperty(hash, name);
11595      }
11596
11597    }
11598
11599    @Override
11600    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
11601      switch (hash) {
11602      case 3373707: /*name*/ return new String[] {"url", "Reference"};
11603      case 110371416: /*title*/ return new String[] {"string"};
11604      case 305703192: /*generation*/ return new String[] {"code"};
11605      case 3433103: /*page*/ return new String[] {"@ImplementationGuide.definition.page"};
11606      default: return super.getTypesForProperty(hash, name);
11607      }
11608
11609    }
11610
11611    @Override
11612    public Base addChild(String name) throws FHIRException {
11613      if (name.equals("nameUrl")) {
11614        this.name = new UrlType();
11615        return this.name;
11616      }
11617      else if (name.equals("nameReference")) {
11618        this.name = new Reference();
11619        return this.name;
11620      }
11621      else if (name.equals("title")) {
11622        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.title");
11623      }
11624      else if (name.equals("generation")) {
11625        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.generation");
11626      }
11627      else if (name.equals("page")) {
11628        return addPage();
11629      }
11630      else
11631        return super.addChild(name);
11632    }
11633
11634    public ImplementationGuideDefinitionPageComponent copy() {
11635      ImplementationGuideDefinitionPageComponent dst = new ImplementationGuideDefinitionPageComponent();
11636      copyValues(dst);
11637      return dst;
11638    }
11639
11640    public void copyValues(ImplementationGuideDefinitionPageComponent dst) {
11641      super.copyValues(dst);
11642      dst.name = name == null ? null : name.copy();
11643      dst.title = title == null ? null : title.copy();
11644      dst.generation = generation == null ? null : generation.copy();
11645      if (page != null) {
11646        dst.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
11647        for (ImplementationGuideDefinitionPageComponent i : page)
11648          dst.page.add(i.copy());
11649      };
11650    }
11651
11652    @Override
11653    public boolean equalsDeep(Base other_) {
11654      if (!super.equalsDeep(other_))
11655        return false;
11656      if (!(other_ instanceof ImplementationGuideDefinitionPageComponent))
11657        return false;
11658      ImplementationGuideDefinitionPageComponent o = (ImplementationGuideDefinitionPageComponent) other_;
11659      return compareDeep(name, o.name, true) && compareDeep(title, o.title, true) && compareDeep(generation, o.generation, true)
11660          && compareDeep(page, o.page, true);
11661    }
11662
11663    @Override
11664    public boolean equalsShallow(Base other_) {
11665      if (!super.equalsShallow(other_))
11666        return false;
11667      if (!(other_ instanceof ImplementationGuideDefinitionPageComponent))
11668        return false;
11669      ImplementationGuideDefinitionPageComponent o = (ImplementationGuideDefinitionPageComponent) other_;
11670      return compareValues(title, o.title, true) && compareValues(generation, o.generation, true);
11671    }
11672
11673    public boolean isEmpty() {
11674      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, title, generation
11675          , page);
11676    }
11677
11678    public String fhirType() {
11679      return "ImplementationGuide.definition.page";
11680
11681    }
11682
11683  }
11684
11685  @Block()
11686  public static class ImplementationGuideDefinitionParameterComponent extends BackboneElement implements IBaseBackboneElement {
11687    /**
11688     * apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.
11689     */
11690    @Child(name = "code", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
11691    @Description(shortDefinition="apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template", formalDefinition="apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template." )
11692    protected StringType code;
11693
11694    /**
11695     * Value for named type.
11696     */
11697    @Child(name = "value", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
11698    @Description(shortDefinition="Value for named type", formalDefinition="Value for named type." )
11699    protected StringType value;
11700
11701    private static final long serialVersionUID = 1188999138L;
11702
11703    /**
11704     * Constructor
11705     */
11706    public ImplementationGuideDefinitionParameterComponent() {
11707      super();
11708    }
11709
11710    /**
11711     * Constructor
11712     */
11713    public ImplementationGuideDefinitionParameterComponent(StringType code, StringType value) {
11714      super();
11715      this.code = code;
11716      this.value = value;
11717    }
11718
11719    /**
11720     * @return {@link #code} (apply | 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
11721     */
11722    public StringType getCodeElement() { 
11723      if (this.code == null)
11724        if (Configuration.errorOnAutoCreate())
11725          throw new Error("Attempt to auto-create ImplementationGuideDefinitionParameterComponent.code");
11726        else if (Configuration.doAutoCreate())
11727          this.code = new StringType(); // bb
11728      return this.code;
11729    }
11730
11731    public boolean hasCodeElement() { 
11732      return this.code != null && !this.code.isEmpty();
11733    }
11734
11735    public boolean hasCode() { 
11736      return this.code != null && !this.code.isEmpty();
11737    }
11738
11739    /**
11740     * @param value {@link #code} (apply | 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
11741     */
11742    public ImplementationGuideDefinitionParameterComponent setCodeElement(StringType value) { 
11743      this.code = value;
11744      return this;
11745    }
11746
11747    /**
11748     * @return apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.
11749     */
11750    public String getCode() { 
11751      return this.code == null ? null : this.code.getValue();
11752    }
11753
11754    /**
11755     * @param value apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.
11756     */
11757    public ImplementationGuideDefinitionParameterComponent setCode(String value) { 
11758      if (this.code == null)
11759        this.code = new StringType();
11760      this.code.setValue(value);
11761      return this;
11762    }
11763
11764    /**
11765     * @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
11766     */
11767    public StringType getValueElement() { 
11768      if (this.value == null)
11769        if (Configuration.errorOnAutoCreate())
11770          throw new Error("Attempt to auto-create ImplementationGuideDefinitionParameterComponent.value");
11771        else if (Configuration.doAutoCreate())
11772          this.value = new StringType(); // bb
11773      return this.value;
11774    }
11775
11776    public boolean hasValueElement() { 
11777      return this.value != null && !this.value.isEmpty();
11778    }
11779
11780    public boolean hasValue() { 
11781      return this.value != null && !this.value.isEmpty();
11782    }
11783
11784    /**
11785     * @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
11786     */
11787    public ImplementationGuideDefinitionParameterComponent setValueElement(StringType value) { 
11788      this.value = value;
11789      return this;
11790    }
11791
11792    /**
11793     * @return Value for named type.
11794     */
11795    public String getValue() { 
11796      return this.value == null ? null : this.value.getValue();
11797    }
11798
11799    /**
11800     * @param value Value for named type.
11801     */
11802    public ImplementationGuideDefinitionParameterComponent setValue(String value) { 
11803      if (this.value == null)
11804        this.value = new StringType();
11805      this.value.setValue(value);
11806      return this;
11807    }
11808
11809    protected void listChildren(List<Property> children) {
11810      super.listChildren(children);
11811      children.add(new Property("code", "string", "apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.", 0, 1, code));
11812      children.add(new Property("value", "string", "Value for named type.", 0, 1, value));
11813    }
11814
11815    @Override
11816    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
11817      switch (_hash) {
11818      case 3059181: /*code*/  return new Property("code", "string", "apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.", 0, 1, code);
11819      case 111972721: /*value*/  return new Property("value", "string", "Value for named type.", 0, 1, value);
11820      default: return super.getNamedProperty(_hash, _name, _checkValid);
11821      }
11822
11823    }
11824
11825    @Override
11826    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
11827      switch (hash) {
11828      case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // StringType
11829      case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType
11830      default: return super.getProperty(hash, name, checkValid);
11831      }
11832
11833    }
11834
11835    @Override
11836    public Base setProperty(int hash, String name, Base value) throws FHIRException {
11837      switch (hash) {
11838      case 3059181: // code
11839        this.code = castToString(value); // StringType
11840        return value;
11841      case 111972721: // value
11842        this.value = castToString(value); // StringType
11843        return value;
11844      default: return super.setProperty(hash, name, value);
11845      }
11846
11847    }
11848
11849    @Override
11850    public Base setProperty(String name, Base value) throws FHIRException {
11851      if (name.equals("code")) {
11852        this.code = castToString(value); // StringType
11853      } else if (name.equals("value")) {
11854        this.value = castToString(value); // StringType
11855      } else
11856        return super.setProperty(name, value);
11857      return value;
11858    }
11859
11860    @Override
11861    public Base makeProperty(int hash, String name) throws FHIRException {
11862      switch (hash) {
11863      case 3059181:  return getCodeElement();
11864      case 111972721:  return getValueElement();
11865      default: return super.makeProperty(hash, name);
11866      }
11867
11868    }
11869
11870    @Override
11871    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
11872      switch (hash) {
11873      case 3059181: /*code*/ return new String[] {"string"};
11874      case 111972721: /*value*/ return new String[] {"string"};
11875      default: return super.getTypesForProperty(hash, name);
11876      }
11877
11878    }
11879
11880    @Override
11881    public Base addChild(String name) throws FHIRException {
11882      if (name.equals("code")) {
11883        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.code");
11884      }
11885      else if (name.equals("value")) {
11886        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.value");
11887      }
11888      else
11889        return super.addChild(name);
11890    }
11891
11892    public ImplementationGuideDefinitionParameterComponent copy() {
11893      ImplementationGuideDefinitionParameterComponent dst = new ImplementationGuideDefinitionParameterComponent();
11894      copyValues(dst);
11895      return dst;
11896    }
11897
11898    public void copyValues(ImplementationGuideDefinitionParameterComponent dst) {
11899      super.copyValues(dst);
11900      dst.code = code == null ? null : code.copy();
11901      dst.value = value == null ? null : value.copy();
11902    }
11903
11904    @Override
11905    public boolean equalsDeep(Base other_) {
11906      if (!super.equalsDeep(other_))
11907        return false;
11908      if (!(other_ instanceof ImplementationGuideDefinitionParameterComponent))
11909        return false;
11910      ImplementationGuideDefinitionParameterComponent o = (ImplementationGuideDefinitionParameterComponent) other_;
11911      return compareDeep(code, o.code, true) && compareDeep(value, o.value, true);
11912    }
11913
11914    @Override
11915    public boolean equalsShallow(Base other_) {
11916      if (!super.equalsShallow(other_))
11917        return false;
11918      if (!(other_ instanceof ImplementationGuideDefinitionParameterComponent))
11919        return false;
11920      ImplementationGuideDefinitionParameterComponent o = (ImplementationGuideDefinitionParameterComponent) other_;
11921      return compareValues(code, o.code, true) && compareValues(value, o.value, true);
11922    }
11923
11924    public boolean isEmpty() {
11925      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, value);
11926    }
11927
11928    public String fhirType() {
11929      return "ImplementationGuide.definition.parameter";
11930
11931    }
11932
11933  }
11934
11935  @Block()
11936  public static class ImplementationGuideDefinitionTemplateComponent extends BackboneElement implements IBaseBackboneElement {
11937    /**
11938     * Type of template specified.
11939     */
11940    @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
11941    @Description(shortDefinition="Type of template specified", formalDefinition="Type of template specified." )
11942    protected CodeType code;
11943
11944    /**
11945     * The source location for the template.
11946     */
11947    @Child(name = "source", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
11948    @Description(shortDefinition="The source location for the template", formalDefinition="The source location for the template." )
11949    protected StringType source;
11950
11951    /**
11952     * The scope in which the template applies.
11953     */
11954    @Child(name = "scope", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
11955    @Description(shortDefinition="The scope in which the template applies", formalDefinition="The scope in which the template applies." )
11956    protected StringType scope;
11957
11958    private static final long serialVersionUID = 923832457L;
11959
11960    /**
11961     * Constructor
11962     */
11963    public ImplementationGuideDefinitionTemplateComponent() {
11964      super();
11965    }
11966
11967    /**
11968     * Constructor
11969     */
11970    public ImplementationGuideDefinitionTemplateComponent(CodeType code, StringType source) {
11971      super();
11972      this.code = code;
11973      this.source = source;
11974    }
11975
11976    /**
11977     * @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
11978     */
11979    public CodeType getCodeElement() { 
11980      if (this.code == null)
11981        if (Configuration.errorOnAutoCreate())
11982          throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.code");
11983        else if (Configuration.doAutoCreate())
11984          this.code = new CodeType(); // bb
11985      return this.code;
11986    }
11987
11988    public boolean hasCodeElement() { 
11989      return this.code != null && !this.code.isEmpty();
11990    }
11991
11992    public boolean hasCode() { 
11993      return this.code != null && !this.code.isEmpty();
11994    }
11995
11996    /**
11997     * @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
11998     */
11999    public ImplementationGuideDefinitionTemplateComponent setCodeElement(CodeType value) { 
12000      this.code = value;
12001      return this;
12002    }
12003
12004    /**
12005     * @return Type of template specified.
12006     */
12007    public String getCode() { 
12008      return this.code == null ? null : this.code.getValue();
12009    }
12010
12011    /**
12012     * @param value Type of template specified.
12013     */
12014    public ImplementationGuideDefinitionTemplateComponent setCode(String value) { 
12015      if (this.code == null)
12016        this.code = new CodeType();
12017      this.code.setValue(value);
12018      return this;
12019    }
12020
12021    /**
12022     * @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
12023     */
12024    public StringType getSourceElement() { 
12025      if (this.source == null)
12026        if (Configuration.errorOnAutoCreate())
12027          throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.source");
12028        else if (Configuration.doAutoCreate())
12029          this.source = new StringType(); // bb
12030      return this.source;
12031    }
12032
12033    public boolean hasSourceElement() { 
12034      return this.source != null && !this.source.isEmpty();
12035    }
12036
12037    public boolean hasSource() { 
12038      return this.source != null && !this.source.isEmpty();
12039    }
12040
12041    /**
12042     * @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
12043     */
12044    public ImplementationGuideDefinitionTemplateComponent setSourceElement(StringType value) { 
12045      this.source = value;
12046      return this;
12047    }
12048
12049    /**
12050     * @return The source location for the template.
12051     */
12052    public String getSource() { 
12053      return this.source == null ? null : this.source.getValue();
12054    }
12055
12056    /**
12057     * @param value The source location for the template.
12058     */
12059    public ImplementationGuideDefinitionTemplateComponent setSource(String value) { 
12060      if (this.source == null)
12061        this.source = new StringType();
12062      this.source.setValue(value);
12063      return this;
12064    }
12065
12066    /**
12067     * @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
12068     */
12069    public StringType getScopeElement() { 
12070      if (this.scope == null)
12071        if (Configuration.errorOnAutoCreate())
12072          throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.scope");
12073        else if (Configuration.doAutoCreate())
12074          this.scope = new StringType(); // bb
12075      return this.scope;
12076    }
12077
12078    public boolean hasScopeElement() { 
12079      return this.scope != null && !this.scope.isEmpty();
12080    }
12081
12082    public boolean hasScope() { 
12083      return this.scope != null && !this.scope.isEmpty();
12084    }
12085
12086    /**
12087     * @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
12088     */
12089    public ImplementationGuideDefinitionTemplateComponent setScopeElement(StringType value) { 
12090      this.scope = value;
12091      return this;
12092    }
12093
12094    /**
12095     * @return The scope in which the template applies.
12096     */
12097    public String getScope() { 
12098      return this.scope == null ? null : this.scope.getValue();
12099    }
12100
12101    /**
12102     * @param value The scope in which the template applies.
12103     */
12104    public ImplementationGuideDefinitionTemplateComponent setScope(String value) { 
12105      if (Utilities.noString(value))
12106        this.scope = null;
12107      else {
12108        if (this.scope == null)
12109          this.scope = new StringType();
12110        this.scope.setValue(value);
12111      }
12112      return this;
12113    }
12114
12115    protected void listChildren(List<Property> children) {
12116      super.listChildren(children);
12117      children.add(new Property("code", "code", "Type of template specified.", 0, 1, code));
12118      children.add(new Property("source", "string", "The source location for the template.", 0, 1, source));
12119      children.add(new Property("scope", "string", "The scope in which the template applies.", 0, 1, scope));
12120    }
12121
12122    @Override
12123    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
12124      switch (_hash) {
12125      case 3059181: /*code*/  return new Property("code", "code", "Type of template specified.", 0, 1, code);
12126      case -896505829: /*source*/  return new Property("source", "string", "The source location for the template.", 0, 1, source);
12127      case 109264468: /*scope*/  return new Property("scope", "string", "The scope in which the template applies.", 0, 1, scope);
12128      default: return super.getNamedProperty(_hash, _name, _checkValid);
12129      }
12130
12131    }
12132
12133    @Override
12134    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
12135      switch (hash) {
12136      case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
12137      case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // StringType
12138      case 109264468: /*scope*/ return this.scope == null ? new Base[0] : new Base[] {this.scope}; // StringType
12139      default: return super.getProperty(hash, name, checkValid);
12140      }
12141
12142    }
12143
12144    @Override
12145    public Base setProperty(int hash, String name, Base value) throws FHIRException {
12146      switch (hash) {
12147      case 3059181: // code
12148        this.code = castToCode(value); // CodeType
12149        return value;
12150      case -896505829: // source
12151        this.source = castToString(value); // StringType
12152        return value;
12153      case 109264468: // scope
12154        this.scope = castToString(value); // StringType
12155        return value;
12156      default: return super.setProperty(hash, name, value);
12157      }
12158
12159    }
12160
12161    @Override
12162    public Base setProperty(String name, Base value) throws FHIRException {
12163      if (name.equals("code")) {
12164        this.code = castToCode(value); // CodeType
12165      } else if (name.equals("source")) {
12166        this.source = castToString(value); // StringType
12167      } else if (name.equals("scope")) {
12168        this.scope = castToString(value); // StringType
12169      } else
12170        return super.setProperty(name, value);
12171      return value;
12172    }
12173
12174    @Override
12175    public Base makeProperty(int hash, String name) throws FHIRException {
12176      switch (hash) {
12177      case 3059181:  return getCodeElement();
12178      case -896505829:  return getSourceElement();
12179      case 109264468:  return getScopeElement();
12180      default: return super.makeProperty(hash, name);
12181      }
12182
12183    }
12184
12185    @Override
12186    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
12187      switch (hash) {
12188      case 3059181: /*code*/ return new String[] {"code"};
12189      case -896505829: /*source*/ return new String[] {"string"};
12190      case 109264468: /*scope*/ return new String[] {"string"};
12191      default: return super.getTypesForProperty(hash, name);
12192      }
12193
12194    }
12195
12196    @Override
12197    public Base addChild(String name) throws FHIRException {
12198      if (name.equals("code")) {
12199        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.code");
12200      }
12201      else if (name.equals("source")) {
12202        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.source");
12203      }
12204      else if (name.equals("scope")) {
12205        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.scope");
12206      }
12207      else
12208        return super.addChild(name);
12209    }
12210
12211    public ImplementationGuideDefinitionTemplateComponent copy() {
12212      ImplementationGuideDefinitionTemplateComponent dst = new ImplementationGuideDefinitionTemplateComponent();
12213      copyValues(dst);
12214      return dst;
12215    }
12216
12217    public void copyValues(ImplementationGuideDefinitionTemplateComponent dst) {
12218      super.copyValues(dst);
12219      dst.code = code == null ? null : code.copy();
12220      dst.source = source == null ? null : source.copy();
12221      dst.scope = scope == null ? null : scope.copy();
12222    }
12223
12224    @Override
12225    public boolean equalsDeep(Base other_) {
12226      if (!super.equalsDeep(other_))
12227        return false;
12228      if (!(other_ instanceof ImplementationGuideDefinitionTemplateComponent))
12229        return false;
12230      ImplementationGuideDefinitionTemplateComponent o = (ImplementationGuideDefinitionTemplateComponent) other_;
12231      return compareDeep(code, o.code, true) && compareDeep(source, o.source, true) && compareDeep(scope, o.scope, true)
12232          ;
12233    }
12234
12235    @Override
12236    public boolean equalsShallow(Base other_) {
12237      if (!super.equalsShallow(other_))
12238        return false;
12239      if (!(other_ instanceof ImplementationGuideDefinitionTemplateComponent))
12240        return false;
12241      ImplementationGuideDefinitionTemplateComponent o = (ImplementationGuideDefinitionTemplateComponent) other_;
12242      return compareValues(code, o.code, true) && compareValues(source, o.source, true) && compareValues(scope, o.scope, true)
12243          ;
12244    }
12245
12246    public boolean isEmpty() {
12247      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, source, scope);
12248    }
12249
12250    public String fhirType() {
12251      return "ImplementationGuide.definition.template";
12252
12253    }
12254
12255  }
12256
12257  @Block()
12258  public static class ImplementationGuideManifestComponent extends BackboneElement implements IBaseBackboneElement {
12259    /**
12260     * A pointer to official web page, PDF or other rendering of the implementation guide.
12261     */
12262    @Child(name = "rendering", type = {UrlType.class}, order=1, min=0, max=1, modifier=false, summary=true)
12263    @Description(shortDefinition="Location of rendered implementation guide", formalDefinition="A pointer to official web page, PDF or other rendering of the implementation guide." )
12264    protected UrlType rendering;
12265
12266    /**
12267     * 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.
12268     */
12269    @Child(name = "resource", type = {}, order=2, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
12270    @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." )
12271    protected List<ManifestResourceComponent> resource;
12272
12273    /**
12274     * Information about a page within the IG.
12275     */
12276    @Child(name = "page", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
12277    @Description(shortDefinition="HTML page within the parent IG", formalDefinition="Information about a page within the IG." )
12278    protected List<ManifestPageComponent> page;
12279
12280    /**
12281     * Indicates a relative path to an image that exists within the IG.
12282     */
12283    @Child(name = "image", type = {StringType.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
12284    @Description(shortDefinition="Image within the IG", formalDefinition="Indicates a relative path to an image that exists within the IG." )
12285    protected List<StringType> image;
12286
12287    /**
12288     * 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.
12289     */
12290    @Child(name = "other", type = {StringType.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
12291    @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." )
12292    protected List<StringType> other;
12293
12294    private static final long serialVersionUID = 1881327712L;
12295
12296    /**
12297     * Constructor
12298     */
12299    public ImplementationGuideManifestComponent() {
12300      super();
12301    }
12302
12303    /**
12304     * @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
12305     */
12306    public UrlType getRenderingElement() { 
12307      if (this.rendering == null)
12308        if (Configuration.errorOnAutoCreate())
12309          throw new Error("Attempt to auto-create ImplementationGuideManifestComponent.rendering");
12310        else if (Configuration.doAutoCreate())
12311          this.rendering = new UrlType(); // bb
12312      return this.rendering;
12313    }
12314
12315    public boolean hasRenderingElement() { 
12316      return this.rendering != null && !this.rendering.isEmpty();
12317    }
12318
12319    public boolean hasRendering() { 
12320      return this.rendering != null && !this.rendering.isEmpty();
12321    }
12322
12323    /**
12324     * @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
12325     */
12326    public ImplementationGuideManifestComponent setRenderingElement(UrlType value) { 
12327      this.rendering = value;
12328      return this;
12329    }
12330
12331    /**
12332     * @return A pointer to official web page, PDF or other rendering of the implementation guide.
12333     */
12334    public String getRendering() { 
12335      return this.rendering == null ? null : this.rendering.getValue();
12336    }
12337
12338    /**
12339     * @param value A pointer to official web page, PDF or other rendering of the implementation guide.
12340     */
12341    public ImplementationGuideManifestComponent setRendering(String value) { 
12342      if (Utilities.noString(value))
12343        this.rendering = null;
12344      else {
12345        if (this.rendering == null)
12346          this.rendering = new UrlType();
12347        this.rendering.setValue(value);
12348      }
12349      return this;
12350    }
12351
12352    /**
12353     * @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.)
12354     */
12355    public List<ManifestResourceComponent> getResource() { 
12356      if (this.resource == null)
12357        this.resource = new ArrayList<ManifestResourceComponent>();
12358      return this.resource;
12359    }
12360
12361    /**
12362     * @return Returns a reference to <code>this</code> for easy method chaining
12363     */
12364    public ImplementationGuideManifestComponent setResource(List<ManifestResourceComponent> theResource) { 
12365      this.resource = theResource;
12366      return this;
12367    }
12368
12369    public boolean hasResource() { 
12370      if (this.resource == null)
12371        return false;
12372      for (ManifestResourceComponent item : this.resource)
12373        if (!item.isEmpty())
12374          return true;
12375      return false;
12376    }
12377
12378    public ManifestResourceComponent addResource() { //3
12379      ManifestResourceComponent t = new ManifestResourceComponent();
12380      if (this.resource == null)
12381        this.resource = new ArrayList<ManifestResourceComponent>();
12382      this.resource.add(t);
12383      return t;
12384    }
12385
12386    public ImplementationGuideManifestComponent addResource(ManifestResourceComponent t) { //3
12387      if (t == null)
12388        return this;
12389      if (this.resource == null)
12390        this.resource = new ArrayList<ManifestResourceComponent>();
12391      this.resource.add(t);
12392      return this;
12393    }
12394
12395    /**
12396     * @return The first repetition of repeating field {@link #resource}, creating it if it does not already exist
12397     */
12398    public ManifestResourceComponent getResourceFirstRep() { 
12399      if (getResource().isEmpty()) {
12400        addResource();
12401      }
12402      return getResource().get(0);
12403    }
12404
12405    /**
12406     * @return {@link #page} (Information about a page within the IG.)
12407     */
12408    public List<ManifestPageComponent> getPage() { 
12409      if (this.page == null)
12410        this.page = new ArrayList<ManifestPageComponent>();
12411      return this.page;
12412    }
12413
12414    /**
12415     * @return Returns a reference to <code>this</code> for easy method chaining
12416     */
12417    public ImplementationGuideManifestComponent setPage(List<ManifestPageComponent> thePage) { 
12418      this.page = thePage;
12419      return this;
12420    }
12421
12422    public boolean hasPage() { 
12423      if (this.page == null)
12424        return false;
12425      for (ManifestPageComponent item : this.page)
12426        if (!item.isEmpty())
12427          return true;
12428      return false;
12429    }
12430
12431    public ManifestPageComponent addPage() { //3
12432      ManifestPageComponent t = new ManifestPageComponent();
12433      if (this.page == null)
12434        this.page = new ArrayList<ManifestPageComponent>();
12435      this.page.add(t);
12436      return t;
12437    }
12438
12439    public ImplementationGuideManifestComponent addPage(ManifestPageComponent t) { //3
12440      if (t == null)
12441        return this;
12442      if (this.page == null)
12443        this.page = new ArrayList<ManifestPageComponent>();
12444      this.page.add(t);
12445      return this;
12446    }
12447
12448    /**
12449     * @return The first repetition of repeating field {@link #page}, creating it if it does not already exist
12450     */
12451    public ManifestPageComponent getPageFirstRep() { 
12452      if (getPage().isEmpty()) {
12453        addPage();
12454      }
12455      return getPage().get(0);
12456    }
12457
12458    /**
12459     * @return {@link #image} (Indicates a relative path to an image that exists within the IG.)
12460     */
12461    public List<StringType> getImage() { 
12462      if (this.image == null)
12463        this.image = new ArrayList<StringType>();
12464      return this.image;
12465    }
12466
12467    /**
12468     * @return Returns a reference to <code>this</code> for easy method chaining
12469     */
12470    public ImplementationGuideManifestComponent setImage(List<StringType> theImage) { 
12471      this.image = theImage;
12472      return this;
12473    }
12474
12475    public boolean hasImage() { 
12476      if (this.image == null)
12477        return false;
12478      for (StringType item : this.image)
12479        if (!item.isEmpty())
12480          return true;
12481      return false;
12482    }
12483
12484    /**
12485     * @return {@link #image} (Indicates a relative path to an image that exists within the IG.)
12486     */
12487    public StringType addImageElement() {//2 
12488      StringType t = new StringType();
12489      if (this.image == null)
12490        this.image = new ArrayList<StringType>();
12491      this.image.add(t);
12492      return t;
12493    }
12494
12495    /**
12496     * @param value {@link #image} (Indicates a relative path to an image that exists within the IG.)
12497     */
12498    public ImplementationGuideManifestComponent addImage(String value) { //1
12499      StringType t = new StringType();
12500      t.setValue(value);
12501      if (this.image == null)
12502        this.image = new ArrayList<StringType>();
12503      this.image.add(t);
12504      return this;
12505    }
12506
12507    /**
12508     * @param value {@link #image} (Indicates a relative path to an image that exists within the IG.)
12509     */
12510    public boolean hasImage(String value) { 
12511      if (this.image == null)
12512        return false;
12513      for (StringType v : this.image)
12514        if (v.getValue().equals(value)) // string
12515          return true;
12516      return false;
12517    }
12518
12519    /**
12520     * @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.)
12521     */
12522    public List<StringType> getOther() { 
12523      if (this.other == null)
12524        this.other = new ArrayList<StringType>();
12525      return this.other;
12526    }
12527
12528    /**
12529     * @return Returns a reference to <code>this</code> for easy method chaining
12530     */
12531    public ImplementationGuideManifestComponent setOther(List<StringType> theOther) { 
12532      this.other = theOther;
12533      return this;
12534    }
12535
12536    public boolean hasOther() { 
12537      if (this.other == null)
12538        return false;
12539      for (StringType item : this.other)
12540        if (!item.isEmpty())
12541          return true;
12542      return false;
12543    }
12544
12545    /**
12546     * @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.)
12547     */
12548    public StringType addOtherElement() {//2 
12549      StringType t = new StringType();
12550      if (this.other == null)
12551        this.other = new ArrayList<StringType>();
12552      this.other.add(t);
12553      return t;
12554    }
12555
12556    /**
12557     * @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.)
12558     */
12559    public ImplementationGuideManifestComponent addOther(String value) { //1
12560      StringType t = new StringType();
12561      t.setValue(value);
12562      if (this.other == null)
12563        this.other = new ArrayList<StringType>();
12564      this.other.add(t);
12565      return this;
12566    }
12567
12568    /**
12569     * @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.)
12570     */
12571    public boolean hasOther(String value) { 
12572      if (this.other == null)
12573        return false;
12574      for (StringType v : this.other)
12575        if (v.getValue().equals(value)) // string
12576          return true;
12577      return false;
12578    }
12579
12580    protected void listChildren(List<Property> children) {
12581      super.listChildren(children);
12582      children.add(new Property("rendering", "url", "A pointer to official web page, PDF or other rendering of the implementation guide.", 0, 1, rendering));
12583      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));
12584      children.add(new Property("page", "", "Information about a page within the IG.", 0, java.lang.Integer.MAX_VALUE, page));
12585      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));
12586      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));
12587    }
12588
12589    @Override
12590    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
12591      switch (_hash) {
12592      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);
12593      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);
12594      case 3433103: /*page*/  return new Property("page", "", "Information about a page within the IG.", 0, java.lang.Integer.MAX_VALUE, page);
12595      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);
12596      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);
12597      default: return super.getNamedProperty(_hash, _name, _checkValid);
12598      }
12599
12600    }
12601
12602    @Override
12603    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
12604      switch (hash) {
12605      case 1839654540: /*rendering*/ return this.rendering == null ? new Base[0] : new Base[] {this.rendering}; // UrlType
12606      case -341064690: /*resource*/ return this.resource == null ? new Base[0] : this.resource.toArray(new Base[this.resource.size()]); // ManifestResourceComponent
12607      case 3433103: /*page*/ return this.page == null ? new Base[0] : this.page.toArray(new Base[this.page.size()]); // ManifestPageComponent
12608      case 100313435: /*image*/ return this.image == null ? new Base[0] : this.image.toArray(new Base[this.image.size()]); // StringType
12609      case 106069776: /*other*/ return this.other == null ? new Base[0] : this.other.toArray(new Base[this.other.size()]); // StringType
12610      default: return super.getProperty(hash, name, checkValid);
12611      }
12612
12613    }
12614
12615    @Override
12616    public Base setProperty(int hash, String name, Base value) throws FHIRException {
12617      switch (hash) {
12618      case 1839654540: // rendering
12619        this.rendering = castToUrl(value); // UrlType
12620        return value;
12621      case -341064690: // resource
12622        this.getResource().add((ManifestResourceComponent) value); // ManifestResourceComponent
12623        return value;
12624      case 3433103: // page
12625        this.getPage().add((ManifestPageComponent) value); // ManifestPageComponent
12626        return value;
12627      case 100313435: // image
12628        this.getImage().add(castToString(value)); // StringType
12629        return value;
12630      case 106069776: // other
12631        this.getOther().add(castToString(value)); // StringType
12632        return value;
12633      default: return super.setProperty(hash, name, value);
12634      }
12635
12636    }
12637
12638    @Override
12639    public Base setProperty(String name, Base value) throws FHIRException {
12640      if (name.equals("rendering")) {
12641        this.rendering = castToUrl(value); // UrlType
12642      } else if (name.equals("resource")) {
12643        this.getResource().add((ManifestResourceComponent) value);
12644      } else if (name.equals("page")) {
12645        this.getPage().add((ManifestPageComponent) value);
12646      } else if (name.equals("image")) {
12647        this.getImage().add(castToString(value));
12648      } else if (name.equals("other")) {
12649        this.getOther().add(castToString(value));
12650      } else
12651        return super.setProperty(name, value);
12652      return value;
12653    }
12654
12655    @Override
12656    public Base makeProperty(int hash, String name) throws FHIRException {
12657      switch (hash) {
12658      case 1839654540:  return getRenderingElement();
12659      case -341064690:  return addResource(); 
12660      case 3433103:  return addPage(); 
12661      case 100313435:  return addImageElement();
12662      case 106069776:  return addOtherElement();
12663      default: return super.makeProperty(hash, name);
12664      }
12665
12666    }
12667
12668    @Override
12669    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
12670      switch (hash) {
12671      case 1839654540: /*rendering*/ return new String[] {"url"};
12672      case -341064690: /*resource*/ return new String[] {};
12673      case 3433103: /*page*/ return new String[] {};
12674      case 100313435: /*image*/ return new String[] {"string"};
12675      case 106069776: /*other*/ return new String[] {"string"};
12676      default: return super.getTypesForProperty(hash, name);
12677      }
12678
12679    }
12680
12681    @Override
12682    public Base addChild(String name) throws FHIRException {
12683      if (name.equals("rendering")) {
12684        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.rendering");
12685      }
12686      else if (name.equals("resource")) {
12687        return addResource();
12688      }
12689      else if (name.equals("page")) {
12690        return addPage();
12691      }
12692      else if (name.equals("image")) {
12693        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.image");
12694      }
12695      else if (name.equals("other")) {
12696        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.other");
12697      }
12698      else
12699        return super.addChild(name);
12700    }
12701
12702    public ImplementationGuideManifestComponent copy() {
12703      ImplementationGuideManifestComponent dst = new ImplementationGuideManifestComponent();
12704      copyValues(dst);
12705      return dst;
12706    }
12707
12708    public void copyValues(ImplementationGuideManifestComponent dst) {
12709      super.copyValues(dst);
12710      dst.rendering = rendering == null ? null : rendering.copy();
12711      if (resource != null) {
12712        dst.resource = new ArrayList<ManifestResourceComponent>();
12713        for (ManifestResourceComponent i : resource)
12714          dst.resource.add(i.copy());
12715      };
12716      if (page != null) {
12717        dst.page = new ArrayList<ManifestPageComponent>();
12718        for (ManifestPageComponent i : page)
12719          dst.page.add(i.copy());
12720      };
12721      if (image != null) {
12722        dst.image = new ArrayList<StringType>();
12723        for (StringType i : image)
12724          dst.image.add(i.copy());
12725      };
12726      if (other != null) {
12727        dst.other = new ArrayList<StringType>();
12728        for (StringType i : other)
12729          dst.other.add(i.copy());
12730      };
12731    }
12732
12733    @Override
12734    public boolean equalsDeep(Base other_) {
12735      if (!super.equalsDeep(other_))
12736        return false;
12737      if (!(other_ instanceof ImplementationGuideManifestComponent))
12738        return false;
12739      ImplementationGuideManifestComponent o = (ImplementationGuideManifestComponent) other_;
12740      return compareDeep(rendering, o.rendering, true) && compareDeep(resource, o.resource, true) && compareDeep(page, o.page, true)
12741          && compareDeep(image, o.image, true) && compareDeep(other, o.other, true);
12742    }
12743
12744    @Override
12745    public boolean equalsShallow(Base other_) {
12746      if (!super.equalsShallow(other_))
12747        return false;
12748      if (!(other_ instanceof ImplementationGuideManifestComponent))
12749        return false;
12750      ImplementationGuideManifestComponent o = (ImplementationGuideManifestComponent) other_;
12751      return compareValues(rendering, o.rendering, true) && compareValues(image, o.image, true) && compareValues(other, o.other, true)
12752          ;
12753    }
12754
12755    public boolean isEmpty() {
12756      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(rendering, resource, page
12757          , image, other);
12758    }
12759
12760    public String fhirType() {
12761      return "ImplementationGuide.manifest";
12762
12763    }
12764
12765  }
12766
12767  @Block()
12768  public static class ManifestResourceComponent extends BackboneElement implements IBaseBackboneElement {
12769    /**
12770     * Where this resource is found.
12771     */
12772    @Child(name = "reference", type = {Reference.class}, order=1, min=1, max=1, modifier=false, summary=true)
12773    @Description(shortDefinition="Location of the resource", formalDefinition="Where this resource is found." )
12774    protected Reference reference;
12775
12776    /**
12777     * The actual object that is the target of the reference (Where this resource is found.)
12778     */
12779    protected Resource referenceTarget;
12780
12781    /**
12782     * 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.
12783     */
12784    @Child(name = "example", type = {BooleanType.class, CanonicalType.class}, order=2, min=0, max=1, modifier=false, summary=false)
12785    @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." )
12786    protected Type example;
12787
12788    /**
12789     * The relative path for primary page for this resource within the IG.
12790     */
12791    @Child(name = "relativePath", type = {UrlType.class}, order=3, min=0, max=1, modifier=false, summary=false)
12792    @Description(shortDefinition="Relative path for page in IG", formalDefinition="The relative path for primary page for this resource within the IG." )
12793    protected UrlType relativePath;
12794
12795    private static final long serialVersionUID = 1150095716L;
12796
12797    /**
12798     * Constructor
12799     */
12800    public ManifestResourceComponent() {
12801      super();
12802    }
12803
12804    /**
12805     * Constructor
12806     */
12807    public ManifestResourceComponent(Reference reference) {
12808      super();
12809      this.reference = reference;
12810    }
12811
12812    /**
12813     * @return {@link #reference} (Where this resource is found.)
12814     */
12815    public Reference getReference() { 
12816      if (this.reference == null)
12817        if (Configuration.errorOnAutoCreate())
12818          throw new Error("Attempt to auto-create ManifestResourceComponent.reference");
12819        else if (Configuration.doAutoCreate())
12820          this.reference = new Reference(); // cc
12821      return this.reference;
12822    }
12823
12824    public boolean hasReference() { 
12825      return this.reference != null && !this.reference.isEmpty();
12826    }
12827
12828    /**
12829     * @param value {@link #reference} (Where this resource is found.)
12830     */
12831    public ManifestResourceComponent setReference(Reference value) { 
12832      this.reference = value;
12833      return this;
12834    }
12835
12836    /**
12837     * @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.)
12838     */
12839    public Resource getReferenceTarget() { 
12840      return this.referenceTarget;
12841    }
12842
12843    /**
12844     * @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.)
12845     */
12846    public ManifestResourceComponent setReferenceTarget(Resource value) { 
12847      this.referenceTarget = value;
12848      return this;
12849    }
12850
12851    /**
12852     * @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.)
12853     */
12854    public Type getExample() { 
12855      return this.example;
12856    }
12857
12858    /**
12859     * @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.)
12860     */
12861    public BooleanType getExampleBooleanType() throws FHIRException { 
12862      if (this.example == null)
12863        this.example = new BooleanType();
12864      if (!(this.example instanceof BooleanType))
12865        throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.example.getClass().getName()+" was encountered");
12866      return (BooleanType) this.example;
12867    }
12868
12869    public boolean hasExampleBooleanType() { 
12870      return this != null && this.example instanceof BooleanType;
12871    }
12872
12873    /**
12874     * @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.)
12875     */
12876    public CanonicalType getExampleCanonicalType() throws FHIRException { 
12877      if (this.example == null)
12878        this.example = new CanonicalType();
12879      if (!(this.example instanceof CanonicalType))
12880        throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.example.getClass().getName()+" was encountered");
12881      return (CanonicalType) this.example;
12882    }
12883
12884    public boolean hasExampleCanonicalType() { 
12885      return this != null && this.example instanceof CanonicalType;
12886    }
12887
12888    public boolean hasExample() { 
12889      return this.example != null && !this.example.isEmpty();
12890    }
12891
12892    /**
12893     * @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.)
12894     */
12895    public ManifestResourceComponent setExample(Type value) { 
12896      if (value != null && !(value instanceof BooleanType || value instanceof CanonicalType))
12897        throw new Error("Not the right type for ImplementationGuide.manifest.resource.example[x]: "+value.fhirType());
12898      this.example = value;
12899      return this;
12900    }
12901
12902    /**
12903     * @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
12904     */
12905    public UrlType getRelativePathElement() { 
12906      if (this.relativePath == null)
12907        if (Configuration.errorOnAutoCreate())
12908          throw new Error("Attempt to auto-create ManifestResourceComponent.relativePath");
12909        else if (Configuration.doAutoCreate())
12910          this.relativePath = new UrlType(); // bb
12911      return this.relativePath;
12912    }
12913
12914    public boolean hasRelativePathElement() { 
12915      return this.relativePath != null && !this.relativePath.isEmpty();
12916    }
12917
12918    public boolean hasRelativePath() { 
12919      return this.relativePath != null && !this.relativePath.isEmpty();
12920    }
12921
12922    /**
12923     * @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
12924     */
12925    public ManifestResourceComponent setRelativePathElement(UrlType value) { 
12926      this.relativePath = value;
12927      return this;
12928    }
12929
12930    /**
12931     * @return The relative path for primary page for this resource within the IG.
12932     */
12933    public String getRelativePath() { 
12934      return this.relativePath == null ? null : this.relativePath.getValue();
12935    }
12936
12937    /**
12938     * @param value The relative path for primary page for this resource within the IG.
12939     */
12940    public ManifestResourceComponent setRelativePath(String value) { 
12941      if (Utilities.noString(value))
12942        this.relativePath = null;
12943      else {
12944        if (this.relativePath == null)
12945          this.relativePath = new UrlType();
12946        this.relativePath.setValue(value);
12947      }
12948      return this;
12949    }
12950
12951    protected void listChildren(List<Property> children) {
12952      super.listChildren(children);
12953      children.add(new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference));
12954      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));
12955      children.add(new Property("relativePath", "url", "The relative path for primary page for this resource within the IG.", 0, 1, relativePath));
12956    }
12957
12958    @Override
12959    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
12960      switch (_hash) {
12961      case -925155509: /*reference*/  return new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference);
12962      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);
12963      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);
12964      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);
12965      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);
12966      case -70808303: /*relativePath*/  return new Property("relativePath", "url", "The relative path for primary page for this resource within the IG.", 0, 1, relativePath);
12967      default: return super.getNamedProperty(_hash, _name, _checkValid);
12968      }
12969
12970    }
12971
12972    @Override
12973    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
12974      switch (hash) {
12975      case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // Reference
12976      case -1322970774: /*example*/ return this.example == null ? new Base[0] : new Base[] {this.example}; // Type
12977      case -70808303: /*relativePath*/ return this.relativePath == null ? new Base[0] : new Base[] {this.relativePath}; // UrlType
12978      default: return super.getProperty(hash, name, checkValid);
12979      }
12980
12981    }
12982
12983    @Override
12984    public Base setProperty(int hash, String name, Base value) throws FHIRException {
12985      switch (hash) {
12986      case -925155509: // reference
12987        this.reference = castToReference(value); // Reference
12988        return value;
12989      case -1322970774: // example
12990        this.example = castToType(value); // Type
12991        return value;
12992      case -70808303: // relativePath
12993        this.relativePath = castToUrl(value); // UrlType
12994        return value;
12995      default: return super.setProperty(hash, name, value);
12996      }
12997
12998    }
12999
13000    @Override
13001    public Base setProperty(String name, Base value) throws FHIRException {
13002      if (name.equals("reference")) {
13003        this.reference = castToReference(value); // Reference
13004      } else if (name.equals("example[x]")) {
13005        this.example = castToType(value); // Type
13006      } else if (name.equals("relativePath")) {
13007        this.relativePath = castToUrl(value); // UrlType
13008      } else
13009        return super.setProperty(name, value);
13010      return value;
13011    }
13012
13013    @Override
13014    public Base makeProperty(int hash, String name) throws FHIRException {
13015      switch (hash) {
13016      case -925155509:  return getReference(); 
13017      case -2002328874:  return getExample(); 
13018      case -1322970774:  return getExample(); 
13019      case -70808303:  return getRelativePathElement();
13020      default: return super.makeProperty(hash, name);
13021      }
13022
13023    }
13024
13025    @Override
13026    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
13027      switch (hash) {
13028      case -925155509: /*reference*/ return new String[] {"Reference"};
13029      case -1322970774: /*example*/ return new String[] {"boolean", "canonical"};
13030      case -70808303: /*relativePath*/ return new String[] {"url"};
13031      default: return super.getTypesForProperty(hash, name);
13032      }
13033
13034    }
13035
13036    @Override
13037    public Base addChild(String name) throws FHIRException {
13038      if (name.equals("reference")) {
13039        this.reference = new Reference();
13040        return this.reference;
13041      }
13042      else if (name.equals("exampleBoolean")) {
13043        this.example = new BooleanType();
13044        return this.example;
13045      }
13046      else if (name.equals("exampleCanonical")) {
13047        this.example = new CanonicalType();
13048        return this.example;
13049      }
13050      else if (name.equals("relativePath")) {
13051        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.relativePath");
13052      }
13053      else
13054        return super.addChild(name);
13055    }
13056
13057    public ManifestResourceComponent copy() {
13058      ManifestResourceComponent dst = new ManifestResourceComponent();
13059      copyValues(dst);
13060      return dst;
13061    }
13062
13063    public void copyValues(ManifestResourceComponent dst) {
13064      super.copyValues(dst);
13065      dst.reference = reference == null ? null : reference.copy();
13066      dst.example = example == null ? null : example.copy();
13067      dst.relativePath = relativePath == null ? null : relativePath.copy();
13068    }
13069
13070    @Override
13071    public boolean equalsDeep(Base other_) {
13072      if (!super.equalsDeep(other_))
13073        return false;
13074      if (!(other_ instanceof ManifestResourceComponent))
13075        return false;
13076      ManifestResourceComponent o = (ManifestResourceComponent) other_;
13077      return compareDeep(reference, o.reference, true) && compareDeep(example, o.example, true) && compareDeep(relativePath, o.relativePath, true)
13078          ;
13079    }
13080
13081    @Override
13082    public boolean equalsShallow(Base other_) {
13083      if (!super.equalsShallow(other_))
13084        return false;
13085      if (!(other_ instanceof ManifestResourceComponent))
13086        return false;
13087      ManifestResourceComponent o = (ManifestResourceComponent) other_;
13088      return compareValues(relativePath, o.relativePath, true);
13089    }
13090
13091    public boolean isEmpty() {
13092      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, example, relativePath
13093          );
13094    }
13095
13096    public String fhirType() {
13097      return "ImplementationGuide.manifest.resource";
13098
13099    }
13100
13101  }
13102
13103  @Block()
13104  public static class ManifestPageComponent extends BackboneElement implements IBaseBackboneElement {
13105    /**
13106     * Relative path to the page.
13107     */
13108    @Child(name = "name", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
13109    @Description(shortDefinition="HTML page name", formalDefinition="Relative path to the page." )
13110    protected StringType name;
13111
13112    /**
13113     * Label for the page intended for human display.
13114     */
13115    @Child(name = "title", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
13116    @Description(shortDefinition="Title of the page, for references", formalDefinition="Label for the page intended for human display." )
13117    protected StringType title;
13118
13119    /**
13120     * The name of an anchor available on the page.
13121     */
13122    @Child(name = "anchor", type = {StringType.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
13123    @Description(shortDefinition="Anchor available on the page", formalDefinition="The name of an anchor available on the page." )
13124    protected List<StringType> anchor;
13125
13126    private static final long serialVersionUID = 1920576611L;
13127
13128    /**
13129     * Constructor
13130     */
13131    public ManifestPageComponent() {
13132      super();
13133    }
13134
13135    /**
13136     * Constructor
13137     */
13138    public ManifestPageComponent(StringType name) {
13139      super();
13140      this.name = name;
13141    }
13142
13143    /**
13144     * @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
13145     */
13146    public StringType getNameElement() { 
13147      if (this.name == null)
13148        if (Configuration.errorOnAutoCreate())
13149          throw new Error("Attempt to auto-create ManifestPageComponent.name");
13150        else if (Configuration.doAutoCreate())
13151          this.name = new StringType(); // bb
13152      return this.name;
13153    }
13154
13155    public boolean hasNameElement() { 
13156      return this.name != null && !this.name.isEmpty();
13157    }
13158
13159    public boolean hasName() { 
13160      return this.name != null && !this.name.isEmpty();
13161    }
13162
13163    /**
13164     * @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
13165     */
13166    public ManifestPageComponent setNameElement(StringType value) { 
13167      this.name = value;
13168      return this;
13169    }
13170
13171    /**
13172     * @return Relative path to the page.
13173     */
13174    public String getName() { 
13175      return this.name == null ? null : this.name.getValue();
13176    }
13177
13178    /**
13179     * @param value Relative path to the page.
13180     */
13181    public ManifestPageComponent setName(String value) { 
13182      if (this.name == null)
13183        this.name = new StringType();
13184      this.name.setValue(value);
13185      return this;
13186    }
13187
13188    /**
13189     * @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
13190     */
13191    public StringType getTitleElement() { 
13192      if (this.title == null)
13193        if (Configuration.errorOnAutoCreate())
13194          throw new Error("Attempt to auto-create ManifestPageComponent.title");
13195        else if (Configuration.doAutoCreate())
13196          this.title = new StringType(); // bb
13197      return this.title;
13198    }
13199
13200    public boolean hasTitleElement() { 
13201      return this.title != null && !this.title.isEmpty();
13202    }
13203
13204    public boolean hasTitle() { 
13205      return this.title != null && !this.title.isEmpty();
13206    }
13207
13208    /**
13209     * @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
13210     */
13211    public ManifestPageComponent setTitleElement(StringType value) { 
13212      this.title = value;
13213      return this;
13214    }
13215
13216    /**
13217     * @return Label for the page intended for human display.
13218     */
13219    public String getTitle() { 
13220      return this.title == null ? null : this.title.getValue();
13221    }
13222
13223    /**
13224     * @param value Label for the page intended for human display.
13225     */
13226    public ManifestPageComponent setTitle(String value) { 
13227      if (Utilities.noString(value))
13228        this.title = null;
13229      else {
13230        if (this.title == null)
13231          this.title = new StringType();
13232        this.title.setValue(value);
13233      }
13234      return this;
13235    }
13236
13237    /**
13238     * @return {@link #anchor} (The name of an anchor available on the page.)
13239     */
13240    public List<StringType> getAnchor() { 
13241      if (this.anchor == null)
13242        this.anchor = new ArrayList<StringType>();
13243      return this.anchor;
13244    }
13245
13246    /**
13247     * @return Returns a reference to <code>this</code> for easy method chaining
13248     */
13249    public ManifestPageComponent setAnchor(List<StringType> theAnchor) { 
13250      this.anchor = theAnchor;
13251      return this;
13252    }
13253
13254    public boolean hasAnchor() { 
13255      if (this.anchor == null)
13256        return false;
13257      for (StringType item : this.anchor)
13258        if (!item.isEmpty())
13259          return true;
13260      return false;
13261    }
13262
13263    /**
13264     * @return {@link #anchor} (The name of an anchor available on the page.)
13265     */
13266    public StringType addAnchorElement() {//2 
13267      StringType t = new StringType();
13268      if (this.anchor == null)
13269        this.anchor = new ArrayList<StringType>();
13270      this.anchor.add(t);
13271      return t;
13272    }
13273
13274    /**
13275     * @param value {@link #anchor} (The name of an anchor available on the page.)
13276     */
13277    public ManifestPageComponent addAnchor(String value) { //1
13278      StringType t = new StringType();
13279      t.setValue(value);
13280      if (this.anchor == null)
13281        this.anchor = new ArrayList<StringType>();
13282      this.anchor.add(t);
13283      return this;
13284    }
13285
13286    /**
13287     * @param value {@link #anchor} (The name of an anchor available on the page.)
13288     */
13289    public boolean hasAnchor(String value) { 
13290      if (this.anchor == null)
13291        return false;
13292      for (StringType v : this.anchor)
13293        if (v.getValue().equals(value)) // string
13294          return true;
13295      return false;
13296    }
13297
13298    protected void listChildren(List<Property> children) {
13299      super.listChildren(children);
13300      children.add(new Property("name", "string", "Relative path to the page.", 0, 1, name));
13301      children.add(new Property("title", "string", "Label for the page intended for human display.", 0, 1, title));
13302      children.add(new Property("anchor", "string", "The name of an anchor available on the page.", 0, java.lang.Integer.MAX_VALUE, anchor));
13303    }
13304
13305    @Override
13306    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
13307      switch (_hash) {
13308      case 3373707: /*name*/  return new Property("name", "string", "Relative path to the page.", 0, 1, name);
13309      case 110371416: /*title*/  return new Property("title", "string", "Label for the page intended for human display.", 0, 1, title);
13310      case -1413299531: /*anchor*/  return new Property("anchor", "string", "The name of an anchor available on the page.", 0, java.lang.Integer.MAX_VALUE, anchor);
13311      default: return super.getNamedProperty(_hash, _name, _checkValid);
13312      }
13313
13314    }
13315
13316    @Override
13317    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
13318      switch (hash) {
13319      case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
13320      case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
13321      case -1413299531: /*anchor*/ return this.anchor == null ? new Base[0] : this.anchor.toArray(new Base[this.anchor.size()]); // StringType
13322      default: return super.getProperty(hash, name, checkValid);
13323      }
13324
13325    }
13326
13327    @Override
13328    public Base setProperty(int hash, String name, Base value) throws FHIRException {
13329      switch (hash) {
13330      case 3373707: // name
13331        this.name = castToString(value); // StringType
13332        return value;
13333      case 110371416: // title
13334        this.title = castToString(value); // StringType
13335        return value;
13336      case -1413299531: // anchor
13337        this.getAnchor().add(castToString(value)); // StringType
13338        return value;
13339      default: return super.setProperty(hash, name, value);
13340      }
13341
13342    }
13343
13344    @Override
13345    public Base setProperty(String name, Base value) throws FHIRException {
13346      if (name.equals("name")) {
13347        this.name = castToString(value); // StringType
13348      } else if (name.equals("title")) {
13349        this.title = castToString(value); // StringType
13350      } else if (name.equals("anchor")) {
13351        this.getAnchor().add(castToString(value));
13352      } else
13353        return super.setProperty(name, value);
13354      return value;
13355    }
13356
13357    @Override
13358    public Base makeProperty(int hash, String name) throws FHIRException {
13359      switch (hash) {
13360      case 3373707:  return getNameElement();
13361      case 110371416:  return getTitleElement();
13362      case -1413299531:  return addAnchorElement();
13363      default: return super.makeProperty(hash, name);
13364      }
13365
13366    }
13367
13368    @Override
13369    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
13370      switch (hash) {
13371      case 3373707: /*name*/ return new String[] {"string"};
13372      case 110371416: /*title*/ return new String[] {"string"};
13373      case -1413299531: /*anchor*/ return new String[] {"string"};
13374      default: return super.getTypesForProperty(hash, name);
13375      }
13376
13377    }
13378
13379    @Override
13380    public Base addChild(String name) throws FHIRException {
13381      if (name.equals("name")) {
13382        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.name");
13383      }
13384      else if (name.equals("title")) {
13385        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.title");
13386      }
13387      else if (name.equals("anchor")) {
13388        throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.anchor");
13389      }
13390      else
13391        return super.addChild(name);
13392    }
13393
13394    public ManifestPageComponent copy() {
13395      ManifestPageComponent dst = new ManifestPageComponent();
13396      copyValues(dst);
13397      return dst;
13398    }
13399
13400    public void copyValues(ManifestPageComponent dst) {
13401      super.copyValues(dst);
13402      dst.name = name == null ? null : name.copy();
13403      dst.title = title == null ? null : title.copy();
13404      if (anchor != null) {
13405        dst.anchor = new ArrayList<StringType>();
13406        for (StringType i : anchor)
13407          dst.anchor.add(i.copy());
13408      };
13409    }
13410
13411    @Override
13412    public boolean equalsDeep(Base other_) {
13413      if (!super.equalsDeep(other_))
13414        return false;
13415      if (!(other_ instanceof ManifestPageComponent))
13416        return false;
13417      ManifestPageComponent o = (ManifestPageComponent) other_;
13418      return compareDeep(name, o.name, true) && compareDeep(title, o.title, true) && compareDeep(anchor, o.anchor, true)
13419          ;
13420    }
13421
13422    @Override
13423    public boolean equalsShallow(Base other_) {
13424      if (!super.equalsShallow(other_))
13425        return false;
13426      if (!(other_ instanceof ManifestPageComponent))
13427        return false;
13428      ManifestPageComponent o = (ManifestPageComponent) other_;
13429      return compareValues(name, o.name, true) && compareValues(title, o.title, true) && compareValues(anchor, o.anchor, true)
13430          ;
13431    }
13432
13433    public boolean isEmpty() {
13434      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, title, anchor);
13435    }
13436
13437    public String fhirType() {
13438      return "ImplementationGuide.manifest.page";
13439
13440    }
13441
13442  }
13443
13444  /**
13445   * 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.
13446   */
13447  @Child(name = "copyright", type = {MarkdownType.class}, order=0, min=0, max=1, modifier=false, summary=false)
13448  @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." )
13449  protected MarkdownType copyright;
13450
13451  /**
13452   * 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.
13453   */
13454  @Child(name = "packageId", type = {IdType.class}, order=1, min=1, max=1, modifier=false, summary=true)
13455  @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." )
13456  protected IdType packageId;
13457
13458  /**
13459   * The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.
13460   */
13461  @Child(name = "license", type = {CodeType.class}, order=2, min=0, max=1, modifier=false, summary=true)
13462  @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'." )
13463  @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/spdx-license")
13464  protected Enumeration<SPDXLicense> license;
13465
13466  /**
13467   * The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.0.1. for this version.
13468   */
13469  @Child(name = "fhirVersion", type = {CodeType.class}, order=3, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
13470  @Description(shortDefinition="FHIR Version(s) this Implementation Guide targets", formalDefinition="The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.0.1. for this version." )
13471  @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/FHIR-version")
13472  protected List<Enumeration<FHIRVersion>> fhirVersion;
13473
13474  /**
13475   * Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.
13476   */
13477  @Child(name = "dependsOn", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
13478  @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." )
13479  protected List<ImplementationGuideDependsOnComponent> dependsOn;
13480
13481  /**
13482   * A set of profiles that all resources covered by this implementation guide must conform to.
13483   */
13484  @Child(name = "global", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
13485  @Description(shortDefinition="Profiles that apply globally", formalDefinition="A set of profiles that all resources covered by this implementation guide must conform to." )
13486  protected List<ImplementationGuideGlobalComponent> global;
13487
13488  /**
13489   * The information needed by an IG publisher tool to publish the whole implementation guide.
13490   */
13491  @Child(name = "definition", type = {}, order=6, min=0, max=1, modifier=false, summary=false)
13492  @Description(shortDefinition="Information needed to build the IG", formalDefinition="The information needed by an IG publisher tool to publish the whole implementation guide." )
13493  protected ImplementationGuideDefinitionComponent definition;
13494
13495  /**
13496   * Information about an assembled implementation guide, created by the publication tooling.
13497   */
13498  @Child(name = "manifest", type = {}, order=7, min=0, max=1, modifier=false, summary=false)
13499  @Description(shortDefinition="Information about an assembled IG", formalDefinition="Information about an assembled implementation guide, created by the publication tooling." )
13500  protected ImplementationGuideManifestComponent manifest;
13501
13502  private static final long serialVersionUID = 415193005L;
13503
13504  /**
13505   * Constructor
13506   */
13507  public ImplementationGuide() {
13508    super();
13509  }
13510
13511  /**
13512   * Constructor
13513   */
13514  public ImplementationGuide(UriType url, StringType name, Enumeration<PublicationStatus> status, IdType packageId) {
13515    super();
13516    this.url = url;
13517    this.name = name;
13518    this.status = status;
13519    this.packageId = packageId;
13520  }
13521
13522  /**
13523   * @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
13524   */
13525  public UriType getUrlElement() { 
13526    if (this.url == null)
13527      if (Configuration.errorOnAutoCreate())
13528        throw new Error("Attempt to auto-create ImplementationGuide.url");
13529      else if (Configuration.doAutoCreate())
13530        this.url = new UriType(); // bb
13531    return this.url;
13532  }
13533
13534  public boolean hasUrlElement() { 
13535    return this.url != null && !this.url.isEmpty();
13536  }
13537
13538  public boolean hasUrl() { 
13539    return this.url != null && !this.url.isEmpty();
13540  }
13541
13542  /**
13543   * @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
13544   */
13545  public ImplementationGuide setUrlElement(UriType value) { 
13546    this.url = value;
13547    return this;
13548  }
13549
13550  /**
13551   * @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.
13552   */
13553  public String getUrl() { 
13554    return this.url == null ? null : this.url.getValue();
13555  }
13556
13557  /**
13558   * @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.
13559   */
13560  public ImplementationGuide setUrl(String value) { 
13561    if (this.url == null)
13562      this.url = new UriType();
13563    this.url.setValue(value);
13564    return this;
13565  }
13566
13567  /**
13568   * @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
13569   */
13570  public StringType getVersionElement() { 
13571    if (this.version == null)
13572      if (Configuration.errorOnAutoCreate())
13573        throw new Error("Attempt to auto-create ImplementationGuide.version");
13574      else if (Configuration.doAutoCreate())
13575        this.version = new StringType(); // bb
13576    return this.version;
13577  }
13578
13579  public boolean hasVersionElement() { 
13580    return this.version != null && !this.version.isEmpty();
13581  }
13582
13583  public boolean hasVersion() { 
13584    return this.version != null && !this.version.isEmpty();
13585  }
13586
13587  /**
13588   * @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
13589   */
13590  public ImplementationGuide setVersionElement(StringType value) { 
13591    this.version = value;
13592    return this;
13593  }
13594
13595  /**
13596   * @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.
13597   */
13598  public String getVersion() { 
13599    return this.version == null ? null : this.version.getValue();
13600  }
13601
13602  /**
13603   * @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.
13604   */
13605  public ImplementationGuide setVersion(String value) { 
13606    if (Utilities.noString(value))
13607      this.version = null;
13608    else {
13609      if (this.version == null)
13610        this.version = new StringType();
13611      this.version.setValue(value);
13612    }
13613    return this;
13614  }
13615
13616  /**
13617   * @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
13618   */
13619  public StringType getNameElement() { 
13620    if (this.name == null)
13621      if (Configuration.errorOnAutoCreate())
13622        throw new Error("Attempt to auto-create ImplementationGuide.name");
13623      else if (Configuration.doAutoCreate())
13624        this.name = new StringType(); // bb
13625    return this.name;
13626  }
13627
13628  public boolean hasNameElement() { 
13629    return this.name != null && !this.name.isEmpty();
13630  }
13631
13632  public boolean hasName() { 
13633    return this.name != null && !this.name.isEmpty();
13634  }
13635
13636  /**
13637   * @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
13638   */
13639  public ImplementationGuide setNameElement(StringType value) { 
13640    this.name = value;
13641    return this;
13642  }
13643
13644  /**
13645   * @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.
13646   */
13647  public String getName() { 
13648    return this.name == null ? null : this.name.getValue();
13649  }
13650
13651  /**
13652   * @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.
13653   */
13654  public ImplementationGuide setName(String value) { 
13655    if (this.name == null)
13656      this.name = new StringType();
13657    this.name.setValue(value);
13658    return this;
13659  }
13660
13661  /**
13662   * @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
13663   */
13664  public StringType getTitleElement() { 
13665    if (this.title == null)
13666      if (Configuration.errorOnAutoCreate())
13667        throw new Error("Attempt to auto-create ImplementationGuide.title");
13668      else if (Configuration.doAutoCreate())
13669        this.title = new StringType(); // bb
13670    return this.title;
13671  }
13672
13673  public boolean hasTitleElement() { 
13674    return this.title != null && !this.title.isEmpty();
13675  }
13676
13677  public boolean hasTitle() { 
13678    return this.title != null && !this.title.isEmpty();
13679  }
13680
13681  /**
13682   * @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
13683   */
13684  public ImplementationGuide setTitleElement(StringType value) { 
13685    this.title = value;
13686    return this;
13687  }
13688
13689  /**
13690   * @return A short, descriptive, user-friendly title for the implementation guide.
13691   */
13692  public String getTitle() { 
13693    return this.title == null ? null : this.title.getValue();
13694  }
13695
13696  /**
13697   * @param value A short, descriptive, user-friendly title for the implementation guide.
13698   */
13699  public ImplementationGuide setTitle(String value) { 
13700    if (Utilities.noString(value))
13701      this.title = null;
13702    else {
13703      if (this.title == null)
13704        this.title = new StringType();
13705      this.title.setValue(value);
13706    }
13707    return this;
13708  }
13709
13710  /**
13711   * @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
13712   */
13713  public Enumeration<PublicationStatus> getStatusElement() { 
13714    if (this.status == null)
13715      if (Configuration.errorOnAutoCreate())
13716        throw new Error("Attempt to auto-create ImplementationGuide.status");
13717      else if (Configuration.doAutoCreate())
13718        this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
13719    return this.status;
13720  }
13721
13722  public boolean hasStatusElement() { 
13723    return this.status != null && !this.status.isEmpty();
13724  }
13725
13726  public boolean hasStatus() { 
13727    return this.status != null && !this.status.isEmpty();
13728  }
13729
13730  /**
13731   * @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
13732   */
13733  public ImplementationGuide setStatusElement(Enumeration<PublicationStatus> value) { 
13734    this.status = value;
13735    return this;
13736  }
13737
13738  /**
13739   * @return The status of this implementation guide. Enables tracking the life-cycle of the content.
13740   */
13741  public PublicationStatus getStatus() { 
13742    return this.status == null ? null : this.status.getValue();
13743  }
13744
13745  /**
13746   * @param value The status of this implementation guide. Enables tracking the life-cycle of the content.
13747   */
13748  public ImplementationGuide setStatus(PublicationStatus value) { 
13749    if (this.status == null)
13750      this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
13751    this.status.setValue(value);
13752    return this;
13753  }
13754
13755  /**
13756   * @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
13757   */
13758  public BooleanType getExperimentalElement() { 
13759    if (this.experimental == null)
13760      if (Configuration.errorOnAutoCreate())
13761        throw new Error("Attempt to auto-create ImplementationGuide.experimental");
13762      else if (Configuration.doAutoCreate())
13763        this.experimental = new BooleanType(); // bb
13764    return this.experimental;
13765  }
13766
13767  public boolean hasExperimentalElement() { 
13768    return this.experimental != null && !this.experimental.isEmpty();
13769  }
13770
13771  public boolean hasExperimental() { 
13772    return this.experimental != null && !this.experimental.isEmpty();
13773  }
13774
13775  /**
13776   * @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
13777   */
13778  public ImplementationGuide setExperimentalElement(BooleanType value) { 
13779    this.experimental = value;
13780    return this;
13781  }
13782
13783  /**
13784   * @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.
13785   */
13786  public boolean getExperimental() { 
13787    return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
13788  }
13789
13790  /**
13791   * @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.
13792   */
13793  public ImplementationGuide setExperimental(boolean value) { 
13794    if (this.experimental == null)
13795      this.experimental = new BooleanType();
13796    this.experimental.setValue(value);
13797    return this;
13798  }
13799
13800  /**
13801   * @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
13802   */
13803  public DateTimeType getDateElement() { 
13804    if (this.date == null)
13805      if (Configuration.errorOnAutoCreate())
13806        throw new Error("Attempt to auto-create ImplementationGuide.date");
13807      else if (Configuration.doAutoCreate())
13808        this.date = new DateTimeType(); // bb
13809    return this.date;
13810  }
13811
13812  public boolean hasDateElement() { 
13813    return this.date != null && !this.date.isEmpty();
13814  }
13815
13816  public boolean hasDate() { 
13817    return this.date != null && !this.date.isEmpty();
13818  }
13819
13820  /**
13821   * @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
13822   */
13823  public ImplementationGuide setDateElement(DateTimeType value) { 
13824    this.date = value;
13825    return this;
13826  }
13827
13828  /**
13829   * @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.
13830   */
13831  public Date getDate() { 
13832    return this.date == null ? null : this.date.getValue();
13833  }
13834
13835  /**
13836   * @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.
13837   */
13838  public ImplementationGuide setDate(Date value) { 
13839    if (value == null)
13840      this.date = null;
13841    else {
13842      if (this.date == null)
13843        this.date = new DateTimeType();
13844      this.date.setValue(value);
13845    }
13846    return this;
13847  }
13848
13849  /**
13850   * @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
13851   */
13852  public StringType getPublisherElement() { 
13853    if (this.publisher == null)
13854      if (Configuration.errorOnAutoCreate())
13855        throw new Error("Attempt to auto-create ImplementationGuide.publisher");
13856      else if (Configuration.doAutoCreate())
13857        this.publisher = new StringType(); // bb
13858    return this.publisher;
13859  }
13860
13861  public boolean hasPublisherElement() { 
13862    return this.publisher != null && !this.publisher.isEmpty();
13863  }
13864
13865  public boolean hasPublisher() { 
13866    return this.publisher != null && !this.publisher.isEmpty();
13867  }
13868
13869  /**
13870   * @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
13871   */
13872  public ImplementationGuide setPublisherElement(StringType value) { 
13873    this.publisher = value;
13874    return this;
13875  }
13876
13877  /**
13878   * @return The name of the organization or individual that published the implementation guide.
13879   */
13880  public String getPublisher() { 
13881    return this.publisher == null ? null : this.publisher.getValue();
13882  }
13883
13884  /**
13885   * @param value The name of the organization or individual that published the implementation guide.
13886   */
13887  public ImplementationGuide setPublisher(String value) { 
13888    if (Utilities.noString(value))
13889      this.publisher = null;
13890    else {
13891      if (this.publisher == null)
13892        this.publisher = new StringType();
13893      this.publisher.setValue(value);
13894    }
13895    return this;
13896  }
13897
13898  /**
13899   * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
13900   */
13901  public List<ContactDetail> getContact() { 
13902    if (this.contact == null)
13903      this.contact = new ArrayList<ContactDetail>();
13904    return this.contact;
13905  }
13906
13907  /**
13908   * @return Returns a reference to <code>this</code> for easy method chaining
13909   */
13910  public ImplementationGuide setContact(List<ContactDetail> theContact) { 
13911    this.contact = theContact;
13912    return this;
13913  }
13914
13915  public boolean hasContact() { 
13916    if (this.contact == null)
13917      return false;
13918    for (ContactDetail item : this.contact)
13919      if (!item.isEmpty())
13920        return true;
13921    return false;
13922  }
13923
13924  public ContactDetail addContact() { //3
13925    ContactDetail t = new ContactDetail();
13926    if (this.contact == null)
13927      this.contact = new ArrayList<ContactDetail>();
13928    this.contact.add(t);
13929    return t;
13930  }
13931
13932  public ImplementationGuide addContact(ContactDetail t) { //3
13933    if (t == null)
13934      return this;
13935    if (this.contact == null)
13936      this.contact = new ArrayList<ContactDetail>();
13937    this.contact.add(t);
13938    return this;
13939  }
13940
13941  /**
13942   * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist
13943   */
13944  public ContactDetail getContactFirstRep() { 
13945    if (getContact().isEmpty()) {
13946      addContact();
13947    }
13948    return getContact().get(0);
13949  }
13950
13951  /**
13952   * @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
13953   */
13954  public MarkdownType getDescriptionElement() { 
13955    if (this.description == null)
13956      if (Configuration.errorOnAutoCreate())
13957        throw new Error("Attempt to auto-create ImplementationGuide.description");
13958      else if (Configuration.doAutoCreate())
13959        this.description = new MarkdownType(); // bb
13960    return this.description;
13961  }
13962
13963  public boolean hasDescriptionElement() { 
13964    return this.description != null && !this.description.isEmpty();
13965  }
13966
13967  public boolean hasDescription() { 
13968    return this.description != null && !this.description.isEmpty();
13969  }
13970
13971  /**
13972   * @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
13973   */
13974  public ImplementationGuide setDescriptionElement(MarkdownType value) { 
13975    this.description = value;
13976    return this;
13977  }
13978
13979  /**
13980   * @return A free text natural language description of the implementation guide from a consumer's perspective.
13981   */
13982  public String getDescription() { 
13983    return this.description == null ? null : this.description.getValue();
13984  }
13985
13986  /**
13987   * @param value A free text natural language description of the implementation guide from a consumer's perspective.
13988   */
13989  public ImplementationGuide setDescription(String value) { 
13990    if (value == null)
13991      this.description = null;
13992    else {
13993      if (this.description == null)
13994        this.description = new MarkdownType();
13995      this.description.setValue(value);
13996    }
13997    return this;
13998  }
13999
14000  /**
14001   * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate implementation guide instances.)
14002   */
14003  public List<UsageContext> getUseContext() { 
14004    if (this.useContext == null)
14005      this.useContext = new ArrayList<UsageContext>();
14006    return this.useContext;
14007  }
14008
14009  /**
14010   * @return Returns a reference to <code>this</code> for easy method chaining
14011   */
14012  public ImplementationGuide setUseContext(List<UsageContext> theUseContext) { 
14013    this.useContext = theUseContext;
14014    return this;
14015  }
14016
14017  public boolean hasUseContext() { 
14018    if (this.useContext == null)
14019      return false;
14020    for (UsageContext item : this.useContext)
14021      if (!item.isEmpty())
14022        return true;
14023    return false;
14024  }
14025
14026  public UsageContext addUseContext() { //3
14027    UsageContext t = new UsageContext();
14028    if (this.useContext == null)
14029      this.useContext = new ArrayList<UsageContext>();
14030    this.useContext.add(t);
14031    return t;
14032  }
14033
14034  public ImplementationGuide addUseContext(UsageContext t) { //3
14035    if (t == null)
14036      return this;
14037    if (this.useContext == null)
14038      this.useContext = new ArrayList<UsageContext>();
14039    this.useContext.add(t);
14040    return this;
14041  }
14042
14043  /**
14044   * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist
14045   */
14046  public UsageContext getUseContextFirstRep() { 
14047    if (getUseContext().isEmpty()) {
14048      addUseContext();
14049    }
14050    return getUseContext().get(0);
14051  }
14052
14053  /**
14054   * @return {@link #jurisdiction} (A legal or geographic region in which the implementation guide is intended to be used.)
14055   */
14056  public List<CodeableConcept> getJurisdiction() { 
14057    if (this.jurisdiction == null)
14058      this.jurisdiction = new ArrayList<CodeableConcept>();
14059    return this.jurisdiction;
14060  }
14061
14062  /**
14063   * @return Returns a reference to <code>this</code> for easy method chaining
14064   */
14065  public ImplementationGuide setJurisdiction(List<CodeableConcept> theJurisdiction) { 
14066    this.jurisdiction = theJurisdiction;
14067    return this;
14068  }
14069
14070  public boolean hasJurisdiction() { 
14071    if (this.jurisdiction == null)
14072      return false;
14073    for (CodeableConcept item : this.jurisdiction)
14074      if (!item.isEmpty())
14075        return true;
14076    return false;
14077  }
14078
14079  public CodeableConcept addJurisdiction() { //3
14080    CodeableConcept t = new CodeableConcept();
14081    if (this.jurisdiction == null)
14082      this.jurisdiction = new ArrayList<CodeableConcept>();
14083    this.jurisdiction.add(t);
14084    return t;
14085  }
14086
14087  public ImplementationGuide addJurisdiction(CodeableConcept t) { //3
14088    if (t == null)
14089      return this;
14090    if (this.jurisdiction == null)
14091      this.jurisdiction = new ArrayList<CodeableConcept>();
14092    this.jurisdiction.add(t);
14093    return this;
14094  }
14095
14096  /**
14097   * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist
14098   */
14099  public CodeableConcept getJurisdictionFirstRep() { 
14100    if (getJurisdiction().isEmpty()) {
14101      addJurisdiction();
14102    }
14103    return getJurisdiction().get(0);
14104  }
14105
14106  /**
14107   * @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
14108   */
14109  public MarkdownType getCopyrightElement() { 
14110    if (this.copyright == null)
14111      if (Configuration.errorOnAutoCreate())
14112        throw new Error("Attempt to auto-create ImplementationGuide.copyright");
14113      else if (Configuration.doAutoCreate())
14114        this.copyright = new MarkdownType(); // bb
14115    return this.copyright;
14116  }
14117
14118  public boolean hasCopyrightElement() { 
14119    return this.copyright != null && !this.copyright.isEmpty();
14120  }
14121
14122  public boolean hasCopyright() { 
14123    return this.copyright != null && !this.copyright.isEmpty();
14124  }
14125
14126  /**
14127   * @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
14128   */
14129  public ImplementationGuide setCopyrightElement(MarkdownType value) { 
14130    this.copyright = value;
14131    return this;
14132  }
14133
14134  /**
14135   * @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.
14136   */
14137  public String getCopyright() { 
14138    return this.copyright == null ? null : this.copyright.getValue();
14139  }
14140
14141  /**
14142   * @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.
14143   */
14144  public ImplementationGuide setCopyright(String value) { 
14145    if (value == null)
14146      this.copyright = null;
14147    else {
14148      if (this.copyright == null)
14149        this.copyright = new MarkdownType();
14150      this.copyright.setValue(value);
14151    }
14152    return this;
14153  }
14154
14155  /**
14156   * @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
14157   */
14158  public IdType getPackageIdElement() { 
14159    if (this.packageId == null)
14160      if (Configuration.errorOnAutoCreate())
14161        throw new Error("Attempt to auto-create ImplementationGuide.packageId");
14162      else if (Configuration.doAutoCreate())
14163        this.packageId = new IdType(); // bb
14164    return this.packageId;
14165  }
14166
14167  public boolean hasPackageIdElement() { 
14168    return this.packageId != null && !this.packageId.isEmpty();
14169  }
14170
14171  public boolean hasPackageId() { 
14172    return this.packageId != null && !this.packageId.isEmpty();
14173  }
14174
14175  /**
14176   * @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
14177   */
14178  public ImplementationGuide setPackageIdElement(IdType value) { 
14179    this.packageId = value;
14180    return this;
14181  }
14182
14183  /**
14184   * @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.
14185   */
14186  public String getPackageId() { 
14187    return this.packageId == null ? null : this.packageId.getValue();
14188  }
14189
14190  /**
14191   * @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.
14192   */
14193  public ImplementationGuide setPackageId(String value) { 
14194    if (this.packageId == null)
14195      this.packageId = new IdType();
14196    this.packageId.setValue(value);
14197    return this;
14198  }
14199
14200  /**
14201   * @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
14202   */
14203  public Enumeration<SPDXLicense> getLicenseElement() { 
14204    if (this.license == null)
14205      if (Configuration.errorOnAutoCreate())
14206        throw new Error("Attempt to auto-create ImplementationGuide.license");
14207      else if (Configuration.doAutoCreate())
14208        this.license = new Enumeration<SPDXLicense>(new SPDXLicenseEnumFactory()); // bb
14209    return this.license;
14210  }
14211
14212  public boolean hasLicenseElement() { 
14213    return this.license != null && !this.license.isEmpty();
14214  }
14215
14216  public boolean hasLicense() { 
14217    return this.license != null && !this.license.isEmpty();
14218  }
14219
14220  /**
14221   * @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
14222   */
14223  public ImplementationGuide setLicenseElement(Enumeration<SPDXLicense> value) { 
14224    this.license = value;
14225    return this;
14226  }
14227
14228  /**
14229   * @return The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.
14230   */
14231  public SPDXLicense getLicense() { 
14232    return this.license == null ? null : this.license.getValue();
14233  }
14234
14235  /**
14236   * @param value The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.
14237   */
14238  public ImplementationGuide setLicense(SPDXLicense value) { 
14239    if (value == null)
14240      this.license = null;
14241    else {
14242      if (this.license == null)
14243        this.license = new Enumeration<SPDXLicense>(new SPDXLicenseEnumFactory());
14244      this.license.setValue(value);
14245    }
14246    return this;
14247  }
14248
14249  /**
14250   * @return {@link #fhirVersion} (The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.0.1. for this version.)
14251   */
14252  public List<Enumeration<FHIRVersion>> getFhirVersion() { 
14253    if (this.fhirVersion == null)
14254      this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
14255    return this.fhirVersion;
14256  }
14257
14258  /**
14259   * @return Returns a reference to <code>this</code> for easy method chaining
14260   */
14261  public ImplementationGuide setFhirVersion(List<Enumeration<FHIRVersion>> theFhirVersion) { 
14262    this.fhirVersion = theFhirVersion;
14263    return this;
14264  }
14265
14266  public boolean hasFhirVersion() { 
14267    if (this.fhirVersion == null)
14268      return false;
14269    for (Enumeration<FHIRVersion> item : this.fhirVersion)
14270      if (!item.isEmpty())
14271        return true;
14272    return false;
14273  }
14274
14275  /**
14276   * @return {@link #fhirVersion} (The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.0.1. for this version.)
14277   */
14278  public Enumeration<FHIRVersion> addFhirVersionElement() {//2 
14279    Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
14280    if (this.fhirVersion == null)
14281      this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
14282    this.fhirVersion.add(t);
14283    return t;
14284  }
14285
14286  /**
14287   * @param value {@link #fhirVersion} (The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.0.1. for this version.)
14288   */
14289  public ImplementationGuide addFhirVersion(FHIRVersion value) { //1
14290    Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
14291    t.setValue(value);
14292    if (this.fhirVersion == null)
14293      this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
14294    this.fhirVersion.add(t);
14295    return this;
14296  }
14297
14298  /**
14299   * @param value {@link #fhirVersion} (The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.0.1. for this version.)
14300   */
14301  public boolean hasFhirVersion(FHIRVersion value) { 
14302    if (this.fhirVersion == null)
14303      return false;
14304    for (Enumeration<FHIRVersion> v : this.fhirVersion)
14305      if (v.getValue().equals(value)) // code
14306        return true;
14307    return false;
14308  }
14309
14310  /**
14311   * @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.)
14312   */
14313  public List<ImplementationGuideDependsOnComponent> getDependsOn() { 
14314    if (this.dependsOn == null)
14315      this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
14316    return this.dependsOn;
14317  }
14318
14319  /**
14320   * @return Returns a reference to <code>this</code> for easy method chaining
14321   */
14322  public ImplementationGuide setDependsOn(List<ImplementationGuideDependsOnComponent> theDependsOn) { 
14323    this.dependsOn = theDependsOn;
14324    return this;
14325  }
14326
14327  public boolean hasDependsOn() { 
14328    if (this.dependsOn == null)
14329      return false;
14330    for (ImplementationGuideDependsOnComponent item : this.dependsOn)
14331      if (!item.isEmpty())
14332        return true;
14333    return false;
14334  }
14335
14336  public ImplementationGuideDependsOnComponent addDependsOn() { //3
14337    ImplementationGuideDependsOnComponent t = new ImplementationGuideDependsOnComponent();
14338    if (this.dependsOn == null)
14339      this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
14340    this.dependsOn.add(t);
14341    return t;
14342  }
14343
14344  public ImplementationGuide addDependsOn(ImplementationGuideDependsOnComponent t) { //3
14345    if (t == null)
14346      return this;
14347    if (this.dependsOn == null)
14348      this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
14349    this.dependsOn.add(t);
14350    return this;
14351  }
14352
14353  /**
14354   * @return The first repetition of repeating field {@link #dependsOn}, creating it if it does not already exist
14355   */
14356  public ImplementationGuideDependsOnComponent getDependsOnFirstRep() { 
14357    if (getDependsOn().isEmpty()) {
14358      addDependsOn();
14359    }
14360    return getDependsOn().get(0);
14361  }
14362
14363  /**
14364   * @return {@link #global} (A set of profiles that all resources covered by this implementation guide must conform to.)
14365   */
14366  public List<ImplementationGuideGlobalComponent> getGlobal() { 
14367    if (this.global == null)
14368      this.global = new ArrayList<ImplementationGuideGlobalComponent>();
14369    return this.global;
14370  }
14371
14372  /**
14373   * @return Returns a reference to <code>this</code> for easy method chaining
14374   */
14375  public ImplementationGuide setGlobal(List<ImplementationGuideGlobalComponent> theGlobal) { 
14376    this.global = theGlobal;
14377    return this;
14378  }
14379
14380  public boolean hasGlobal() { 
14381    if (this.global == null)
14382      return false;
14383    for (ImplementationGuideGlobalComponent item : this.global)
14384      if (!item.isEmpty())
14385        return true;
14386    return false;
14387  }
14388
14389  public ImplementationGuideGlobalComponent addGlobal() { //3
14390    ImplementationGuideGlobalComponent t = new ImplementationGuideGlobalComponent();
14391    if (this.global == null)
14392      this.global = new ArrayList<ImplementationGuideGlobalComponent>();
14393    this.global.add(t);
14394    return t;
14395  }
14396
14397  public ImplementationGuide addGlobal(ImplementationGuideGlobalComponent t) { //3
14398    if (t == null)
14399      return this;
14400    if (this.global == null)
14401      this.global = new ArrayList<ImplementationGuideGlobalComponent>();
14402    this.global.add(t);
14403    return this;
14404  }
14405
14406  /**
14407   * @return The first repetition of repeating field {@link #global}, creating it if it does not already exist
14408   */
14409  public ImplementationGuideGlobalComponent getGlobalFirstRep() { 
14410    if (getGlobal().isEmpty()) {
14411      addGlobal();
14412    }
14413    return getGlobal().get(0);
14414  }
14415
14416  /**
14417   * @return {@link #definition} (The information needed by an IG publisher tool to publish the whole implementation guide.)
14418   */
14419  public ImplementationGuideDefinitionComponent getDefinition() { 
14420    if (this.definition == null)
14421      if (Configuration.errorOnAutoCreate())
14422        throw new Error("Attempt to auto-create ImplementationGuide.definition");
14423      else if (Configuration.doAutoCreate())
14424        this.definition = new ImplementationGuideDefinitionComponent(); // cc
14425    return this.definition;
14426  }
14427
14428  public boolean hasDefinition() { 
14429    return this.definition != null && !this.definition.isEmpty();
14430  }
14431
14432  /**
14433   * @param value {@link #definition} (The information needed by an IG publisher tool to publish the whole implementation guide.)
14434   */
14435  public ImplementationGuide setDefinition(ImplementationGuideDefinitionComponent value) { 
14436    this.definition = value;
14437    return this;
14438  }
14439
14440  /**
14441   * @return {@link #manifest} (Information about an assembled implementation guide, created by the publication tooling.)
14442   */
14443  public ImplementationGuideManifestComponent getManifest() { 
14444    if (this.manifest == null)
14445      if (Configuration.errorOnAutoCreate())
14446        throw new Error("Attempt to auto-create ImplementationGuide.manifest");
14447      else if (Configuration.doAutoCreate())
14448        this.manifest = new ImplementationGuideManifestComponent(); // cc
14449    return this.manifest;
14450  }
14451
14452  public boolean hasManifest() { 
14453    return this.manifest != null && !this.manifest.isEmpty();
14454  }
14455
14456  /**
14457   * @param value {@link #manifest} (Information about an assembled implementation guide, created by the publication tooling.)
14458   */
14459  public ImplementationGuide setManifest(ImplementationGuideManifestComponent value) { 
14460    this.manifest = value;
14461    return this;
14462  }
14463
14464  protected void listChildren(List<Property> children) {
14465    super.listChildren(children);
14466    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));
14467    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));
14468    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));
14469    children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the implementation guide.", 0, 1, title));
14470    children.add(new Property("status", "code", "The status of this implementation guide. Enables tracking the life-cycle of the content.", 0, 1, status));
14471    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));
14472    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));
14473    children.add(new Property("publisher", "string", "The name of the organization or individual that published the implementation guide.", 0, 1, publisher));
14474    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));
14475    children.add(new Property("description", "markdown", "A free text natural language description of the implementation guide from a consumer's perspective.", 0, 1, description));
14476    children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate implementation guide instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
14477    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));
14478    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));
14479    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));
14480    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));
14481    children.add(new Property("fhirVersion", "code", "The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.0.1. for this version.", 0, java.lang.Integer.MAX_VALUE, fhirVersion));
14482    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));
14483    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));
14484    children.add(new Property("definition", "", "The information needed by an IG publisher tool to publish the whole implementation guide.", 0, 1, definition));
14485    children.add(new Property("manifest", "", "Information about an assembled implementation guide, created by the publication tooling.", 0, 1, manifest));
14486  }
14487
14488  @Override
14489  public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
14490    switch (_hash) {
14491    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);
14492    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);
14493    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);
14494    case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the implementation guide.", 0, 1, title);
14495    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);
14496    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);
14497    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);
14498    case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual that published the implementation guide.", 0, 1, publisher);
14499    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);
14500    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);
14501    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 contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate implementation guide instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
14502    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);
14503    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);
14504    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);
14505    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);
14506    case 461006061: /*fhirVersion*/  return new Property("fhirVersion", "code", "The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.0.1. for this version.", 0, java.lang.Integer.MAX_VALUE, fhirVersion);
14507    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);
14508    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);
14509    case -1014418093: /*definition*/  return new Property("definition", "", "The information needed by an IG publisher tool to publish the whole implementation guide.", 0, 1, definition);
14510    case 130625071: /*manifest*/  return new Property("manifest", "", "Information about an assembled implementation guide, created by the publication tooling.", 0, 1, manifest);
14511    default: return super.getNamedProperty(_hash, _name, _checkValid);
14512    }
14513
14514  }
14515
14516  @Override
14517  public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
14518    switch (hash) {
14519    case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
14520    case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
14521    case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
14522    case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
14523    case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
14524    case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
14525    case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
14526    case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
14527    case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
14528    case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
14529    case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
14530    case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
14531    case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
14532    case 1802060801: /*packageId*/ return this.packageId == null ? new Base[0] : new Base[] {this.packageId}; // IdType
14533    case 166757441: /*license*/ return this.license == null ? new Base[0] : new Base[] {this.license}; // Enumeration<SPDXLicense>
14534    case 461006061: /*fhirVersion*/ return this.fhirVersion == null ? new Base[0] : this.fhirVersion.toArray(new Base[this.fhirVersion.size()]); // Enumeration<FHIRVersion>
14535    case -1109214266: /*dependsOn*/ return this.dependsOn == null ? new Base[0] : this.dependsOn.toArray(new Base[this.dependsOn.size()]); // ImplementationGuideDependsOnComponent
14536    case -1243020381: /*global*/ return this.global == null ? new Base[0] : this.global.toArray(new Base[this.global.size()]); // ImplementationGuideGlobalComponent
14537    case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : new Base[] {this.definition}; // ImplementationGuideDefinitionComponent
14538    case 130625071: /*manifest*/ return this.manifest == null ? new Base[0] : new Base[] {this.manifest}; // ImplementationGuideManifestComponent
14539    default: return super.getProperty(hash, name, checkValid);
14540    }
14541
14542  }
14543
14544  @Override
14545  public Base setProperty(int hash, String name, Base value) throws FHIRException {
14546    switch (hash) {
14547    case 116079: // url
14548      this.url = castToUri(value); // UriType
14549      return value;
14550    case 351608024: // version
14551      this.version = castToString(value); // StringType
14552      return value;
14553    case 3373707: // name
14554      this.name = castToString(value); // StringType
14555      return value;
14556    case 110371416: // title
14557      this.title = castToString(value); // StringType
14558      return value;
14559    case -892481550: // status
14560      value = new PublicationStatusEnumFactory().fromType(castToCode(value));
14561      this.status = (Enumeration) value; // Enumeration<PublicationStatus>
14562      return value;
14563    case -404562712: // experimental
14564      this.experimental = castToBoolean(value); // BooleanType
14565      return value;
14566    case 3076014: // date
14567      this.date = castToDateTime(value); // DateTimeType
14568      return value;
14569    case 1447404028: // publisher
14570      this.publisher = castToString(value); // StringType
14571      return value;
14572    case 951526432: // contact
14573      this.getContact().add(castToContactDetail(value)); // ContactDetail
14574      return value;
14575    case -1724546052: // description
14576      this.description = castToMarkdown(value); // MarkdownType
14577      return value;
14578    case -669707736: // useContext
14579      this.getUseContext().add(castToUsageContext(value)); // UsageContext
14580      return value;
14581    case -507075711: // jurisdiction
14582      this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept
14583      return value;
14584    case 1522889671: // copyright
14585      this.copyright = castToMarkdown(value); // MarkdownType
14586      return value;
14587    case 1802060801: // packageId
14588      this.packageId = castToId(value); // IdType
14589      return value;
14590    case 166757441: // license
14591      value = new SPDXLicenseEnumFactory().fromType(castToCode(value));
14592      this.license = (Enumeration) value; // Enumeration<SPDXLicense>
14593      return value;
14594    case 461006061: // fhirVersion
14595      value = new FHIRVersionEnumFactory().fromType(castToCode(value));
14596      this.getFhirVersion().add((Enumeration) value); // Enumeration<FHIRVersion>
14597      return value;
14598    case -1109214266: // dependsOn
14599      this.getDependsOn().add((ImplementationGuideDependsOnComponent) value); // ImplementationGuideDependsOnComponent
14600      return value;
14601    case -1243020381: // global
14602      this.getGlobal().add((ImplementationGuideGlobalComponent) value); // ImplementationGuideGlobalComponent
14603      return value;
14604    case -1014418093: // definition
14605      this.definition = (ImplementationGuideDefinitionComponent) value; // ImplementationGuideDefinitionComponent
14606      return value;
14607    case 130625071: // manifest
14608      this.manifest = (ImplementationGuideManifestComponent) value; // ImplementationGuideManifestComponent
14609      return value;
14610    default: return super.setProperty(hash, name, value);
14611    }
14612
14613  }
14614
14615  @Override
14616  public Base setProperty(String name, Base value) throws FHIRException {
14617    if (name.equals("url")) {
14618      this.url = castToUri(value); // UriType
14619    } else if (name.equals("version")) {
14620      this.version = castToString(value); // StringType
14621    } else if (name.equals("name")) {
14622      this.name = castToString(value); // StringType
14623    } else if (name.equals("title")) {
14624      this.title = castToString(value); // StringType
14625    } else if (name.equals("status")) {
14626      value = new PublicationStatusEnumFactory().fromType(castToCode(value));
14627      this.status = (Enumeration) value; // Enumeration<PublicationStatus>
14628    } else if (name.equals("experimental")) {
14629      this.experimental = castToBoolean(value); // BooleanType
14630    } else if (name.equals("date")) {
14631      this.date = castToDateTime(value); // DateTimeType
14632    } else if (name.equals("publisher")) {
14633      this.publisher = castToString(value); // StringType
14634    } else if (name.equals("contact")) {
14635      this.getContact().add(castToContactDetail(value));
14636    } else if (name.equals("description")) {
14637      this.description = castToMarkdown(value); // MarkdownType
14638    } else if (name.equals("useContext")) {
14639      this.getUseContext().add(castToUsageContext(value));
14640    } else if (name.equals("jurisdiction")) {
14641      this.getJurisdiction().add(castToCodeableConcept(value));
14642    } else if (name.equals("copyright")) {
14643      this.copyright = castToMarkdown(value); // MarkdownType
14644    } else if (name.equals("packageId")) {
14645      this.packageId = castToId(value); // IdType
14646    } else if (name.equals("license")) {
14647      value = new SPDXLicenseEnumFactory().fromType(castToCode(value));
14648      this.license = (Enumeration) value; // Enumeration<SPDXLicense>
14649    } else if (name.equals("fhirVersion")) {
14650      value = new FHIRVersionEnumFactory().fromType(castToCode(value));
14651      this.getFhirVersion().add((Enumeration) value);
14652    } else if (name.equals("dependsOn")) {
14653      this.getDependsOn().add((ImplementationGuideDependsOnComponent) value);
14654    } else if (name.equals("global")) {
14655      this.getGlobal().add((ImplementationGuideGlobalComponent) value);
14656    } else if (name.equals("definition")) {
14657      this.definition = (ImplementationGuideDefinitionComponent) value; // ImplementationGuideDefinitionComponent
14658    } else if (name.equals("manifest")) {
14659      this.manifest = (ImplementationGuideManifestComponent) value; // ImplementationGuideManifestComponent
14660    } else
14661      return super.setProperty(name, value);
14662    return value;
14663  }
14664
14665  @Override
14666  public Base makeProperty(int hash, String name) throws FHIRException {
14667    switch (hash) {
14668    case 116079:  return getUrlElement();
14669    case 351608024:  return getVersionElement();
14670    case 3373707:  return getNameElement();
14671    case 110371416:  return getTitleElement();
14672    case -892481550:  return getStatusElement();
14673    case -404562712:  return getExperimentalElement();
14674    case 3076014:  return getDateElement();
14675    case 1447404028:  return getPublisherElement();
14676    case 951526432:  return addContact(); 
14677    case -1724546052:  return getDescriptionElement();
14678    case -669707736:  return addUseContext(); 
14679    case -507075711:  return addJurisdiction(); 
14680    case 1522889671:  return getCopyrightElement();
14681    case 1802060801:  return getPackageIdElement();
14682    case 166757441:  return getLicenseElement();
14683    case 461006061:  return addFhirVersionElement();
14684    case -1109214266:  return addDependsOn(); 
14685    case -1243020381:  return addGlobal(); 
14686    case -1014418093:  return getDefinition(); 
14687    case 130625071:  return getManifest(); 
14688    default: return super.makeProperty(hash, name);
14689    }
14690
14691  }
14692
14693  @Override
14694  public String[] getTypesForProperty(int hash, String name) throws FHIRException {
14695    switch (hash) {
14696    case 116079: /*url*/ return new String[] {"uri"};
14697    case 351608024: /*version*/ return new String[] {"string"};
14698    case 3373707: /*name*/ return new String[] {"string"};
14699    case 110371416: /*title*/ return new String[] {"string"};
14700    case -892481550: /*status*/ return new String[] {"code"};
14701    case -404562712: /*experimental*/ return new String[] {"boolean"};
14702    case 3076014: /*date*/ return new String[] {"dateTime"};
14703    case 1447404028: /*publisher*/ return new String[] {"string"};
14704    case 951526432: /*contact*/ return new String[] {"ContactDetail"};
14705    case -1724546052: /*description*/ return new String[] {"markdown"};
14706    case -669707736: /*useContext*/ return new String[] {"UsageContext"};
14707    case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
14708    case 1522889671: /*copyright*/ return new String[] {"markdown"};
14709    case 1802060801: /*packageId*/ return new String[] {"id"};
14710    case 166757441: /*license*/ return new String[] {"code"};
14711    case 461006061: /*fhirVersion*/ return new String[] {"code"};
14712    case -1109214266: /*dependsOn*/ return new String[] {};
14713    case -1243020381: /*global*/ return new String[] {};
14714    case -1014418093: /*definition*/ return new String[] {};
14715    case 130625071: /*manifest*/ return new String[] {};
14716    default: return super.getTypesForProperty(hash, name);
14717    }
14718
14719  }
14720
14721  @Override
14722  public Base addChild(String name) throws FHIRException {
14723    if (name.equals("url")) {
14724      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.url");
14725    }
14726    else if (name.equals("version")) {
14727      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.version");
14728    }
14729    else if (name.equals("name")) {
14730      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.name");
14731    }
14732    else if (name.equals("title")) {
14733      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.title");
14734    }
14735    else if (name.equals("status")) {
14736      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.status");
14737    }
14738    else if (name.equals("experimental")) {
14739      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.experimental");
14740    }
14741    else if (name.equals("date")) {
14742      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.date");
14743    }
14744    else if (name.equals("publisher")) {
14745      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.publisher");
14746    }
14747    else if (name.equals("contact")) {
14748      return addContact();
14749    }
14750    else if (name.equals("description")) {
14751      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.description");
14752    }
14753    else if (name.equals("useContext")) {
14754      return addUseContext();
14755    }
14756    else if (name.equals("jurisdiction")) {
14757      return addJurisdiction();
14758    }
14759    else if (name.equals("copyright")) {
14760      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.copyright");
14761    }
14762    else if (name.equals("packageId")) {
14763      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.packageId");
14764    }
14765    else if (name.equals("license")) {
14766      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.license");
14767    }
14768    else if (name.equals("fhirVersion")) {
14769      throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.fhirVersion");
14770    }
14771    else if (name.equals("dependsOn")) {
14772      return addDependsOn();
14773    }
14774    else if (name.equals("global")) {
14775      return addGlobal();
14776    }
14777    else if (name.equals("definition")) {
14778      this.definition = new ImplementationGuideDefinitionComponent();
14779      return this.definition;
14780    }
14781    else if (name.equals("manifest")) {
14782      this.manifest = new ImplementationGuideManifestComponent();
14783      return this.manifest;
14784    }
14785    else
14786      return super.addChild(name);
14787  }
14788
14789  public String fhirType() {
14790    return "ImplementationGuide";
14791
14792  }
14793
14794  public ImplementationGuide copy() {
14795    ImplementationGuide dst = new ImplementationGuide();
14796    copyValues(dst);
14797    return dst;
14798  }
14799
14800  public void copyValues(ImplementationGuide dst) {
14801    super.copyValues(dst);
14802    dst.url = url == null ? null : url.copy();
14803    dst.version = version == null ? null : version.copy();
14804    dst.name = name == null ? null : name.copy();
14805    dst.title = title == null ? null : title.copy();
14806    dst.status = status == null ? null : status.copy();
14807    dst.experimental = experimental == null ? null : experimental.copy();
14808    dst.date = date == null ? null : date.copy();
14809    dst.publisher = publisher == null ? null : publisher.copy();
14810    if (contact != null) {
14811      dst.contact = new ArrayList<ContactDetail>();
14812      for (ContactDetail i : contact)
14813        dst.contact.add(i.copy());
14814    };
14815    dst.description = description == null ? null : description.copy();
14816    if (useContext != null) {
14817      dst.useContext = new ArrayList<UsageContext>();
14818      for (UsageContext i : useContext)
14819        dst.useContext.add(i.copy());
14820    };
14821    if (jurisdiction != null) {
14822      dst.jurisdiction = new ArrayList<CodeableConcept>();
14823      for (CodeableConcept i : jurisdiction)
14824        dst.jurisdiction.add(i.copy());
14825    };
14826    dst.copyright = copyright == null ? null : copyright.copy();
14827    dst.packageId = packageId == null ? null : packageId.copy();
14828    dst.license = license == null ? null : license.copy();
14829    if (fhirVersion != null) {
14830      dst.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
14831      for (Enumeration<FHIRVersion> i : fhirVersion)
14832        dst.fhirVersion.add(i.copy());
14833    };
14834    if (dependsOn != null) {
14835      dst.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
14836      for (ImplementationGuideDependsOnComponent i : dependsOn)
14837        dst.dependsOn.add(i.copy());
14838    };
14839    if (global != null) {
14840      dst.global = new ArrayList<ImplementationGuideGlobalComponent>();
14841      for (ImplementationGuideGlobalComponent i : global)
14842        dst.global.add(i.copy());
14843    };
14844    dst.definition = definition == null ? null : definition.copy();
14845    dst.manifest = manifest == null ? null : manifest.copy();
14846  }
14847
14848  protected ImplementationGuide typedCopy() {
14849    return copy();
14850  }
14851
14852  @Override
14853  public boolean equalsDeep(Base other_) {
14854    if (!super.equalsDeep(other_))
14855      return false;
14856    if (!(other_ instanceof ImplementationGuide))
14857      return false;
14858    ImplementationGuide o = (ImplementationGuide) other_;
14859    return compareDeep(copyright, o.copyright, true) && compareDeep(packageId, o.packageId, true) && compareDeep(license, o.license, true)
14860        && compareDeep(fhirVersion, o.fhirVersion, true) && compareDeep(dependsOn, o.dependsOn, true) && compareDeep(global, o.global, true)
14861        && compareDeep(definition, o.definition, true) && compareDeep(manifest, o.manifest, true);
14862  }
14863
14864  @Override
14865  public boolean equalsShallow(Base other_) {
14866    if (!super.equalsShallow(other_))
14867      return false;
14868    if (!(other_ instanceof ImplementationGuide))
14869      return false;
14870    ImplementationGuide o = (ImplementationGuide) other_;
14871    return compareValues(copyright, o.copyright, true) && compareValues(packageId, o.packageId, true) && compareValues(license, o.license, true)
14872        && compareValues(fhirVersion, o.fhirVersion, true);
14873  }
14874
14875  public boolean isEmpty() {
14876    return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(copyright, packageId, license
14877        , fhirVersion, dependsOn, global, definition, manifest);
14878  }
14879
14880  @Override
14881  public ResourceType getResourceType() {
14882    return ResourceType.ImplementationGuide;
14883  }
14884
14885  /**
14886   * Search parameter: <b>date</b>
14887   * <p>
14888   * Description: <b>The implementation guide publication date</b><br>
14889   * Type: <b>date</b><br>
14890   * Path: <b>ImplementationGuide.date</b><br>
14891   * </p>
14892   */
14893  @SearchParamDefinition(name="date", path="ImplementationGuide.date", description="The implementation guide publication date", type="date" )
14894  public static final String SP_DATE = "date";
14895  /**
14896   * <b>Fluent Client</b> search parameter constant for <b>date</b>
14897   * <p>
14898   * Description: <b>The implementation guide publication date</b><br>
14899   * Type: <b>date</b><br>
14900   * Path: <b>ImplementationGuide.date</b><br>
14901   * </p>
14902   */
14903  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
14904
14905  /**
14906   * Search parameter: <b>context-type-value</b>
14907   * <p>
14908   * Description: <b>A use context type and value assigned to the implementation guide</b><br>
14909   * Type: <b>composite</b><br>
14910   * Path: <b></b><br>
14911   * </p>
14912   */
14913  @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"} )
14914  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
14915  /**
14916   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
14917   * <p>
14918   * Description: <b>A use context type and value assigned to the implementation guide</b><br>
14919   * Type: <b>composite</b><br>
14920   * Path: <b></b><br>
14921   * </p>
14922   */
14923  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);
14924
14925  /**
14926   * Search parameter: <b>resource</b>
14927   * <p>
14928   * Description: <b>Location of the resource</b><br>
14929   * Type: <b>reference</b><br>
14930   * Path: <b>ImplementationGuide.definition.resource.reference</b><br>
14931   * </p>
14932   */
14933  @SearchParamDefinition(name="resource", path="ImplementationGuide.definition.resource.reference", description="Location of the resource", type="reference" )
14934  public static final String SP_RESOURCE = "resource";
14935  /**
14936   * <b>Fluent Client</b> search parameter constant for <b>resource</b>
14937   * <p>
14938   * Description: <b>Location of the resource</b><br>
14939   * Type: <b>reference</b><br>
14940   * Path: <b>ImplementationGuide.definition.resource.reference</b><br>
14941   * </p>
14942   */
14943  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RESOURCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_RESOURCE);
14944
14945  /**
14946   * Constant for fluent queries to be used to add include statements. Specifies
14947   * the path value of "<b>ImplementationGuide:resource</b>".
14948   */
14949  public static final ca.uhn.fhir.model.api.Include INCLUDE_RESOURCE = new ca.uhn.fhir.model.api.Include("ImplementationGuide:resource").toLocked();
14950
14951  /**
14952   * Search parameter: <b>jurisdiction</b>
14953   * <p>
14954   * Description: <b>Intended jurisdiction for the implementation guide</b><br>
14955   * Type: <b>token</b><br>
14956   * Path: <b>ImplementationGuide.jurisdiction</b><br>
14957   * </p>
14958   */
14959  @SearchParamDefinition(name="jurisdiction", path="ImplementationGuide.jurisdiction", description="Intended jurisdiction for the implementation guide", type="token" )
14960  public static final String SP_JURISDICTION = "jurisdiction";
14961  /**
14962   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
14963   * <p>
14964   * Description: <b>Intended jurisdiction for the implementation guide</b><br>
14965   * Type: <b>token</b><br>
14966   * Path: <b>ImplementationGuide.jurisdiction</b><br>
14967   * </p>
14968   */
14969  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
14970
14971  /**
14972   * Search parameter: <b>description</b>
14973   * <p>
14974   * Description: <b>The description of the implementation guide</b><br>
14975   * Type: <b>string</b><br>
14976   * Path: <b>ImplementationGuide.description</b><br>
14977   * </p>
14978   */
14979  @SearchParamDefinition(name="description", path="ImplementationGuide.description", description="The description of the implementation guide", type="string" )
14980  public static final String SP_DESCRIPTION = "description";
14981  /**
14982   * <b>Fluent Client</b> search parameter constant for <b>description</b>
14983   * <p>
14984   * Description: <b>The description of the implementation guide</b><br>
14985   * Type: <b>string</b><br>
14986   * Path: <b>ImplementationGuide.description</b><br>
14987   * </p>
14988   */
14989  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
14990
14991  /**
14992   * Search parameter: <b>context-type</b>
14993   * <p>
14994   * Description: <b>A type of use context assigned to the implementation guide</b><br>
14995   * Type: <b>token</b><br>
14996   * Path: <b>ImplementationGuide.useContext.code</b><br>
14997   * </p>
14998   */
14999  @SearchParamDefinition(name="context-type", path="ImplementationGuide.useContext.code", description="A type of use context assigned to the implementation guide", type="token" )
15000  public static final String SP_CONTEXT_TYPE = "context-type";
15001  /**
15002   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
15003   * <p>
15004   * Description: <b>A type of use context assigned to the implementation guide</b><br>
15005   * Type: <b>token</b><br>
15006   * Path: <b>ImplementationGuide.useContext.code</b><br>
15007   * </p>
15008   */
15009  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
15010
15011  /**
15012   * Search parameter: <b>experimental</b>
15013   * <p>
15014   * Description: <b>For testing purposes, not real usage</b><br>
15015   * Type: <b>token</b><br>
15016   * Path: <b>ImplementationGuide.experimental</b><br>
15017   * </p>
15018   */
15019  @SearchParamDefinition(name="experimental", path="ImplementationGuide.experimental", description="For testing purposes, not real usage", type="token" )
15020  public static final String SP_EXPERIMENTAL = "experimental";
15021  /**
15022   * <b>Fluent Client</b> search parameter constant for <b>experimental</b>
15023   * <p>
15024   * Description: <b>For testing purposes, not real usage</b><br>
15025   * Type: <b>token</b><br>
15026   * Path: <b>ImplementationGuide.experimental</b><br>
15027   * </p>
15028   */
15029  public static final ca.uhn.fhir.rest.gclient.TokenClientParam EXPERIMENTAL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EXPERIMENTAL);
15030
15031  /**
15032   * Search parameter: <b>global</b>
15033   * <p>
15034   * Description: <b>Profile that all resources must conform to</b><br>
15035   * Type: <b>reference</b><br>
15036   * Path: <b>ImplementationGuide.global.profile</b><br>
15037   * </p>
15038   */
15039  @SearchParamDefinition(name="global", path="ImplementationGuide.global.profile", description="Profile that all resources must conform to", type="reference", target={StructureDefinition.class } )
15040  public static final String SP_GLOBAL = "global";
15041  /**
15042   * <b>Fluent Client</b> search parameter constant for <b>global</b>
15043   * <p>
15044   * Description: <b>Profile that all resources must conform to</b><br>
15045   * Type: <b>reference</b><br>
15046   * Path: <b>ImplementationGuide.global.profile</b><br>
15047   * </p>
15048   */
15049  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam GLOBAL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_GLOBAL);
15050
15051  /**
15052   * Constant for fluent queries to be used to add include statements. Specifies
15053   * the path value of "<b>ImplementationGuide:global</b>".
15054   */
15055  public static final ca.uhn.fhir.model.api.Include INCLUDE_GLOBAL = new ca.uhn.fhir.model.api.Include("ImplementationGuide:global").toLocked();
15056
15057  /**
15058   * Search parameter: <b>title</b>
15059   * <p>
15060   * Description: <b>The human-friendly name of the implementation guide</b><br>
15061   * Type: <b>string</b><br>
15062   * Path: <b>ImplementationGuide.title</b><br>
15063   * </p>
15064   */
15065  @SearchParamDefinition(name="title", path="ImplementationGuide.title", description="The human-friendly name of the implementation guide", type="string" )
15066  public static final String SP_TITLE = "title";
15067  /**
15068   * <b>Fluent Client</b> search parameter constant for <b>title</b>
15069   * <p>
15070   * Description: <b>The human-friendly name of the implementation guide</b><br>
15071   * Type: <b>string</b><br>
15072   * Path: <b>ImplementationGuide.title</b><br>
15073   * </p>
15074   */
15075  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
15076
15077  /**
15078   * Search parameter: <b>version</b>
15079   * <p>
15080   * Description: <b>The business version of the implementation guide</b><br>
15081   * Type: <b>token</b><br>
15082   * Path: <b>ImplementationGuide.version</b><br>
15083   * </p>
15084   */
15085  @SearchParamDefinition(name="version", path="ImplementationGuide.version", description="The business version of the implementation guide", type="token" )
15086  public static final String SP_VERSION = "version";
15087  /**
15088   * <b>Fluent Client</b> search parameter constant for <b>version</b>
15089   * <p>
15090   * Description: <b>The business version of the implementation guide</b><br>
15091   * Type: <b>token</b><br>
15092   * Path: <b>ImplementationGuide.version</b><br>
15093   * </p>
15094   */
15095  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
15096
15097  /**
15098   * Search parameter: <b>url</b>
15099   * <p>
15100   * Description: <b>The uri that identifies the implementation guide</b><br>
15101   * Type: <b>uri</b><br>
15102   * Path: <b>ImplementationGuide.url</b><br>
15103   * </p>
15104   */
15105  @SearchParamDefinition(name="url", path="ImplementationGuide.url", description="The uri that identifies the implementation guide", type="uri" )
15106  public static final String SP_URL = "url";
15107  /**
15108   * <b>Fluent Client</b> search parameter constant for <b>url</b>
15109   * <p>
15110   * Description: <b>The uri that identifies the implementation guide</b><br>
15111   * Type: <b>uri</b><br>
15112   * Path: <b>ImplementationGuide.url</b><br>
15113   * </p>
15114   */
15115  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
15116
15117  /**
15118   * Search parameter: <b>context-quantity</b>
15119   * <p>
15120   * Description: <b>A quantity- or range-valued use context assigned to the implementation guide</b><br>
15121   * Type: <b>quantity</b><br>
15122   * Path: <b>ImplementationGuide.useContext.valueQuantity, ImplementationGuide.useContext.valueRange</b><br>
15123   * </p>
15124   */
15125  @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" )
15126  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
15127  /**
15128   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
15129   * <p>
15130   * Description: <b>A quantity- or range-valued use context assigned to the implementation guide</b><br>
15131   * Type: <b>quantity</b><br>
15132   * Path: <b>ImplementationGuide.useContext.valueQuantity, ImplementationGuide.useContext.valueRange</b><br>
15133   * </p>
15134   */
15135  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
15136
15137  /**
15138   * Search parameter: <b>depends-on</b>
15139   * <p>
15140   * Description: <b>Identity of the IG that this depends on</b><br>
15141   * Type: <b>reference</b><br>
15142   * Path: <b>ImplementationGuide.dependsOn.uri</b><br>
15143   * </p>
15144   */
15145  @SearchParamDefinition(name="depends-on", path="ImplementationGuide.dependsOn.uri", description="Identity of the IG that this depends on", type="reference", target={ImplementationGuide.class } )
15146  public static final String SP_DEPENDS_ON = "depends-on";
15147  /**
15148   * <b>Fluent Client</b> search parameter constant for <b>depends-on</b>
15149   * <p>
15150   * Description: <b>Identity of the IG that this depends on</b><br>
15151   * Type: <b>reference</b><br>
15152   * Path: <b>ImplementationGuide.dependsOn.uri</b><br>
15153   * </p>
15154   */
15155  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEPENDS_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEPENDS_ON);
15156
15157  /**
15158   * Constant for fluent queries to be used to add include statements. Specifies
15159   * the path value of "<b>ImplementationGuide:depends-on</b>".
15160   */
15161  public static final ca.uhn.fhir.model.api.Include INCLUDE_DEPENDS_ON = new ca.uhn.fhir.model.api.Include("ImplementationGuide:depends-on").toLocked();
15162
15163  /**
15164   * Search parameter: <b>name</b>
15165   * <p>
15166   * Description: <b>Computationally friendly name of the implementation guide</b><br>
15167   * Type: <b>string</b><br>
15168   * Path: <b>ImplementationGuide.name</b><br>
15169   * </p>
15170   */
15171  @SearchParamDefinition(name="name", path="ImplementationGuide.name", description="Computationally friendly name of the implementation guide", type="string" )
15172  public static final String SP_NAME = "name";
15173  /**
15174   * <b>Fluent Client</b> search parameter constant for <b>name</b>
15175   * <p>
15176   * Description: <b>Computationally friendly name of the implementation guide</b><br>
15177   * Type: <b>string</b><br>
15178   * Path: <b>ImplementationGuide.name</b><br>
15179   * </p>
15180   */
15181  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
15182
15183  /**
15184   * Search parameter: <b>context</b>
15185   * <p>
15186   * Description: <b>A use context assigned to the implementation guide</b><br>
15187   * Type: <b>token</b><br>
15188   * Path: <b>ImplementationGuide.useContext.valueCodeableConcept</b><br>
15189   * </p>
15190   */
15191  @SearchParamDefinition(name="context", path="(ImplementationGuide.useContext.value as CodeableConcept)", description="A use context assigned to the implementation guide", type="token" )
15192  public static final String SP_CONTEXT = "context";
15193  /**
15194   * <b>Fluent Client</b> search parameter constant for <b>context</b>
15195   * <p>
15196   * Description: <b>A use context assigned to the implementation guide</b><br>
15197   * Type: <b>token</b><br>
15198   * Path: <b>ImplementationGuide.useContext.valueCodeableConcept</b><br>
15199   * </p>
15200   */
15201  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
15202
15203  /**
15204   * Search parameter: <b>publisher</b>
15205   * <p>
15206   * Description: <b>Name of the publisher of the implementation guide</b><br>
15207   * Type: <b>string</b><br>
15208   * Path: <b>ImplementationGuide.publisher</b><br>
15209   * </p>
15210   */
15211  @SearchParamDefinition(name="publisher", path="ImplementationGuide.publisher", description="Name of the publisher of the implementation guide", type="string" )
15212  public static final String SP_PUBLISHER = "publisher";
15213  /**
15214   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
15215   * <p>
15216   * Description: <b>Name of the publisher of the implementation guide</b><br>
15217   * Type: <b>string</b><br>
15218   * Path: <b>ImplementationGuide.publisher</b><br>
15219   * </p>
15220   */
15221  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
15222
15223  /**
15224   * Search parameter: <b>context-type-quantity</b>
15225   * <p>
15226   * Description: <b>A use context type and quantity- or range-based value assigned to the implementation guide</b><br>
15227   * Type: <b>composite</b><br>
15228   * Path: <b></b><br>
15229   * </p>
15230   */
15231  @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"} )
15232  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
15233  /**
15234   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
15235   * <p>
15236   * Description: <b>A use context type and quantity- or range-based value assigned to the implementation guide</b><br>
15237   * Type: <b>composite</b><br>
15238   * Path: <b></b><br>
15239   * </p>
15240   */
15241  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);
15242
15243  /**
15244   * Search parameter: <b>status</b>
15245   * <p>
15246   * Description: <b>The current status of the implementation guide</b><br>
15247   * Type: <b>token</b><br>
15248   * Path: <b>ImplementationGuide.status</b><br>
15249   * </p>
15250   */
15251  @SearchParamDefinition(name="status", path="ImplementationGuide.status", description="The current status of the implementation guide", type="token" )
15252  public static final String SP_STATUS = "status";
15253  /**
15254   * <b>Fluent Client</b> search parameter constant for <b>status</b>
15255   * <p>
15256   * Description: <b>The current status of the implementation guide</b><br>
15257   * Type: <b>token</b><br>
15258   * Path: <b>ImplementationGuide.status</b><br>
15259   * </p>
15260   */
15261  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
15262
15263
15264}