001package org.hl7.fhir.r4.model;
002
003/*
004  Copyright (c) 2011+, HL7, Inc.
005  All rights reserved.
006
007  Redistribution and use in source and binary forms, with or without modification, 
008  are permitted provided that the following conditions are met:
009
010 * Redistributions of source code must retain the above copyright notice, this 
011     list of conditions and the following disclaimer.
012 * Redistributions in binary form must reproduce the above copyright notice, 
013     this list of conditions and the following disclaimer in the documentation 
014     and/or other materials provided with the distribution.
015 * Neither the name of HL7 nor the names of its contributors may be used to 
016     endorse or promote products derived from this software without specific 
017     prior written permission.
018
019  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
020  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
021  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
022  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
023  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
024  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
025  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
026  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
027  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
028  POSSIBILITY OF SUCH DAMAGE.
029
030 */
031
032// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1
033import java.util.ArrayList;
034import java.util.Date;
035import java.util.List;
036
037import org.hl7.fhir.exceptions.FHIRException;
038import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
039import org.hl7.fhir.r4.model.Enumerations.FHIRVersion;
040import org.hl7.fhir.r4.model.Enumerations.FHIRVersionEnumFactory;
041import org.hl7.fhir.r4.model.Enumerations.PublicationStatus;
042import org.hl7.fhir.r4.model.Enumerations.PublicationStatusEnumFactory;
043import org.hl7.fhir.utilities.Utilities;
044
045import ca.uhn.fhir.model.api.annotation.Block;
046import ca.uhn.fhir.model.api.annotation.Child;
047import ca.uhn.fhir.model.api.annotation.ChildOrder;
048import ca.uhn.fhir.model.api.annotation.Description;
049import ca.uhn.fhir.model.api.annotation.ResourceDef;
050import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
051
052/**
053 * A set of rules of how a particular interoperability or standards problem is
054 * solved - typically through the use of FHIR resources. This resource is used
055 * to gather all the parts of an implementation guide into a logical whole and
056 * to publish a computable definition of all the parts.
057 */
058@ResourceDef(name = "ImplementationGuide", profile = "http://hl7.org/fhir/StructureDefinition/ImplementationGuide")
059@ChildOrder(names = { "url", "version", "name", "title", "status", "experimental", "date", "publisher", "contact",
060    "description", "useContext", "jurisdiction", "copyright", "packageId", "license", "fhirVersion", "dependsOn",
061    "global", "definition", "manifest" })
062public class ImplementationGuide extends MetadataResource {
063
064  public enum SPDXLicense {
065    /**
066     * BSD Zero Clause License
067     */
068    _0BSD,
069    /**
070     * Attribution Assurance License
071     */
072    AAL,
073    /**
074     * Abstyles License
075     */
076    ABSTYLES,
077    /**
078     * AdaCore Doc License
079     */
080    ADACORE_DOC,
081    /**
082     * Adobe Systems Incorporated Source Code License Agreement
083     */
084    ADOBE_2006,
085    /**
086     * Adobe Glyph List License
087     */
088    ADOBE_GLYPH,
089    /**
090     * Amazon Digital Services License
091     */
092    ADSL,
093    /**
094     * Academic Free License v1.1
095     */
096    AFL_1_1,
097    /**
098     * Academic Free License v1.2
099     */
100    AFL_1_2,
101    /**
102     * Academic Free License v2.0
103     */
104    AFL_2_0,
105    /**
106     * Academic Free License v2.1
107     */
108    AFL_2_1,
109    /**
110     * Academic Free License v3.0
111     */
112    AFL_3_0,
113    /**
114     * Afmparse License
115     */
116    AFMPARSE,
117    /**
118     * Affero General Public License v1.0
119     */
120    AGPL_1_0,
121    /**
122     * Affero General Public License v1.0 only
123     */
124    AGPL_1_0_ONLY,
125    /**
126     * Affero General Public License v1.0 or later
127     */
128    AGPL_1_0_OR_LATER,
129    /**
130     * GNU Affero General Public License v3.0
131     */
132    AGPL_3_0,
133    /**
134     * GNU Affero General Public License v3.0 only
135     */
136    AGPL_3_0_ONLY,
137    /**
138     * GNU Affero General Public License v3.0 or later
139     */
140    AGPL_3_0_OR_LATER,
141    /**
142     * Aladdin Free Public License
143     */
144    ALADDIN,
145    /**
146     * AMD's plpa_map.c License
147     */
148    AMDPLPA,
149    /**
150     * Apple MIT License
151     */
152    AML,
153    /**
154     * Academy of Motion Picture Arts and Sciences BSD
155     */
156    AMPAS,
157    /**
158     * ANTLR Software Rights Notice
159     */
160    ANTLR_PD,
161    /**
162     * ANTLR Software Rights Notice with license fallback
163     */
164    ANTLR_PD_FALLBACK,
165    /**
166     * Apache License 1.0
167     */
168    APACHE_1_0,
169    /**
170     * Apache License 1.1
171     */
172    APACHE_1_1,
173    /**
174     * Apache License 2.0
175     */
176    APACHE_2_0,
177    /**
178     * Adobe Postscript AFM License
179     */
180    APAFML,
181    /**
182     * Adaptive Public License 1.0
183     */
184    APL_1_0,
185    /**
186     * App::s2p License
187     */
188    APP_S2P,
189    /**
190     * Apple Public Source License 1.0
191     */
192    APSL_1_0,
193    /**
194     * Apple Public Source License 1.1
195     */
196    APSL_1_1,
197    /**
198     * Apple Public Source License 1.2
199     */
200    APSL_1_2,
201    /**
202     * Apple Public Source License 2.0
203     */
204    APSL_2_0,
205    /**
206     * Arphic Public License
207     */
208    ARPHIC_1999,
209    /**
210     * Artistic License 1.0
211     */
212    ARTISTIC_1_0,
213    /**
214     * Artistic License 1.0 w/clause 8
215     */
216    ARTISTIC_1_0_CL8,
217    /**
218     * Artistic License 1.0 (Perl)
219     */
220    ARTISTIC_1_0_PERL,
221    /**
222     * Artistic License 2.0
223     */
224    ARTISTIC_2_0,
225    /**
226     * ASWF Digital Assets License version 1.0
227     */
228    ASWF_DIGITAL_ASSETS_1_0,
229    /**
230     * ASWF Digital Assets License 1.1
231     */
232    ASWF_DIGITAL_ASSETS_1_1,
233    /**
234     * Baekmuk License
235     */
236    BAEKMUK,
237    /**
238     * Bahyph License
239     */
240    BAHYPH,
241    /**
242     * Barr License
243     */
244    BARR,
245    /**
246     * Beerware License
247     */
248    BEERWARE,
249    /**
250     * Bitstream Charter Font License
251     */
252    BITSTREAM_CHARTER,
253    /**
254     * Bitstream Vera Font License
255     */
256    BITSTREAM_VERA,
257    /**
258     * BitTorrent Open Source License v1.0
259     */
260    BITTORRENT_1_0,
261    /**
262     * BitTorrent Open Source License v1.1
263     */
264    BITTORRENT_1_1,
265    /**
266     * SQLite Blessing
267     */
268    BLESSING,
269    /**
270     * Blue Oak Model License 1.0.0
271     */
272    BLUEOAK_1_0_0,
273    /**
274     * Boehm-Demers-Weiser GC License
275     */
276    BOEHM_GC,
277    /**
278     * Borceux license
279     */
280    BORCEUX,
281    /**
282     * Brian Gladman 3-Clause License
283     */
284    BRIAN_GLADMAN_3_CLAUSE,
285    /**
286     * BSD 1-Clause License
287     */
288    BSD_1_CLAUSE,
289    /**
290     * BSD 2-Clause "Simplified" License
291     */
292    BSD_2_CLAUSE,
293    /**
294     * BSD 2-Clause FreeBSD License
295     */
296    BSD_2_CLAUSE_FREEBSD,
297    /**
298     * BSD 2-Clause NetBSD License
299     */
300    BSD_2_CLAUSE_NETBSD,
301    /**
302     * BSD-2-Clause Plus Patent License
303     */
304    BSD_2_CLAUSE_PATENT,
305    /**
306     * BSD 2-Clause with views sentence
307     */
308    BSD_2_CLAUSE_VIEWS,
309    /**
310     * BSD 3-Clause "New" or "Revised" License
311     */
312    BSD_3_CLAUSE,
313    /**
314     * BSD with attribution
315     */
316    BSD_3_CLAUSE_ATTRIBUTION,
317    /**
318     * BSD 3-Clause Clear License
319     */
320    BSD_3_CLAUSE_CLEAR,
321    /**
322     * Lawrence Berkeley National Labs BSD variant license
323     */
324    BSD_3_CLAUSE_LBNL,
325    /**
326     * BSD 3-Clause Modification
327     */
328    BSD_3_CLAUSE_MODIFICATION,
329    /**
330     * BSD 3-Clause No Military License
331     */
332    BSD_3_CLAUSE_NO_MILITARY_LICENSE,
333    /**
334     * BSD 3-Clause No Nuclear License
335     */
336    BSD_3_CLAUSE_NO_NUCLEAR_LICENSE,
337    /**
338     * BSD 3-Clause No Nuclear License 2014
339     */
340    BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014,
341    /**
342     * BSD 3-Clause No Nuclear Warranty
343     */
344    BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY,
345    /**
346     * BSD 3-Clause Open MPI variant
347     */
348    BSD_3_CLAUSE_OPEN_MPI,
349    /**
350     * BSD 4-Clause "Original" or "Old" License
351     */
352    BSD_4_CLAUSE,
353    /**
354     * BSD 4 Clause Shortened
355     */
356    BSD_4_CLAUSE_SHORTENED,
357    /**
358     * BSD-4-Clause (University of California-Specific)
359     */
360    BSD_4_CLAUSE_UC,
361    /**
362     * BSD 4.3 RENO License
363     */
364    BSD_4_3RENO,
365    /**
366     * BSD 4.3 TAHOE License
367     */
368    BSD_4_3TAHOE,
369    /**
370     * BSD Advertising Acknowledgement License
371     */
372    BSD_ADVERTISING_ACKNOWLEDGEMENT,
373    /**
374     * BSD with Attribution and HPND disclaimer
375     */
376    BSD_ATTRIBUTION_HPND_DISCLAIMER,
377    /**
378     * BSD Protection License
379     */
380    BSD_PROTECTION,
381    /**
382     * BSD Source Code Attribution
383     */
384    BSD_SOURCE_CODE,
385    /**
386     * Boost Software License 1.0
387     */
388    BSL_1_0,
389    /**
390     * Business Source License 1.1
391     */
392    BUSL_1_1,
393    /**
394     * bzip2 and libbzip2 License v1.0.5
395     */
396    BZIP2_1_0_5,
397    /**
398     * bzip2 and libbzip2 License v1.0.6
399     */
400    BZIP2_1_0_6,
401    /**
402     * Computational Use of Data Agreement v1.0
403     */
404    C_UDA_1_0,
405    /**
406     * Cryptographic Autonomy License 1.0
407     */
408    CAL_1_0,
409    /**
410     * Cryptographic Autonomy License 1.0 (Combined Work Exception)
411     */
412    CAL_1_0_COMBINED_WORK_EXCEPTION,
413    /**
414     * Caldera License
415     */
416    CALDERA,
417    /**
418     * Computer Associates Trusted Open Source License 1.1
419     */
420    CATOSL_1_1,
421    /**
422     * Creative Commons Attribution 1.0 Generic
423     */
424    CC_BY_1_0,
425    /**
426     * Creative Commons Attribution 2.0 Generic
427     */
428    CC_BY_2_0,
429    /**
430     * Creative Commons Attribution 2.5 Generic
431     */
432    CC_BY_2_5,
433    /**
434     * Creative Commons Attribution 2.5 Australia
435     */
436    CC_BY_2_5_AU,
437    /**
438     * Creative Commons Attribution 3.0 Unported
439     */
440    CC_BY_3_0,
441    /**
442     * Creative Commons Attribution 3.0 Austria
443     */
444    CC_BY_3_0_AT,
445    /**
446     * Creative Commons Attribution 3.0 Germany
447     */
448    CC_BY_3_0_DE,
449    /**
450     * Creative Commons Attribution 3.0 IGO
451     */
452    CC_BY_3_0_IGO,
453    /**
454     * Creative Commons Attribution 3.0 Netherlands
455     */
456    CC_BY_3_0_NL,
457    /**
458     * Creative Commons Attribution 3.0 United States
459     */
460    CC_BY_3_0_US,
461    /**
462     * Creative Commons Attribution 4.0 International
463     */
464    CC_BY_4_0,
465    /**
466     * Creative Commons Attribution Non Commercial 1.0 Generic
467     */
468    CC_BY_NC_1_0,
469    /**
470     * Creative Commons Attribution Non Commercial 2.0 Generic
471     */
472    CC_BY_NC_2_0,
473    /**
474     * Creative Commons Attribution Non Commercial 2.5 Generic
475     */
476    CC_BY_NC_2_5,
477    /**
478     * Creative Commons Attribution Non Commercial 3.0 Unported
479     */
480    CC_BY_NC_3_0,
481    /**
482     * Creative Commons Attribution Non Commercial 3.0 Germany
483     */
484    CC_BY_NC_3_0_DE,
485    /**
486     * Creative Commons Attribution Non Commercial 4.0 International
487     */
488    CC_BY_NC_4_0,
489    /**
490     * Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic
491     */
492    CC_BY_NC_ND_1_0,
493    /**
494     * Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic
495     */
496    CC_BY_NC_ND_2_0,
497    /**
498     * Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic
499     */
500    CC_BY_NC_ND_2_5,
501    /**
502     * Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported
503     */
504    CC_BY_NC_ND_3_0,
505    /**
506     * Creative Commons Attribution Non Commercial No Derivatives 3.0 Germany
507     */
508    CC_BY_NC_ND_3_0_DE,
509    /**
510     * Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO
511     */
512    CC_BY_NC_ND_3_0_IGO,
513    /**
514     * Creative Commons Attribution Non Commercial No Derivatives 4.0 International
515     */
516    CC_BY_NC_ND_4_0,
517    /**
518     * Creative Commons Attribution Non Commercial Share Alike 1.0 Generic
519     */
520    CC_BY_NC_SA_1_0,
521    /**
522     * Creative Commons Attribution Non Commercial Share Alike 2.0 Generic
523     */
524    CC_BY_NC_SA_2_0,
525    /**
526     * Creative Commons Attribution Non Commercial Share Alike 2.0 Germany
527     */
528    CC_BY_NC_SA_2_0_DE,
529    /**
530     * Creative Commons Attribution-NonCommercial-ShareAlike 2.0 France
531     */
532    CC_BY_NC_SA_2_0_FR,
533    /**
534     * Creative Commons Attribution Non Commercial Share Alike 2.0 England and Wales
535     */
536    CC_BY_NC_SA_2_0_UK,
537    /**
538     * Creative Commons Attribution Non Commercial Share Alike 2.5 Generic
539     */
540    CC_BY_NC_SA_2_5,
541    /**
542     * Creative Commons Attribution Non Commercial Share Alike 3.0 Unported
543     */
544    CC_BY_NC_SA_3_0,
545    /**
546     * Creative Commons Attribution Non Commercial Share Alike 3.0 Germany
547     */
548    CC_BY_NC_SA_3_0_DE,
549    /**
550     * Creative Commons Attribution Non Commercial Share Alike 3.0 IGO
551     */
552    CC_BY_NC_SA_3_0_IGO,
553    /**
554     * Creative Commons Attribution Non Commercial Share Alike 4.0 International
555     */
556    CC_BY_NC_SA_4_0,
557    /**
558     * Creative Commons Attribution No Derivatives 1.0 Generic
559     */
560    CC_BY_ND_1_0,
561    /**
562     * Creative Commons Attribution No Derivatives 2.0 Generic
563     */
564    CC_BY_ND_2_0,
565    /**
566     * Creative Commons Attribution No Derivatives 2.5 Generic
567     */
568    CC_BY_ND_2_5,
569    /**
570     * Creative Commons Attribution No Derivatives 3.0 Unported
571     */
572    CC_BY_ND_3_0,
573    /**
574     * Creative Commons Attribution No Derivatives 3.0 Germany
575     */
576    CC_BY_ND_3_0_DE,
577    /**
578     * Creative Commons Attribution No Derivatives 4.0 International
579     */
580    CC_BY_ND_4_0,
581    /**
582     * Creative Commons Attribution Share Alike 1.0 Generic
583     */
584    CC_BY_SA_1_0,
585    /**
586     * Creative Commons Attribution Share Alike 2.0 Generic
587     */
588    CC_BY_SA_2_0,
589    /**
590     * Creative Commons Attribution Share Alike 2.0 England and Wales
591     */
592    CC_BY_SA_2_0_UK,
593    /**
594     * Creative Commons Attribution Share Alike 2.1 Japan
595     */
596    CC_BY_SA_2_1_JP,
597    /**
598     * Creative Commons Attribution Share Alike 2.5 Generic
599     */
600    CC_BY_SA_2_5,
601    /**
602     * Creative Commons Attribution Share Alike 3.0 Unported
603     */
604    CC_BY_SA_3_0,
605    /**
606     * Creative Commons Attribution Share Alike 3.0 Austria
607     */
608    CC_BY_SA_3_0_AT,
609    /**
610     * Creative Commons Attribution Share Alike 3.0 Germany
611     */
612    CC_BY_SA_3_0_DE,
613    /**
614     * Creative Commons Attribution-ShareAlike 3.0 IGO
615     */
616    CC_BY_SA_3_0_IGO,
617    /**
618     * Creative Commons Attribution Share Alike 4.0 International
619     */
620    CC_BY_SA_4_0,
621    /**
622     * Creative Commons Public Domain Dedication and Certification
623     */
624    CC_PDDC,
625    /**
626     * Creative Commons Zero v1.0 Universal
627     */
628    CC0_1_0,
629    /**
630     * Common Development and Distribution License 1.0
631     */
632    CDDL_1_0,
633    /**
634     * Common Development and Distribution License 1.1
635     */
636    CDDL_1_1,
637    /**
638     * Common Documentation License 1.0
639     */
640    CDL_1_0,
641    /**
642     * Community Data License Agreement Permissive 1.0
643     */
644    CDLA_PERMISSIVE_1_0,
645    /**
646     * Community Data License Agreement Permissive 2.0
647     */
648    CDLA_PERMISSIVE_2_0,
649    /**
650     * Community Data License Agreement Sharing 1.0
651     */
652    CDLA_SHARING_1_0,
653    /**
654     * CeCILL Free Software License Agreement v1.0
655     */
656    CECILL_1_0,
657    /**
658     * CeCILL Free Software License Agreement v1.1
659     */
660    CECILL_1_1,
661    /**
662     * CeCILL Free Software License Agreement v2.0
663     */
664    CECILL_2_0,
665    /**
666     * CeCILL Free Software License Agreement v2.1
667     */
668    CECILL_2_1,
669    /**
670     * CeCILL-B Free Software License Agreement
671     */
672    CECILL_B,
673    /**
674     * CeCILL-C Free Software License Agreement
675     */
676    CECILL_C,
677    /**
678     * CERN Open Hardware Licence v1.1
679     */
680    CERN_OHL_1_1,
681    /**
682     * CERN Open Hardware Licence v1.2
683     */
684    CERN_OHL_1_2,
685    /**
686     * CERN Open Hardware Licence Version 2 - Permissive
687     */
688    CERN_OHL_P_2_0,
689    /**
690     * CERN Open Hardware Licence Version 2 - Strongly Reciprocal
691     */
692    CERN_OHL_S_2_0,
693    /**
694     * CERN Open Hardware Licence Version 2 - Weakly Reciprocal
695     */
696    CERN_OHL_W_2_0,
697    /**
698     * CFITSIO License
699     */
700    CFITSIO,
701    /**
702     * Checkmk License
703     */
704    CHECKMK,
705    /**
706     * Clarified Artistic License
707     */
708    CLARTISTIC,
709    /**
710     * Clips License
711     */
712    CLIPS,
713    /**
714     * CMU Mach License
715     */
716    CMU_MACH,
717    /**
718     * CNRI Jython License
719     */
720    CNRI_JYTHON,
721    /**
722     * CNRI Python License
723     */
724    CNRI_PYTHON,
725    /**
726     * CNRI Python Open Source GPL Compatible License Agreement
727     */
728    CNRI_PYTHON_GPL_COMPATIBLE,
729    /**
730     * Copyfree Open Innovation License
731     */
732    COIL_1_0,
733    /**
734     * Community Specification License 1.0
735     */
736    COMMUNITY_SPEC_1_0,
737    /**
738     * Condor Public License v1.1
739     */
740    CONDOR_1_1,
741    /**
742     * copyleft-next 0.3.0
743     */
744    COPYLEFT_NEXT_0_3_0,
745    /**
746     * copyleft-next 0.3.1
747     */
748    COPYLEFT_NEXT_0_3_1,
749    /**
750     * Cornell Lossless JPEG License
751     */
752    CORNELL_LOSSLESS_JPEG,
753    /**
754     * Common Public Attribution License 1.0
755     */
756    CPAL_1_0,
757    /**
758     * Common Public License 1.0
759     */
760    CPL_1_0,
761    /**
762     * Code Project Open License 1.02
763     */
764    CPOL_1_02,
765    /**
766     * Crossword License
767     */
768    CROSSWORD,
769    /**
770     * CrystalStacker License
771     */
772    CRYSTALSTACKER,
773    /**
774     * CUA Office Public License v1.0
775     */
776    CUA_OPL_1_0,
777    /**
778     * Cube License
779     */
780    CUBE,
781    /**
782     * curl License
783     */
784    CURL,
785    /**
786     * Deutsche Freie Software Lizenz
787     */
788    D_FSL_1_0,
789    /**
790     * diffmark license
791     */
792    DIFFMARK,
793    /**
794     * Data licence Germany ? attribution ? version 2.0
795     */
796    DL_DE_BY_2_0,
797    /**
798     * DOC License
799     */
800    DOC,
801    /**
802     * Dotseqn License
803     */
804    DOTSEQN,
805    /**
806     * Detection Rule License 1.0
807     */
808    DRL_1_0,
809    /**
810     * DSDP License
811     */
812    DSDP,
813    /**
814     * David M. Gay dtoa License
815     */
816    DTOA,
817    /**
818     * dvipdfm License
819     */
820    DVIPDFM,
821    /**
822     * Educational Community License v1.0
823     */
824    ECL_1_0,
825    /**
826     * Educational Community License v2.0
827     */
828    ECL_2_0,
829    /**
830     * eCos license version 2.0
831     */
832    ECOS_2_0,
833    /**
834     * Eiffel Forum License v1.0
835     */
836    EFL_1_0,
837    /**
838     * Eiffel Forum License v2.0
839     */
840    EFL_2_0,
841    /**
842     * eGenix.com Public License 1.1.0
843     */
844    EGENIX,
845    /**
846     * Elastic License 2.0
847     */
848    ELASTIC_2_0,
849    /**
850     * Entessa Public License v1.0
851     */
852    ENTESSA,
853    /**
854     * EPICS Open License
855     */
856    EPICS,
857    /**
858     * Eclipse Public License 1.0
859     */
860    EPL_1_0,
861    /**
862     * Eclipse Public License 2.0
863     */
864    EPL_2_0,
865    /**
866     * Erlang Public License v1.1
867     */
868    ERLPL_1_1,
869    /**
870     * Etalab Open License 2.0
871     */
872    ETALAB_2_0,
873    /**
874     * EU DataGrid Software License
875     */
876    EUDATAGRID,
877    /**
878     * European Union Public License 1.0
879     */
880    EUPL_1_0,
881    /**
882     * European Union Public License 1.1
883     */
884    EUPL_1_1,
885    /**
886     * European Union Public License 1.2
887     */
888    EUPL_1_2,
889    /**
890     * Eurosym License
891     */
892    EUROSYM,
893    /**
894     * Fair License
895     */
896    FAIR,
897    /**
898     * Fraunhofer FDK AAC Codec Library
899     */
900    FDK_AAC,
901    /**
902     * Frameworx Open License 1.0
903     */
904    FRAMEWORX_1_0,
905    /**
906     * FreeBSD Documentation License
907     */
908    FREEBSD_DOC,
909    /**
910     * FreeImage Public License v1.0
911     */
912    FREEIMAGE,
913    /**
914     * FSF All Permissive License
915     */
916    FSFAP,
917    /**
918     * FSF Unlimited License
919     */
920    FSFUL,
921    /**
922     * FSF Unlimited License (with License Retention)
923     */
924    FSFULLR,
925    /**
926     * FSF Unlimited License (With License Retention and Warranty Disclaimer)
927     */
928    FSFULLRWD,
929    /**
930     * Freetype Project License
931     */
932    FTL,
933    /**
934     * GD License
935     */
936    GD,
937    /**
938     * GNU Free Documentation License v1.1
939     */
940    GFDL_1_1,
941    /**
942     * GNU Free Documentation License v1.1 only - invariants
943     */
944    GFDL_1_1_INVARIANTS_ONLY,
945    /**
946     * GNU Free Documentation License v1.1 or later - invariants
947     */
948    GFDL_1_1_INVARIANTS_OR_LATER,
949    /**
950     * GNU Free Documentation License v1.1 only - no invariants
951     */
952    GFDL_1_1_NO_INVARIANTS_ONLY,
953    /**
954     * GNU Free Documentation License v1.1 or later - no invariants
955     */
956    GFDL_1_1_NO_INVARIANTS_OR_LATER,
957    /**
958     * GNU Free Documentation License v1.1 only
959     */
960    GFDL_1_1_ONLY,
961    /**
962     * GNU Free Documentation License v1.1 or later
963     */
964    GFDL_1_1_OR_LATER,
965    /**
966     * GNU Free Documentation License v1.2
967     */
968    GFDL_1_2,
969    /**
970     * GNU Free Documentation License v1.2 only - invariants
971     */
972    GFDL_1_2_INVARIANTS_ONLY,
973    /**
974     * GNU Free Documentation License v1.2 or later - invariants
975     */
976    GFDL_1_2_INVARIANTS_OR_LATER,
977    /**
978     * GNU Free Documentation License v1.2 only - no invariants
979     */
980    GFDL_1_2_NO_INVARIANTS_ONLY,
981    /**
982     * GNU Free Documentation License v1.2 or later - no invariants
983     */
984    GFDL_1_2_NO_INVARIANTS_OR_LATER,
985    /**
986     * GNU Free Documentation License v1.2 only
987     */
988    GFDL_1_2_ONLY,
989    /**
990     * GNU Free Documentation License v1.2 or later
991     */
992    GFDL_1_2_OR_LATER,
993    /**
994     * GNU Free Documentation License v1.3
995     */
996    GFDL_1_3,
997    /**
998     * GNU Free Documentation License v1.3 only - invariants
999     */
1000    GFDL_1_3_INVARIANTS_ONLY,
1001    /**
1002     * GNU Free Documentation License v1.3 or later - invariants
1003     */
1004    GFDL_1_3_INVARIANTS_OR_LATER,
1005    /**
1006     * GNU Free Documentation License v1.3 only - no invariants
1007     */
1008    GFDL_1_3_NO_INVARIANTS_ONLY,
1009    /**
1010     * GNU Free Documentation License v1.3 or later - no invariants
1011     */
1012    GFDL_1_3_NO_INVARIANTS_OR_LATER,
1013    /**
1014     * GNU Free Documentation License v1.3 only
1015     */
1016    GFDL_1_3_ONLY,
1017    /**
1018     * GNU Free Documentation License v1.3 or later
1019     */
1020    GFDL_1_3_OR_LATER,
1021    /**
1022     * Giftware License
1023     */
1024    GIFTWARE,
1025    /**
1026     * GL2PS License
1027     */
1028    GL2PS,
1029    /**
1030     * 3dfx Glide License
1031     */
1032    GLIDE,
1033    /**
1034     * Glulxe License
1035     */
1036    GLULXE,
1037    /**
1038     * Good Luck With That Public License
1039     */
1040    GLWTPL,
1041    /**
1042     * gnuplot License
1043     */
1044    GNUPLOT,
1045    /**
1046     * GNU General Public License v1.0 only
1047     */
1048    GPL_1_0,
1049    /**
1050     * GNU General Public License v1.0 or later
1051     */
1052    GPL_1_0PLUS,
1053    /**
1054     * GNU General Public License v1.0 only
1055     */
1056    GPL_1_0_ONLY,
1057    /**
1058     * GNU General Public License v1.0 or later
1059     */
1060    GPL_1_0_OR_LATER,
1061    /**
1062     * GNU General Public License v2.0 only
1063     */
1064    GPL_2_0,
1065    /**
1066     * GNU General Public License v2.0 or later
1067     */
1068    GPL_2_0PLUS,
1069    /**
1070     * GNU General Public License v2.0 only
1071     */
1072    GPL_2_0_ONLY,
1073    /**
1074     * GNU General Public License v2.0 or later
1075     */
1076    GPL_2_0_OR_LATER,
1077    /**
1078     * GNU General Public License v2.0 w/Autoconf exception
1079     */
1080    GPL_2_0_WITH_AUTOCONF_EXCEPTION,
1081    /**
1082     * GNU General Public License v2.0 w/Bison exception
1083     */
1084    GPL_2_0_WITH_BISON_EXCEPTION,
1085    /**
1086     * GNU General Public License v2.0 w/Classpath exception
1087     */
1088    GPL_2_0_WITH_CLASSPATH_EXCEPTION,
1089    /**
1090     * GNU General Public License v2.0 w/Font exception
1091     */
1092    GPL_2_0_WITH_FONT_EXCEPTION,
1093    /**
1094     * GNU General Public License v2.0 w/GCC Runtime Library exception
1095     */
1096    GPL_2_0_WITH_GCC_EXCEPTION,
1097    /**
1098     * GNU General Public License v3.0 only
1099     */
1100    GPL_3_0,
1101    /**
1102     * GNU General Public License v3.0 or later
1103     */
1104    GPL_3_0PLUS,
1105    /**
1106     * GNU General Public License v3.0 only
1107     */
1108    GPL_3_0_ONLY,
1109    /**
1110     * GNU General Public License v3.0 or later
1111     */
1112    GPL_3_0_OR_LATER,
1113    /**
1114     * GNU General Public License v3.0 w/Autoconf exception
1115     */
1116    GPL_3_0_WITH_AUTOCONF_EXCEPTION,
1117    /**
1118     * GNU General Public License v3.0 w/GCC Runtime Library exception
1119     */
1120    GPL_3_0_WITH_GCC_EXCEPTION,
1121    /**
1122     * Graphics Gems License
1123     */
1124    GRAPHICS_GEMS,
1125    /**
1126     * gSOAP Public License v1.3b
1127     */
1128    GSOAP_1_3B,
1129    /**
1130     * Haskell Language Report License
1131     */
1132    HASKELLREPORT,
1133    /**
1134     * Hippocratic License 2.1
1135     */
1136    HIPPOCRATIC_2_1,
1137    /**
1138     * Hewlett-Packard 1986 License
1139     */
1140    HP_1986,
1141    /**
1142     * Historical Permission Notice and Disclaimer
1143     */
1144    HPND,
1145    /**
1146     * HPND with US Government export control warning
1147     */
1148    HPND_EXPORT_US,
1149    /**
1150     * Historical Permission Notice and Disclaimer - Markus Kuhn variant
1151     */
1152    HPND_MARKUS_KUHN,
1153    /**
1154     * Historical Permission Notice and Disclaimer - sell variant
1155     */
1156    HPND_SELL_VARIANT,
1157    /**
1158     * HPND sell variant with MIT disclaimer
1159     */
1160    HPND_SELL_VARIANT_MIT_DISCLAIMER,
1161    /**
1162     * HTML Tidy License
1163     */
1164    HTMLTIDY,
1165    /**
1166     * IBM PowerPC Initialization and Boot Software
1167     */
1168    IBM_PIBS,
1169    /**
1170     * ICU License
1171     */
1172    ICU,
1173    /**
1174     * IEC Code Components End-user licence agreement
1175     */
1176    IEC_CODE_COMPONENTS_EULA,
1177    /**
1178     * Independent JPEG Group License
1179     */
1180    IJG,
1181    /**
1182     * Independent JPEG Group License - short
1183     */
1184    IJG_SHORT,
1185    /**
1186     * ImageMagick License
1187     */
1188    IMAGEMAGICK,
1189    /**
1190     * iMatix Standard Function Library Agreement
1191     */
1192    IMATIX,
1193    /**
1194     * Imlib2 License
1195     */
1196    IMLIB2,
1197    /**
1198     * Info-ZIP License
1199     */
1200    INFO_ZIP,
1201    /**
1202     * Inner Net License v2.0
1203     */
1204    INNER_NET_2_0,
1205    /**
1206     * Intel Open Source License
1207     */
1208    INTEL,
1209    /**
1210     * Intel ACPI Software License Agreement
1211     */
1212    INTEL_ACPI,
1213    /**
1214     * Interbase Public License v1.0
1215     */
1216    INTERBASE_1_0,
1217    /**
1218     * IPA Font License
1219     */
1220    IPA,
1221    /**
1222     * IBM Public License v1.0
1223     */
1224    IPL_1_0,
1225    /**
1226     * ISC License
1227     */
1228    ISC,
1229    /**
1230     * Jam License
1231     */
1232    JAM,
1233    /**
1234     * JasPer License
1235     */
1236    JASPER_2_0,
1237    /**
1238     * JPL Image Use Policy
1239     */
1240    JPL_IMAGE,
1241    /**
1242     * Japan Network Information Center License
1243     */
1244    JPNIC,
1245    /**
1246     * JSON License
1247     */
1248    JSON,
1249    /**
1250     * Kazlib License
1251     */
1252    KAZLIB,
1253    /**
1254     * Knuth CTAN License
1255     */
1256    KNUTH_CTAN,
1257    /**
1258     * Licence Art Libre 1.2
1259     */
1260    LAL_1_2,
1261    /**
1262     * Licence Art Libre 1.3
1263     */
1264    LAL_1_3,
1265    /**
1266     * Latex2e License
1267     */
1268    LATEX2E,
1269    /**
1270     * Latex2e with translated notice permission
1271     */
1272    LATEX2E_TRANSLATED_NOTICE,
1273    /**
1274     * Leptonica License
1275     */
1276    LEPTONICA,
1277    /**
1278     * GNU Library General Public License v2 only
1279     */
1280    LGPL_2_0,
1281    /**
1282     * GNU Library General Public License v2 or later
1283     */
1284    LGPL_2_0PLUS,
1285    /**
1286     * GNU Library General Public License v2 only
1287     */
1288    LGPL_2_0_ONLY,
1289    /**
1290     * GNU Library General Public License v2 or later
1291     */
1292    LGPL_2_0_OR_LATER,
1293    /**
1294     * GNU Lesser General Public License v2.1 only
1295     */
1296    LGPL_2_1,
1297    /**
1298     * GNU Lesser General Public License v2.1 or later
1299     */
1300    LGPL_2_1PLUS,
1301    /**
1302     * GNU Lesser General Public License v2.1 only
1303     */
1304    LGPL_2_1_ONLY,
1305    /**
1306     * GNU Lesser General Public License v2.1 or later
1307     */
1308    LGPL_2_1_OR_LATER,
1309    /**
1310     * GNU Lesser General Public License v3.0 only
1311     */
1312    LGPL_3_0,
1313    /**
1314     * GNU Lesser General Public License v3.0 or later
1315     */
1316    LGPL_3_0PLUS,
1317    /**
1318     * GNU Lesser General Public License v3.0 only
1319     */
1320    LGPL_3_0_ONLY,
1321    /**
1322     * GNU Lesser General Public License v3.0 or later
1323     */
1324    LGPL_3_0_OR_LATER,
1325    /**
1326     * Lesser General Public License For Linguistic Resources
1327     */
1328    LGPLLR,
1329    /**
1330     * libpng License
1331     */
1332    LIBPNG,
1333    /**
1334     * PNG Reference Library version 2
1335     */
1336    LIBPNG_2_0,
1337    /**
1338     * libselinux public domain notice
1339     */
1340    LIBSELINUX_1_0,
1341    /**
1342     * libtiff License
1343     */
1344    LIBTIFF,
1345    /**
1346     * libutil David Nugent License
1347     */
1348    LIBUTIL_DAVID_NUGENT,
1349    /**
1350     * Licence Libre du Québec ? Permissive version 1.1
1351     */
1352    LILIQ_P_1_1,
1353    /**
1354     * Licence Libre du Québec ? Réciprocité version 1.1
1355     */
1356    LILIQ_R_1_1,
1357    /**
1358     * Licence Libre du Québec ? Réciprocité forte version 1.1
1359     */
1360    LILIQ_RPLUS_1_1,
1361    /**
1362     * Linux man-pages - 1 paragraph
1363     */
1364    LINUX_MAN_PAGES_1_PARA,
1365    /**
1366     * Linux man-pages Copyleft
1367     */
1368    LINUX_MAN_PAGES_COPYLEFT,
1369    /**
1370     * Linux man-pages Copyleft - 2 paragraphs
1371     */
1372    LINUX_MAN_PAGES_COPYLEFT_2_PARA,
1373    /**
1374     * Linux man-pages Copyleft Variant
1375     */
1376    LINUX_MAN_PAGES_COPYLEFT_VAR,
1377    /**
1378     * Linux Kernel Variant of OpenIB.org license
1379     */
1380    LINUX_OPENIB,
1381    /**
1382     * Common Lisp LOOP License
1383     */
1384    LOOP,
1385    /**
1386     * Lucent Public License Version 1.0
1387     */
1388    LPL_1_0,
1389    /**
1390     * Lucent Public License v1.02
1391     */
1392    LPL_1_02,
1393    /**
1394     * LaTeX Project Public License v1.0
1395     */
1396    LPPL_1_0,
1397    /**
1398     * LaTeX Project Public License v1.1
1399     */
1400    LPPL_1_1,
1401    /**
1402     * LaTeX Project Public License v1.2
1403     */
1404    LPPL_1_2,
1405    /**
1406     * LaTeX Project Public License v1.3a
1407     */
1408    LPPL_1_3A,
1409    /**
1410     * LaTeX Project Public License v1.3c
1411     */
1412    LPPL_1_3C,
1413    /**
1414     * LZMA SDK License (versions 9.11 to 9.20)
1415     */
1416    LZMA_SDK_9_11_TO_9_20,
1417    /**
1418     * LZMA SDK License (versions 9.22 and beyond)
1419     */
1420    LZMA_SDK_9_22,
1421    /**
1422     * MakeIndex License
1423     */
1424    MAKEINDEX,
1425    /**
1426     * Martin Birgmeier License
1427     */
1428    MARTIN_BIRGMEIER,
1429    /**
1430     * metamail License
1431     */
1432    METAMAIL,
1433    /**
1434     * Minpack License
1435     */
1436    MINPACK,
1437    /**
1438     * The MirOS Licence
1439     */
1440    MIROS,
1441    /**
1442     * MIT License
1443     */
1444    MIT,
1445    /**
1446     * MIT No Attribution
1447     */
1448    MIT_0,
1449    /**
1450     * Enlightenment License (e16)
1451     */
1452    MIT_ADVERTISING,
1453    /**
1454     * CMU License
1455     */
1456    MIT_CMU,
1457    /**
1458     * enna License
1459     */
1460    MIT_ENNA,
1461    /**
1462     * feh License
1463     */
1464    MIT_FEH,
1465    /**
1466     * MIT Festival Variant
1467     */
1468    MIT_FESTIVAL,
1469    /**
1470     * MIT License Modern Variant
1471     */
1472    MIT_MODERN_VARIANT,
1473    /**
1474     * MIT Open Group variant
1475     */
1476    MIT_OPEN_GROUP,
1477    /**
1478     * MIT Tom Wu Variant
1479     */
1480    MIT_WU,
1481    /**
1482     * MIT +no-false-attribs license
1483     */
1484    MITNFA,
1485    /**
1486     * Motosoto License
1487     */
1488    MOTOSOTO,
1489    /**
1490     * mpi Permissive License
1491     */
1492    MPI_PERMISSIVE,
1493    /**
1494     * mpich2 License
1495     */
1496    MPICH2,
1497    /**
1498     * Mozilla Public License 1.0
1499     */
1500    MPL_1_0,
1501    /**
1502     * Mozilla Public License 1.1
1503     */
1504    MPL_1_1,
1505    /**
1506     * Mozilla Public License 2.0
1507     */
1508    MPL_2_0,
1509    /**
1510     * Mozilla Public License 2.0 (no copyleft exception)
1511     */
1512    MPL_2_0_NO_COPYLEFT_EXCEPTION,
1513    /**
1514     * mplus Font License
1515     */
1516    MPLUS,
1517    /**
1518     * Microsoft Limited Public License
1519     */
1520    MS_LPL,
1521    /**
1522     * Microsoft Public License
1523     */
1524    MS_PL,
1525    /**
1526     * Microsoft Reciprocal License
1527     */
1528    MS_RL,
1529    /**
1530     * Matrix Template Library License
1531     */
1532    MTLL,
1533    /**
1534     * Mulan Permissive Software License, Version 1
1535     */
1536    MULANPSL_1_0,
1537    /**
1538     * Mulan Permissive Software License, Version 2
1539     */
1540    MULANPSL_2_0,
1541    /**
1542     * Multics License
1543     */
1544    MULTICS,
1545    /**
1546     * Mup License
1547     */
1548    MUP,
1549    /**
1550     * Nara Institute of Science and Technology License (2003)
1551     */
1552    NAIST_2003,
1553    /**
1554     * NASA Open Source Agreement 1.3
1555     */
1556    NASA_1_3,
1557    /**
1558     * Naumen Public License
1559     */
1560    NAUMEN,
1561    /**
1562     * Net Boolean Public License v1
1563     */
1564    NBPL_1_0,
1565    /**
1566     * Non-Commercial Government Licence
1567     */
1568    NCGL_UK_2_0,
1569    /**
1570     * University of Illinois/NCSA Open Source License
1571     */
1572    NCSA,
1573    /**
1574     * Net-SNMP License
1575     */
1576    NET_SNMP,
1577    /**
1578     * NetCDF license
1579     */
1580    NETCDF,
1581    /**
1582     * Newsletr License
1583     */
1584    NEWSLETR,
1585    /**
1586     * Nethack General Public License
1587     */
1588    NGPL,
1589    /**
1590     * NICTA Public Software License, Version 1.0
1591     */
1592    NICTA_1_0,
1593    /**
1594     * NIST Public Domain Notice
1595     */
1596    NIST_PD,
1597    /**
1598     * NIST Public Domain Notice with license fallback
1599     */
1600    NIST_PD_FALLBACK,
1601    /**
1602     * NIST Software License
1603     */
1604    NIST_SOFTWARE,
1605    /**
1606     * Norwegian Licence for Open Government Data (NLOD) 1.0
1607     */
1608    NLOD_1_0,
1609    /**
1610     * Norwegian Licence for Open Government Data (NLOD) 2.0
1611     */
1612    NLOD_2_0,
1613    /**
1614     * No Limit Public License
1615     */
1616    NLPL,
1617    /**
1618     * Nokia Open Source License
1619     */
1620    NOKIA,
1621    /**
1622     * Netizen Open Source License
1623     */
1624    NOSL,
1625    /**
1626     * Not an open source license.
1627     */
1628    NOT_OPEN_SOURCE,
1629    /**
1630     * Noweb License
1631     */
1632    NOWEB,
1633    /**
1634     * Netscape Public License v1.0
1635     */
1636    NPL_1_0,
1637    /**
1638     * Netscape Public License v1.1
1639     */
1640    NPL_1_1,
1641    /**
1642     * Non-Profit Open Software License 3.0
1643     */
1644    NPOSL_3_0,
1645    /**
1646     * NRL License
1647     */
1648    NRL,
1649    /**
1650     * NTP License
1651     */
1652    NTP,
1653    /**
1654     * NTP No Attribution
1655     */
1656    NTP_0,
1657    /**
1658     * Nunit License
1659     */
1660    NUNIT,
1661    /**
1662     * Open Use of Data Agreement v1.0
1663     */
1664    O_UDA_1_0,
1665    /**
1666     * Open CASCADE Technology Public License
1667     */
1668    OCCT_PL,
1669    /**
1670     * OCLC Research Public License 2.0
1671     */
1672    OCLC_2_0,
1673    /**
1674     * Open Data Commons Open Database License v1.0
1675     */
1676    ODBL_1_0,
1677    /**
1678     * Open Data Commons Attribution License v1.0
1679     */
1680    ODC_BY_1_0,
1681    /**
1682     * OFFIS License
1683     */
1684    OFFIS,
1685    /**
1686     * SIL Open Font License 1.0
1687     */
1688    OFL_1_0,
1689    /**
1690     * SIL Open Font License 1.0 with no Reserved Font Name
1691     */
1692    OFL_1_0_NO_RFN,
1693    /**
1694     * SIL Open Font License 1.0 with Reserved Font Name
1695     */
1696    OFL_1_0_RFN,
1697    /**
1698     * SIL Open Font License 1.1
1699     */
1700    OFL_1_1,
1701    /**
1702     * SIL Open Font License 1.1 with no Reserved Font Name
1703     */
1704    OFL_1_1_NO_RFN,
1705    /**
1706     * SIL Open Font License 1.1 with Reserved Font Name
1707     */
1708    OFL_1_1_RFN,
1709    /**
1710     * OGC Software License, Version 1.0
1711     */
1712    OGC_1_0,
1713    /**
1714     * Taiwan Open Government Data License, version 1.0
1715     */
1716    OGDL_TAIWAN_1_0,
1717    /**
1718     * Open Government Licence - Canada
1719     */
1720    OGL_CANADA_2_0,
1721    /**
1722     * Open Government Licence v1.0
1723     */
1724    OGL_UK_1_0,
1725    /**
1726     * Open Government Licence v2.0
1727     */
1728    OGL_UK_2_0,
1729    /**
1730     * Open Government Licence v3.0
1731     */
1732    OGL_UK_3_0,
1733    /**
1734     * Open Group Test Suite License
1735     */
1736    OGTSL,
1737    /**
1738     * Open LDAP Public License v1.1
1739     */
1740    OLDAP_1_1,
1741    /**
1742     * Open LDAP Public License v1.2
1743     */
1744    OLDAP_1_2,
1745    /**
1746     * Open LDAP Public License v1.3
1747     */
1748    OLDAP_1_3,
1749    /**
1750     * Open LDAP Public License v1.4
1751     */
1752    OLDAP_1_4,
1753    /**
1754     * Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)
1755     */
1756    OLDAP_2_0,
1757    /**
1758     * Open LDAP Public License v2.0.1
1759     */
1760    OLDAP_2_0_1,
1761    /**
1762     * Open LDAP Public License v2.1
1763     */
1764    OLDAP_2_1,
1765    /**
1766     * Open LDAP Public License v2.2
1767     */
1768    OLDAP_2_2,
1769    /**
1770     * Open LDAP Public License v2.2.1
1771     */
1772    OLDAP_2_2_1,
1773    /**
1774     * Open LDAP Public License 2.2.2
1775     */
1776    OLDAP_2_2_2,
1777    /**
1778     * Open LDAP Public License v2.3
1779     */
1780    OLDAP_2_3,
1781    /**
1782     * Open LDAP Public License v2.4
1783     */
1784    OLDAP_2_4,
1785    /**
1786     * Open LDAP Public License v2.5
1787     */
1788    OLDAP_2_5,
1789    /**
1790     * Open LDAP Public License v2.6
1791     */
1792    OLDAP_2_6,
1793    /**
1794     * Open LDAP Public License v2.7
1795     */
1796    OLDAP_2_7,
1797    /**
1798     * Open LDAP Public License v2.8
1799     */
1800    OLDAP_2_8,
1801    /**
1802     * Open Logistics Foundation License Version 1.3
1803     */
1804    OLFL_1_3,
1805    /**
1806     * Open Market License
1807     */
1808    OML,
1809    /**
1810     * OpenPBS v2.3 Software License
1811     */
1812    OPENPBS_2_3,
1813    /**
1814     * OpenSSL License
1815     */
1816    OPENSSL,
1817    /**
1818     * Open Public License v1.0
1819     */
1820    OPL_1_0,
1821    /**
1822     * United Kingdom Open Parliament Licence v3.0
1823     */
1824    OPL_UK_3_0,
1825    /**
1826     * Open Publication License v1.0
1827     */
1828    OPUBL_1_0,
1829    /**
1830     * OSET Public License version 2.1
1831     */
1832    OSET_PL_2_1,
1833    /**
1834     * Open Software License 1.0
1835     */
1836    OSL_1_0,
1837    /**
1838     * Open Software License 1.1
1839     */
1840    OSL_1_1,
1841    /**
1842     * Open Software License 2.0
1843     */
1844    OSL_2_0,
1845    /**
1846     * Open Software License 2.1
1847     */
1848    OSL_2_1,
1849    /**
1850     * Open Software License 3.0
1851     */
1852    OSL_3_0,
1853    /**
1854     * The Parity Public License 6.0.0
1855     */
1856    PARITY_6_0_0,
1857    /**
1858     * The Parity Public License 7.0.0
1859     */
1860    PARITY_7_0_0,
1861    /**
1862     * Open Data Commons Public Domain Dedication & License 1.0
1863     */
1864    PDDL_1_0,
1865    /**
1866     * PHP License v3.0
1867     */
1868    PHP_3_0,
1869    /**
1870     * PHP License v3.01
1871     */
1872    PHP_3_01,
1873    /**
1874     * Plexus Classworlds License
1875     */
1876    PLEXUS,
1877    /**
1878     * PolyForm Noncommercial License 1.0.0
1879     */
1880    POLYFORM_NONCOMMERCIAL_1_0_0,
1881    /**
1882     * PolyForm Small Business License 1.0.0
1883     */
1884    POLYFORM_SMALL_BUSINESS_1_0_0,
1885    /**
1886     * PostgreSQL License
1887     */
1888    POSTGRESQL,
1889    /**
1890     * Python Software Foundation License 2.0
1891     */
1892    PSF_2_0,
1893    /**
1894     * psfrag License
1895     */
1896    PSFRAG,
1897    /**
1898     * psutils License
1899     */
1900    PSUTILS,
1901    /**
1902     * Python License 2.0
1903     */
1904    PYTHON_2_0,
1905    /**
1906     * Python License 2.0.1
1907     */
1908    PYTHON_2_0_1,
1909    /**
1910     * Qhull License
1911     */
1912    QHULL,
1913    /**
1914     * Q Public License 1.0
1915     */
1916    QPL_1_0,
1917    /**
1918     * Q Public License 1.0 - INRIA 2004 variant
1919     */
1920    QPL_1_0_INRIA_2004,
1921    /**
1922     * Rdisc License
1923     */
1924    RDISC,
1925    /**
1926     * Red Hat eCos Public License v1.1
1927     */
1928    RHECOS_1_1,
1929    /**
1930     * Reciprocal Public License 1.1
1931     */
1932    RPL_1_1,
1933    /**
1934     * Reciprocal Public License 1.5
1935     */
1936    RPL_1_5,
1937    /**
1938     * RealNetworks Public Source License v1.0
1939     */
1940    RPSL_1_0,
1941    /**
1942     * RSA Message-Digest License
1943     */
1944    RSA_MD,
1945    /**
1946     * Ricoh Source Code Public License
1947     */
1948    RSCPL,
1949    /**
1950     * Ruby License
1951     */
1952    RUBY,
1953    /**
1954     * Sax Public Domain Notice
1955     */
1956    SAX_PD,
1957    /**
1958     * Saxpath License
1959     */
1960    SAXPATH,
1961    /**
1962     * SCEA Shared Source License
1963     */
1964    SCEA,
1965    /**
1966     * Scheme Language Report License
1967     */
1968    SCHEMEREPORT,
1969    /**
1970     * Sendmail License
1971     */
1972    SENDMAIL,
1973    /**
1974     * Sendmail License 8.23
1975     */
1976    SENDMAIL_8_23,
1977    /**
1978     * SGI Free Software License B v1.0
1979     */
1980    SGI_B_1_0,
1981    /**
1982     * SGI Free Software License B v1.1
1983     */
1984    SGI_B_1_1,
1985    /**
1986     * SGI Free Software License B v2.0
1987     */
1988    SGI_B_2_0,
1989    /**
1990     * SGP4 Permission Notice
1991     */
1992    SGP4,
1993    /**
1994     * Solderpad Hardware License v0.5
1995     */
1996    SHL_0_5,
1997    /**
1998     * Solderpad Hardware License, Version 0.51
1999     */
2000    SHL_0_51,
2001    /**
2002     * Simple Public License 2.0
2003     */
2004    SIMPL_2_0,
2005    /**
2006     * Sun Industry Standards Source License v1.1
2007     */
2008    SISSL,
2009    /**
2010     * Sun Industry Standards Source License v1.2
2011     */
2012    SISSL_1_2,
2013    /**
2014     * Sleepycat License
2015     */
2016    SLEEPYCAT,
2017    /**
2018     * Standard ML of New Jersey License
2019     */
2020    SMLNJ,
2021    /**
2022     * Secure Messaging Protocol Public License
2023     */
2024    SMPPL,
2025    /**
2026     * SNIA Public License 1.1
2027     */
2028    SNIA,
2029    /**
2030     * snprintf License
2031     */
2032    SNPRINTF,
2033    /**
2034     * Spencer License 86
2035     */
2036    SPENCER_86,
2037    /**
2038     * Spencer License 94
2039     */
2040    SPENCER_94,
2041    /**
2042     * Spencer License 99
2043     */
2044    SPENCER_99,
2045    /**
2046     * Sun Public License v1.0
2047     */
2048    SPL_1_0,
2049    /**
2050     * SSH OpenSSH license
2051     */
2052    SSH_OPENSSH,
2053    /**
2054     * SSH short notice
2055     */
2056    SSH_SHORT,
2057    /**
2058     * Server Side Public License, v 1
2059     */
2060    SSPL_1_0,
2061    /**
2062     * Standard ML of New Jersey License
2063     */
2064    STANDARDML_NJ,
2065    /**
2066     * SugarCRM Public License v1.1.3
2067     */
2068    SUGARCRM_1_1_3,
2069    /**
2070     * SunPro License
2071     */
2072    SUNPRO,
2073    /**
2074     * Scheme Widget Library (SWL) Software License Agreement
2075     */
2076    SWL,
2077    /**
2078     * Symlinks License
2079     */
2080    SYMLINKS,
2081    /**
2082     * TAPR Open Hardware License v1.0
2083     */
2084    TAPR_OHL_1_0,
2085    /**
2086     * TCL/TK License
2087     */
2088    TCL,
2089    /**
2090     * TCP Wrappers License
2091     */
2092    TCP_WRAPPERS,
2093    /**
2094     * TermReadKey License
2095     */
2096    TERMREADKEY,
2097    /**
2098     * TMate Open Source License
2099     */
2100    TMATE,
2101    /**
2102     * TORQUE v2.5+ Software License v1.1
2103     */
2104    TORQUE_1_1,
2105    /**
2106     * Trusster Open Source License
2107     */
2108    TOSL,
2109    /**
2110     * Time::ParseDate License
2111     */
2112    TPDL,
2113    /**
2114     * THOR Public License 1.0
2115     */
2116    TPL_1_0,
2117    /**
2118     * Text-Tabs+Wrap License
2119     */
2120    TTWL,
2121    /**
2122     * Technische Universitaet Berlin License 1.0
2123     */
2124    TU_BERLIN_1_0,
2125    /**
2126     * Technische Universitaet Berlin License 2.0
2127     */
2128    TU_BERLIN_2_0,
2129    /**
2130     * UCAR License
2131     */
2132    UCAR,
2133    /**
2134     * Upstream Compatibility License v1.0
2135     */
2136    UCL_1_0,
2137    /**
2138     * Unicode License Agreement - Data Files and Software (2015)
2139     */
2140    UNICODE_DFS_2015,
2141    /**
2142     * Unicode License Agreement - Data Files and Software (2016)
2143     */
2144    UNICODE_DFS_2016,
2145    /**
2146     * Unicode Terms of Use
2147     */
2148    UNICODE_TOU,
2149    /**
2150     * UnixCrypt License
2151     */
2152    UNIXCRYPT,
2153    /**
2154     * The Unlicense
2155     */
2156    UNLICENSE,
2157    /**
2158     * Universal Permissive License v1.0
2159     */
2160    UPL_1_0,
2161    /**
2162     * Vim License
2163     */
2164    VIM,
2165    /**
2166     * VOSTROM Public License for Open Source
2167     */
2168    VOSTROM,
2169    /**
2170     * Vovida Software License v1.0
2171     */
2172    VSL_1_0,
2173    /**
2174     * W3C Software Notice and License (2002-12-31)
2175     */
2176    W3C,
2177    /**
2178     * W3C Software Notice and License (1998-07-20)
2179     */
2180    W3C_19980720,
2181    /**
2182     * W3C Software Notice and Document License (2015-05-13)
2183     */
2184    W3C_20150513,
2185    /**
2186     * w3m License
2187     */
2188    W3M,
2189    /**
2190     * Sybase Open Watcom Public License 1.0
2191     */
2192    WATCOM_1_0,
2193    /**
2194     * Widget Workshop License
2195     */
2196    WIDGET_WORKSHOP,
2197    /**
2198     * Wsuipa License
2199     */
2200    WSUIPA,
2201    /**
2202     * Do What The F*ck You Want To Public License
2203     */
2204    WTFPL,
2205    /**
2206     * wxWindows Library License
2207     */
2208    WXWINDOWS,
2209    /**
2210     * X11 License
2211     */
2212    X11,
2213    /**
2214     * X11 License Distribution Modification Variant
2215     */
2216    X11_DISTRIBUTE_MODIFICATIONS_VARIANT,
2217    /**
2218     * Xdebug License v 1.03
2219     */
2220    XDEBUG_1_03,
2221    /**
2222     * Xerox License
2223     */
2224    XEROX,
2225    /**
2226     * Xfig License
2227     */
2228    XFIG,
2229    /**
2230     * XFree86 License 1.1
2231     */
2232    XFREE86_1_1,
2233    /**
2234     * xinetd License
2235     */
2236    XINETD,
2237    /**
2238     * xlock License
2239     */
2240    XLOCK,
2241    /**
2242     * X.Net License
2243     */
2244    XNET,
2245    /**
2246     * XPP License
2247     */
2248    XPP,
2249    /**
2250     * XSkat License
2251     */
2252    XSKAT,
2253    /**
2254     * Yahoo! Public License v1.0
2255     */
2256    YPL_1_0,
2257    /**
2258     * Yahoo! Public License v1.1
2259     */
2260    YPL_1_1,
2261    /**
2262     * Zed License
2263     */
2264    ZED,
2265    /**
2266     * Zend License v2.0
2267     */
2268    ZEND_2_0,
2269    /**
2270     * Zimbra Public License v1.3
2271     */
2272    ZIMBRA_1_3,
2273    /**
2274     * Zimbra Public License v1.4
2275     */
2276    ZIMBRA_1_4,
2277    /**
2278     * zlib License
2279     */
2280    ZLIB,
2281    /**
2282     * zlib/libpng License with Acknowledgement
2283     */
2284    ZLIB_ACKNOWLEDGEMENT,
2285    /**
2286     * Zope Public License 1.1
2287     */
2288    ZPL_1_1,
2289    /**
2290     * Zope Public License 2.0
2291     */
2292    ZPL_2_0,
2293    /**
2294     * Zope Public License 2.1
2295     */
2296    ZPL_2_1,
2297    /**
2298     * added to help the parsers
2299     */
2300    NULL;
2301
2302    public static SPDXLicense fromCode(String codeString) throws FHIRException {
2303      if (codeString == null || "".equals(codeString))
2304        return null;
2305      if ("0BSD".equals(codeString))
2306        return _0BSD;
2307      if ("AAL".equals(codeString))
2308        return AAL;
2309      if ("Abstyles".equals(codeString))
2310        return ABSTYLES;
2311      if ("AdaCore-doc".equals(codeString))
2312        return ADACORE_DOC;
2313      if ("Adobe-2006".equals(codeString))
2314        return ADOBE_2006;
2315      if ("Adobe-Glyph".equals(codeString))
2316        return ADOBE_GLYPH;
2317      if ("ADSL".equals(codeString))
2318        return ADSL;
2319      if ("AFL-1.1".equals(codeString))
2320        return AFL_1_1;
2321      if ("AFL-1.2".equals(codeString))
2322        return AFL_1_2;
2323      if ("AFL-2.0".equals(codeString))
2324        return AFL_2_0;
2325      if ("AFL-2.1".equals(codeString))
2326        return AFL_2_1;
2327      if ("AFL-3.0".equals(codeString))
2328        return AFL_3_0;
2329      if ("Afmparse".equals(codeString))
2330        return AFMPARSE;
2331      if ("AGPL-1.0".equals(codeString))
2332        return AGPL_1_0;
2333      if ("AGPL-1.0-only".equals(codeString))
2334        return AGPL_1_0_ONLY;
2335      if ("AGPL-1.0-or-later".equals(codeString))
2336        return AGPL_1_0_OR_LATER;
2337      if ("AGPL-3.0".equals(codeString))
2338        return AGPL_3_0;
2339      if ("AGPL-3.0-only".equals(codeString))
2340        return AGPL_3_0_ONLY;
2341      if ("AGPL-3.0-or-later".equals(codeString))
2342        return AGPL_3_0_OR_LATER;
2343      if ("Aladdin".equals(codeString))
2344        return ALADDIN;
2345      if ("AMDPLPA".equals(codeString))
2346        return AMDPLPA;
2347      if ("AML".equals(codeString))
2348        return AML;
2349      if ("AMPAS".equals(codeString))
2350        return AMPAS;
2351      if ("ANTLR-PD".equals(codeString))
2352        return ANTLR_PD;
2353      if ("ANTLR-PD-fallback".equals(codeString))
2354        return ANTLR_PD_FALLBACK;
2355      if ("Apache-1.0".equals(codeString))
2356        return APACHE_1_0;
2357      if ("Apache-1.1".equals(codeString))
2358        return APACHE_1_1;
2359      if ("Apache-2.0".equals(codeString))
2360        return APACHE_2_0;
2361      if ("APAFML".equals(codeString))
2362        return APAFML;
2363      if ("APL-1.0".equals(codeString))
2364        return APL_1_0;
2365      if ("App-s2p".equals(codeString))
2366        return APP_S2P;
2367      if ("APSL-1.0".equals(codeString))
2368        return APSL_1_0;
2369      if ("APSL-1.1".equals(codeString))
2370        return APSL_1_1;
2371      if ("APSL-1.2".equals(codeString))
2372        return APSL_1_2;
2373      if ("APSL-2.0".equals(codeString))
2374        return APSL_2_0;
2375      if ("Arphic-1999".equals(codeString))
2376        return ARPHIC_1999;
2377      if ("Artistic-1.0".equals(codeString))
2378        return ARTISTIC_1_0;
2379      if ("Artistic-1.0-cl8".equals(codeString))
2380        return ARTISTIC_1_0_CL8;
2381      if ("Artistic-1.0-Perl".equals(codeString))
2382        return ARTISTIC_1_0_PERL;
2383      if ("Artistic-2.0".equals(codeString))
2384        return ARTISTIC_2_0;
2385      if ("ASWF-Digital-Assets-1.0".equals(codeString))
2386        return ASWF_DIGITAL_ASSETS_1_0;
2387      if ("ASWF-Digital-Assets-1.1".equals(codeString))
2388        return ASWF_DIGITAL_ASSETS_1_1;
2389      if ("Baekmuk".equals(codeString))
2390        return BAEKMUK;
2391      if ("Bahyph".equals(codeString))
2392        return BAHYPH;
2393      if ("Barr".equals(codeString))
2394        return BARR;
2395      if ("Beerware".equals(codeString))
2396        return BEERWARE;
2397      if ("Bitstream-Charter".equals(codeString))
2398        return BITSTREAM_CHARTER;
2399      if ("Bitstream-Vera".equals(codeString))
2400        return BITSTREAM_VERA;
2401      if ("BitTorrent-1.0".equals(codeString))
2402        return BITTORRENT_1_0;
2403      if ("BitTorrent-1.1".equals(codeString))
2404        return BITTORRENT_1_1;
2405      if ("blessing".equals(codeString))
2406        return BLESSING;
2407      if ("BlueOak-1.0.0".equals(codeString))
2408        return BLUEOAK_1_0_0;
2409      if ("Boehm-GC".equals(codeString))
2410        return BOEHM_GC;
2411      if ("Borceux".equals(codeString))
2412        return BORCEUX;
2413      if ("Brian-Gladman-3-Clause".equals(codeString))
2414        return BRIAN_GLADMAN_3_CLAUSE;
2415      if ("BSD-1-Clause".equals(codeString))
2416        return BSD_1_CLAUSE;
2417      if ("BSD-2-Clause".equals(codeString))
2418        return BSD_2_CLAUSE;
2419      if ("BSD-2-Clause-FreeBSD".equals(codeString))
2420        return BSD_2_CLAUSE_FREEBSD;
2421      if ("BSD-2-Clause-NetBSD".equals(codeString))
2422        return BSD_2_CLAUSE_NETBSD;
2423      if ("BSD-2-Clause-Patent".equals(codeString))
2424        return BSD_2_CLAUSE_PATENT;
2425      if ("BSD-2-Clause-Views".equals(codeString))
2426        return BSD_2_CLAUSE_VIEWS;
2427      if ("BSD-3-Clause".equals(codeString))
2428        return BSD_3_CLAUSE;
2429      if ("BSD-3-Clause-Attribution".equals(codeString))
2430        return BSD_3_CLAUSE_ATTRIBUTION;
2431      if ("BSD-3-Clause-Clear".equals(codeString))
2432        return BSD_3_CLAUSE_CLEAR;
2433      if ("BSD-3-Clause-LBNL".equals(codeString))
2434        return BSD_3_CLAUSE_LBNL;
2435      if ("BSD-3-Clause-Modification".equals(codeString))
2436        return BSD_3_CLAUSE_MODIFICATION;
2437      if ("BSD-3-Clause-No-Military-License".equals(codeString))
2438        return BSD_3_CLAUSE_NO_MILITARY_LICENSE;
2439      if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
2440        return BSD_3_CLAUSE_NO_NUCLEAR_LICENSE;
2441      if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
2442        return BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014;
2443      if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
2444        return BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY;
2445      if ("BSD-3-Clause-Open-MPI".equals(codeString))
2446        return BSD_3_CLAUSE_OPEN_MPI;
2447      if ("BSD-4-Clause".equals(codeString))
2448        return BSD_4_CLAUSE;
2449      if ("BSD-4-Clause-Shortened".equals(codeString))
2450        return BSD_4_CLAUSE_SHORTENED;
2451      if ("BSD-4-Clause-UC".equals(codeString))
2452        return BSD_4_CLAUSE_UC;
2453      if ("BSD-4.3RENO".equals(codeString))
2454        return BSD_4_3RENO;
2455      if ("BSD-4.3TAHOE".equals(codeString))
2456        return BSD_4_3TAHOE;
2457      if ("BSD-Advertising-Acknowledgement".equals(codeString))
2458        return BSD_ADVERTISING_ACKNOWLEDGEMENT;
2459      if ("BSD-Attribution-HPND-disclaimer".equals(codeString))
2460        return BSD_ATTRIBUTION_HPND_DISCLAIMER;
2461      if ("BSD-Protection".equals(codeString))
2462        return BSD_PROTECTION;
2463      if ("BSD-Source-Code".equals(codeString))
2464        return BSD_SOURCE_CODE;
2465      if ("BSL-1.0".equals(codeString))
2466        return BSL_1_0;
2467      if ("BUSL-1.1".equals(codeString))
2468        return BUSL_1_1;
2469      if ("bzip2-1.0.5".equals(codeString))
2470        return BZIP2_1_0_5;
2471      if ("bzip2-1.0.6".equals(codeString))
2472        return BZIP2_1_0_6;
2473      if ("C-UDA-1.0".equals(codeString))
2474        return C_UDA_1_0;
2475      if ("CAL-1.0".equals(codeString))
2476        return CAL_1_0;
2477      if ("CAL-1.0-Combined-Work-Exception".equals(codeString))
2478        return CAL_1_0_COMBINED_WORK_EXCEPTION;
2479      if ("Caldera".equals(codeString))
2480        return CALDERA;
2481      if ("CATOSL-1.1".equals(codeString))
2482        return CATOSL_1_1;
2483      if ("CC-BY-1.0".equals(codeString))
2484        return CC_BY_1_0;
2485      if ("CC-BY-2.0".equals(codeString))
2486        return CC_BY_2_0;
2487      if ("CC-BY-2.5".equals(codeString))
2488        return CC_BY_2_5;
2489      if ("CC-BY-2.5-AU".equals(codeString))
2490        return CC_BY_2_5_AU;
2491      if ("CC-BY-3.0".equals(codeString))
2492        return CC_BY_3_0;
2493      if ("CC-BY-3.0-AT".equals(codeString))
2494        return CC_BY_3_0_AT;
2495      if ("CC-BY-3.0-DE".equals(codeString))
2496        return CC_BY_3_0_DE;
2497      if ("CC-BY-3.0-IGO".equals(codeString))
2498        return CC_BY_3_0_IGO;
2499      if ("CC-BY-3.0-NL".equals(codeString))
2500        return CC_BY_3_0_NL;
2501      if ("CC-BY-3.0-US".equals(codeString))
2502        return CC_BY_3_0_US;
2503      if ("CC-BY-4.0".equals(codeString))
2504        return CC_BY_4_0;
2505      if ("CC-BY-NC-1.0".equals(codeString))
2506        return CC_BY_NC_1_0;
2507      if ("CC-BY-NC-2.0".equals(codeString))
2508        return CC_BY_NC_2_0;
2509      if ("CC-BY-NC-2.5".equals(codeString))
2510        return CC_BY_NC_2_5;
2511      if ("CC-BY-NC-3.0".equals(codeString))
2512        return CC_BY_NC_3_0;
2513      if ("CC-BY-NC-3.0-DE".equals(codeString))
2514        return CC_BY_NC_3_0_DE;
2515      if ("CC-BY-NC-4.0".equals(codeString))
2516        return CC_BY_NC_4_0;
2517      if ("CC-BY-NC-ND-1.0".equals(codeString))
2518        return CC_BY_NC_ND_1_0;
2519      if ("CC-BY-NC-ND-2.0".equals(codeString))
2520        return CC_BY_NC_ND_2_0;
2521      if ("CC-BY-NC-ND-2.5".equals(codeString))
2522        return CC_BY_NC_ND_2_5;
2523      if ("CC-BY-NC-ND-3.0".equals(codeString))
2524        return CC_BY_NC_ND_3_0;
2525      if ("CC-BY-NC-ND-3.0-DE".equals(codeString))
2526        return CC_BY_NC_ND_3_0_DE;
2527      if ("CC-BY-NC-ND-3.0-IGO".equals(codeString))
2528        return CC_BY_NC_ND_3_0_IGO;
2529      if ("CC-BY-NC-ND-4.0".equals(codeString))
2530        return CC_BY_NC_ND_4_0;
2531      if ("CC-BY-NC-SA-1.0".equals(codeString))
2532        return CC_BY_NC_SA_1_0;
2533      if ("CC-BY-NC-SA-2.0".equals(codeString))
2534        return CC_BY_NC_SA_2_0;
2535      if ("CC-BY-NC-SA-2.0-DE".equals(codeString))
2536        return CC_BY_NC_SA_2_0_DE;
2537      if ("CC-BY-NC-SA-2.0-FR".equals(codeString))
2538        return CC_BY_NC_SA_2_0_FR;
2539      if ("CC-BY-NC-SA-2.0-UK".equals(codeString))
2540        return CC_BY_NC_SA_2_0_UK;
2541      if ("CC-BY-NC-SA-2.5".equals(codeString))
2542        return CC_BY_NC_SA_2_5;
2543      if ("CC-BY-NC-SA-3.0".equals(codeString))
2544        return CC_BY_NC_SA_3_0;
2545      if ("CC-BY-NC-SA-3.0-DE".equals(codeString))
2546        return CC_BY_NC_SA_3_0_DE;
2547      if ("CC-BY-NC-SA-3.0-IGO".equals(codeString))
2548        return CC_BY_NC_SA_3_0_IGO;
2549      if ("CC-BY-NC-SA-4.0".equals(codeString))
2550        return CC_BY_NC_SA_4_0;
2551      if ("CC-BY-ND-1.0".equals(codeString))
2552        return CC_BY_ND_1_0;
2553      if ("CC-BY-ND-2.0".equals(codeString))
2554        return CC_BY_ND_2_0;
2555      if ("CC-BY-ND-2.5".equals(codeString))
2556        return CC_BY_ND_2_5;
2557      if ("CC-BY-ND-3.0".equals(codeString))
2558        return CC_BY_ND_3_0;
2559      if ("CC-BY-ND-3.0-DE".equals(codeString))
2560        return CC_BY_ND_3_0_DE;
2561      if ("CC-BY-ND-4.0".equals(codeString))
2562        return CC_BY_ND_4_0;
2563      if ("CC-BY-SA-1.0".equals(codeString))
2564        return CC_BY_SA_1_0;
2565      if ("CC-BY-SA-2.0".equals(codeString))
2566        return CC_BY_SA_2_0;
2567      if ("CC-BY-SA-2.0-UK".equals(codeString))
2568        return CC_BY_SA_2_0_UK;
2569      if ("CC-BY-SA-2.1-JP".equals(codeString))
2570        return CC_BY_SA_2_1_JP;
2571      if ("CC-BY-SA-2.5".equals(codeString))
2572        return CC_BY_SA_2_5;
2573      if ("CC-BY-SA-3.0".equals(codeString))
2574        return CC_BY_SA_3_0;
2575      if ("CC-BY-SA-3.0-AT".equals(codeString))
2576        return CC_BY_SA_3_0_AT;
2577      if ("CC-BY-SA-3.0-DE".equals(codeString))
2578        return CC_BY_SA_3_0_DE;
2579      if ("CC-BY-SA-3.0-IGO".equals(codeString))
2580        return CC_BY_SA_3_0_IGO;
2581      if ("CC-BY-SA-4.0".equals(codeString))
2582        return CC_BY_SA_4_0;
2583      if ("CC-PDDC".equals(codeString))
2584        return CC_PDDC;
2585      if ("CC0-1.0".equals(codeString))
2586        return CC0_1_0;
2587      if ("CDDL-1.0".equals(codeString))
2588        return CDDL_1_0;
2589      if ("CDDL-1.1".equals(codeString))
2590        return CDDL_1_1;
2591      if ("CDL-1.0".equals(codeString))
2592        return CDL_1_0;
2593      if ("CDLA-Permissive-1.0".equals(codeString))
2594        return CDLA_PERMISSIVE_1_0;
2595      if ("CDLA-Permissive-2.0".equals(codeString))
2596        return CDLA_PERMISSIVE_2_0;
2597      if ("CDLA-Sharing-1.0".equals(codeString))
2598        return CDLA_SHARING_1_0;
2599      if ("CECILL-1.0".equals(codeString))
2600        return CECILL_1_0;
2601      if ("CECILL-1.1".equals(codeString))
2602        return CECILL_1_1;
2603      if ("CECILL-2.0".equals(codeString))
2604        return CECILL_2_0;
2605      if ("CECILL-2.1".equals(codeString))
2606        return CECILL_2_1;
2607      if ("CECILL-B".equals(codeString))
2608        return CECILL_B;
2609      if ("CECILL-C".equals(codeString))
2610        return CECILL_C;
2611      if ("CERN-OHL-1.1".equals(codeString))
2612        return CERN_OHL_1_1;
2613      if ("CERN-OHL-1.2".equals(codeString))
2614        return CERN_OHL_1_2;
2615      if ("CERN-OHL-P-2.0".equals(codeString))
2616        return CERN_OHL_P_2_0;
2617      if ("CERN-OHL-S-2.0".equals(codeString))
2618        return CERN_OHL_S_2_0;
2619      if ("CERN-OHL-W-2.0".equals(codeString))
2620        return CERN_OHL_W_2_0;
2621      if ("CFITSIO".equals(codeString))
2622        return CFITSIO;
2623      if ("checkmk".equals(codeString))
2624        return CHECKMK;
2625      if ("ClArtistic".equals(codeString))
2626        return CLARTISTIC;
2627      if ("Clips".equals(codeString))
2628        return CLIPS;
2629      if ("CMU-Mach".equals(codeString))
2630        return CMU_MACH;
2631      if ("CNRI-Jython".equals(codeString))
2632        return CNRI_JYTHON;
2633      if ("CNRI-Python".equals(codeString))
2634        return CNRI_PYTHON;
2635      if ("CNRI-Python-GPL-Compatible".equals(codeString))
2636        return CNRI_PYTHON_GPL_COMPATIBLE;
2637      if ("COIL-1.0".equals(codeString))
2638        return COIL_1_0;
2639      if ("Community-Spec-1.0".equals(codeString))
2640        return COMMUNITY_SPEC_1_0;
2641      if ("Condor-1.1".equals(codeString))
2642        return CONDOR_1_1;
2643      if ("copyleft-next-0.3.0".equals(codeString))
2644        return COPYLEFT_NEXT_0_3_0;
2645      if ("copyleft-next-0.3.1".equals(codeString))
2646        return COPYLEFT_NEXT_0_3_1;
2647      if ("Cornell-Lossless-JPEG".equals(codeString))
2648        return CORNELL_LOSSLESS_JPEG;
2649      if ("CPAL-1.0".equals(codeString))
2650        return CPAL_1_0;
2651      if ("CPL-1.0".equals(codeString))
2652        return CPL_1_0;
2653      if ("CPOL-1.02".equals(codeString))
2654        return CPOL_1_02;
2655      if ("Crossword".equals(codeString))
2656        return CROSSWORD;
2657      if ("CrystalStacker".equals(codeString))
2658        return CRYSTALSTACKER;
2659      if ("CUA-OPL-1.0".equals(codeString))
2660        return CUA_OPL_1_0;
2661      if ("Cube".equals(codeString))
2662        return CUBE;
2663      if ("curl".equals(codeString))
2664        return CURL;
2665      if ("D-FSL-1.0".equals(codeString))
2666        return D_FSL_1_0;
2667      if ("diffmark".equals(codeString))
2668        return DIFFMARK;
2669      if ("DL-DE-BY-2.0".equals(codeString))
2670        return DL_DE_BY_2_0;
2671      if ("DOC".equals(codeString))
2672        return DOC;
2673      if ("Dotseqn".equals(codeString))
2674        return DOTSEQN;
2675      if ("DRL-1.0".equals(codeString))
2676        return DRL_1_0;
2677      if ("DSDP".equals(codeString))
2678        return DSDP;
2679      if ("dtoa".equals(codeString))
2680        return DTOA;
2681      if ("dvipdfm".equals(codeString))
2682        return DVIPDFM;
2683      if ("ECL-1.0".equals(codeString))
2684        return ECL_1_0;
2685      if ("ECL-2.0".equals(codeString))
2686        return ECL_2_0;
2687      if ("eCos-2.0".equals(codeString))
2688        return ECOS_2_0;
2689      if ("EFL-1.0".equals(codeString))
2690        return EFL_1_0;
2691      if ("EFL-2.0".equals(codeString))
2692        return EFL_2_0;
2693      if ("eGenix".equals(codeString))
2694        return EGENIX;
2695      if ("Elastic-2.0".equals(codeString))
2696        return ELASTIC_2_0;
2697      if ("Entessa".equals(codeString))
2698        return ENTESSA;
2699      if ("EPICS".equals(codeString))
2700        return EPICS;
2701      if ("EPL-1.0".equals(codeString))
2702        return EPL_1_0;
2703      if ("EPL-2.0".equals(codeString))
2704        return EPL_2_0;
2705      if ("ErlPL-1.1".equals(codeString))
2706        return ERLPL_1_1;
2707      if ("etalab-2.0".equals(codeString))
2708        return ETALAB_2_0;
2709      if ("EUDatagrid".equals(codeString))
2710        return EUDATAGRID;
2711      if ("EUPL-1.0".equals(codeString))
2712        return EUPL_1_0;
2713      if ("EUPL-1.1".equals(codeString))
2714        return EUPL_1_1;
2715      if ("EUPL-1.2".equals(codeString))
2716        return EUPL_1_2;
2717      if ("Eurosym".equals(codeString))
2718        return EUROSYM;
2719      if ("Fair".equals(codeString))
2720        return FAIR;
2721      if ("FDK-AAC".equals(codeString))
2722        return FDK_AAC;
2723      if ("Frameworx-1.0".equals(codeString))
2724        return FRAMEWORX_1_0;
2725      if ("FreeBSD-DOC".equals(codeString))
2726        return FREEBSD_DOC;
2727      if ("FreeImage".equals(codeString))
2728        return FREEIMAGE;
2729      if ("FSFAP".equals(codeString))
2730        return FSFAP;
2731      if ("FSFUL".equals(codeString))
2732        return FSFUL;
2733      if ("FSFULLR".equals(codeString))
2734        return FSFULLR;
2735      if ("FSFULLRWD".equals(codeString))
2736        return FSFULLRWD;
2737      if ("FTL".equals(codeString))
2738        return FTL;
2739      if ("GD".equals(codeString))
2740        return GD;
2741      if ("GFDL-1.1".equals(codeString))
2742        return GFDL_1_1;
2743      if ("GFDL-1.1-invariants-only".equals(codeString))
2744        return GFDL_1_1_INVARIANTS_ONLY;
2745      if ("GFDL-1.1-invariants-or-later".equals(codeString))
2746        return GFDL_1_1_INVARIANTS_OR_LATER;
2747      if ("GFDL-1.1-no-invariants-only".equals(codeString))
2748        return GFDL_1_1_NO_INVARIANTS_ONLY;
2749      if ("GFDL-1.1-no-invariants-or-later".equals(codeString))
2750        return GFDL_1_1_NO_INVARIANTS_OR_LATER;
2751      if ("GFDL-1.1-only".equals(codeString))
2752        return GFDL_1_1_ONLY;
2753      if ("GFDL-1.1-or-later".equals(codeString))
2754        return GFDL_1_1_OR_LATER;
2755      if ("GFDL-1.2".equals(codeString))
2756        return GFDL_1_2;
2757      if ("GFDL-1.2-invariants-only".equals(codeString))
2758        return GFDL_1_2_INVARIANTS_ONLY;
2759      if ("GFDL-1.2-invariants-or-later".equals(codeString))
2760        return GFDL_1_2_INVARIANTS_OR_LATER;
2761      if ("GFDL-1.2-no-invariants-only".equals(codeString))
2762        return GFDL_1_2_NO_INVARIANTS_ONLY;
2763      if ("GFDL-1.2-no-invariants-or-later".equals(codeString))
2764        return GFDL_1_2_NO_INVARIANTS_OR_LATER;
2765      if ("GFDL-1.2-only".equals(codeString))
2766        return GFDL_1_2_ONLY;
2767      if ("GFDL-1.2-or-later".equals(codeString))
2768        return GFDL_1_2_OR_LATER;
2769      if ("GFDL-1.3".equals(codeString))
2770        return GFDL_1_3;
2771      if ("GFDL-1.3-invariants-only".equals(codeString))
2772        return GFDL_1_3_INVARIANTS_ONLY;
2773      if ("GFDL-1.3-invariants-or-later".equals(codeString))
2774        return GFDL_1_3_INVARIANTS_OR_LATER;
2775      if ("GFDL-1.3-no-invariants-only".equals(codeString))
2776        return GFDL_1_3_NO_INVARIANTS_ONLY;
2777      if ("GFDL-1.3-no-invariants-or-later".equals(codeString))
2778        return GFDL_1_3_NO_INVARIANTS_OR_LATER;
2779      if ("GFDL-1.3-only".equals(codeString))
2780        return GFDL_1_3_ONLY;
2781      if ("GFDL-1.3-or-later".equals(codeString))
2782        return GFDL_1_3_OR_LATER;
2783      if ("Giftware".equals(codeString))
2784        return GIFTWARE;
2785      if ("GL2PS".equals(codeString))
2786        return GL2PS;
2787      if ("Glide".equals(codeString))
2788        return GLIDE;
2789      if ("Glulxe".equals(codeString))
2790        return GLULXE;
2791      if ("GLWTPL".equals(codeString))
2792        return GLWTPL;
2793      if ("gnuplot".equals(codeString))
2794        return GNUPLOT;
2795      if ("GPL-1.0".equals(codeString))
2796        return GPL_1_0;
2797      if ("GPL-1.0+".equals(codeString))
2798        return GPL_1_0PLUS;
2799      if ("GPL-1.0-only".equals(codeString))
2800        return GPL_1_0_ONLY;
2801      if ("GPL-1.0-or-later".equals(codeString))
2802        return GPL_1_0_OR_LATER;
2803      if ("GPL-2.0".equals(codeString))
2804        return GPL_2_0;
2805      if ("GPL-2.0+".equals(codeString))
2806        return GPL_2_0PLUS;
2807      if ("GPL-2.0-only".equals(codeString))
2808        return GPL_2_0_ONLY;
2809      if ("GPL-2.0-or-later".equals(codeString))
2810        return GPL_2_0_OR_LATER;
2811      if ("GPL-2.0-with-autoconf-exception".equals(codeString))
2812        return GPL_2_0_WITH_AUTOCONF_EXCEPTION;
2813      if ("GPL-2.0-with-bison-exception".equals(codeString))
2814        return GPL_2_0_WITH_BISON_EXCEPTION;
2815      if ("GPL-2.0-with-classpath-exception".equals(codeString))
2816        return GPL_2_0_WITH_CLASSPATH_EXCEPTION;
2817      if ("GPL-2.0-with-font-exception".equals(codeString))
2818        return GPL_2_0_WITH_FONT_EXCEPTION;
2819      if ("GPL-2.0-with-GCC-exception".equals(codeString))
2820        return GPL_2_0_WITH_GCC_EXCEPTION;
2821      if ("GPL-3.0".equals(codeString))
2822        return GPL_3_0;
2823      if ("GPL-3.0+".equals(codeString))
2824        return GPL_3_0PLUS;
2825      if ("GPL-3.0-only".equals(codeString))
2826        return GPL_3_0_ONLY;
2827      if ("GPL-3.0-or-later".equals(codeString))
2828        return GPL_3_0_OR_LATER;
2829      if ("GPL-3.0-with-autoconf-exception".equals(codeString))
2830        return GPL_3_0_WITH_AUTOCONF_EXCEPTION;
2831      if ("GPL-3.0-with-GCC-exception".equals(codeString))
2832        return GPL_3_0_WITH_GCC_EXCEPTION;
2833      if ("Graphics-Gems".equals(codeString))
2834        return GRAPHICS_GEMS;
2835      if ("gSOAP-1.3b".equals(codeString))
2836        return GSOAP_1_3B;
2837      if ("HaskellReport".equals(codeString))
2838        return HASKELLREPORT;
2839      if ("Hippocratic-2.1".equals(codeString))
2840        return HIPPOCRATIC_2_1;
2841      if ("HP-1986".equals(codeString))
2842        return HP_1986;
2843      if ("HPND".equals(codeString))
2844        return HPND;
2845      if ("HPND-export-US".equals(codeString))
2846        return HPND_EXPORT_US;
2847      if ("HPND-Markus-Kuhn".equals(codeString))
2848        return HPND_MARKUS_KUHN;
2849      if ("HPND-sell-variant".equals(codeString))
2850        return HPND_SELL_VARIANT;
2851      if ("HPND-sell-variant-MIT-disclaimer".equals(codeString))
2852        return HPND_SELL_VARIANT_MIT_DISCLAIMER;
2853      if ("HTMLTIDY".equals(codeString))
2854        return HTMLTIDY;
2855      if ("IBM-pibs".equals(codeString))
2856        return IBM_PIBS;
2857      if ("ICU".equals(codeString))
2858        return ICU;
2859      if ("IEC-Code-Components-EULA".equals(codeString))
2860        return IEC_CODE_COMPONENTS_EULA;
2861      if ("IJG".equals(codeString))
2862        return IJG;
2863      if ("IJG-short".equals(codeString))
2864        return IJG_SHORT;
2865      if ("ImageMagick".equals(codeString))
2866        return IMAGEMAGICK;
2867      if ("iMatix".equals(codeString))
2868        return IMATIX;
2869      if ("Imlib2".equals(codeString))
2870        return IMLIB2;
2871      if ("Info-ZIP".equals(codeString))
2872        return INFO_ZIP;
2873      if ("Inner-Net-2.0".equals(codeString))
2874        return INNER_NET_2_0;
2875      if ("Intel".equals(codeString))
2876        return INTEL;
2877      if ("Intel-ACPI".equals(codeString))
2878        return INTEL_ACPI;
2879      if ("Interbase-1.0".equals(codeString))
2880        return INTERBASE_1_0;
2881      if ("IPA".equals(codeString))
2882        return IPA;
2883      if ("IPL-1.0".equals(codeString))
2884        return IPL_1_0;
2885      if ("ISC".equals(codeString))
2886        return ISC;
2887      if ("Jam".equals(codeString))
2888        return JAM;
2889      if ("JasPer-2.0".equals(codeString))
2890        return JASPER_2_0;
2891      if ("JPL-image".equals(codeString))
2892        return JPL_IMAGE;
2893      if ("JPNIC".equals(codeString))
2894        return JPNIC;
2895      if ("JSON".equals(codeString))
2896        return JSON;
2897      if ("Kazlib".equals(codeString))
2898        return KAZLIB;
2899      if ("Knuth-CTAN".equals(codeString))
2900        return KNUTH_CTAN;
2901      if ("LAL-1.2".equals(codeString))
2902        return LAL_1_2;
2903      if ("LAL-1.3".equals(codeString))
2904        return LAL_1_3;
2905      if ("Latex2e".equals(codeString))
2906        return LATEX2E;
2907      if ("Latex2e-translated-notice".equals(codeString))
2908        return LATEX2E_TRANSLATED_NOTICE;
2909      if ("Leptonica".equals(codeString))
2910        return LEPTONICA;
2911      if ("LGPL-2.0".equals(codeString))
2912        return LGPL_2_0;
2913      if ("LGPL-2.0+".equals(codeString))
2914        return LGPL_2_0PLUS;
2915      if ("LGPL-2.0-only".equals(codeString))
2916        return LGPL_2_0_ONLY;
2917      if ("LGPL-2.0-or-later".equals(codeString))
2918        return LGPL_2_0_OR_LATER;
2919      if ("LGPL-2.1".equals(codeString))
2920        return LGPL_2_1;
2921      if ("LGPL-2.1+".equals(codeString))
2922        return LGPL_2_1PLUS;
2923      if ("LGPL-2.1-only".equals(codeString))
2924        return LGPL_2_1_ONLY;
2925      if ("LGPL-2.1-or-later".equals(codeString))
2926        return LGPL_2_1_OR_LATER;
2927      if ("LGPL-3.0".equals(codeString))
2928        return LGPL_3_0;
2929      if ("LGPL-3.0+".equals(codeString))
2930        return LGPL_3_0PLUS;
2931      if ("LGPL-3.0-only".equals(codeString))
2932        return LGPL_3_0_ONLY;
2933      if ("LGPL-3.0-or-later".equals(codeString))
2934        return LGPL_3_0_OR_LATER;
2935      if ("LGPLLR".equals(codeString))
2936        return LGPLLR;
2937      if ("Libpng".equals(codeString))
2938        return LIBPNG;
2939      if ("libpng-2.0".equals(codeString))
2940        return LIBPNG_2_0;
2941      if ("libselinux-1.0".equals(codeString))
2942        return LIBSELINUX_1_0;
2943      if ("libtiff".equals(codeString))
2944        return LIBTIFF;
2945      if ("libutil-David-Nugent".equals(codeString))
2946        return LIBUTIL_DAVID_NUGENT;
2947      if ("LiLiQ-P-1.1".equals(codeString))
2948        return LILIQ_P_1_1;
2949      if ("LiLiQ-R-1.1".equals(codeString))
2950        return LILIQ_R_1_1;
2951      if ("LiLiQ-Rplus-1.1".equals(codeString))
2952        return LILIQ_RPLUS_1_1;
2953      if ("Linux-man-pages-1-para".equals(codeString))
2954        return LINUX_MAN_PAGES_1_PARA;
2955      if ("Linux-man-pages-copyleft".equals(codeString))
2956        return LINUX_MAN_PAGES_COPYLEFT;
2957      if ("Linux-man-pages-copyleft-2-para".equals(codeString))
2958        return LINUX_MAN_PAGES_COPYLEFT_2_PARA;
2959      if ("Linux-man-pages-copyleft-var".equals(codeString))
2960        return LINUX_MAN_PAGES_COPYLEFT_VAR;
2961      if ("Linux-OpenIB".equals(codeString))
2962        return LINUX_OPENIB;
2963      if ("LOOP".equals(codeString))
2964        return LOOP;
2965      if ("LPL-1.0".equals(codeString))
2966        return LPL_1_0;
2967      if ("LPL-1.02".equals(codeString))
2968        return LPL_1_02;
2969      if ("LPPL-1.0".equals(codeString))
2970        return LPPL_1_0;
2971      if ("LPPL-1.1".equals(codeString))
2972        return LPPL_1_1;
2973      if ("LPPL-1.2".equals(codeString))
2974        return LPPL_1_2;
2975      if ("LPPL-1.3a".equals(codeString))
2976        return LPPL_1_3A;
2977      if ("LPPL-1.3c".equals(codeString))
2978        return LPPL_1_3C;
2979      if ("LZMA-SDK-9.11-to-9.20".equals(codeString))
2980        return LZMA_SDK_9_11_TO_9_20;
2981      if ("LZMA-SDK-9.22".equals(codeString))
2982        return LZMA_SDK_9_22;
2983      if ("MakeIndex".equals(codeString))
2984        return MAKEINDEX;
2985      if ("Martin-Birgmeier".equals(codeString))
2986        return MARTIN_BIRGMEIER;
2987      if ("metamail".equals(codeString))
2988        return METAMAIL;
2989      if ("Minpack".equals(codeString))
2990        return MINPACK;
2991      if ("MirOS".equals(codeString))
2992        return MIROS;
2993      if ("MIT".equals(codeString))
2994        return MIT;
2995      if ("MIT-0".equals(codeString))
2996        return MIT_0;
2997      if ("MIT-advertising".equals(codeString))
2998        return MIT_ADVERTISING;
2999      if ("MIT-CMU".equals(codeString))
3000        return MIT_CMU;
3001      if ("MIT-enna".equals(codeString))
3002        return MIT_ENNA;
3003      if ("MIT-feh".equals(codeString))
3004        return MIT_FEH;
3005      if ("MIT-Festival".equals(codeString))
3006        return MIT_FESTIVAL;
3007      if ("MIT-Modern-Variant".equals(codeString))
3008        return MIT_MODERN_VARIANT;
3009      if ("MIT-open-group".equals(codeString))
3010        return MIT_OPEN_GROUP;
3011      if ("MIT-Wu".equals(codeString))
3012        return MIT_WU;
3013      if ("MITNFA".equals(codeString))
3014        return MITNFA;
3015      if ("Motosoto".equals(codeString))
3016        return MOTOSOTO;
3017      if ("mpi-permissive".equals(codeString))
3018        return MPI_PERMISSIVE;
3019      if ("mpich2".equals(codeString))
3020        return MPICH2;
3021      if ("MPL-1.0".equals(codeString))
3022        return MPL_1_0;
3023      if ("MPL-1.1".equals(codeString))
3024        return MPL_1_1;
3025      if ("MPL-2.0".equals(codeString))
3026        return MPL_2_0;
3027      if ("MPL-2.0-no-copyleft-exception".equals(codeString))
3028        return MPL_2_0_NO_COPYLEFT_EXCEPTION;
3029      if ("mplus".equals(codeString))
3030        return MPLUS;
3031      if ("MS-LPL".equals(codeString))
3032        return MS_LPL;
3033      if ("MS-PL".equals(codeString))
3034        return MS_PL;
3035      if ("MS-RL".equals(codeString))
3036        return MS_RL;
3037      if ("MTLL".equals(codeString))
3038        return MTLL;
3039      if ("MulanPSL-1.0".equals(codeString))
3040        return MULANPSL_1_0;
3041      if ("MulanPSL-2.0".equals(codeString))
3042        return MULANPSL_2_0;
3043      if ("Multics".equals(codeString))
3044        return MULTICS;
3045      if ("Mup".equals(codeString))
3046        return MUP;
3047      if ("NAIST-2003".equals(codeString))
3048        return NAIST_2003;
3049      if ("NASA-1.3".equals(codeString))
3050        return NASA_1_3;
3051      if ("Naumen".equals(codeString))
3052        return NAUMEN;
3053      if ("NBPL-1.0".equals(codeString))
3054        return NBPL_1_0;
3055      if ("NCGL-UK-2.0".equals(codeString))
3056        return NCGL_UK_2_0;
3057      if ("NCSA".equals(codeString))
3058        return NCSA;
3059      if ("Net-SNMP".equals(codeString))
3060        return NET_SNMP;
3061      if ("NetCDF".equals(codeString))
3062        return NETCDF;
3063      if ("Newsletr".equals(codeString))
3064        return NEWSLETR;
3065      if ("NGPL".equals(codeString))
3066        return NGPL;
3067      if ("NICTA-1.0".equals(codeString))
3068        return NICTA_1_0;
3069      if ("NIST-PD".equals(codeString))
3070        return NIST_PD;
3071      if ("NIST-PD-fallback".equals(codeString))
3072        return NIST_PD_FALLBACK;
3073      if ("NIST-Software".equals(codeString))
3074        return NIST_SOFTWARE;
3075      if ("NLOD-1.0".equals(codeString))
3076        return NLOD_1_0;
3077      if ("NLOD-2.0".equals(codeString))
3078        return NLOD_2_0;
3079      if ("NLPL".equals(codeString))
3080        return NLPL;
3081      if ("Nokia".equals(codeString))
3082        return NOKIA;
3083      if ("NOSL".equals(codeString))
3084        return NOSL;
3085      if ("not-open-source".equals(codeString))
3086        return NOT_OPEN_SOURCE;
3087      if ("Noweb".equals(codeString))
3088        return NOWEB;
3089      if ("NPL-1.0".equals(codeString))
3090        return NPL_1_0;
3091      if ("NPL-1.1".equals(codeString))
3092        return NPL_1_1;
3093      if ("NPOSL-3.0".equals(codeString))
3094        return NPOSL_3_0;
3095      if ("NRL".equals(codeString))
3096        return NRL;
3097      if ("NTP".equals(codeString))
3098        return NTP;
3099      if ("NTP-0".equals(codeString))
3100        return NTP_0;
3101      if ("Nunit".equals(codeString))
3102        return NUNIT;
3103      if ("O-UDA-1.0".equals(codeString))
3104        return O_UDA_1_0;
3105      if ("OCCT-PL".equals(codeString))
3106        return OCCT_PL;
3107      if ("OCLC-2.0".equals(codeString))
3108        return OCLC_2_0;
3109      if ("ODbL-1.0".equals(codeString))
3110        return ODBL_1_0;
3111      if ("ODC-By-1.0".equals(codeString))
3112        return ODC_BY_1_0;
3113      if ("OFFIS".equals(codeString))
3114        return OFFIS;
3115      if ("OFL-1.0".equals(codeString))
3116        return OFL_1_0;
3117      if ("OFL-1.0-no-RFN".equals(codeString))
3118        return OFL_1_0_NO_RFN;
3119      if ("OFL-1.0-RFN".equals(codeString))
3120        return OFL_1_0_RFN;
3121      if ("OFL-1.1".equals(codeString))
3122        return OFL_1_1;
3123      if ("OFL-1.1-no-RFN".equals(codeString))
3124        return OFL_1_1_NO_RFN;
3125      if ("OFL-1.1-RFN".equals(codeString))
3126        return OFL_1_1_RFN;
3127      if ("OGC-1.0".equals(codeString))
3128        return OGC_1_0;
3129      if ("OGDL-Taiwan-1.0".equals(codeString))
3130        return OGDL_TAIWAN_1_0;
3131      if ("OGL-Canada-2.0".equals(codeString))
3132        return OGL_CANADA_2_0;
3133      if ("OGL-UK-1.0".equals(codeString))
3134        return OGL_UK_1_0;
3135      if ("OGL-UK-2.0".equals(codeString))
3136        return OGL_UK_2_0;
3137      if ("OGL-UK-3.0".equals(codeString))
3138        return OGL_UK_3_0;
3139      if ("OGTSL".equals(codeString))
3140        return OGTSL;
3141      if ("OLDAP-1.1".equals(codeString))
3142        return OLDAP_1_1;
3143      if ("OLDAP-1.2".equals(codeString))
3144        return OLDAP_1_2;
3145      if ("OLDAP-1.3".equals(codeString))
3146        return OLDAP_1_3;
3147      if ("OLDAP-1.4".equals(codeString))
3148        return OLDAP_1_4;
3149      if ("OLDAP-2.0".equals(codeString))
3150        return OLDAP_2_0;
3151      if ("OLDAP-2.0.1".equals(codeString))
3152        return OLDAP_2_0_1;
3153      if ("OLDAP-2.1".equals(codeString))
3154        return OLDAP_2_1;
3155      if ("OLDAP-2.2".equals(codeString))
3156        return OLDAP_2_2;
3157      if ("OLDAP-2.2.1".equals(codeString))
3158        return OLDAP_2_2_1;
3159      if ("OLDAP-2.2.2".equals(codeString))
3160        return OLDAP_2_2_2;
3161      if ("OLDAP-2.3".equals(codeString))
3162        return OLDAP_2_3;
3163      if ("OLDAP-2.4".equals(codeString))
3164        return OLDAP_2_4;
3165      if ("OLDAP-2.5".equals(codeString))
3166        return OLDAP_2_5;
3167      if ("OLDAP-2.6".equals(codeString))
3168        return OLDAP_2_6;
3169      if ("OLDAP-2.7".equals(codeString))
3170        return OLDAP_2_7;
3171      if ("OLDAP-2.8".equals(codeString))
3172        return OLDAP_2_8;
3173      if ("OLFL-1.3".equals(codeString))
3174        return OLFL_1_3;
3175      if ("OML".equals(codeString))
3176        return OML;
3177      if ("OpenPBS-2.3".equals(codeString))
3178        return OPENPBS_2_3;
3179      if ("OpenSSL".equals(codeString))
3180        return OPENSSL;
3181      if ("OPL-1.0".equals(codeString))
3182        return OPL_1_0;
3183      if ("OPL-UK-3.0".equals(codeString))
3184        return OPL_UK_3_0;
3185      if ("OPUBL-1.0".equals(codeString))
3186        return OPUBL_1_0;
3187      if ("OSET-PL-2.1".equals(codeString))
3188        return OSET_PL_2_1;
3189      if ("OSL-1.0".equals(codeString))
3190        return OSL_1_0;
3191      if ("OSL-1.1".equals(codeString))
3192        return OSL_1_1;
3193      if ("OSL-2.0".equals(codeString))
3194        return OSL_2_0;
3195      if ("OSL-2.1".equals(codeString))
3196        return OSL_2_1;
3197      if ("OSL-3.0".equals(codeString))
3198        return OSL_3_0;
3199      if ("Parity-6.0.0".equals(codeString))
3200        return PARITY_6_0_0;
3201      if ("Parity-7.0.0".equals(codeString))
3202        return PARITY_7_0_0;
3203      if ("PDDL-1.0".equals(codeString))
3204        return PDDL_1_0;
3205      if ("PHP-3.0".equals(codeString))
3206        return PHP_3_0;
3207      if ("PHP-3.01".equals(codeString))
3208        return PHP_3_01;
3209      if ("Plexus".equals(codeString))
3210        return PLEXUS;
3211      if ("PolyForm-Noncommercial-1.0.0".equals(codeString))
3212        return POLYFORM_NONCOMMERCIAL_1_0_0;
3213      if ("PolyForm-Small-Business-1.0.0".equals(codeString))
3214        return POLYFORM_SMALL_BUSINESS_1_0_0;
3215      if ("PostgreSQL".equals(codeString))
3216        return POSTGRESQL;
3217      if ("PSF-2.0".equals(codeString))
3218        return PSF_2_0;
3219      if ("psfrag".equals(codeString))
3220        return PSFRAG;
3221      if ("psutils".equals(codeString))
3222        return PSUTILS;
3223      if ("Python-2.0".equals(codeString))
3224        return PYTHON_2_0;
3225      if ("Python-2.0.1".equals(codeString))
3226        return PYTHON_2_0_1;
3227      if ("Qhull".equals(codeString))
3228        return QHULL;
3229      if ("QPL-1.0".equals(codeString))
3230        return QPL_1_0;
3231      if ("QPL-1.0-INRIA-2004".equals(codeString))
3232        return QPL_1_0_INRIA_2004;
3233      if ("Rdisc".equals(codeString))
3234        return RDISC;
3235      if ("RHeCos-1.1".equals(codeString))
3236        return RHECOS_1_1;
3237      if ("RPL-1.1".equals(codeString))
3238        return RPL_1_1;
3239      if ("RPL-1.5".equals(codeString))
3240        return RPL_1_5;
3241      if ("RPSL-1.0".equals(codeString))
3242        return RPSL_1_0;
3243      if ("RSA-MD".equals(codeString))
3244        return RSA_MD;
3245      if ("RSCPL".equals(codeString))
3246        return RSCPL;
3247      if ("Ruby".equals(codeString))
3248        return RUBY;
3249      if ("SAX-PD".equals(codeString))
3250        return SAX_PD;
3251      if ("Saxpath".equals(codeString))
3252        return SAXPATH;
3253      if ("SCEA".equals(codeString))
3254        return SCEA;
3255      if ("SchemeReport".equals(codeString))
3256        return SCHEMEREPORT;
3257      if ("Sendmail".equals(codeString))
3258        return SENDMAIL;
3259      if ("Sendmail-8.23".equals(codeString))
3260        return SENDMAIL_8_23;
3261      if ("SGI-B-1.0".equals(codeString))
3262        return SGI_B_1_0;
3263      if ("SGI-B-1.1".equals(codeString))
3264        return SGI_B_1_1;
3265      if ("SGI-B-2.0".equals(codeString))
3266        return SGI_B_2_0;
3267      if ("SGP4".equals(codeString))
3268        return SGP4;
3269      if ("SHL-0.5".equals(codeString))
3270        return SHL_0_5;
3271      if ("SHL-0.51".equals(codeString))
3272        return SHL_0_51;
3273      if ("SimPL-2.0".equals(codeString))
3274        return SIMPL_2_0;
3275      if ("SISSL".equals(codeString))
3276        return SISSL;
3277      if ("SISSL-1.2".equals(codeString))
3278        return SISSL_1_2;
3279      if ("Sleepycat".equals(codeString))
3280        return SLEEPYCAT;
3281      if ("SMLNJ".equals(codeString))
3282        return SMLNJ;
3283      if ("SMPPL".equals(codeString))
3284        return SMPPL;
3285      if ("SNIA".equals(codeString))
3286        return SNIA;
3287      if ("snprintf".equals(codeString))
3288        return SNPRINTF;
3289      if ("Spencer-86".equals(codeString))
3290        return SPENCER_86;
3291      if ("Spencer-94".equals(codeString))
3292        return SPENCER_94;
3293      if ("Spencer-99".equals(codeString))
3294        return SPENCER_99;
3295      if ("SPL-1.0".equals(codeString))
3296        return SPL_1_0;
3297      if ("SSH-OpenSSH".equals(codeString))
3298        return SSH_OPENSSH;
3299      if ("SSH-short".equals(codeString))
3300        return SSH_SHORT;
3301      if ("SSPL-1.0".equals(codeString))
3302        return SSPL_1_0;
3303      if ("StandardML-NJ".equals(codeString))
3304        return STANDARDML_NJ;
3305      if ("SugarCRM-1.1.3".equals(codeString))
3306        return SUGARCRM_1_1_3;
3307      if ("SunPro".equals(codeString))
3308        return SUNPRO;
3309      if ("SWL".equals(codeString))
3310        return SWL;
3311      if ("Symlinks".equals(codeString))
3312        return SYMLINKS;
3313      if ("TAPR-OHL-1.0".equals(codeString))
3314        return TAPR_OHL_1_0;
3315      if ("TCL".equals(codeString))
3316        return TCL;
3317      if ("TCP-wrappers".equals(codeString))
3318        return TCP_WRAPPERS;
3319      if ("TermReadKey".equals(codeString))
3320        return TERMREADKEY;
3321      if ("TMate".equals(codeString))
3322        return TMATE;
3323      if ("TORQUE-1.1".equals(codeString))
3324        return TORQUE_1_1;
3325      if ("TOSL".equals(codeString))
3326        return TOSL;
3327      if ("TPDL".equals(codeString))
3328        return TPDL;
3329      if ("TPL-1.0".equals(codeString))
3330        return TPL_1_0;
3331      if ("TTWL".equals(codeString))
3332        return TTWL;
3333      if ("TU-Berlin-1.0".equals(codeString))
3334        return TU_BERLIN_1_0;
3335      if ("TU-Berlin-2.0".equals(codeString))
3336        return TU_BERLIN_2_0;
3337      if ("UCAR".equals(codeString))
3338        return UCAR;
3339      if ("UCL-1.0".equals(codeString))
3340        return UCL_1_0;
3341      if ("Unicode-DFS-2015".equals(codeString))
3342        return UNICODE_DFS_2015;
3343      if ("Unicode-DFS-2016".equals(codeString))
3344        return UNICODE_DFS_2016;
3345      if ("Unicode-TOU".equals(codeString))
3346        return UNICODE_TOU;
3347      if ("UnixCrypt".equals(codeString))
3348        return UNIXCRYPT;
3349      if ("Unlicense".equals(codeString))
3350        return UNLICENSE;
3351      if ("UPL-1.0".equals(codeString))
3352        return UPL_1_0;
3353      if ("Vim".equals(codeString))
3354        return VIM;
3355      if ("VOSTROM".equals(codeString))
3356        return VOSTROM;
3357      if ("VSL-1.0".equals(codeString))
3358        return VSL_1_0;
3359      if ("W3C".equals(codeString))
3360        return W3C;
3361      if ("W3C-19980720".equals(codeString))
3362        return W3C_19980720;
3363      if ("W3C-20150513".equals(codeString))
3364        return W3C_20150513;
3365      if ("w3m".equals(codeString))
3366        return W3M;
3367      if ("Watcom-1.0".equals(codeString))
3368        return WATCOM_1_0;
3369      if ("Widget-Workshop".equals(codeString))
3370        return WIDGET_WORKSHOP;
3371      if ("Wsuipa".equals(codeString))
3372        return WSUIPA;
3373      if ("WTFPL".equals(codeString))
3374        return WTFPL;
3375      if ("wxWindows".equals(codeString))
3376        return WXWINDOWS;
3377      if ("X11".equals(codeString))
3378        return X11;
3379      if ("X11-distribute-modifications-variant".equals(codeString))
3380        return X11_DISTRIBUTE_MODIFICATIONS_VARIANT;
3381      if ("Xdebug-1.03".equals(codeString))
3382        return XDEBUG_1_03;
3383      if ("Xerox".equals(codeString))
3384        return XEROX;
3385      if ("Xfig".equals(codeString))
3386        return XFIG;
3387      if ("XFree86-1.1".equals(codeString))
3388        return XFREE86_1_1;
3389      if ("xinetd".equals(codeString))
3390        return XINETD;
3391      if ("xlock".equals(codeString))
3392        return XLOCK;
3393      if ("Xnet".equals(codeString))
3394        return XNET;
3395      if ("xpp".equals(codeString))
3396        return XPP;
3397      if ("XSkat".equals(codeString))
3398        return XSKAT;
3399      if ("YPL-1.0".equals(codeString))
3400        return YPL_1_0;
3401      if ("YPL-1.1".equals(codeString))
3402        return YPL_1_1;
3403      if ("Zed".equals(codeString))
3404        return ZED;
3405      if ("Zend-2.0".equals(codeString))
3406        return ZEND_2_0;
3407      if ("Zimbra-1.3".equals(codeString))
3408        return ZIMBRA_1_3;
3409      if ("Zimbra-1.4".equals(codeString))
3410        return ZIMBRA_1_4;
3411      if ("Zlib".equals(codeString))
3412        return ZLIB;
3413      if ("zlib-acknowledgement".equals(codeString))
3414        return ZLIB_ACKNOWLEDGEMENT;
3415      if ("ZPL-1.1".equals(codeString))
3416        return ZPL_1_1;
3417      if ("ZPL-2.0".equals(codeString))
3418        return ZPL_2_0;
3419      if ("ZPL-2.1".equals(codeString))
3420        return ZPL_2_1;
3421      throw new FHIRException("Unknown SPDXLicense code '" + codeString + "'");
3422    }
3423
3424    public static boolean isValidCode(String codeString) {
3425      if (codeString == null || "".equals(codeString))
3426        return false;
3427      return Utilities.existsInList(codeString, "0BSD", "AAL", "Abstyles", "AdaCore-doc", "Adobe-2006", "Adobe-Glyph",
3428          "ADSL", "AFL-1.1", "AFL-1.2", "AFL-2.0", "AFL-2.1", "AFL-3.0", "Afmparse", "AGPL-1.0", "AGPL-1.0-only",
3429          "AGPL-1.0-or-later", "AGPL-3.0", "AGPL-3.0-only", "AGPL-3.0-or-later", "Aladdin", "AMDPLPA", "AML", "AMPAS",
3430          "ANTLR-PD", "ANTLR-PD-fallback", "Apache-1.0", "Apache-1.1", "Apache-2.0", "APAFML", "APL-1.0", "App-s2p",
3431          "APSL-1.0", "APSL-1.1", "APSL-1.2", "APSL-2.0", "Arphic-1999", "Artistic-1.0", "Artistic-1.0-cl8",
3432          "Artistic-1.0-Perl", "Artistic-2.0", "ASWF-Digital-Assets-1.0", "ASWF-Digital-Assets-1.1", "Baekmuk",
3433          "Bahyph", "Barr", "Beerware", "Bitstream-Charter", "Bitstream-Vera", "BitTorrent-1.0", "BitTorrent-1.1",
3434          "blessing", "BlueOak-1.0.0", "Boehm-GC", "Borceux", "Brian-Gladman-3-Clause", "BSD-1-Clause", "BSD-2-Clause",
3435          "BSD-2-Clause-FreeBSD", "BSD-2-Clause-NetBSD", "BSD-2-Clause-Patent", "BSD-2-Clause-Views", "BSD-3-Clause",
3436          "BSD-3-Clause-Attribution", "BSD-3-Clause-Clear", "BSD-3-Clause-LBNL", "BSD-3-Clause-Modification",
3437          "BSD-3-Clause-No-Military-License", "BSD-3-Clause-No-Nuclear-License", "BSD-3-Clause-No-Nuclear-License-2014",
3438          "BSD-3-Clause-No-Nuclear-Warranty", "BSD-3-Clause-Open-MPI", "BSD-4-Clause", "BSD-4-Clause-Shortened",
3439          "BSD-4-Clause-UC", "BSD-4.3RENO", "BSD-4.3TAHOE", "BSD-Advertising-Acknowledgement",
3440          "BSD-Attribution-HPND-disclaimer", "BSD-Protection", "BSD-Source-Code", "BSL-1.0", "BUSL-1.1", "bzip2-1.0.5",
3441          "bzip2-1.0.6", "C-UDA-1.0", "CAL-1.0", "CAL-1.0-Combined-Work-Exception", "Caldera", "CATOSL-1.1",
3442          "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",
3443          "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",
3444          "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",
3445          "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",
3446          "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",
3447          "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",
3448          "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",
3449          "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",
3450          "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",
3451          "CDL-1.0", "CDLA-Permissive-1.0", "CDLA-Permissive-2.0", "CDLA-Sharing-1.0", "CECILL-1.0", "CECILL-1.1",
3452          "CECILL-2.0", "CECILL-2.1", "CECILL-B", "CECILL-C", "CERN-OHL-1.1", "CERN-OHL-1.2", "CERN-OHL-P-2.0",
3453          "CERN-OHL-S-2.0", "CERN-OHL-W-2.0", "CFITSIO", "checkmk", "ClArtistic", "Clips", "CMU-Mach", "CNRI-Jython",
3454          "CNRI-Python", "CNRI-Python-GPL-Compatible", "COIL-1.0", "Community-Spec-1.0", "Condor-1.1",
3455          "copyleft-next-0.3.0", "copyleft-next-0.3.1", "Cornell-Lossless-JPEG", "CPAL-1.0", "CPL-1.0", "CPOL-1.02",
3456          "Crossword", "CrystalStacker", "CUA-OPL-1.0", "Cube", "curl", "D-FSL-1.0", "diffmark", "DL-DE-BY-2.0", "DOC",
3457          "Dotseqn", "DRL-1.0", "DSDP", "dtoa", "dvipdfm", "ECL-1.0", "ECL-2.0", "eCos-2.0", "EFL-1.0", "EFL-2.0",
3458          "eGenix", "Elastic-2.0", "Entessa", "EPICS", "EPL-1.0", "EPL-2.0", "ErlPL-1.1", "etalab-2.0", "EUDatagrid",
3459          "EUPL-1.0", "EUPL-1.1", "EUPL-1.2", "Eurosym", "Fair", "FDK-AAC", "Frameworx-1.0", "FreeBSD-DOC", "FreeImage",
3460          "FSFAP", "FSFUL", "FSFULLR", "FSFULLRWD", "FTL", "GD", "GFDL-1.1", "GFDL-1.1-invariants-only",
3461          "GFDL-1.1-invariants-or-later", "GFDL-1.1-no-invariants-only", "GFDL-1.1-no-invariants-or-later",
3462          "GFDL-1.1-only", "GFDL-1.1-or-later", "GFDL-1.2", "GFDL-1.2-invariants-only", "GFDL-1.2-invariants-or-later",
3463          "GFDL-1.2-no-invariants-only", "GFDL-1.2-no-invariants-or-later", "GFDL-1.2-only", "GFDL-1.2-or-later",
3464          "GFDL-1.3", "GFDL-1.3-invariants-only", "GFDL-1.3-invariants-or-later", "GFDL-1.3-no-invariants-only",
3465          "GFDL-1.3-no-invariants-or-later", "GFDL-1.3-only", "GFDL-1.3-or-later", "Giftware", "GL2PS", "Glide",
3466          "Glulxe", "GLWTPL", "gnuplot", "GPL-1.0", "GPL-1.0+", "GPL-1.0-only", "GPL-1.0-or-later", "GPL-2.0",
3467          "GPL-2.0+", "GPL-2.0-only", "GPL-2.0-or-later", "GPL-2.0-with-autoconf-exception",
3468          "GPL-2.0-with-bison-exception", "GPL-2.0-with-classpath-exception", "GPL-2.0-with-font-exception",
3469          "GPL-2.0-with-GCC-exception", "GPL-3.0", "GPL-3.0+", "GPL-3.0-only", "GPL-3.0-or-later",
3470          "GPL-3.0-with-autoconf-exception", "GPL-3.0-with-GCC-exception", "Graphics-Gems", "gSOAP-1.3b",
3471          "HaskellReport", "Hippocratic-2.1", "HP-1986", "HPND", "HPND-export-US", "HPND-Markus-Kuhn",
3472          "HPND-sell-variant", "HPND-sell-variant-MIT-disclaimer", "HTMLTIDY", "IBM-pibs", "ICU",
3473          "IEC-Code-Components-EULA", "IJG", "IJG-short", "ImageMagick", "iMatix", "Imlib2", "Info-ZIP",
3474          "Inner-Net-2.0", "Intel", "Intel-ACPI", "Interbase-1.0", "IPA", "IPL-1.0", "ISC", "Jam", "JasPer-2.0",
3475          "JPL-image", "JPNIC", "JSON", "Kazlib", "Knuth-CTAN", "LAL-1.2", "LAL-1.3", "Latex2e",
3476          "Latex2e-translated-notice", "Leptonica", "LGPL-2.0", "LGPL-2.0+", "LGPL-2.0-only", "LGPL-2.0-or-later",
3477          "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",
3478          "LGPL-3.0-or-later", "LGPLLR", "Libpng", "libpng-2.0", "libselinux-1.0", "libtiff", "libutil-David-Nugent",
3479          "LiLiQ-P-1.1", "LiLiQ-R-1.1", "LiLiQ-Rplus-1.1", "Linux-man-pages-1-para", "Linux-man-pages-copyleft",
3480          "Linux-man-pages-copyleft-2-para", "Linux-man-pages-copyleft-var", "Linux-OpenIB", "LOOP", "LPL-1.0",
3481          "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",
3482          "LZMA-SDK-9.22", "MakeIndex", "Martin-Birgmeier", "metamail", "Minpack", "MirOS", "MIT", "MIT-0",
3483          "MIT-advertising", "MIT-CMU", "MIT-enna", "MIT-feh", "MIT-Festival", "MIT-Modern-Variant", "MIT-open-group",
3484          "MIT-Wu", "MITNFA", "Motosoto", "mpi-permissive", "mpich2", "MPL-1.0", "MPL-1.1", "MPL-2.0",
3485          "MPL-2.0-no-copyleft-exception", "mplus", "MS-LPL", "MS-PL", "MS-RL", "MTLL", "MulanPSL-1.0", "MulanPSL-2.0",
3486          "Multics", "Mup", "NAIST-2003", "NASA-1.3", "Naumen", "NBPL-1.0", "NCGL-UK-2.0", "NCSA", "Net-SNMP", "NetCDF",
3487          "Newsletr", "NGPL", "NICTA-1.0", "NIST-PD", "NIST-PD-fallback", "NIST-Software", "NLOD-1.0", "NLOD-2.0",
3488          "NLPL", "Nokia", "NOSL", "not-open-source", "Noweb", "NPL-1.0", "NPL-1.1", "NPOSL-3.0", "NRL", "NTP", "NTP-0",
3489          "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",
3490          "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",
3491          "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",
3492          "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",
3493          "OLDAP-2.5", "OLDAP-2.6", "OLDAP-2.7", "OLDAP-2.8", "OLFL-1.3", "OML", "OpenPBS-2.3", "OpenSSL", "OPL-1.0",
3494          "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",
3495          "Parity-6.0.0", "Parity-7.0.0", "PDDL-1.0", "PHP-3.0", "PHP-3.01", "Plexus", "PolyForm-Noncommercial-1.0.0",
3496          "PolyForm-Small-Business-1.0.0", "PostgreSQL", "PSF-2.0", "psfrag", "psutils", "Python-2.0", "Python-2.0.1",
3497          "Qhull", "QPL-1.0", "QPL-1.0-INRIA-2004", "Rdisc", "RHeCos-1.1", "RPL-1.1", "RPL-1.5", "RPSL-1.0", "RSA-MD",
3498          "RSCPL", "Ruby", "SAX-PD", "Saxpath", "SCEA", "SchemeReport", "Sendmail", "Sendmail-8.23", "SGI-B-1.0",
3499          "SGI-B-1.1", "SGI-B-2.0", "SGP4", "SHL-0.5", "SHL-0.51", "SimPL-2.0", "SISSL", "SISSL-1.2", "Sleepycat",
3500          "SMLNJ", "SMPPL", "SNIA", "snprintf", "Spencer-86", "Spencer-94", "Spencer-99", "SPL-1.0", "SSH-OpenSSH",
3501          "SSH-short", "SSPL-1.0", "StandardML-NJ", "SugarCRM-1.1.3", "SunPro", "SWL", "Symlinks", "TAPR-OHL-1.0",
3502          "TCL", "TCP-wrappers", "TermReadKey", "TMate", "TORQUE-1.1", "TOSL", "TPDL", "TPL-1.0", "TTWL",
3503          "TU-Berlin-1.0", "TU-Berlin-2.0", "UCAR", "UCL-1.0", "Unicode-DFS-2015", "Unicode-DFS-2016", "Unicode-TOU",
3504          "UnixCrypt", "Unlicense", "UPL-1.0", "Vim", "VOSTROM", "VSL-1.0", "W3C", "W3C-19980720", "W3C-20150513",
3505          "w3m", "Watcom-1.0", "Widget-Workshop", "Wsuipa", "WTFPL", "wxWindows", "X11",
3506          "X11-distribute-modifications-variant", "Xdebug-1.03", "Xerox", "Xfig", "XFree86-1.1", "xinetd", "xlock",
3507          "Xnet", "xpp", "XSkat", "YPL-1.0", "YPL-1.1", "Zed", "Zend-2.0", "Zimbra-1.3", "Zimbra-1.4", "Zlib",
3508          "zlib-acknowledgement", "ZPL-1.1", "ZPL-2.0", "ZPL-2.1");
3509    }
3510
3511    public String toCode() {
3512      switch (this) {
3513      case _0BSD:
3514        return "0BSD";
3515      case AAL:
3516        return "AAL";
3517      case ABSTYLES:
3518        return "Abstyles";
3519      case ADACORE_DOC:
3520        return "AdaCore-doc";
3521      case ADOBE_2006:
3522        return "Adobe-2006";
3523      case ADOBE_GLYPH:
3524        return "Adobe-Glyph";
3525      case ADSL:
3526        return "ADSL";
3527      case AFL_1_1:
3528        return "AFL-1.1";
3529      case AFL_1_2:
3530        return "AFL-1.2";
3531      case AFL_2_0:
3532        return "AFL-2.0";
3533      case AFL_2_1:
3534        return "AFL-2.1";
3535      case AFL_3_0:
3536        return "AFL-3.0";
3537      case AFMPARSE:
3538        return "Afmparse";
3539      case AGPL_1_0:
3540        return "AGPL-1.0";
3541      case AGPL_1_0_ONLY:
3542        return "AGPL-1.0-only";
3543      case AGPL_1_0_OR_LATER:
3544        return "AGPL-1.0-or-later";
3545      case AGPL_3_0:
3546        return "AGPL-3.0";
3547      case AGPL_3_0_ONLY:
3548        return "AGPL-3.0-only";
3549      case AGPL_3_0_OR_LATER:
3550        return "AGPL-3.0-or-later";
3551      case ALADDIN:
3552        return "Aladdin";
3553      case AMDPLPA:
3554        return "AMDPLPA";
3555      case AML:
3556        return "AML";
3557      case AMPAS:
3558        return "AMPAS";
3559      case ANTLR_PD:
3560        return "ANTLR-PD";
3561      case ANTLR_PD_FALLBACK:
3562        return "ANTLR-PD-fallback";
3563      case APACHE_1_0:
3564        return "Apache-1.0";
3565      case APACHE_1_1:
3566        return "Apache-1.1";
3567      case APACHE_2_0:
3568        return "Apache-2.0";
3569      case APAFML:
3570        return "APAFML";
3571      case APL_1_0:
3572        return "APL-1.0";
3573      case APP_S2P:
3574        return "App-s2p";
3575      case APSL_1_0:
3576        return "APSL-1.0";
3577      case APSL_1_1:
3578        return "APSL-1.1";
3579      case APSL_1_2:
3580        return "APSL-1.2";
3581      case APSL_2_0:
3582        return "APSL-2.0";
3583      case ARPHIC_1999:
3584        return "Arphic-1999";
3585      case ARTISTIC_1_0:
3586        return "Artistic-1.0";
3587      case ARTISTIC_1_0_CL8:
3588        return "Artistic-1.0-cl8";
3589      case ARTISTIC_1_0_PERL:
3590        return "Artistic-1.0-Perl";
3591      case ARTISTIC_2_0:
3592        return "Artistic-2.0";
3593      case ASWF_DIGITAL_ASSETS_1_0:
3594        return "ASWF-Digital-Assets-1.0";
3595      case ASWF_DIGITAL_ASSETS_1_1:
3596        return "ASWF-Digital-Assets-1.1";
3597      case BAEKMUK:
3598        return "Baekmuk";
3599      case BAHYPH:
3600        return "Bahyph";
3601      case BARR:
3602        return "Barr";
3603      case BEERWARE:
3604        return "Beerware";
3605      case BITSTREAM_CHARTER:
3606        return "Bitstream-Charter";
3607      case BITSTREAM_VERA:
3608        return "Bitstream-Vera";
3609      case BITTORRENT_1_0:
3610        return "BitTorrent-1.0";
3611      case BITTORRENT_1_1:
3612        return "BitTorrent-1.1";
3613      case BLESSING:
3614        return "blessing";
3615      case BLUEOAK_1_0_0:
3616        return "BlueOak-1.0.0";
3617      case BOEHM_GC:
3618        return "Boehm-GC";
3619      case BORCEUX:
3620        return "Borceux";
3621      case BRIAN_GLADMAN_3_CLAUSE:
3622        return "Brian-Gladman-3-Clause";
3623      case BSD_1_CLAUSE:
3624        return "BSD-1-Clause";
3625      case BSD_2_CLAUSE:
3626        return "BSD-2-Clause";
3627      case BSD_2_CLAUSE_FREEBSD:
3628        return "BSD-2-Clause-FreeBSD";
3629      case BSD_2_CLAUSE_NETBSD:
3630        return "BSD-2-Clause-NetBSD";
3631      case BSD_2_CLAUSE_PATENT:
3632        return "BSD-2-Clause-Patent";
3633      case BSD_2_CLAUSE_VIEWS:
3634        return "BSD-2-Clause-Views";
3635      case BSD_3_CLAUSE:
3636        return "BSD-3-Clause";
3637      case BSD_3_CLAUSE_ATTRIBUTION:
3638        return "BSD-3-Clause-Attribution";
3639      case BSD_3_CLAUSE_CLEAR:
3640        return "BSD-3-Clause-Clear";
3641      case BSD_3_CLAUSE_LBNL:
3642        return "BSD-3-Clause-LBNL";
3643      case BSD_3_CLAUSE_MODIFICATION:
3644        return "BSD-3-Clause-Modification";
3645      case BSD_3_CLAUSE_NO_MILITARY_LICENSE:
3646        return "BSD-3-Clause-No-Military-License";
3647      case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE:
3648        return "BSD-3-Clause-No-Nuclear-License";
3649      case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014:
3650        return "BSD-3-Clause-No-Nuclear-License-2014";
3651      case BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY:
3652        return "BSD-3-Clause-No-Nuclear-Warranty";
3653      case BSD_3_CLAUSE_OPEN_MPI:
3654        return "BSD-3-Clause-Open-MPI";
3655      case BSD_4_CLAUSE:
3656        return "BSD-4-Clause";
3657      case BSD_4_CLAUSE_SHORTENED:
3658        return "BSD-4-Clause-Shortened";
3659      case BSD_4_CLAUSE_UC:
3660        return "BSD-4-Clause-UC";
3661      case BSD_4_3RENO:
3662        return "BSD-4.3RENO";
3663      case BSD_4_3TAHOE:
3664        return "BSD-4.3TAHOE";
3665      case BSD_ADVERTISING_ACKNOWLEDGEMENT:
3666        return "BSD-Advertising-Acknowledgement";
3667      case BSD_ATTRIBUTION_HPND_DISCLAIMER:
3668        return "BSD-Attribution-HPND-disclaimer";
3669      case BSD_PROTECTION:
3670        return "BSD-Protection";
3671      case BSD_SOURCE_CODE:
3672        return "BSD-Source-Code";
3673      case BSL_1_0:
3674        return "BSL-1.0";
3675      case BUSL_1_1:
3676        return "BUSL-1.1";
3677      case BZIP2_1_0_5:
3678        return "bzip2-1.0.5";
3679      case BZIP2_1_0_6:
3680        return "bzip2-1.0.6";
3681      case C_UDA_1_0:
3682        return "C-UDA-1.0";
3683      case CAL_1_0:
3684        return "CAL-1.0";
3685      case CAL_1_0_COMBINED_WORK_EXCEPTION:
3686        return "CAL-1.0-Combined-Work-Exception";
3687      case CALDERA:
3688        return "Caldera";
3689      case CATOSL_1_1:
3690        return "CATOSL-1.1";
3691      case CC_BY_1_0:
3692        return "CC-BY-1.0";
3693      case CC_BY_2_0:
3694        return "CC-BY-2.0";
3695      case CC_BY_2_5:
3696        return "CC-BY-2.5";
3697      case CC_BY_2_5_AU:
3698        return "CC-BY-2.5-AU";
3699      case CC_BY_3_0:
3700        return "CC-BY-3.0";
3701      case CC_BY_3_0_AT:
3702        return "CC-BY-3.0-AT";
3703      case CC_BY_3_0_DE:
3704        return "CC-BY-3.0-DE";
3705      case CC_BY_3_0_IGO:
3706        return "CC-BY-3.0-IGO";
3707      case CC_BY_3_0_NL:
3708        return "CC-BY-3.0-NL";
3709      case CC_BY_3_0_US:
3710        return "CC-BY-3.0-US";
3711      case CC_BY_4_0:
3712        return "CC-BY-4.0";
3713      case CC_BY_NC_1_0:
3714        return "CC-BY-NC-1.0";
3715      case CC_BY_NC_2_0:
3716        return "CC-BY-NC-2.0";
3717      case CC_BY_NC_2_5:
3718        return "CC-BY-NC-2.5";
3719      case CC_BY_NC_3_0:
3720        return "CC-BY-NC-3.0";
3721      case CC_BY_NC_3_0_DE:
3722        return "CC-BY-NC-3.0-DE";
3723      case CC_BY_NC_4_0:
3724        return "CC-BY-NC-4.0";
3725      case CC_BY_NC_ND_1_0:
3726        return "CC-BY-NC-ND-1.0";
3727      case CC_BY_NC_ND_2_0:
3728        return "CC-BY-NC-ND-2.0";
3729      case CC_BY_NC_ND_2_5:
3730        return "CC-BY-NC-ND-2.5";
3731      case CC_BY_NC_ND_3_0:
3732        return "CC-BY-NC-ND-3.0";
3733      case CC_BY_NC_ND_3_0_DE:
3734        return "CC-BY-NC-ND-3.0-DE";
3735      case CC_BY_NC_ND_3_0_IGO:
3736        return "CC-BY-NC-ND-3.0-IGO";
3737      case CC_BY_NC_ND_4_0:
3738        return "CC-BY-NC-ND-4.0";
3739      case CC_BY_NC_SA_1_0:
3740        return "CC-BY-NC-SA-1.0";
3741      case CC_BY_NC_SA_2_0:
3742        return "CC-BY-NC-SA-2.0";
3743      case CC_BY_NC_SA_2_0_DE:
3744        return "CC-BY-NC-SA-2.0-DE";
3745      case CC_BY_NC_SA_2_0_FR:
3746        return "CC-BY-NC-SA-2.0-FR";
3747      case CC_BY_NC_SA_2_0_UK:
3748        return "CC-BY-NC-SA-2.0-UK";
3749      case CC_BY_NC_SA_2_5:
3750        return "CC-BY-NC-SA-2.5";
3751      case CC_BY_NC_SA_3_0:
3752        return "CC-BY-NC-SA-3.0";
3753      case CC_BY_NC_SA_3_0_DE:
3754        return "CC-BY-NC-SA-3.0-DE";
3755      case CC_BY_NC_SA_3_0_IGO:
3756        return "CC-BY-NC-SA-3.0-IGO";
3757      case CC_BY_NC_SA_4_0:
3758        return "CC-BY-NC-SA-4.0";
3759      case CC_BY_ND_1_0:
3760        return "CC-BY-ND-1.0";
3761      case CC_BY_ND_2_0:
3762        return "CC-BY-ND-2.0";
3763      case CC_BY_ND_2_5:
3764        return "CC-BY-ND-2.5";
3765      case CC_BY_ND_3_0:
3766        return "CC-BY-ND-3.0";
3767      case CC_BY_ND_3_0_DE:
3768        return "CC-BY-ND-3.0-DE";
3769      case CC_BY_ND_4_0:
3770        return "CC-BY-ND-4.0";
3771      case CC_BY_SA_1_0:
3772        return "CC-BY-SA-1.0";
3773      case CC_BY_SA_2_0:
3774        return "CC-BY-SA-2.0";
3775      case CC_BY_SA_2_0_UK:
3776        return "CC-BY-SA-2.0-UK";
3777      case CC_BY_SA_2_1_JP:
3778        return "CC-BY-SA-2.1-JP";
3779      case CC_BY_SA_2_5:
3780        return "CC-BY-SA-2.5";
3781      case CC_BY_SA_3_0:
3782        return "CC-BY-SA-3.0";
3783      case CC_BY_SA_3_0_AT:
3784        return "CC-BY-SA-3.0-AT";
3785      case CC_BY_SA_3_0_DE:
3786        return "CC-BY-SA-3.0-DE";
3787      case CC_BY_SA_3_0_IGO:
3788        return "CC-BY-SA-3.0-IGO";
3789      case CC_BY_SA_4_0:
3790        return "CC-BY-SA-4.0";
3791      case CC_PDDC:
3792        return "CC-PDDC";
3793      case CC0_1_0:
3794        return "CC0-1.0";
3795      case CDDL_1_0:
3796        return "CDDL-1.0";
3797      case CDDL_1_1:
3798        return "CDDL-1.1";
3799      case CDL_1_0:
3800        return "CDL-1.0";
3801      case CDLA_PERMISSIVE_1_0:
3802        return "CDLA-Permissive-1.0";
3803      case CDLA_PERMISSIVE_2_0:
3804        return "CDLA-Permissive-2.0";
3805      case CDLA_SHARING_1_0:
3806        return "CDLA-Sharing-1.0";
3807      case CECILL_1_0:
3808        return "CECILL-1.0";
3809      case CECILL_1_1:
3810        return "CECILL-1.1";
3811      case CECILL_2_0:
3812        return "CECILL-2.0";
3813      case CECILL_2_1:
3814        return "CECILL-2.1";
3815      case CECILL_B:
3816        return "CECILL-B";
3817      case CECILL_C:
3818        return "CECILL-C";
3819      case CERN_OHL_1_1:
3820        return "CERN-OHL-1.1";
3821      case CERN_OHL_1_2:
3822        return "CERN-OHL-1.2";
3823      case CERN_OHL_P_2_0:
3824        return "CERN-OHL-P-2.0";
3825      case CERN_OHL_S_2_0:
3826        return "CERN-OHL-S-2.0";
3827      case CERN_OHL_W_2_0:
3828        return "CERN-OHL-W-2.0";
3829      case CFITSIO:
3830        return "CFITSIO";
3831      case CHECKMK:
3832        return "checkmk";
3833      case CLARTISTIC:
3834        return "ClArtistic";
3835      case CLIPS:
3836        return "Clips";
3837      case CMU_MACH:
3838        return "CMU-Mach";
3839      case CNRI_JYTHON:
3840        return "CNRI-Jython";
3841      case CNRI_PYTHON:
3842        return "CNRI-Python";
3843      case CNRI_PYTHON_GPL_COMPATIBLE:
3844        return "CNRI-Python-GPL-Compatible";
3845      case COIL_1_0:
3846        return "COIL-1.0";
3847      case COMMUNITY_SPEC_1_0:
3848        return "Community-Spec-1.0";
3849      case CONDOR_1_1:
3850        return "Condor-1.1";
3851      case COPYLEFT_NEXT_0_3_0:
3852        return "copyleft-next-0.3.0";
3853      case COPYLEFT_NEXT_0_3_1:
3854        return "copyleft-next-0.3.1";
3855      case CORNELL_LOSSLESS_JPEG:
3856        return "Cornell-Lossless-JPEG";
3857      case CPAL_1_0:
3858        return "CPAL-1.0";
3859      case CPL_1_0:
3860        return "CPL-1.0";
3861      case CPOL_1_02:
3862        return "CPOL-1.02";
3863      case CROSSWORD:
3864        return "Crossword";
3865      case CRYSTALSTACKER:
3866        return "CrystalStacker";
3867      case CUA_OPL_1_0:
3868        return "CUA-OPL-1.0";
3869      case CUBE:
3870        return "Cube";
3871      case CURL:
3872        return "curl";
3873      case D_FSL_1_0:
3874        return "D-FSL-1.0";
3875      case DIFFMARK:
3876        return "diffmark";
3877      case DL_DE_BY_2_0:
3878        return "DL-DE-BY-2.0";
3879      case DOC:
3880        return "DOC";
3881      case DOTSEQN:
3882        return "Dotseqn";
3883      case DRL_1_0:
3884        return "DRL-1.0";
3885      case DSDP:
3886        return "DSDP";
3887      case DTOA:
3888        return "dtoa";
3889      case DVIPDFM:
3890        return "dvipdfm";
3891      case ECL_1_0:
3892        return "ECL-1.0";
3893      case ECL_2_0:
3894        return "ECL-2.0";
3895      case ECOS_2_0:
3896        return "eCos-2.0";
3897      case EFL_1_0:
3898        return "EFL-1.0";
3899      case EFL_2_0:
3900        return "EFL-2.0";
3901      case EGENIX:
3902        return "eGenix";
3903      case ELASTIC_2_0:
3904        return "Elastic-2.0";
3905      case ENTESSA:
3906        return "Entessa";
3907      case EPICS:
3908        return "EPICS";
3909      case EPL_1_0:
3910        return "EPL-1.0";
3911      case EPL_2_0:
3912        return "EPL-2.0";
3913      case ERLPL_1_1:
3914        return "ErlPL-1.1";
3915      case ETALAB_2_0:
3916        return "etalab-2.0";
3917      case EUDATAGRID:
3918        return "EUDatagrid";
3919      case EUPL_1_0:
3920        return "EUPL-1.0";
3921      case EUPL_1_1:
3922        return "EUPL-1.1";
3923      case EUPL_1_2:
3924        return "EUPL-1.2";
3925      case EUROSYM:
3926        return "Eurosym";
3927      case FAIR:
3928        return "Fair";
3929      case FDK_AAC:
3930        return "FDK-AAC";
3931      case FRAMEWORX_1_0:
3932        return "Frameworx-1.0";
3933      case FREEBSD_DOC:
3934        return "FreeBSD-DOC";
3935      case FREEIMAGE:
3936        return "FreeImage";
3937      case FSFAP:
3938        return "FSFAP";
3939      case FSFUL:
3940        return "FSFUL";
3941      case FSFULLR:
3942        return "FSFULLR";
3943      case FSFULLRWD:
3944        return "FSFULLRWD";
3945      case FTL:
3946        return "FTL";
3947      case GD:
3948        return "GD";
3949      case GFDL_1_1:
3950        return "GFDL-1.1";
3951      case GFDL_1_1_INVARIANTS_ONLY:
3952        return "GFDL-1.1-invariants-only";
3953      case GFDL_1_1_INVARIANTS_OR_LATER:
3954        return "GFDL-1.1-invariants-or-later";
3955      case GFDL_1_1_NO_INVARIANTS_ONLY:
3956        return "GFDL-1.1-no-invariants-only";
3957      case GFDL_1_1_NO_INVARIANTS_OR_LATER:
3958        return "GFDL-1.1-no-invariants-or-later";
3959      case GFDL_1_1_ONLY:
3960        return "GFDL-1.1-only";
3961      case GFDL_1_1_OR_LATER:
3962        return "GFDL-1.1-or-later";
3963      case GFDL_1_2:
3964        return "GFDL-1.2";
3965      case GFDL_1_2_INVARIANTS_ONLY:
3966        return "GFDL-1.2-invariants-only";
3967      case GFDL_1_2_INVARIANTS_OR_LATER:
3968        return "GFDL-1.2-invariants-or-later";
3969      case GFDL_1_2_NO_INVARIANTS_ONLY:
3970        return "GFDL-1.2-no-invariants-only";
3971      case GFDL_1_2_NO_INVARIANTS_OR_LATER:
3972        return "GFDL-1.2-no-invariants-or-later";
3973      case GFDL_1_2_ONLY:
3974        return "GFDL-1.2-only";
3975      case GFDL_1_2_OR_LATER:
3976        return "GFDL-1.2-or-later";
3977      case GFDL_1_3:
3978        return "GFDL-1.3";
3979      case GFDL_1_3_INVARIANTS_ONLY:
3980        return "GFDL-1.3-invariants-only";
3981      case GFDL_1_3_INVARIANTS_OR_LATER:
3982        return "GFDL-1.3-invariants-or-later";
3983      case GFDL_1_3_NO_INVARIANTS_ONLY:
3984        return "GFDL-1.3-no-invariants-only";
3985      case GFDL_1_3_NO_INVARIANTS_OR_LATER:
3986        return "GFDL-1.3-no-invariants-or-later";
3987      case GFDL_1_3_ONLY:
3988        return "GFDL-1.3-only";
3989      case GFDL_1_3_OR_LATER:
3990        return "GFDL-1.3-or-later";
3991      case GIFTWARE:
3992        return "Giftware";
3993      case GL2PS:
3994        return "GL2PS";
3995      case GLIDE:
3996        return "Glide";
3997      case GLULXE:
3998        return "Glulxe";
3999      case GLWTPL:
4000        return "GLWTPL";
4001      case GNUPLOT:
4002        return "gnuplot";
4003      case GPL_1_0:
4004        return "GPL-1.0";
4005      case GPL_1_0PLUS:
4006        return "GPL-1.0+";
4007      case GPL_1_0_ONLY:
4008        return "GPL-1.0-only";
4009      case GPL_1_0_OR_LATER:
4010        return "GPL-1.0-or-later";
4011      case GPL_2_0:
4012        return "GPL-2.0";
4013      case GPL_2_0PLUS:
4014        return "GPL-2.0+";
4015      case GPL_2_0_ONLY:
4016        return "GPL-2.0-only";
4017      case GPL_2_0_OR_LATER:
4018        return "GPL-2.0-or-later";
4019      case GPL_2_0_WITH_AUTOCONF_EXCEPTION:
4020        return "GPL-2.0-with-autoconf-exception";
4021      case GPL_2_0_WITH_BISON_EXCEPTION:
4022        return "GPL-2.0-with-bison-exception";
4023      case GPL_2_0_WITH_CLASSPATH_EXCEPTION:
4024        return "GPL-2.0-with-classpath-exception";
4025      case GPL_2_0_WITH_FONT_EXCEPTION:
4026        return "GPL-2.0-with-font-exception";
4027      case GPL_2_0_WITH_GCC_EXCEPTION:
4028        return "GPL-2.0-with-GCC-exception";
4029      case GPL_3_0:
4030        return "GPL-3.0";
4031      case GPL_3_0PLUS:
4032        return "GPL-3.0+";
4033      case GPL_3_0_ONLY:
4034        return "GPL-3.0-only";
4035      case GPL_3_0_OR_LATER:
4036        return "GPL-3.0-or-later";
4037      case GPL_3_0_WITH_AUTOCONF_EXCEPTION:
4038        return "GPL-3.0-with-autoconf-exception";
4039      case GPL_3_0_WITH_GCC_EXCEPTION:
4040        return "GPL-3.0-with-GCC-exception";
4041      case GRAPHICS_GEMS:
4042        return "Graphics-Gems";
4043      case GSOAP_1_3B:
4044        return "gSOAP-1.3b";
4045      case HASKELLREPORT:
4046        return "HaskellReport";
4047      case HIPPOCRATIC_2_1:
4048        return "Hippocratic-2.1";
4049      case HP_1986:
4050        return "HP-1986";
4051      case HPND:
4052        return "HPND";
4053      case HPND_EXPORT_US:
4054        return "HPND-export-US";
4055      case HPND_MARKUS_KUHN:
4056        return "HPND-Markus-Kuhn";
4057      case HPND_SELL_VARIANT:
4058        return "HPND-sell-variant";
4059      case HPND_SELL_VARIANT_MIT_DISCLAIMER:
4060        return "HPND-sell-variant-MIT-disclaimer";
4061      case HTMLTIDY:
4062        return "HTMLTIDY";
4063      case IBM_PIBS:
4064        return "IBM-pibs";
4065      case ICU:
4066        return "ICU";
4067      case IEC_CODE_COMPONENTS_EULA:
4068        return "IEC-Code-Components-EULA";
4069      case IJG:
4070        return "IJG";
4071      case IJG_SHORT:
4072        return "IJG-short";
4073      case IMAGEMAGICK:
4074        return "ImageMagick";
4075      case IMATIX:
4076        return "iMatix";
4077      case IMLIB2:
4078        return "Imlib2";
4079      case INFO_ZIP:
4080        return "Info-ZIP";
4081      case INNER_NET_2_0:
4082        return "Inner-Net-2.0";
4083      case INTEL:
4084        return "Intel";
4085      case INTEL_ACPI:
4086        return "Intel-ACPI";
4087      case INTERBASE_1_0:
4088        return "Interbase-1.0";
4089      case IPA:
4090        return "IPA";
4091      case IPL_1_0:
4092        return "IPL-1.0";
4093      case ISC:
4094        return "ISC";
4095      case JAM:
4096        return "Jam";
4097      case JASPER_2_0:
4098        return "JasPer-2.0";
4099      case JPL_IMAGE:
4100        return "JPL-image";
4101      case JPNIC:
4102        return "JPNIC";
4103      case JSON:
4104        return "JSON";
4105      case KAZLIB:
4106        return "Kazlib";
4107      case KNUTH_CTAN:
4108        return "Knuth-CTAN";
4109      case LAL_1_2:
4110        return "LAL-1.2";
4111      case LAL_1_3:
4112        return "LAL-1.3";
4113      case LATEX2E:
4114        return "Latex2e";
4115      case LATEX2E_TRANSLATED_NOTICE:
4116        return "Latex2e-translated-notice";
4117      case LEPTONICA:
4118        return "Leptonica";
4119      case LGPL_2_0:
4120        return "LGPL-2.0";
4121      case LGPL_2_0PLUS:
4122        return "LGPL-2.0+";
4123      case LGPL_2_0_ONLY:
4124        return "LGPL-2.0-only";
4125      case LGPL_2_0_OR_LATER:
4126        return "LGPL-2.0-or-later";
4127      case LGPL_2_1:
4128        return "LGPL-2.1";
4129      case LGPL_2_1PLUS:
4130        return "LGPL-2.1+";
4131      case LGPL_2_1_ONLY:
4132        return "LGPL-2.1-only";
4133      case LGPL_2_1_OR_LATER:
4134        return "LGPL-2.1-or-later";
4135      case LGPL_3_0:
4136        return "LGPL-3.0";
4137      case LGPL_3_0PLUS:
4138        return "LGPL-3.0+";
4139      case LGPL_3_0_ONLY:
4140        return "LGPL-3.0-only";
4141      case LGPL_3_0_OR_LATER:
4142        return "LGPL-3.0-or-later";
4143      case LGPLLR:
4144        return "LGPLLR";
4145      case LIBPNG:
4146        return "Libpng";
4147      case LIBPNG_2_0:
4148        return "libpng-2.0";
4149      case LIBSELINUX_1_0:
4150        return "libselinux-1.0";
4151      case LIBTIFF:
4152        return "libtiff";
4153      case LIBUTIL_DAVID_NUGENT:
4154        return "libutil-David-Nugent";
4155      case LILIQ_P_1_1:
4156        return "LiLiQ-P-1.1";
4157      case LILIQ_R_1_1:
4158        return "LiLiQ-R-1.1";
4159      case LILIQ_RPLUS_1_1:
4160        return "LiLiQ-Rplus-1.1";
4161      case LINUX_MAN_PAGES_1_PARA:
4162        return "Linux-man-pages-1-para";
4163      case LINUX_MAN_PAGES_COPYLEFT:
4164        return "Linux-man-pages-copyleft";
4165      case LINUX_MAN_PAGES_COPYLEFT_2_PARA:
4166        return "Linux-man-pages-copyleft-2-para";
4167      case LINUX_MAN_PAGES_COPYLEFT_VAR:
4168        return "Linux-man-pages-copyleft-var";
4169      case LINUX_OPENIB:
4170        return "Linux-OpenIB";
4171      case LOOP:
4172        return "LOOP";
4173      case LPL_1_0:
4174        return "LPL-1.0";
4175      case LPL_1_02:
4176        return "LPL-1.02";
4177      case LPPL_1_0:
4178        return "LPPL-1.0";
4179      case LPPL_1_1:
4180        return "LPPL-1.1";
4181      case LPPL_1_2:
4182        return "LPPL-1.2";
4183      case LPPL_1_3A:
4184        return "LPPL-1.3a";
4185      case LPPL_1_3C:
4186        return "LPPL-1.3c";
4187      case LZMA_SDK_9_11_TO_9_20:
4188        return "LZMA-SDK-9.11-to-9.20";
4189      case LZMA_SDK_9_22:
4190        return "LZMA-SDK-9.22";
4191      case MAKEINDEX:
4192        return "MakeIndex";
4193      case MARTIN_BIRGMEIER:
4194        return "Martin-Birgmeier";
4195      case METAMAIL:
4196        return "metamail";
4197      case MINPACK:
4198        return "Minpack";
4199      case MIROS:
4200        return "MirOS";
4201      case MIT:
4202        return "MIT";
4203      case MIT_0:
4204        return "MIT-0";
4205      case MIT_ADVERTISING:
4206        return "MIT-advertising";
4207      case MIT_CMU:
4208        return "MIT-CMU";
4209      case MIT_ENNA:
4210        return "MIT-enna";
4211      case MIT_FEH:
4212        return "MIT-feh";
4213      case MIT_FESTIVAL:
4214        return "MIT-Festival";
4215      case MIT_MODERN_VARIANT:
4216        return "MIT-Modern-Variant";
4217      case MIT_OPEN_GROUP:
4218        return "MIT-open-group";
4219      case MIT_WU:
4220        return "MIT-Wu";
4221      case MITNFA:
4222        return "MITNFA";
4223      case MOTOSOTO:
4224        return "Motosoto";
4225      case MPI_PERMISSIVE:
4226        return "mpi-permissive";
4227      case MPICH2:
4228        return "mpich2";
4229      case MPL_1_0:
4230        return "MPL-1.0";
4231      case MPL_1_1:
4232        return "MPL-1.1";
4233      case MPL_2_0:
4234        return "MPL-2.0";
4235      case MPL_2_0_NO_COPYLEFT_EXCEPTION:
4236        return "MPL-2.0-no-copyleft-exception";
4237      case MPLUS:
4238        return "mplus";
4239      case MS_LPL:
4240        return "MS-LPL";
4241      case MS_PL:
4242        return "MS-PL";
4243      case MS_RL:
4244        return "MS-RL";
4245      case MTLL:
4246        return "MTLL";
4247      case MULANPSL_1_0:
4248        return "MulanPSL-1.0";
4249      case MULANPSL_2_0:
4250        return "MulanPSL-2.0";
4251      case MULTICS:
4252        return "Multics";
4253      case MUP:
4254        return "Mup";
4255      case NAIST_2003:
4256        return "NAIST-2003";
4257      case NASA_1_3:
4258        return "NASA-1.3";
4259      case NAUMEN:
4260        return "Naumen";
4261      case NBPL_1_0:
4262        return "NBPL-1.0";
4263      case NCGL_UK_2_0:
4264        return "NCGL-UK-2.0";
4265      case NCSA:
4266        return "NCSA";
4267      case NET_SNMP:
4268        return "Net-SNMP";
4269      case NETCDF:
4270        return "NetCDF";
4271      case NEWSLETR:
4272        return "Newsletr";
4273      case NGPL:
4274        return "NGPL";
4275      case NICTA_1_0:
4276        return "NICTA-1.0";
4277      case NIST_PD:
4278        return "NIST-PD";
4279      case NIST_PD_FALLBACK:
4280        return "NIST-PD-fallback";
4281      case NIST_SOFTWARE:
4282        return "NIST-Software";
4283      case NLOD_1_0:
4284        return "NLOD-1.0";
4285      case NLOD_2_0:
4286        return "NLOD-2.0";
4287      case NLPL:
4288        return "NLPL";
4289      case NOKIA:
4290        return "Nokia";
4291      case NOSL:
4292        return "NOSL";
4293      case NOT_OPEN_SOURCE:
4294        return "not-open-source";
4295      case NOWEB:
4296        return "Noweb";
4297      case NPL_1_0:
4298        return "NPL-1.0";
4299      case NPL_1_1:
4300        return "NPL-1.1";
4301      case NPOSL_3_0:
4302        return "NPOSL-3.0";
4303      case NRL:
4304        return "NRL";
4305      case NTP:
4306        return "NTP";
4307      case NTP_0:
4308        return "NTP-0";
4309      case NUNIT:
4310        return "Nunit";
4311      case O_UDA_1_0:
4312        return "O-UDA-1.0";
4313      case OCCT_PL:
4314        return "OCCT-PL";
4315      case OCLC_2_0:
4316        return "OCLC-2.0";
4317      case ODBL_1_0:
4318        return "ODbL-1.0";
4319      case ODC_BY_1_0:
4320        return "ODC-By-1.0";
4321      case OFFIS:
4322        return "OFFIS";
4323      case OFL_1_0:
4324        return "OFL-1.0";
4325      case OFL_1_0_NO_RFN:
4326        return "OFL-1.0-no-RFN";
4327      case OFL_1_0_RFN:
4328        return "OFL-1.0-RFN";
4329      case OFL_1_1:
4330        return "OFL-1.1";
4331      case OFL_1_1_NO_RFN:
4332        return "OFL-1.1-no-RFN";
4333      case OFL_1_1_RFN:
4334        return "OFL-1.1-RFN";
4335      case OGC_1_0:
4336        return "OGC-1.0";
4337      case OGDL_TAIWAN_1_0:
4338        return "OGDL-Taiwan-1.0";
4339      case OGL_CANADA_2_0:
4340        return "OGL-Canada-2.0";
4341      case OGL_UK_1_0:
4342        return "OGL-UK-1.0";
4343      case OGL_UK_2_0:
4344        return "OGL-UK-2.0";
4345      case OGL_UK_3_0:
4346        return "OGL-UK-3.0";
4347      case OGTSL:
4348        return "OGTSL";
4349      case OLDAP_1_1:
4350        return "OLDAP-1.1";
4351      case OLDAP_1_2:
4352        return "OLDAP-1.2";
4353      case OLDAP_1_3:
4354        return "OLDAP-1.3";
4355      case OLDAP_1_4:
4356        return "OLDAP-1.4";
4357      case OLDAP_2_0:
4358        return "OLDAP-2.0";
4359      case OLDAP_2_0_1:
4360        return "OLDAP-2.0.1";
4361      case OLDAP_2_1:
4362        return "OLDAP-2.1";
4363      case OLDAP_2_2:
4364        return "OLDAP-2.2";
4365      case OLDAP_2_2_1:
4366        return "OLDAP-2.2.1";
4367      case OLDAP_2_2_2:
4368        return "OLDAP-2.2.2";
4369      case OLDAP_2_3:
4370        return "OLDAP-2.3";
4371      case OLDAP_2_4:
4372        return "OLDAP-2.4";
4373      case OLDAP_2_5:
4374        return "OLDAP-2.5";
4375      case OLDAP_2_6:
4376        return "OLDAP-2.6";
4377      case OLDAP_2_7:
4378        return "OLDAP-2.7";
4379      case OLDAP_2_8:
4380        return "OLDAP-2.8";
4381      case OLFL_1_3:
4382        return "OLFL-1.3";
4383      case OML:
4384        return "OML";
4385      case OPENPBS_2_3:
4386        return "OpenPBS-2.3";
4387      case OPENSSL:
4388        return "OpenSSL";
4389      case OPL_1_0:
4390        return "OPL-1.0";
4391      case OPL_UK_3_0:
4392        return "OPL-UK-3.0";
4393      case OPUBL_1_0:
4394        return "OPUBL-1.0";
4395      case OSET_PL_2_1:
4396        return "OSET-PL-2.1";
4397      case OSL_1_0:
4398        return "OSL-1.0";
4399      case OSL_1_1:
4400        return "OSL-1.1";
4401      case OSL_2_0:
4402        return "OSL-2.0";
4403      case OSL_2_1:
4404        return "OSL-2.1";
4405      case OSL_3_0:
4406        return "OSL-3.0";
4407      case PARITY_6_0_0:
4408        return "Parity-6.0.0";
4409      case PARITY_7_0_0:
4410        return "Parity-7.0.0";
4411      case PDDL_1_0:
4412        return "PDDL-1.0";
4413      case PHP_3_0:
4414        return "PHP-3.0";
4415      case PHP_3_01:
4416        return "PHP-3.01";
4417      case PLEXUS:
4418        return "Plexus";
4419      case POLYFORM_NONCOMMERCIAL_1_0_0:
4420        return "PolyForm-Noncommercial-1.0.0";
4421      case POLYFORM_SMALL_BUSINESS_1_0_0:
4422        return "PolyForm-Small-Business-1.0.0";
4423      case POSTGRESQL:
4424        return "PostgreSQL";
4425      case PSF_2_0:
4426        return "PSF-2.0";
4427      case PSFRAG:
4428        return "psfrag";
4429      case PSUTILS:
4430        return "psutils";
4431      case PYTHON_2_0:
4432        return "Python-2.0";
4433      case PYTHON_2_0_1:
4434        return "Python-2.0.1";
4435      case QHULL:
4436        return "Qhull";
4437      case QPL_1_0:
4438        return "QPL-1.0";
4439      case QPL_1_0_INRIA_2004:
4440        return "QPL-1.0-INRIA-2004";
4441      case RDISC:
4442        return "Rdisc";
4443      case RHECOS_1_1:
4444        return "RHeCos-1.1";
4445      case RPL_1_1:
4446        return "RPL-1.1";
4447      case RPL_1_5:
4448        return "RPL-1.5";
4449      case RPSL_1_0:
4450        return "RPSL-1.0";
4451      case RSA_MD:
4452        return "RSA-MD";
4453      case RSCPL:
4454        return "RSCPL";
4455      case RUBY:
4456        return "Ruby";
4457      case SAX_PD:
4458        return "SAX-PD";
4459      case SAXPATH:
4460        return "Saxpath";
4461      case SCEA:
4462        return "SCEA";
4463      case SCHEMEREPORT:
4464        return "SchemeReport";
4465      case SENDMAIL:
4466        return "Sendmail";
4467      case SENDMAIL_8_23:
4468        return "Sendmail-8.23";
4469      case SGI_B_1_0:
4470        return "SGI-B-1.0";
4471      case SGI_B_1_1:
4472        return "SGI-B-1.1";
4473      case SGI_B_2_0:
4474        return "SGI-B-2.0";
4475      case SGP4:
4476        return "SGP4";
4477      case SHL_0_5:
4478        return "SHL-0.5";
4479      case SHL_0_51:
4480        return "SHL-0.51";
4481      case SIMPL_2_0:
4482        return "SimPL-2.0";
4483      case SISSL:
4484        return "SISSL";
4485      case SISSL_1_2:
4486        return "SISSL-1.2";
4487      case SLEEPYCAT:
4488        return "Sleepycat";
4489      case SMLNJ:
4490        return "SMLNJ";
4491      case SMPPL:
4492        return "SMPPL";
4493      case SNIA:
4494        return "SNIA";
4495      case SNPRINTF:
4496        return "snprintf";
4497      case SPENCER_86:
4498        return "Spencer-86";
4499      case SPENCER_94:
4500        return "Spencer-94";
4501      case SPENCER_99:
4502        return "Spencer-99";
4503      case SPL_1_0:
4504        return "SPL-1.0";
4505      case SSH_OPENSSH:
4506        return "SSH-OpenSSH";
4507      case SSH_SHORT:
4508        return "SSH-short";
4509      case SSPL_1_0:
4510        return "SSPL-1.0";
4511      case STANDARDML_NJ:
4512        return "StandardML-NJ";
4513      case SUGARCRM_1_1_3:
4514        return "SugarCRM-1.1.3";
4515      case SUNPRO:
4516        return "SunPro";
4517      case SWL:
4518        return "SWL";
4519      case SYMLINKS:
4520        return "Symlinks";
4521      case TAPR_OHL_1_0:
4522        return "TAPR-OHL-1.0";
4523      case TCL:
4524        return "TCL";
4525      case TCP_WRAPPERS:
4526        return "TCP-wrappers";
4527      case TERMREADKEY:
4528        return "TermReadKey";
4529      case TMATE:
4530        return "TMate";
4531      case TORQUE_1_1:
4532        return "TORQUE-1.1";
4533      case TOSL:
4534        return "TOSL";
4535      case TPDL:
4536        return "TPDL";
4537      case TPL_1_0:
4538        return "TPL-1.0";
4539      case TTWL:
4540        return "TTWL";
4541      case TU_BERLIN_1_0:
4542        return "TU-Berlin-1.0";
4543      case TU_BERLIN_2_0:
4544        return "TU-Berlin-2.0";
4545      case UCAR:
4546        return "UCAR";
4547      case UCL_1_0:
4548        return "UCL-1.0";
4549      case UNICODE_DFS_2015:
4550        return "Unicode-DFS-2015";
4551      case UNICODE_DFS_2016:
4552        return "Unicode-DFS-2016";
4553      case UNICODE_TOU:
4554        return "Unicode-TOU";
4555      case UNIXCRYPT:
4556        return "UnixCrypt";
4557      case UNLICENSE:
4558        return "Unlicense";
4559      case UPL_1_0:
4560        return "UPL-1.0";
4561      case VIM:
4562        return "Vim";
4563      case VOSTROM:
4564        return "VOSTROM";
4565      case VSL_1_0:
4566        return "VSL-1.0";
4567      case W3C:
4568        return "W3C";
4569      case W3C_19980720:
4570        return "W3C-19980720";
4571      case W3C_20150513:
4572        return "W3C-20150513";
4573      case W3M:
4574        return "w3m";
4575      case WATCOM_1_0:
4576        return "Watcom-1.0";
4577      case WIDGET_WORKSHOP:
4578        return "Widget-Workshop";
4579      case WSUIPA:
4580        return "Wsuipa";
4581      case WTFPL:
4582        return "WTFPL";
4583      case WXWINDOWS:
4584        return "wxWindows";
4585      case X11:
4586        return "X11";
4587      case X11_DISTRIBUTE_MODIFICATIONS_VARIANT:
4588        return "X11-distribute-modifications-variant";
4589      case XDEBUG_1_03:
4590        return "Xdebug-1.03";
4591      case XEROX:
4592        return "Xerox";
4593      case XFIG:
4594        return "Xfig";
4595      case XFREE86_1_1:
4596        return "XFree86-1.1";
4597      case XINETD:
4598        return "xinetd";
4599      case XLOCK:
4600        return "xlock";
4601      case XNET:
4602        return "Xnet";
4603      case XPP:
4604        return "xpp";
4605      case XSKAT:
4606        return "XSkat";
4607      case YPL_1_0:
4608        return "YPL-1.0";
4609      case YPL_1_1:
4610        return "YPL-1.1";
4611      case ZED:
4612        return "Zed";
4613      case ZEND_2_0:
4614        return "Zend-2.0";
4615      case ZIMBRA_1_3:
4616        return "Zimbra-1.3";
4617      case ZIMBRA_1_4:
4618        return "Zimbra-1.4";
4619      case ZLIB:
4620        return "Zlib";
4621      case ZLIB_ACKNOWLEDGEMENT:
4622        return "zlib-acknowledgement";
4623      case ZPL_1_1:
4624        return "ZPL-1.1";
4625      case ZPL_2_0:
4626        return "ZPL-2.0";
4627      case ZPL_2_1:
4628        return "ZPL-2.1";
4629      case NULL:
4630        return null;
4631      default:
4632        return "?";
4633      }
4634    }
4635
4636    public String getSystem() {
4637      switch (this) {
4638      case _0BSD:
4639        return "http://hl7.org/fhir/spdx-license";
4640      case AAL:
4641        return "http://hl7.org/fhir/spdx-license";
4642      case ABSTYLES:
4643        return "http://hl7.org/fhir/spdx-license";
4644      case ADACORE_DOC:
4645        return "http://hl7.org/fhir/spdx-license";
4646      case ADOBE_2006:
4647        return "http://hl7.org/fhir/spdx-license";
4648      case ADOBE_GLYPH:
4649        return "http://hl7.org/fhir/spdx-license";
4650      case ADSL:
4651        return "http://hl7.org/fhir/spdx-license";
4652      case AFL_1_1:
4653        return "http://hl7.org/fhir/spdx-license";
4654      case AFL_1_2:
4655        return "http://hl7.org/fhir/spdx-license";
4656      case AFL_2_0:
4657        return "http://hl7.org/fhir/spdx-license";
4658      case AFL_2_1:
4659        return "http://hl7.org/fhir/spdx-license";
4660      case AFL_3_0:
4661        return "http://hl7.org/fhir/spdx-license";
4662      case AFMPARSE:
4663        return "http://hl7.org/fhir/spdx-license";
4664      case AGPL_1_0:
4665        return "http://hl7.org/fhir/spdx-license";
4666      case AGPL_1_0_ONLY:
4667        return "http://hl7.org/fhir/spdx-license";
4668      case AGPL_1_0_OR_LATER:
4669        return "http://hl7.org/fhir/spdx-license";
4670      case AGPL_3_0:
4671        return "http://hl7.org/fhir/spdx-license";
4672      case AGPL_3_0_ONLY:
4673        return "http://hl7.org/fhir/spdx-license";
4674      case AGPL_3_0_OR_LATER:
4675        return "http://hl7.org/fhir/spdx-license";
4676      case ALADDIN:
4677        return "http://hl7.org/fhir/spdx-license";
4678      case AMDPLPA:
4679        return "http://hl7.org/fhir/spdx-license";
4680      case AML:
4681        return "http://hl7.org/fhir/spdx-license";
4682      case AMPAS:
4683        return "http://hl7.org/fhir/spdx-license";
4684      case ANTLR_PD:
4685        return "http://hl7.org/fhir/spdx-license";
4686      case ANTLR_PD_FALLBACK:
4687        return "http://hl7.org/fhir/spdx-license";
4688      case APACHE_1_0:
4689        return "http://hl7.org/fhir/spdx-license";
4690      case APACHE_1_1:
4691        return "http://hl7.org/fhir/spdx-license";
4692      case APACHE_2_0:
4693        return "http://hl7.org/fhir/spdx-license";
4694      case APAFML:
4695        return "http://hl7.org/fhir/spdx-license";
4696      case APL_1_0:
4697        return "http://hl7.org/fhir/spdx-license";
4698      case APP_S2P:
4699        return "http://hl7.org/fhir/spdx-license";
4700      case APSL_1_0:
4701        return "http://hl7.org/fhir/spdx-license";
4702      case APSL_1_1:
4703        return "http://hl7.org/fhir/spdx-license";
4704      case APSL_1_2:
4705        return "http://hl7.org/fhir/spdx-license";
4706      case APSL_2_0:
4707        return "http://hl7.org/fhir/spdx-license";
4708      case ARPHIC_1999:
4709        return "http://hl7.org/fhir/spdx-license";
4710      case ARTISTIC_1_0:
4711        return "http://hl7.org/fhir/spdx-license";
4712      case ARTISTIC_1_0_CL8:
4713        return "http://hl7.org/fhir/spdx-license";
4714      case ARTISTIC_1_0_PERL:
4715        return "http://hl7.org/fhir/spdx-license";
4716      case ARTISTIC_2_0:
4717        return "http://hl7.org/fhir/spdx-license";
4718      case ASWF_DIGITAL_ASSETS_1_0:
4719        return "http://hl7.org/fhir/spdx-license";
4720      case ASWF_DIGITAL_ASSETS_1_1:
4721        return "http://hl7.org/fhir/spdx-license";
4722      case BAEKMUK:
4723        return "http://hl7.org/fhir/spdx-license";
4724      case BAHYPH:
4725        return "http://hl7.org/fhir/spdx-license";
4726      case BARR:
4727        return "http://hl7.org/fhir/spdx-license";
4728      case BEERWARE:
4729        return "http://hl7.org/fhir/spdx-license";
4730      case BITSTREAM_CHARTER:
4731        return "http://hl7.org/fhir/spdx-license";
4732      case BITSTREAM_VERA:
4733        return "http://hl7.org/fhir/spdx-license";
4734      case BITTORRENT_1_0:
4735        return "http://hl7.org/fhir/spdx-license";
4736      case BITTORRENT_1_1:
4737        return "http://hl7.org/fhir/spdx-license";
4738      case BLESSING:
4739        return "http://hl7.org/fhir/spdx-license";
4740      case BLUEOAK_1_0_0:
4741        return "http://hl7.org/fhir/spdx-license";
4742      case BOEHM_GC:
4743        return "http://hl7.org/fhir/spdx-license";
4744      case BORCEUX:
4745        return "http://hl7.org/fhir/spdx-license";
4746      case BRIAN_GLADMAN_3_CLAUSE:
4747        return "http://hl7.org/fhir/spdx-license";
4748      case BSD_1_CLAUSE:
4749        return "http://hl7.org/fhir/spdx-license";
4750      case BSD_2_CLAUSE:
4751        return "http://hl7.org/fhir/spdx-license";
4752      case BSD_2_CLAUSE_FREEBSD:
4753        return "http://hl7.org/fhir/spdx-license";
4754      case BSD_2_CLAUSE_NETBSD:
4755        return "http://hl7.org/fhir/spdx-license";
4756      case BSD_2_CLAUSE_PATENT:
4757        return "http://hl7.org/fhir/spdx-license";
4758      case BSD_2_CLAUSE_VIEWS:
4759        return "http://hl7.org/fhir/spdx-license";
4760      case BSD_3_CLAUSE:
4761        return "http://hl7.org/fhir/spdx-license";
4762      case BSD_3_CLAUSE_ATTRIBUTION:
4763        return "http://hl7.org/fhir/spdx-license";
4764      case BSD_3_CLAUSE_CLEAR:
4765        return "http://hl7.org/fhir/spdx-license";
4766      case BSD_3_CLAUSE_LBNL:
4767        return "http://hl7.org/fhir/spdx-license";
4768      case BSD_3_CLAUSE_MODIFICATION:
4769        return "http://hl7.org/fhir/spdx-license";
4770      case BSD_3_CLAUSE_NO_MILITARY_LICENSE:
4771        return "http://hl7.org/fhir/spdx-license";
4772      case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE:
4773        return "http://hl7.org/fhir/spdx-license";
4774      case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014:
4775        return "http://hl7.org/fhir/spdx-license";
4776      case BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY:
4777        return "http://hl7.org/fhir/spdx-license";
4778      case BSD_3_CLAUSE_OPEN_MPI:
4779        return "http://hl7.org/fhir/spdx-license";
4780      case BSD_4_CLAUSE:
4781        return "http://hl7.org/fhir/spdx-license";
4782      case BSD_4_CLAUSE_SHORTENED:
4783        return "http://hl7.org/fhir/spdx-license";
4784      case BSD_4_CLAUSE_UC:
4785        return "http://hl7.org/fhir/spdx-license";
4786      case BSD_4_3RENO:
4787        return "http://hl7.org/fhir/spdx-license";
4788      case BSD_4_3TAHOE:
4789        return "http://hl7.org/fhir/spdx-license";
4790      case BSD_ADVERTISING_ACKNOWLEDGEMENT:
4791        return "http://hl7.org/fhir/spdx-license";
4792      case BSD_ATTRIBUTION_HPND_DISCLAIMER:
4793        return "http://hl7.org/fhir/spdx-license";
4794      case BSD_PROTECTION:
4795        return "http://hl7.org/fhir/spdx-license";
4796      case BSD_SOURCE_CODE:
4797        return "http://hl7.org/fhir/spdx-license";
4798      case BSL_1_0:
4799        return "http://hl7.org/fhir/spdx-license";
4800      case BUSL_1_1:
4801        return "http://hl7.org/fhir/spdx-license";
4802      case BZIP2_1_0_5:
4803        return "http://hl7.org/fhir/spdx-license";
4804      case BZIP2_1_0_6:
4805        return "http://hl7.org/fhir/spdx-license";
4806      case C_UDA_1_0:
4807        return "http://hl7.org/fhir/spdx-license";
4808      case CAL_1_0:
4809        return "http://hl7.org/fhir/spdx-license";
4810      case CAL_1_0_COMBINED_WORK_EXCEPTION:
4811        return "http://hl7.org/fhir/spdx-license";
4812      case CALDERA:
4813        return "http://hl7.org/fhir/spdx-license";
4814      case CATOSL_1_1:
4815        return "http://hl7.org/fhir/spdx-license";
4816      case CC_BY_1_0:
4817        return "http://hl7.org/fhir/spdx-license";
4818      case CC_BY_2_0:
4819        return "http://hl7.org/fhir/spdx-license";
4820      case CC_BY_2_5:
4821        return "http://hl7.org/fhir/spdx-license";
4822      case CC_BY_2_5_AU:
4823        return "http://hl7.org/fhir/spdx-license";
4824      case CC_BY_3_0:
4825        return "http://hl7.org/fhir/spdx-license";
4826      case CC_BY_3_0_AT:
4827        return "http://hl7.org/fhir/spdx-license";
4828      case CC_BY_3_0_DE:
4829        return "http://hl7.org/fhir/spdx-license";
4830      case CC_BY_3_0_IGO:
4831        return "http://hl7.org/fhir/spdx-license";
4832      case CC_BY_3_0_NL:
4833        return "http://hl7.org/fhir/spdx-license";
4834      case CC_BY_3_0_US:
4835        return "http://hl7.org/fhir/spdx-license";
4836      case CC_BY_4_0:
4837        return "http://hl7.org/fhir/spdx-license";
4838      case CC_BY_NC_1_0:
4839        return "http://hl7.org/fhir/spdx-license";
4840      case CC_BY_NC_2_0:
4841        return "http://hl7.org/fhir/spdx-license";
4842      case CC_BY_NC_2_5:
4843        return "http://hl7.org/fhir/spdx-license";
4844      case CC_BY_NC_3_0:
4845        return "http://hl7.org/fhir/spdx-license";
4846      case CC_BY_NC_3_0_DE:
4847        return "http://hl7.org/fhir/spdx-license";
4848      case CC_BY_NC_4_0:
4849        return "http://hl7.org/fhir/spdx-license";
4850      case CC_BY_NC_ND_1_0:
4851        return "http://hl7.org/fhir/spdx-license";
4852      case CC_BY_NC_ND_2_0:
4853        return "http://hl7.org/fhir/spdx-license";
4854      case CC_BY_NC_ND_2_5:
4855        return "http://hl7.org/fhir/spdx-license";
4856      case CC_BY_NC_ND_3_0:
4857        return "http://hl7.org/fhir/spdx-license";
4858      case CC_BY_NC_ND_3_0_DE:
4859        return "http://hl7.org/fhir/spdx-license";
4860      case CC_BY_NC_ND_3_0_IGO:
4861        return "http://hl7.org/fhir/spdx-license";
4862      case CC_BY_NC_ND_4_0:
4863        return "http://hl7.org/fhir/spdx-license";
4864      case CC_BY_NC_SA_1_0:
4865        return "http://hl7.org/fhir/spdx-license";
4866      case CC_BY_NC_SA_2_0:
4867        return "http://hl7.org/fhir/spdx-license";
4868      case CC_BY_NC_SA_2_0_DE:
4869        return "http://hl7.org/fhir/spdx-license";
4870      case CC_BY_NC_SA_2_0_FR:
4871        return "http://hl7.org/fhir/spdx-license";
4872      case CC_BY_NC_SA_2_0_UK:
4873        return "http://hl7.org/fhir/spdx-license";
4874      case CC_BY_NC_SA_2_5:
4875        return "http://hl7.org/fhir/spdx-license";
4876      case CC_BY_NC_SA_3_0:
4877        return "http://hl7.org/fhir/spdx-license";
4878      case CC_BY_NC_SA_3_0_DE:
4879        return "http://hl7.org/fhir/spdx-license";
4880      case CC_BY_NC_SA_3_0_IGO:
4881        return "http://hl7.org/fhir/spdx-license";
4882      case CC_BY_NC_SA_4_0:
4883        return "http://hl7.org/fhir/spdx-license";
4884      case CC_BY_ND_1_0:
4885        return "http://hl7.org/fhir/spdx-license";
4886      case CC_BY_ND_2_0:
4887        return "http://hl7.org/fhir/spdx-license";
4888      case CC_BY_ND_2_5:
4889        return "http://hl7.org/fhir/spdx-license";
4890      case CC_BY_ND_3_0:
4891        return "http://hl7.org/fhir/spdx-license";
4892      case CC_BY_ND_3_0_DE:
4893        return "http://hl7.org/fhir/spdx-license";
4894      case CC_BY_ND_4_0:
4895        return "http://hl7.org/fhir/spdx-license";
4896      case CC_BY_SA_1_0:
4897        return "http://hl7.org/fhir/spdx-license";
4898      case CC_BY_SA_2_0:
4899        return "http://hl7.org/fhir/spdx-license";
4900      case CC_BY_SA_2_0_UK:
4901        return "http://hl7.org/fhir/spdx-license";
4902      case CC_BY_SA_2_1_JP:
4903        return "http://hl7.org/fhir/spdx-license";
4904      case CC_BY_SA_2_5:
4905        return "http://hl7.org/fhir/spdx-license";
4906      case CC_BY_SA_3_0:
4907        return "http://hl7.org/fhir/spdx-license";
4908      case CC_BY_SA_3_0_AT:
4909        return "http://hl7.org/fhir/spdx-license";
4910      case CC_BY_SA_3_0_DE:
4911        return "http://hl7.org/fhir/spdx-license";
4912      case CC_BY_SA_3_0_IGO:
4913        return "http://hl7.org/fhir/spdx-license";
4914      case CC_BY_SA_4_0:
4915        return "http://hl7.org/fhir/spdx-license";
4916      case CC_PDDC:
4917        return "http://hl7.org/fhir/spdx-license";
4918      case CC0_1_0:
4919        return "http://hl7.org/fhir/spdx-license";
4920      case CDDL_1_0:
4921        return "http://hl7.org/fhir/spdx-license";
4922      case CDDL_1_1:
4923        return "http://hl7.org/fhir/spdx-license";
4924      case CDL_1_0:
4925        return "http://hl7.org/fhir/spdx-license";
4926      case CDLA_PERMISSIVE_1_0:
4927        return "http://hl7.org/fhir/spdx-license";
4928      case CDLA_PERMISSIVE_2_0:
4929        return "http://hl7.org/fhir/spdx-license";
4930      case CDLA_SHARING_1_0:
4931        return "http://hl7.org/fhir/spdx-license";
4932      case CECILL_1_0:
4933        return "http://hl7.org/fhir/spdx-license";
4934      case CECILL_1_1:
4935        return "http://hl7.org/fhir/spdx-license";
4936      case CECILL_2_0:
4937        return "http://hl7.org/fhir/spdx-license";
4938      case CECILL_2_1:
4939        return "http://hl7.org/fhir/spdx-license";
4940      case CECILL_B:
4941        return "http://hl7.org/fhir/spdx-license";
4942      case CECILL_C:
4943        return "http://hl7.org/fhir/spdx-license";
4944      case CERN_OHL_1_1:
4945        return "http://hl7.org/fhir/spdx-license";
4946      case CERN_OHL_1_2:
4947        return "http://hl7.org/fhir/spdx-license";
4948      case CERN_OHL_P_2_0:
4949        return "http://hl7.org/fhir/spdx-license";
4950      case CERN_OHL_S_2_0:
4951        return "http://hl7.org/fhir/spdx-license";
4952      case CERN_OHL_W_2_0:
4953        return "http://hl7.org/fhir/spdx-license";
4954      case CFITSIO:
4955        return "http://hl7.org/fhir/spdx-license";
4956      case CHECKMK:
4957        return "http://hl7.org/fhir/spdx-license";
4958      case CLARTISTIC:
4959        return "http://hl7.org/fhir/spdx-license";
4960      case CLIPS:
4961        return "http://hl7.org/fhir/spdx-license";
4962      case CMU_MACH:
4963        return "http://hl7.org/fhir/spdx-license";
4964      case CNRI_JYTHON:
4965        return "http://hl7.org/fhir/spdx-license";
4966      case CNRI_PYTHON:
4967        return "http://hl7.org/fhir/spdx-license";
4968      case CNRI_PYTHON_GPL_COMPATIBLE:
4969        return "http://hl7.org/fhir/spdx-license";
4970      case COIL_1_0:
4971        return "http://hl7.org/fhir/spdx-license";
4972      case COMMUNITY_SPEC_1_0:
4973        return "http://hl7.org/fhir/spdx-license";
4974      case CONDOR_1_1:
4975        return "http://hl7.org/fhir/spdx-license";
4976      case COPYLEFT_NEXT_0_3_0:
4977        return "http://hl7.org/fhir/spdx-license";
4978      case COPYLEFT_NEXT_0_3_1:
4979        return "http://hl7.org/fhir/spdx-license";
4980      case CORNELL_LOSSLESS_JPEG:
4981        return "http://hl7.org/fhir/spdx-license";
4982      case CPAL_1_0:
4983        return "http://hl7.org/fhir/spdx-license";
4984      case CPL_1_0:
4985        return "http://hl7.org/fhir/spdx-license";
4986      case CPOL_1_02:
4987        return "http://hl7.org/fhir/spdx-license";
4988      case CROSSWORD:
4989        return "http://hl7.org/fhir/spdx-license";
4990      case CRYSTALSTACKER:
4991        return "http://hl7.org/fhir/spdx-license";
4992      case CUA_OPL_1_0:
4993        return "http://hl7.org/fhir/spdx-license";
4994      case CUBE:
4995        return "http://hl7.org/fhir/spdx-license";
4996      case CURL:
4997        return "http://hl7.org/fhir/spdx-license";
4998      case D_FSL_1_0:
4999        return "http://hl7.org/fhir/spdx-license";
5000      case DIFFMARK:
5001        return "http://hl7.org/fhir/spdx-license";
5002      case DL_DE_BY_2_0:
5003        return "http://hl7.org/fhir/spdx-license";
5004      case DOC:
5005        return "http://hl7.org/fhir/spdx-license";
5006      case DOTSEQN:
5007        return "http://hl7.org/fhir/spdx-license";
5008      case DRL_1_0:
5009        return "http://hl7.org/fhir/spdx-license";
5010      case DSDP:
5011        return "http://hl7.org/fhir/spdx-license";
5012      case DTOA:
5013        return "http://hl7.org/fhir/spdx-license";
5014      case DVIPDFM:
5015        return "http://hl7.org/fhir/spdx-license";
5016      case ECL_1_0:
5017        return "http://hl7.org/fhir/spdx-license";
5018      case ECL_2_0:
5019        return "http://hl7.org/fhir/spdx-license";
5020      case ECOS_2_0:
5021        return "http://hl7.org/fhir/spdx-license";
5022      case EFL_1_0:
5023        return "http://hl7.org/fhir/spdx-license";
5024      case EFL_2_0:
5025        return "http://hl7.org/fhir/spdx-license";
5026      case EGENIX:
5027        return "http://hl7.org/fhir/spdx-license";
5028      case ELASTIC_2_0:
5029        return "http://hl7.org/fhir/spdx-license";
5030      case ENTESSA:
5031        return "http://hl7.org/fhir/spdx-license";
5032      case EPICS:
5033        return "http://hl7.org/fhir/spdx-license";
5034      case EPL_1_0:
5035        return "http://hl7.org/fhir/spdx-license";
5036      case EPL_2_0:
5037        return "http://hl7.org/fhir/spdx-license";
5038      case ERLPL_1_1:
5039        return "http://hl7.org/fhir/spdx-license";
5040      case ETALAB_2_0:
5041        return "http://hl7.org/fhir/spdx-license";
5042      case EUDATAGRID:
5043        return "http://hl7.org/fhir/spdx-license";
5044      case EUPL_1_0:
5045        return "http://hl7.org/fhir/spdx-license";
5046      case EUPL_1_1:
5047        return "http://hl7.org/fhir/spdx-license";
5048      case EUPL_1_2:
5049        return "http://hl7.org/fhir/spdx-license";
5050      case EUROSYM:
5051        return "http://hl7.org/fhir/spdx-license";
5052      case FAIR:
5053        return "http://hl7.org/fhir/spdx-license";
5054      case FDK_AAC:
5055        return "http://hl7.org/fhir/spdx-license";
5056      case FRAMEWORX_1_0:
5057        return "http://hl7.org/fhir/spdx-license";
5058      case FREEBSD_DOC:
5059        return "http://hl7.org/fhir/spdx-license";
5060      case FREEIMAGE:
5061        return "http://hl7.org/fhir/spdx-license";
5062      case FSFAP:
5063        return "http://hl7.org/fhir/spdx-license";
5064      case FSFUL:
5065        return "http://hl7.org/fhir/spdx-license";
5066      case FSFULLR:
5067        return "http://hl7.org/fhir/spdx-license";
5068      case FSFULLRWD:
5069        return "http://hl7.org/fhir/spdx-license";
5070      case FTL:
5071        return "http://hl7.org/fhir/spdx-license";
5072      case GD:
5073        return "http://hl7.org/fhir/spdx-license";
5074      case GFDL_1_1:
5075        return "http://hl7.org/fhir/spdx-license";
5076      case GFDL_1_1_INVARIANTS_ONLY:
5077        return "http://hl7.org/fhir/spdx-license";
5078      case GFDL_1_1_INVARIANTS_OR_LATER:
5079        return "http://hl7.org/fhir/spdx-license";
5080      case GFDL_1_1_NO_INVARIANTS_ONLY:
5081        return "http://hl7.org/fhir/spdx-license";
5082      case GFDL_1_1_NO_INVARIANTS_OR_LATER:
5083        return "http://hl7.org/fhir/spdx-license";
5084      case GFDL_1_1_ONLY:
5085        return "http://hl7.org/fhir/spdx-license";
5086      case GFDL_1_1_OR_LATER:
5087        return "http://hl7.org/fhir/spdx-license";
5088      case GFDL_1_2:
5089        return "http://hl7.org/fhir/spdx-license";
5090      case GFDL_1_2_INVARIANTS_ONLY:
5091        return "http://hl7.org/fhir/spdx-license";
5092      case GFDL_1_2_INVARIANTS_OR_LATER:
5093        return "http://hl7.org/fhir/spdx-license";
5094      case GFDL_1_2_NO_INVARIANTS_ONLY:
5095        return "http://hl7.org/fhir/spdx-license";
5096      case GFDL_1_2_NO_INVARIANTS_OR_LATER:
5097        return "http://hl7.org/fhir/spdx-license";
5098      case GFDL_1_2_ONLY:
5099        return "http://hl7.org/fhir/spdx-license";
5100      case GFDL_1_2_OR_LATER:
5101        return "http://hl7.org/fhir/spdx-license";
5102      case GFDL_1_3:
5103        return "http://hl7.org/fhir/spdx-license";
5104      case GFDL_1_3_INVARIANTS_ONLY:
5105        return "http://hl7.org/fhir/spdx-license";
5106      case GFDL_1_3_INVARIANTS_OR_LATER:
5107        return "http://hl7.org/fhir/spdx-license";
5108      case GFDL_1_3_NO_INVARIANTS_ONLY:
5109        return "http://hl7.org/fhir/spdx-license";
5110      case GFDL_1_3_NO_INVARIANTS_OR_LATER:
5111        return "http://hl7.org/fhir/spdx-license";
5112      case GFDL_1_3_ONLY:
5113        return "http://hl7.org/fhir/spdx-license";
5114      case GFDL_1_3_OR_LATER:
5115        return "http://hl7.org/fhir/spdx-license";
5116      case GIFTWARE:
5117        return "http://hl7.org/fhir/spdx-license";
5118      case GL2PS:
5119        return "http://hl7.org/fhir/spdx-license";
5120      case GLIDE:
5121        return "http://hl7.org/fhir/spdx-license";
5122      case GLULXE:
5123        return "http://hl7.org/fhir/spdx-license";
5124      case GLWTPL:
5125        return "http://hl7.org/fhir/spdx-license";
5126      case GNUPLOT:
5127        return "http://hl7.org/fhir/spdx-license";
5128      case GPL_1_0:
5129        return "http://hl7.org/fhir/spdx-license";
5130      case GPL_1_0PLUS:
5131        return "http://hl7.org/fhir/spdx-license";
5132      case GPL_1_0_ONLY:
5133        return "http://hl7.org/fhir/spdx-license";
5134      case GPL_1_0_OR_LATER:
5135        return "http://hl7.org/fhir/spdx-license";
5136      case GPL_2_0:
5137        return "http://hl7.org/fhir/spdx-license";
5138      case GPL_2_0PLUS:
5139        return "http://hl7.org/fhir/spdx-license";
5140      case GPL_2_0_ONLY:
5141        return "http://hl7.org/fhir/spdx-license";
5142      case GPL_2_0_OR_LATER:
5143        return "http://hl7.org/fhir/spdx-license";
5144      case GPL_2_0_WITH_AUTOCONF_EXCEPTION:
5145        return "http://hl7.org/fhir/spdx-license";
5146      case GPL_2_0_WITH_BISON_EXCEPTION:
5147        return "http://hl7.org/fhir/spdx-license";
5148      case GPL_2_0_WITH_CLASSPATH_EXCEPTION:
5149        return "http://hl7.org/fhir/spdx-license";
5150      case GPL_2_0_WITH_FONT_EXCEPTION:
5151        return "http://hl7.org/fhir/spdx-license";
5152      case GPL_2_0_WITH_GCC_EXCEPTION:
5153        return "http://hl7.org/fhir/spdx-license";
5154      case GPL_3_0:
5155        return "http://hl7.org/fhir/spdx-license";
5156      case GPL_3_0PLUS:
5157        return "http://hl7.org/fhir/spdx-license";
5158      case GPL_3_0_ONLY:
5159        return "http://hl7.org/fhir/spdx-license";
5160      case GPL_3_0_OR_LATER:
5161        return "http://hl7.org/fhir/spdx-license";
5162      case GPL_3_0_WITH_AUTOCONF_EXCEPTION:
5163        return "http://hl7.org/fhir/spdx-license";
5164      case GPL_3_0_WITH_GCC_EXCEPTION:
5165        return "http://hl7.org/fhir/spdx-license";
5166      case GRAPHICS_GEMS:
5167        return "http://hl7.org/fhir/spdx-license";
5168      case GSOAP_1_3B:
5169        return "http://hl7.org/fhir/spdx-license";
5170      case HASKELLREPORT:
5171        return "http://hl7.org/fhir/spdx-license";
5172      case HIPPOCRATIC_2_1:
5173        return "http://hl7.org/fhir/spdx-license";
5174      case HP_1986:
5175        return "http://hl7.org/fhir/spdx-license";
5176      case HPND:
5177        return "http://hl7.org/fhir/spdx-license";
5178      case HPND_EXPORT_US:
5179        return "http://hl7.org/fhir/spdx-license";
5180      case HPND_MARKUS_KUHN:
5181        return "http://hl7.org/fhir/spdx-license";
5182      case HPND_SELL_VARIANT:
5183        return "http://hl7.org/fhir/spdx-license";
5184      case HPND_SELL_VARIANT_MIT_DISCLAIMER:
5185        return "http://hl7.org/fhir/spdx-license";
5186      case HTMLTIDY:
5187        return "http://hl7.org/fhir/spdx-license";
5188      case IBM_PIBS:
5189        return "http://hl7.org/fhir/spdx-license";
5190      case ICU:
5191        return "http://hl7.org/fhir/spdx-license";
5192      case IEC_CODE_COMPONENTS_EULA:
5193        return "http://hl7.org/fhir/spdx-license";
5194      case IJG:
5195        return "http://hl7.org/fhir/spdx-license";
5196      case IJG_SHORT:
5197        return "http://hl7.org/fhir/spdx-license";
5198      case IMAGEMAGICK:
5199        return "http://hl7.org/fhir/spdx-license";
5200      case IMATIX:
5201        return "http://hl7.org/fhir/spdx-license";
5202      case IMLIB2:
5203        return "http://hl7.org/fhir/spdx-license";
5204      case INFO_ZIP:
5205        return "http://hl7.org/fhir/spdx-license";
5206      case INNER_NET_2_0:
5207        return "http://hl7.org/fhir/spdx-license";
5208      case INTEL:
5209        return "http://hl7.org/fhir/spdx-license";
5210      case INTEL_ACPI:
5211        return "http://hl7.org/fhir/spdx-license";
5212      case INTERBASE_1_0:
5213        return "http://hl7.org/fhir/spdx-license";
5214      case IPA:
5215        return "http://hl7.org/fhir/spdx-license";
5216      case IPL_1_0:
5217        return "http://hl7.org/fhir/spdx-license";
5218      case ISC:
5219        return "http://hl7.org/fhir/spdx-license";
5220      case JAM:
5221        return "http://hl7.org/fhir/spdx-license";
5222      case JASPER_2_0:
5223        return "http://hl7.org/fhir/spdx-license";
5224      case JPL_IMAGE:
5225        return "http://hl7.org/fhir/spdx-license";
5226      case JPNIC:
5227        return "http://hl7.org/fhir/spdx-license";
5228      case JSON:
5229        return "http://hl7.org/fhir/spdx-license";
5230      case KAZLIB:
5231        return "http://hl7.org/fhir/spdx-license";
5232      case KNUTH_CTAN:
5233        return "http://hl7.org/fhir/spdx-license";
5234      case LAL_1_2:
5235        return "http://hl7.org/fhir/spdx-license";
5236      case LAL_1_3:
5237        return "http://hl7.org/fhir/spdx-license";
5238      case LATEX2E:
5239        return "http://hl7.org/fhir/spdx-license";
5240      case LATEX2E_TRANSLATED_NOTICE:
5241        return "http://hl7.org/fhir/spdx-license";
5242      case LEPTONICA:
5243        return "http://hl7.org/fhir/spdx-license";
5244      case LGPL_2_0:
5245        return "http://hl7.org/fhir/spdx-license";
5246      case LGPL_2_0PLUS:
5247        return "http://hl7.org/fhir/spdx-license";
5248      case LGPL_2_0_ONLY:
5249        return "http://hl7.org/fhir/spdx-license";
5250      case LGPL_2_0_OR_LATER:
5251        return "http://hl7.org/fhir/spdx-license";
5252      case LGPL_2_1:
5253        return "http://hl7.org/fhir/spdx-license";
5254      case LGPL_2_1PLUS:
5255        return "http://hl7.org/fhir/spdx-license";
5256      case LGPL_2_1_ONLY:
5257        return "http://hl7.org/fhir/spdx-license";
5258      case LGPL_2_1_OR_LATER:
5259        return "http://hl7.org/fhir/spdx-license";
5260      case LGPL_3_0:
5261        return "http://hl7.org/fhir/spdx-license";
5262      case LGPL_3_0PLUS:
5263        return "http://hl7.org/fhir/spdx-license";
5264      case LGPL_3_0_ONLY:
5265        return "http://hl7.org/fhir/spdx-license";
5266      case LGPL_3_0_OR_LATER:
5267        return "http://hl7.org/fhir/spdx-license";
5268      case LGPLLR:
5269        return "http://hl7.org/fhir/spdx-license";
5270      case LIBPNG:
5271        return "http://hl7.org/fhir/spdx-license";
5272      case LIBPNG_2_0:
5273        return "http://hl7.org/fhir/spdx-license";
5274      case LIBSELINUX_1_0:
5275        return "http://hl7.org/fhir/spdx-license";
5276      case LIBTIFF:
5277        return "http://hl7.org/fhir/spdx-license";
5278      case LIBUTIL_DAVID_NUGENT:
5279        return "http://hl7.org/fhir/spdx-license";
5280      case LILIQ_P_1_1:
5281        return "http://hl7.org/fhir/spdx-license";
5282      case LILIQ_R_1_1:
5283        return "http://hl7.org/fhir/spdx-license";
5284      case LILIQ_RPLUS_1_1:
5285        return "http://hl7.org/fhir/spdx-license";
5286      case LINUX_MAN_PAGES_1_PARA:
5287        return "http://hl7.org/fhir/spdx-license";
5288      case LINUX_MAN_PAGES_COPYLEFT:
5289        return "http://hl7.org/fhir/spdx-license";
5290      case LINUX_MAN_PAGES_COPYLEFT_2_PARA:
5291        return "http://hl7.org/fhir/spdx-license";
5292      case LINUX_MAN_PAGES_COPYLEFT_VAR:
5293        return "http://hl7.org/fhir/spdx-license";
5294      case LINUX_OPENIB:
5295        return "http://hl7.org/fhir/spdx-license";
5296      case LOOP:
5297        return "http://hl7.org/fhir/spdx-license";
5298      case LPL_1_0:
5299        return "http://hl7.org/fhir/spdx-license";
5300      case LPL_1_02:
5301        return "http://hl7.org/fhir/spdx-license";
5302      case LPPL_1_0:
5303        return "http://hl7.org/fhir/spdx-license";
5304      case LPPL_1_1:
5305        return "http://hl7.org/fhir/spdx-license";
5306      case LPPL_1_2:
5307        return "http://hl7.org/fhir/spdx-license";
5308      case LPPL_1_3A:
5309        return "http://hl7.org/fhir/spdx-license";
5310      case LPPL_1_3C:
5311        return "http://hl7.org/fhir/spdx-license";
5312      case LZMA_SDK_9_11_TO_9_20:
5313        return "http://hl7.org/fhir/spdx-license";
5314      case LZMA_SDK_9_22:
5315        return "http://hl7.org/fhir/spdx-license";
5316      case MAKEINDEX:
5317        return "http://hl7.org/fhir/spdx-license";
5318      case MARTIN_BIRGMEIER:
5319        return "http://hl7.org/fhir/spdx-license";
5320      case METAMAIL:
5321        return "http://hl7.org/fhir/spdx-license";
5322      case MINPACK:
5323        return "http://hl7.org/fhir/spdx-license";
5324      case MIROS:
5325        return "http://hl7.org/fhir/spdx-license";
5326      case MIT:
5327        return "http://hl7.org/fhir/spdx-license";
5328      case MIT_0:
5329        return "http://hl7.org/fhir/spdx-license";
5330      case MIT_ADVERTISING:
5331        return "http://hl7.org/fhir/spdx-license";
5332      case MIT_CMU:
5333        return "http://hl7.org/fhir/spdx-license";
5334      case MIT_ENNA:
5335        return "http://hl7.org/fhir/spdx-license";
5336      case MIT_FEH:
5337        return "http://hl7.org/fhir/spdx-license";
5338      case MIT_FESTIVAL:
5339        return "http://hl7.org/fhir/spdx-license";
5340      case MIT_MODERN_VARIANT:
5341        return "http://hl7.org/fhir/spdx-license";
5342      case MIT_OPEN_GROUP:
5343        return "http://hl7.org/fhir/spdx-license";
5344      case MIT_WU:
5345        return "http://hl7.org/fhir/spdx-license";
5346      case MITNFA:
5347        return "http://hl7.org/fhir/spdx-license";
5348      case MOTOSOTO:
5349        return "http://hl7.org/fhir/spdx-license";
5350      case MPI_PERMISSIVE:
5351        return "http://hl7.org/fhir/spdx-license";
5352      case MPICH2:
5353        return "http://hl7.org/fhir/spdx-license";
5354      case MPL_1_0:
5355        return "http://hl7.org/fhir/spdx-license";
5356      case MPL_1_1:
5357        return "http://hl7.org/fhir/spdx-license";
5358      case MPL_2_0:
5359        return "http://hl7.org/fhir/spdx-license";
5360      case MPL_2_0_NO_COPYLEFT_EXCEPTION:
5361        return "http://hl7.org/fhir/spdx-license";
5362      case MPLUS:
5363        return "http://hl7.org/fhir/spdx-license";
5364      case MS_LPL:
5365        return "http://hl7.org/fhir/spdx-license";
5366      case MS_PL:
5367        return "http://hl7.org/fhir/spdx-license";
5368      case MS_RL:
5369        return "http://hl7.org/fhir/spdx-license";
5370      case MTLL:
5371        return "http://hl7.org/fhir/spdx-license";
5372      case MULANPSL_1_0:
5373        return "http://hl7.org/fhir/spdx-license";
5374      case MULANPSL_2_0:
5375        return "http://hl7.org/fhir/spdx-license";
5376      case MULTICS:
5377        return "http://hl7.org/fhir/spdx-license";
5378      case MUP:
5379        return "http://hl7.org/fhir/spdx-license";
5380      case NAIST_2003:
5381        return "http://hl7.org/fhir/spdx-license";
5382      case NASA_1_3:
5383        return "http://hl7.org/fhir/spdx-license";
5384      case NAUMEN:
5385        return "http://hl7.org/fhir/spdx-license";
5386      case NBPL_1_0:
5387        return "http://hl7.org/fhir/spdx-license";
5388      case NCGL_UK_2_0:
5389        return "http://hl7.org/fhir/spdx-license";
5390      case NCSA:
5391        return "http://hl7.org/fhir/spdx-license";
5392      case NET_SNMP:
5393        return "http://hl7.org/fhir/spdx-license";
5394      case NETCDF:
5395        return "http://hl7.org/fhir/spdx-license";
5396      case NEWSLETR:
5397        return "http://hl7.org/fhir/spdx-license";
5398      case NGPL:
5399        return "http://hl7.org/fhir/spdx-license";
5400      case NICTA_1_0:
5401        return "http://hl7.org/fhir/spdx-license";
5402      case NIST_PD:
5403        return "http://hl7.org/fhir/spdx-license";
5404      case NIST_PD_FALLBACK:
5405        return "http://hl7.org/fhir/spdx-license";
5406      case NIST_SOFTWARE:
5407        return "http://hl7.org/fhir/spdx-license";
5408      case NLOD_1_0:
5409        return "http://hl7.org/fhir/spdx-license";
5410      case NLOD_2_0:
5411        return "http://hl7.org/fhir/spdx-license";
5412      case NLPL:
5413        return "http://hl7.org/fhir/spdx-license";
5414      case NOKIA:
5415        return "http://hl7.org/fhir/spdx-license";
5416      case NOSL:
5417        return "http://hl7.org/fhir/spdx-license";
5418      case NOT_OPEN_SOURCE:
5419        return "http://hl7.org/fhir/spdx-license";
5420      case NOWEB:
5421        return "http://hl7.org/fhir/spdx-license";
5422      case NPL_1_0:
5423        return "http://hl7.org/fhir/spdx-license";
5424      case NPL_1_1:
5425        return "http://hl7.org/fhir/spdx-license";
5426      case NPOSL_3_0:
5427        return "http://hl7.org/fhir/spdx-license";
5428      case NRL:
5429        return "http://hl7.org/fhir/spdx-license";
5430      case NTP:
5431        return "http://hl7.org/fhir/spdx-license";
5432      case NTP_0:
5433        return "http://hl7.org/fhir/spdx-license";
5434      case NUNIT:
5435        return "http://hl7.org/fhir/spdx-license";
5436      case O_UDA_1_0:
5437        return "http://hl7.org/fhir/spdx-license";
5438      case OCCT_PL:
5439        return "http://hl7.org/fhir/spdx-license";
5440      case OCLC_2_0:
5441        return "http://hl7.org/fhir/spdx-license";
5442      case ODBL_1_0:
5443        return "http://hl7.org/fhir/spdx-license";
5444      case ODC_BY_1_0:
5445        return "http://hl7.org/fhir/spdx-license";
5446      case OFFIS:
5447        return "http://hl7.org/fhir/spdx-license";
5448      case OFL_1_0:
5449        return "http://hl7.org/fhir/spdx-license";
5450      case OFL_1_0_NO_RFN:
5451        return "http://hl7.org/fhir/spdx-license";
5452      case OFL_1_0_RFN:
5453        return "http://hl7.org/fhir/spdx-license";
5454      case OFL_1_1:
5455        return "http://hl7.org/fhir/spdx-license";
5456      case OFL_1_1_NO_RFN:
5457        return "http://hl7.org/fhir/spdx-license";
5458      case OFL_1_1_RFN:
5459        return "http://hl7.org/fhir/spdx-license";
5460      case OGC_1_0:
5461        return "http://hl7.org/fhir/spdx-license";
5462      case OGDL_TAIWAN_1_0:
5463        return "http://hl7.org/fhir/spdx-license";
5464      case OGL_CANADA_2_0:
5465        return "http://hl7.org/fhir/spdx-license";
5466      case OGL_UK_1_0:
5467        return "http://hl7.org/fhir/spdx-license";
5468      case OGL_UK_2_0:
5469        return "http://hl7.org/fhir/spdx-license";
5470      case OGL_UK_3_0:
5471        return "http://hl7.org/fhir/spdx-license";
5472      case OGTSL:
5473        return "http://hl7.org/fhir/spdx-license";
5474      case OLDAP_1_1:
5475        return "http://hl7.org/fhir/spdx-license";
5476      case OLDAP_1_2:
5477        return "http://hl7.org/fhir/spdx-license";
5478      case OLDAP_1_3:
5479        return "http://hl7.org/fhir/spdx-license";
5480      case OLDAP_1_4:
5481        return "http://hl7.org/fhir/spdx-license";
5482      case OLDAP_2_0:
5483        return "http://hl7.org/fhir/spdx-license";
5484      case OLDAP_2_0_1:
5485        return "http://hl7.org/fhir/spdx-license";
5486      case OLDAP_2_1:
5487        return "http://hl7.org/fhir/spdx-license";
5488      case OLDAP_2_2:
5489        return "http://hl7.org/fhir/spdx-license";
5490      case OLDAP_2_2_1:
5491        return "http://hl7.org/fhir/spdx-license";
5492      case OLDAP_2_2_2:
5493        return "http://hl7.org/fhir/spdx-license";
5494      case OLDAP_2_3:
5495        return "http://hl7.org/fhir/spdx-license";
5496      case OLDAP_2_4:
5497        return "http://hl7.org/fhir/spdx-license";
5498      case OLDAP_2_5:
5499        return "http://hl7.org/fhir/spdx-license";
5500      case OLDAP_2_6:
5501        return "http://hl7.org/fhir/spdx-license";
5502      case OLDAP_2_7:
5503        return "http://hl7.org/fhir/spdx-license";
5504      case OLDAP_2_8:
5505        return "http://hl7.org/fhir/spdx-license";
5506      case OLFL_1_3:
5507        return "http://hl7.org/fhir/spdx-license";
5508      case OML:
5509        return "http://hl7.org/fhir/spdx-license";
5510      case OPENPBS_2_3:
5511        return "http://hl7.org/fhir/spdx-license";
5512      case OPENSSL:
5513        return "http://hl7.org/fhir/spdx-license";
5514      case OPL_1_0:
5515        return "http://hl7.org/fhir/spdx-license";
5516      case OPL_UK_3_0:
5517        return "http://hl7.org/fhir/spdx-license";
5518      case OPUBL_1_0:
5519        return "http://hl7.org/fhir/spdx-license";
5520      case OSET_PL_2_1:
5521        return "http://hl7.org/fhir/spdx-license";
5522      case OSL_1_0:
5523        return "http://hl7.org/fhir/spdx-license";
5524      case OSL_1_1:
5525        return "http://hl7.org/fhir/spdx-license";
5526      case OSL_2_0:
5527        return "http://hl7.org/fhir/spdx-license";
5528      case OSL_2_1:
5529        return "http://hl7.org/fhir/spdx-license";
5530      case OSL_3_0:
5531        return "http://hl7.org/fhir/spdx-license";
5532      case PARITY_6_0_0:
5533        return "http://hl7.org/fhir/spdx-license";
5534      case PARITY_7_0_0:
5535        return "http://hl7.org/fhir/spdx-license";
5536      case PDDL_1_0:
5537        return "http://hl7.org/fhir/spdx-license";
5538      case PHP_3_0:
5539        return "http://hl7.org/fhir/spdx-license";
5540      case PHP_3_01:
5541        return "http://hl7.org/fhir/spdx-license";
5542      case PLEXUS:
5543        return "http://hl7.org/fhir/spdx-license";
5544      case POLYFORM_NONCOMMERCIAL_1_0_0:
5545        return "http://hl7.org/fhir/spdx-license";
5546      case POLYFORM_SMALL_BUSINESS_1_0_0:
5547        return "http://hl7.org/fhir/spdx-license";
5548      case POSTGRESQL:
5549        return "http://hl7.org/fhir/spdx-license";
5550      case PSF_2_0:
5551        return "http://hl7.org/fhir/spdx-license";
5552      case PSFRAG:
5553        return "http://hl7.org/fhir/spdx-license";
5554      case PSUTILS:
5555        return "http://hl7.org/fhir/spdx-license";
5556      case PYTHON_2_0:
5557        return "http://hl7.org/fhir/spdx-license";
5558      case PYTHON_2_0_1:
5559        return "http://hl7.org/fhir/spdx-license";
5560      case QHULL:
5561        return "http://hl7.org/fhir/spdx-license";
5562      case QPL_1_0:
5563        return "http://hl7.org/fhir/spdx-license";
5564      case QPL_1_0_INRIA_2004:
5565        return "http://hl7.org/fhir/spdx-license";
5566      case RDISC:
5567        return "http://hl7.org/fhir/spdx-license";
5568      case RHECOS_1_1:
5569        return "http://hl7.org/fhir/spdx-license";
5570      case RPL_1_1:
5571        return "http://hl7.org/fhir/spdx-license";
5572      case RPL_1_5:
5573        return "http://hl7.org/fhir/spdx-license";
5574      case RPSL_1_0:
5575        return "http://hl7.org/fhir/spdx-license";
5576      case RSA_MD:
5577        return "http://hl7.org/fhir/spdx-license";
5578      case RSCPL:
5579        return "http://hl7.org/fhir/spdx-license";
5580      case RUBY:
5581        return "http://hl7.org/fhir/spdx-license";
5582      case SAX_PD:
5583        return "http://hl7.org/fhir/spdx-license";
5584      case SAXPATH:
5585        return "http://hl7.org/fhir/spdx-license";
5586      case SCEA:
5587        return "http://hl7.org/fhir/spdx-license";
5588      case SCHEMEREPORT:
5589        return "http://hl7.org/fhir/spdx-license";
5590      case SENDMAIL:
5591        return "http://hl7.org/fhir/spdx-license";
5592      case SENDMAIL_8_23:
5593        return "http://hl7.org/fhir/spdx-license";
5594      case SGI_B_1_0:
5595        return "http://hl7.org/fhir/spdx-license";
5596      case SGI_B_1_1:
5597        return "http://hl7.org/fhir/spdx-license";
5598      case SGI_B_2_0:
5599        return "http://hl7.org/fhir/spdx-license";
5600      case SGP4:
5601        return "http://hl7.org/fhir/spdx-license";
5602      case SHL_0_5:
5603        return "http://hl7.org/fhir/spdx-license";
5604      case SHL_0_51:
5605        return "http://hl7.org/fhir/spdx-license";
5606      case SIMPL_2_0:
5607        return "http://hl7.org/fhir/spdx-license";
5608      case SISSL:
5609        return "http://hl7.org/fhir/spdx-license";
5610      case SISSL_1_2:
5611        return "http://hl7.org/fhir/spdx-license";
5612      case SLEEPYCAT:
5613        return "http://hl7.org/fhir/spdx-license";
5614      case SMLNJ:
5615        return "http://hl7.org/fhir/spdx-license";
5616      case SMPPL:
5617        return "http://hl7.org/fhir/spdx-license";
5618      case SNIA:
5619        return "http://hl7.org/fhir/spdx-license";
5620      case SNPRINTF:
5621        return "http://hl7.org/fhir/spdx-license";
5622      case SPENCER_86:
5623        return "http://hl7.org/fhir/spdx-license";
5624      case SPENCER_94:
5625        return "http://hl7.org/fhir/spdx-license";
5626      case SPENCER_99:
5627        return "http://hl7.org/fhir/spdx-license";
5628      case SPL_1_0:
5629        return "http://hl7.org/fhir/spdx-license";
5630      case SSH_OPENSSH:
5631        return "http://hl7.org/fhir/spdx-license";
5632      case SSH_SHORT:
5633        return "http://hl7.org/fhir/spdx-license";
5634      case SSPL_1_0:
5635        return "http://hl7.org/fhir/spdx-license";
5636      case STANDARDML_NJ:
5637        return "http://hl7.org/fhir/spdx-license";
5638      case SUGARCRM_1_1_3:
5639        return "http://hl7.org/fhir/spdx-license";
5640      case SUNPRO:
5641        return "http://hl7.org/fhir/spdx-license";
5642      case SWL:
5643        return "http://hl7.org/fhir/spdx-license";
5644      case SYMLINKS:
5645        return "http://hl7.org/fhir/spdx-license";
5646      case TAPR_OHL_1_0:
5647        return "http://hl7.org/fhir/spdx-license";
5648      case TCL:
5649        return "http://hl7.org/fhir/spdx-license";
5650      case TCP_WRAPPERS:
5651        return "http://hl7.org/fhir/spdx-license";
5652      case TERMREADKEY:
5653        return "http://hl7.org/fhir/spdx-license";
5654      case TMATE:
5655        return "http://hl7.org/fhir/spdx-license";
5656      case TORQUE_1_1:
5657        return "http://hl7.org/fhir/spdx-license";
5658      case TOSL:
5659        return "http://hl7.org/fhir/spdx-license";
5660      case TPDL:
5661        return "http://hl7.org/fhir/spdx-license";
5662      case TPL_1_0:
5663        return "http://hl7.org/fhir/spdx-license";
5664      case TTWL:
5665        return "http://hl7.org/fhir/spdx-license";
5666      case TU_BERLIN_1_0:
5667        return "http://hl7.org/fhir/spdx-license";
5668      case TU_BERLIN_2_0:
5669        return "http://hl7.org/fhir/spdx-license";
5670      case UCAR:
5671        return "http://hl7.org/fhir/spdx-license";
5672      case UCL_1_0:
5673        return "http://hl7.org/fhir/spdx-license";
5674      case UNICODE_DFS_2015:
5675        return "http://hl7.org/fhir/spdx-license";
5676      case UNICODE_DFS_2016:
5677        return "http://hl7.org/fhir/spdx-license";
5678      case UNICODE_TOU:
5679        return "http://hl7.org/fhir/spdx-license";
5680      case UNIXCRYPT:
5681        return "http://hl7.org/fhir/spdx-license";
5682      case UNLICENSE:
5683        return "http://hl7.org/fhir/spdx-license";
5684      case UPL_1_0:
5685        return "http://hl7.org/fhir/spdx-license";
5686      case VIM:
5687        return "http://hl7.org/fhir/spdx-license";
5688      case VOSTROM:
5689        return "http://hl7.org/fhir/spdx-license";
5690      case VSL_1_0:
5691        return "http://hl7.org/fhir/spdx-license";
5692      case W3C:
5693        return "http://hl7.org/fhir/spdx-license";
5694      case W3C_19980720:
5695        return "http://hl7.org/fhir/spdx-license";
5696      case W3C_20150513:
5697        return "http://hl7.org/fhir/spdx-license";
5698      case W3M:
5699        return "http://hl7.org/fhir/spdx-license";
5700      case WATCOM_1_0:
5701        return "http://hl7.org/fhir/spdx-license";
5702      case WIDGET_WORKSHOP:
5703        return "http://hl7.org/fhir/spdx-license";
5704      case WSUIPA:
5705        return "http://hl7.org/fhir/spdx-license";
5706      case WTFPL:
5707        return "http://hl7.org/fhir/spdx-license";
5708      case WXWINDOWS:
5709        return "http://hl7.org/fhir/spdx-license";
5710      case X11:
5711        return "http://hl7.org/fhir/spdx-license";
5712      case X11_DISTRIBUTE_MODIFICATIONS_VARIANT:
5713        return "http://hl7.org/fhir/spdx-license";
5714      case XDEBUG_1_03:
5715        return "http://hl7.org/fhir/spdx-license";
5716      case XEROX:
5717        return "http://hl7.org/fhir/spdx-license";
5718      case XFIG:
5719        return "http://hl7.org/fhir/spdx-license";
5720      case XFREE86_1_1:
5721        return "http://hl7.org/fhir/spdx-license";
5722      case XINETD:
5723        return "http://hl7.org/fhir/spdx-license";
5724      case XLOCK:
5725        return "http://hl7.org/fhir/spdx-license";
5726      case XNET:
5727        return "http://hl7.org/fhir/spdx-license";
5728      case XPP:
5729        return "http://hl7.org/fhir/spdx-license";
5730      case XSKAT:
5731        return "http://hl7.org/fhir/spdx-license";
5732      case YPL_1_0:
5733        return "http://hl7.org/fhir/spdx-license";
5734      case YPL_1_1:
5735        return "http://hl7.org/fhir/spdx-license";
5736      case ZED:
5737        return "http://hl7.org/fhir/spdx-license";
5738      case ZEND_2_0:
5739        return "http://hl7.org/fhir/spdx-license";
5740      case ZIMBRA_1_3:
5741        return "http://hl7.org/fhir/spdx-license";
5742      case ZIMBRA_1_4:
5743        return "http://hl7.org/fhir/spdx-license";
5744      case ZLIB:
5745        return "http://hl7.org/fhir/spdx-license";
5746      case ZLIB_ACKNOWLEDGEMENT:
5747        return "http://hl7.org/fhir/spdx-license";
5748      case ZPL_1_1:
5749        return "http://hl7.org/fhir/spdx-license";
5750      case ZPL_2_0:
5751        return "http://hl7.org/fhir/spdx-license";
5752      case ZPL_2_1:
5753        return "http://hl7.org/fhir/spdx-license";
5754      case NULL:
5755        return null;
5756      default:
5757        return "?";
5758      }
5759    }
5760
5761    public String getDefinition() {
5762      switch (this) {
5763      case _0BSD:
5764        return "BSD Zero Clause License";
5765      case AAL:
5766        return "Attribution Assurance License";
5767      case ABSTYLES:
5768        return "Abstyles License";
5769      case ADACORE_DOC:
5770        return "AdaCore Doc License";
5771      case ADOBE_2006:
5772        return "Adobe Systems Incorporated Source Code License Agreement";
5773      case ADOBE_GLYPH:
5774        return "Adobe Glyph List License";
5775      case ADSL:
5776        return "Amazon Digital Services License";
5777      case AFL_1_1:
5778        return "Academic Free License v1.1";
5779      case AFL_1_2:
5780        return "Academic Free License v1.2";
5781      case AFL_2_0:
5782        return "Academic Free License v2.0";
5783      case AFL_2_1:
5784        return "Academic Free License v2.1";
5785      case AFL_3_0:
5786        return "Academic Free License v3.0";
5787      case AFMPARSE:
5788        return "Afmparse License";
5789      case AGPL_1_0:
5790        return "Affero General Public License v1.0";
5791      case AGPL_1_0_ONLY:
5792        return "Affero General Public License v1.0 only";
5793      case AGPL_1_0_OR_LATER:
5794        return "Affero General Public License v1.0 or later";
5795      case AGPL_3_0:
5796        return "GNU Affero General Public License v3.0";
5797      case AGPL_3_0_ONLY:
5798        return "GNU Affero General Public License v3.0 only";
5799      case AGPL_3_0_OR_LATER:
5800        return "GNU Affero General Public License v3.0 or later";
5801      case ALADDIN:
5802        return "Aladdin Free Public License";
5803      case AMDPLPA:
5804        return "AMD's plpa_map.c License";
5805      case AML:
5806        return "Apple MIT License";
5807      case AMPAS:
5808        return "Academy of Motion Picture Arts and Sciences BSD";
5809      case ANTLR_PD:
5810        return "ANTLR Software Rights Notice";
5811      case ANTLR_PD_FALLBACK:
5812        return "ANTLR Software Rights Notice with license fallback";
5813      case APACHE_1_0:
5814        return "Apache License 1.0";
5815      case APACHE_1_1:
5816        return "Apache License 1.1";
5817      case APACHE_2_0:
5818        return "Apache License 2.0";
5819      case APAFML:
5820        return "Adobe Postscript AFM License";
5821      case APL_1_0:
5822        return "Adaptive Public License 1.0";
5823      case APP_S2P:
5824        return "App::s2p License";
5825      case APSL_1_0:
5826        return "Apple Public Source License 1.0";
5827      case APSL_1_1:
5828        return "Apple Public Source License 1.1";
5829      case APSL_1_2:
5830        return "Apple Public Source License 1.2";
5831      case APSL_2_0:
5832        return "Apple Public Source License 2.0";
5833      case ARPHIC_1999:
5834        return "Arphic Public License";
5835      case ARTISTIC_1_0:
5836        return "Artistic License 1.0";
5837      case ARTISTIC_1_0_CL8:
5838        return "Artistic License 1.0 w/clause 8";
5839      case ARTISTIC_1_0_PERL:
5840        return "Artistic License 1.0 (Perl)";
5841      case ARTISTIC_2_0:
5842        return "Artistic License 2.0";
5843      case ASWF_DIGITAL_ASSETS_1_0:
5844        return "ASWF Digital Assets License version 1.0";
5845      case ASWF_DIGITAL_ASSETS_1_1:
5846        return "ASWF Digital Assets License 1.1";
5847      case BAEKMUK:
5848        return "Baekmuk License";
5849      case BAHYPH:
5850        return "Bahyph License";
5851      case BARR:
5852        return "Barr License";
5853      case BEERWARE:
5854        return "Beerware License";
5855      case BITSTREAM_CHARTER:
5856        return "Bitstream Charter Font License";
5857      case BITSTREAM_VERA:
5858        return "Bitstream Vera Font License";
5859      case BITTORRENT_1_0:
5860        return "BitTorrent Open Source License v1.0";
5861      case BITTORRENT_1_1:
5862        return "BitTorrent Open Source License v1.1";
5863      case BLESSING:
5864        return "SQLite Blessing";
5865      case BLUEOAK_1_0_0:
5866        return "Blue Oak Model License 1.0.0";
5867      case BOEHM_GC:
5868        return "Boehm-Demers-Weiser GC License";
5869      case BORCEUX:
5870        return "Borceux license";
5871      case BRIAN_GLADMAN_3_CLAUSE:
5872        return "Brian Gladman 3-Clause License";
5873      case BSD_1_CLAUSE:
5874        return "BSD 1-Clause License";
5875      case BSD_2_CLAUSE:
5876        return "BSD 2-Clause \"Simplified\" License";
5877      case BSD_2_CLAUSE_FREEBSD:
5878        return "BSD 2-Clause FreeBSD License";
5879      case BSD_2_CLAUSE_NETBSD:
5880        return "BSD 2-Clause NetBSD License";
5881      case BSD_2_CLAUSE_PATENT:
5882        return "BSD-2-Clause Plus Patent License";
5883      case BSD_2_CLAUSE_VIEWS:
5884        return "BSD 2-Clause with views sentence";
5885      case BSD_3_CLAUSE:
5886        return "BSD 3-Clause \"New\" or \"Revised\" License";
5887      case BSD_3_CLAUSE_ATTRIBUTION:
5888        return "BSD with attribution";
5889      case BSD_3_CLAUSE_CLEAR:
5890        return "BSD 3-Clause Clear License";
5891      case BSD_3_CLAUSE_LBNL:
5892        return "Lawrence Berkeley National Labs BSD variant license";
5893      case BSD_3_CLAUSE_MODIFICATION:
5894        return "BSD 3-Clause Modification";
5895      case BSD_3_CLAUSE_NO_MILITARY_LICENSE:
5896        return "BSD 3-Clause No Military License";
5897      case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE:
5898        return "BSD 3-Clause No Nuclear License";
5899      case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014:
5900        return "BSD 3-Clause No Nuclear License 2014";
5901      case BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY:
5902        return "BSD 3-Clause No Nuclear Warranty";
5903      case BSD_3_CLAUSE_OPEN_MPI:
5904        return "BSD 3-Clause Open MPI variant";
5905      case BSD_4_CLAUSE:
5906        return "BSD 4-Clause \"Original\" or \"Old\" License";
5907      case BSD_4_CLAUSE_SHORTENED:
5908        return "BSD 4 Clause Shortened";
5909      case BSD_4_CLAUSE_UC:
5910        return "BSD-4-Clause (University of California-Specific)";
5911      case BSD_4_3RENO:
5912        return "BSD 4.3 RENO License";
5913      case BSD_4_3TAHOE:
5914        return "BSD 4.3 TAHOE License";
5915      case BSD_ADVERTISING_ACKNOWLEDGEMENT:
5916        return "BSD Advertising Acknowledgement License";
5917      case BSD_ATTRIBUTION_HPND_DISCLAIMER:
5918        return "BSD with Attribution and HPND disclaimer";
5919      case BSD_PROTECTION:
5920        return "BSD Protection License";
5921      case BSD_SOURCE_CODE:
5922        return "BSD Source Code Attribution";
5923      case BSL_1_0:
5924        return "Boost Software License 1.0";
5925      case BUSL_1_1:
5926        return "Business Source License 1.1";
5927      case BZIP2_1_0_5:
5928        return "bzip2 and libbzip2 License v1.0.5";
5929      case BZIP2_1_0_6:
5930        return "bzip2 and libbzip2 License v1.0.6";
5931      case C_UDA_1_0:
5932        return "Computational Use of Data Agreement v1.0";
5933      case CAL_1_0:
5934        return "Cryptographic Autonomy License 1.0";
5935      case CAL_1_0_COMBINED_WORK_EXCEPTION:
5936        return "Cryptographic Autonomy License 1.0 (Combined Work Exception)";
5937      case CALDERA:
5938        return "Caldera License";
5939      case CATOSL_1_1:
5940        return "Computer Associates Trusted Open Source License 1.1";
5941      case CC_BY_1_0:
5942        return "Creative Commons Attribution 1.0 Generic";
5943      case CC_BY_2_0:
5944        return "Creative Commons Attribution 2.0 Generic";
5945      case CC_BY_2_5:
5946        return "Creative Commons Attribution 2.5 Generic";
5947      case CC_BY_2_5_AU:
5948        return "Creative Commons Attribution 2.5 Australia";
5949      case CC_BY_3_0:
5950        return "Creative Commons Attribution 3.0 Unported";
5951      case CC_BY_3_0_AT:
5952        return "Creative Commons Attribution 3.0 Austria";
5953      case CC_BY_3_0_DE:
5954        return "Creative Commons Attribution 3.0 Germany";
5955      case CC_BY_3_0_IGO:
5956        return "Creative Commons Attribution 3.0 IGO";
5957      case CC_BY_3_0_NL:
5958        return "Creative Commons Attribution 3.0 Netherlands";
5959      case CC_BY_3_0_US:
5960        return "Creative Commons Attribution 3.0 United States";
5961      case CC_BY_4_0:
5962        return "Creative Commons Attribution 4.0 International";
5963      case CC_BY_NC_1_0:
5964        return "Creative Commons Attribution Non Commercial 1.0 Generic";
5965      case CC_BY_NC_2_0:
5966        return "Creative Commons Attribution Non Commercial 2.0 Generic";
5967      case CC_BY_NC_2_5:
5968        return "Creative Commons Attribution Non Commercial 2.5 Generic";
5969      case CC_BY_NC_3_0:
5970        return "Creative Commons Attribution Non Commercial 3.0 Unported";
5971      case CC_BY_NC_3_0_DE:
5972        return "Creative Commons Attribution Non Commercial 3.0 Germany";
5973      case CC_BY_NC_4_0:
5974        return "Creative Commons Attribution Non Commercial 4.0 International";
5975      case CC_BY_NC_ND_1_0:
5976        return "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic";
5977      case CC_BY_NC_ND_2_0:
5978        return "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic";
5979      case CC_BY_NC_ND_2_5:
5980        return "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic";
5981      case CC_BY_NC_ND_3_0:
5982        return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported";
5983      case CC_BY_NC_ND_3_0_DE:
5984        return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Germany";
5985      case CC_BY_NC_ND_3_0_IGO:
5986        return "Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO";
5987      case CC_BY_NC_ND_4_0:
5988        return "Creative Commons Attribution Non Commercial No Derivatives 4.0 International";
5989      case CC_BY_NC_SA_1_0:
5990        return "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic";
5991      case CC_BY_NC_SA_2_0:
5992        return "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic";
5993      case CC_BY_NC_SA_2_0_DE:
5994        return "Creative Commons Attribution Non Commercial Share Alike 2.0 Germany";
5995      case CC_BY_NC_SA_2_0_FR:
5996        return "Creative Commons Attribution-NonCommercial-ShareAlike 2.0 France";
5997      case CC_BY_NC_SA_2_0_UK:
5998        return "Creative Commons Attribution Non Commercial Share Alike 2.0 England and Wales";
5999      case CC_BY_NC_SA_2_5:
6000        return "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic";
6001      case CC_BY_NC_SA_3_0:
6002        return "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported";
6003      case CC_BY_NC_SA_3_0_DE:
6004        return "Creative Commons Attribution Non Commercial Share Alike 3.0 Germany";
6005      case CC_BY_NC_SA_3_0_IGO:
6006        return "Creative Commons Attribution Non Commercial Share Alike 3.0 IGO";
6007      case CC_BY_NC_SA_4_0:
6008        return "Creative Commons Attribution Non Commercial Share Alike 4.0 International";
6009      case CC_BY_ND_1_0:
6010        return "Creative Commons Attribution No Derivatives 1.0 Generic";
6011      case CC_BY_ND_2_0:
6012        return "Creative Commons Attribution No Derivatives 2.0 Generic";
6013      case CC_BY_ND_2_5:
6014        return "Creative Commons Attribution No Derivatives 2.5 Generic";
6015      case CC_BY_ND_3_0:
6016        return "Creative Commons Attribution No Derivatives 3.0 Unported";
6017      case CC_BY_ND_3_0_DE:
6018        return "Creative Commons Attribution No Derivatives 3.0 Germany";
6019      case CC_BY_ND_4_0:
6020        return "Creative Commons Attribution No Derivatives 4.0 International";
6021      case CC_BY_SA_1_0:
6022        return "Creative Commons Attribution Share Alike 1.0 Generic";
6023      case CC_BY_SA_2_0:
6024        return "Creative Commons Attribution Share Alike 2.0 Generic";
6025      case CC_BY_SA_2_0_UK:
6026        return "Creative Commons Attribution Share Alike 2.0 England and Wales";
6027      case CC_BY_SA_2_1_JP:
6028        return "Creative Commons Attribution Share Alike 2.1 Japan";
6029      case CC_BY_SA_2_5:
6030        return "Creative Commons Attribution Share Alike 2.5 Generic";
6031      case CC_BY_SA_3_0:
6032        return "Creative Commons Attribution Share Alike 3.0 Unported";
6033      case CC_BY_SA_3_0_AT:
6034        return "Creative Commons Attribution Share Alike 3.0 Austria";
6035      case CC_BY_SA_3_0_DE:
6036        return "Creative Commons Attribution Share Alike 3.0 Germany";
6037      case CC_BY_SA_3_0_IGO:
6038        return "Creative Commons Attribution-ShareAlike 3.0 IGO";
6039      case CC_BY_SA_4_0:
6040        return "Creative Commons Attribution Share Alike 4.0 International";
6041      case CC_PDDC:
6042        return "Creative Commons Public Domain Dedication and Certification";
6043      case CC0_1_0:
6044        return "Creative Commons Zero v1.0 Universal";
6045      case CDDL_1_0:
6046        return "Common Development and Distribution License 1.0";
6047      case CDDL_1_1:
6048        return "Common Development and Distribution License 1.1";
6049      case CDL_1_0:
6050        return "Common Documentation License 1.0";
6051      case CDLA_PERMISSIVE_1_0:
6052        return "Community Data License Agreement Permissive 1.0";
6053      case CDLA_PERMISSIVE_2_0:
6054        return "Community Data License Agreement Permissive 2.0";
6055      case CDLA_SHARING_1_0:
6056        return "Community Data License Agreement Sharing 1.0";
6057      case CECILL_1_0:
6058        return "CeCILL Free Software License Agreement v1.0";
6059      case CECILL_1_1:
6060        return "CeCILL Free Software License Agreement v1.1";
6061      case CECILL_2_0:
6062        return "CeCILL Free Software License Agreement v2.0";
6063      case CECILL_2_1:
6064        return "CeCILL Free Software License Agreement v2.1";
6065      case CECILL_B:
6066        return "CeCILL-B Free Software License Agreement";
6067      case CECILL_C:
6068        return "CeCILL-C Free Software License Agreement";
6069      case CERN_OHL_1_1:
6070        return "CERN Open Hardware Licence v1.1";
6071      case CERN_OHL_1_2:
6072        return "CERN Open Hardware Licence v1.2";
6073      case CERN_OHL_P_2_0:
6074        return "CERN Open Hardware Licence Version 2 - Permissive";
6075      case CERN_OHL_S_2_0:
6076        return "CERN Open Hardware Licence Version 2 - Strongly Reciprocal";
6077      case CERN_OHL_W_2_0:
6078        return "CERN Open Hardware Licence Version 2 - Weakly Reciprocal";
6079      case CFITSIO:
6080        return "CFITSIO License";
6081      case CHECKMK:
6082        return "Checkmk License";
6083      case CLARTISTIC:
6084        return "Clarified Artistic License";
6085      case CLIPS:
6086        return "Clips License";
6087      case CMU_MACH:
6088        return "CMU Mach License";
6089      case CNRI_JYTHON:
6090        return "CNRI Jython License";
6091      case CNRI_PYTHON:
6092        return "CNRI Python License";
6093      case CNRI_PYTHON_GPL_COMPATIBLE:
6094        return "CNRI Python Open Source GPL Compatible License Agreement";
6095      case COIL_1_0:
6096        return "Copyfree Open Innovation License";
6097      case COMMUNITY_SPEC_1_0:
6098        return "Community Specification License 1.0";
6099      case CONDOR_1_1:
6100        return "Condor Public License v1.1";
6101      case COPYLEFT_NEXT_0_3_0:
6102        return "copyleft-next 0.3.0";
6103      case COPYLEFT_NEXT_0_3_1:
6104        return "copyleft-next 0.3.1";
6105      case CORNELL_LOSSLESS_JPEG:
6106        return "Cornell Lossless JPEG License";
6107      case CPAL_1_0:
6108        return "Common Public Attribution License 1.0";
6109      case CPL_1_0:
6110        return "Common Public License 1.0";
6111      case CPOL_1_02:
6112        return "Code Project Open License 1.02";
6113      case CROSSWORD:
6114        return "Crossword License";
6115      case CRYSTALSTACKER:
6116        return "CrystalStacker License";
6117      case CUA_OPL_1_0:
6118        return "CUA Office Public License v1.0";
6119      case CUBE:
6120        return "Cube License";
6121      case CURL:
6122        return "curl License";
6123      case D_FSL_1_0:
6124        return "Deutsche Freie Software Lizenz";
6125      case DIFFMARK:
6126        return "diffmark license";
6127      case DL_DE_BY_2_0:
6128        return "Data licence Germany ? attribution ? version 2.0";
6129      case DOC:
6130        return "DOC License";
6131      case DOTSEQN:
6132        return "Dotseqn License";
6133      case DRL_1_0:
6134        return "Detection Rule License 1.0";
6135      case DSDP:
6136        return "DSDP License";
6137      case DTOA:
6138        return "David M. Gay dtoa License";
6139      case DVIPDFM:
6140        return "dvipdfm License";
6141      case ECL_1_0:
6142        return "Educational Community License v1.0";
6143      case ECL_2_0:
6144        return "Educational Community License v2.0";
6145      case ECOS_2_0:
6146        return "eCos license version 2.0";
6147      case EFL_1_0:
6148        return "Eiffel Forum License v1.0";
6149      case EFL_2_0:
6150        return "Eiffel Forum License v2.0";
6151      case EGENIX:
6152        return "eGenix.com Public License 1.1.0";
6153      case ELASTIC_2_0:
6154        return "Elastic License 2.0";
6155      case ENTESSA:
6156        return "Entessa Public License v1.0";
6157      case EPICS:
6158        return "EPICS Open License";
6159      case EPL_1_0:
6160        return "Eclipse Public License 1.0";
6161      case EPL_2_0:
6162        return "Eclipse Public License 2.0";
6163      case ERLPL_1_1:
6164        return "Erlang Public License v1.1";
6165      case ETALAB_2_0:
6166        return "Etalab Open License 2.0";
6167      case EUDATAGRID:
6168        return "EU DataGrid Software License";
6169      case EUPL_1_0:
6170        return "European Union Public License 1.0";
6171      case EUPL_1_1:
6172        return "European Union Public License 1.1";
6173      case EUPL_1_2:
6174        return "European Union Public License 1.2";
6175      case EUROSYM:
6176        return "Eurosym License";
6177      case FAIR:
6178        return "Fair License";
6179      case FDK_AAC:
6180        return "Fraunhofer FDK AAC Codec Library";
6181      case FRAMEWORX_1_0:
6182        return "Frameworx Open License 1.0";
6183      case FREEBSD_DOC:
6184        return "FreeBSD Documentation License";
6185      case FREEIMAGE:
6186        return "FreeImage Public License v1.0";
6187      case FSFAP:
6188        return "FSF All Permissive License";
6189      case FSFUL:
6190        return "FSF Unlimited License";
6191      case FSFULLR:
6192        return "FSF Unlimited License (with License Retention)";
6193      case FSFULLRWD:
6194        return "FSF Unlimited License (With License Retention and Warranty Disclaimer)";
6195      case FTL:
6196        return "Freetype Project License";
6197      case GD:
6198        return "GD License";
6199      case GFDL_1_1:
6200        return "GNU Free Documentation License v1.1";
6201      case GFDL_1_1_INVARIANTS_ONLY:
6202        return "GNU Free Documentation License v1.1 only - invariants";
6203      case GFDL_1_1_INVARIANTS_OR_LATER:
6204        return "GNU Free Documentation License v1.1 or later - invariants";
6205      case GFDL_1_1_NO_INVARIANTS_ONLY:
6206        return "GNU Free Documentation License v1.1 only - no invariants";
6207      case GFDL_1_1_NO_INVARIANTS_OR_LATER:
6208        return "GNU Free Documentation License v1.1 or later - no invariants";
6209      case GFDL_1_1_ONLY:
6210        return "GNU Free Documentation License v1.1 only";
6211      case GFDL_1_1_OR_LATER:
6212        return "GNU Free Documentation License v1.1 or later";
6213      case GFDL_1_2:
6214        return "GNU Free Documentation License v1.2";
6215      case GFDL_1_2_INVARIANTS_ONLY:
6216        return "GNU Free Documentation License v1.2 only - invariants";
6217      case GFDL_1_2_INVARIANTS_OR_LATER:
6218        return "GNU Free Documentation License v1.2 or later - invariants";
6219      case GFDL_1_2_NO_INVARIANTS_ONLY:
6220        return "GNU Free Documentation License v1.2 only - no invariants";
6221      case GFDL_1_2_NO_INVARIANTS_OR_LATER:
6222        return "GNU Free Documentation License v1.2 or later - no invariants";
6223      case GFDL_1_2_ONLY:
6224        return "GNU Free Documentation License v1.2 only";
6225      case GFDL_1_2_OR_LATER:
6226        return "GNU Free Documentation License v1.2 or later";
6227      case GFDL_1_3:
6228        return "GNU Free Documentation License v1.3";
6229      case GFDL_1_3_INVARIANTS_ONLY:
6230        return "GNU Free Documentation License v1.3 only - invariants";
6231      case GFDL_1_3_INVARIANTS_OR_LATER:
6232        return "GNU Free Documentation License v1.3 or later - invariants";
6233      case GFDL_1_3_NO_INVARIANTS_ONLY:
6234        return "GNU Free Documentation License v1.3 only - no invariants";
6235      case GFDL_1_3_NO_INVARIANTS_OR_LATER:
6236        return "GNU Free Documentation License v1.3 or later - no invariants";
6237      case GFDL_1_3_ONLY:
6238        return "GNU Free Documentation License v1.3 only";
6239      case GFDL_1_3_OR_LATER:
6240        return "GNU Free Documentation License v1.3 or later";
6241      case GIFTWARE:
6242        return "Giftware License";
6243      case GL2PS:
6244        return "GL2PS License";
6245      case GLIDE:
6246        return "3dfx Glide License";
6247      case GLULXE:
6248        return "Glulxe License";
6249      case GLWTPL:
6250        return "Good Luck With That Public License";
6251      case GNUPLOT:
6252        return "gnuplot License";
6253      case GPL_1_0:
6254        return "GNU General Public License v1.0 only";
6255      case GPL_1_0PLUS:
6256        return "GNU General Public License v1.0 or later";
6257      case GPL_1_0_ONLY:
6258        return "GNU General Public License v1.0 only";
6259      case GPL_1_0_OR_LATER:
6260        return "GNU General Public License v1.0 or later";
6261      case GPL_2_0:
6262        return "GNU General Public License v2.0 only";
6263      case GPL_2_0PLUS:
6264        return "GNU General Public License v2.0 or later";
6265      case GPL_2_0_ONLY:
6266        return "GNU General Public License v2.0 only";
6267      case GPL_2_0_OR_LATER:
6268        return "GNU General Public License v2.0 or later";
6269      case GPL_2_0_WITH_AUTOCONF_EXCEPTION:
6270        return "GNU General Public License v2.0 w/Autoconf exception";
6271      case GPL_2_0_WITH_BISON_EXCEPTION:
6272        return "GNU General Public License v2.0 w/Bison exception";
6273      case GPL_2_0_WITH_CLASSPATH_EXCEPTION:
6274        return "GNU General Public License v2.0 w/Classpath exception";
6275      case GPL_2_0_WITH_FONT_EXCEPTION:
6276        return "GNU General Public License v2.0 w/Font exception";
6277      case GPL_2_0_WITH_GCC_EXCEPTION:
6278        return "GNU General Public License v2.0 w/GCC Runtime Library exception";
6279      case GPL_3_0:
6280        return "GNU General Public License v3.0 only";
6281      case GPL_3_0PLUS:
6282        return "GNU General Public License v3.0 or later";
6283      case GPL_3_0_ONLY:
6284        return "GNU General Public License v3.0 only";
6285      case GPL_3_0_OR_LATER:
6286        return "GNU General Public License v3.0 or later";
6287      case GPL_3_0_WITH_AUTOCONF_EXCEPTION:
6288        return "GNU General Public License v3.0 w/Autoconf exception";
6289      case GPL_3_0_WITH_GCC_EXCEPTION:
6290        return "GNU General Public License v3.0 w/GCC Runtime Library exception";
6291      case GRAPHICS_GEMS:
6292        return "Graphics Gems License";
6293      case GSOAP_1_3B:
6294        return "gSOAP Public License v1.3b";
6295      case HASKELLREPORT:
6296        return "Haskell Language Report License";
6297      case HIPPOCRATIC_2_1:
6298        return "Hippocratic License 2.1";
6299      case HP_1986:
6300        return "Hewlett-Packard 1986 License";
6301      case HPND:
6302        return "Historical Permission Notice and Disclaimer";
6303      case HPND_EXPORT_US:
6304        return "HPND with US Government export control warning";
6305      case HPND_MARKUS_KUHN:
6306        return "Historical Permission Notice and Disclaimer - Markus Kuhn variant";
6307      case HPND_SELL_VARIANT:
6308        return "Historical Permission Notice and Disclaimer - sell variant";
6309      case HPND_SELL_VARIANT_MIT_DISCLAIMER:
6310        return "HPND sell variant with MIT disclaimer";
6311      case HTMLTIDY:
6312        return "HTML Tidy License";
6313      case IBM_PIBS:
6314        return "IBM PowerPC Initialization and Boot Software";
6315      case ICU:
6316        return "ICU License";
6317      case IEC_CODE_COMPONENTS_EULA:
6318        return "IEC    Code Components End-user licence agreement";
6319      case IJG:
6320        return "Independent JPEG Group License";
6321      case IJG_SHORT:
6322        return "Independent JPEG Group License - short";
6323      case IMAGEMAGICK:
6324        return "ImageMagick License";
6325      case IMATIX:
6326        return "iMatix Standard Function Library Agreement";
6327      case IMLIB2:
6328        return "Imlib2 License";
6329      case INFO_ZIP:
6330        return "Info-ZIP License";
6331      case INNER_NET_2_0:
6332        return "Inner Net License v2.0";
6333      case INTEL:
6334        return "Intel Open Source License";
6335      case INTEL_ACPI:
6336        return "Intel ACPI Software License Agreement";
6337      case INTERBASE_1_0:
6338        return "Interbase Public License v1.0";
6339      case IPA:
6340        return "IPA Font License";
6341      case IPL_1_0:
6342        return "IBM Public License v1.0";
6343      case ISC:
6344        return "ISC License";
6345      case JAM:
6346        return "Jam License";
6347      case JASPER_2_0:
6348        return "JasPer License";
6349      case JPL_IMAGE:
6350        return "JPL Image Use Policy";
6351      case JPNIC:
6352        return "Japan Network Information Center License";
6353      case JSON:
6354        return "JSON License";
6355      case KAZLIB:
6356        return "Kazlib License";
6357      case KNUTH_CTAN:
6358        return "Knuth CTAN License";
6359      case LAL_1_2:
6360        return "Licence Art Libre 1.2";
6361      case LAL_1_3:
6362        return "Licence Art Libre 1.3";
6363      case LATEX2E:
6364        return "Latex2e License";
6365      case LATEX2E_TRANSLATED_NOTICE:
6366        return "Latex2e with translated notice permission";
6367      case LEPTONICA:
6368        return "Leptonica License";
6369      case LGPL_2_0:
6370        return "GNU Library General Public License v2 only";
6371      case LGPL_2_0PLUS:
6372        return "GNU Library General Public License v2 or later";
6373      case LGPL_2_0_ONLY:
6374        return "GNU Library General Public License v2 only";
6375      case LGPL_2_0_OR_LATER:
6376        return "GNU Library General Public License v2 or later";
6377      case LGPL_2_1:
6378        return "GNU Lesser General Public License v2.1 only";
6379      case LGPL_2_1PLUS:
6380        return "GNU Lesser General Public License v2.1 or later";
6381      case LGPL_2_1_ONLY:
6382        return "GNU Lesser General Public License v2.1 only";
6383      case LGPL_2_1_OR_LATER:
6384        return "GNU Lesser General Public License v2.1 or later";
6385      case LGPL_3_0:
6386        return "GNU Lesser General Public License v3.0 only";
6387      case LGPL_3_0PLUS:
6388        return "GNU Lesser General Public License v3.0 or later";
6389      case LGPL_3_0_ONLY:
6390        return "GNU Lesser General Public License v3.0 only";
6391      case LGPL_3_0_OR_LATER:
6392        return "GNU Lesser General Public License v3.0 or later";
6393      case LGPLLR:
6394        return "Lesser General Public License For Linguistic Resources";
6395      case LIBPNG:
6396        return "libpng License";
6397      case LIBPNG_2_0:
6398        return "PNG Reference Library version 2";
6399      case LIBSELINUX_1_0:
6400        return "libselinux public domain notice";
6401      case LIBTIFF:
6402        return "libtiff License";
6403      case LIBUTIL_DAVID_NUGENT:
6404        return "libutil David Nugent License";
6405      case LILIQ_P_1_1:
6406        return "Licence Libre du Québec ? Permissive version 1.1";
6407      case LILIQ_R_1_1:
6408        return "Licence Libre du Québec ? Réciprocité version 1.1";
6409      case LILIQ_RPLUS_1_1:
6410        return "Licence Libre du Québec ? Réciprocité forte version 1.1";
6411      case LINUX_MAN_PAGES_1_PARA:
6412        return "Linux man-pages - 1 paragraph";
6413      case LINUX_MAN_PAGES_COPYLEFT:
6414        return "Linux man-pages Copyleft";
6415      case LINUX_MAN_PAGES_COPYLEFT_2_PARA:
6416        return "Linux man-pages Copyleft - 2 paragraphs";
6417      case LINUX_MAN_PAGES_COPYLEFT_VAR:
6418        return "Linux man-pages Copyleft Variant";
6419      case LINUX_OPENIB:
6420        return "Linux Kernel Variant of OpenIB.org license";
6421      case LOOP:
6422        return "Common Lisp LOOP License";
6423      case LPL_1_0:
6424        return "Lucent Public License Version 1.0";
6425      case LPL_1_02:
6426        return "Lucent Public License v1.02";
6427      case LPPL_1_0:
6428        return "LaTeX Project Public License v1.0";
6429      case LPPL_1_1:
6430        return "LaTeX Project Public License v1.1";
6431      case LPPL_1_2:
6432        return "LaTeX Project Public License v1.2";
6433      case LPPL_1_3A:
6434        return "LaTeX Project Public License v1.3a";
6435      case LPPL_1_3C:
6436        return "LaTeX Project Public License v1.3c";
6437      case LZMA_SDK_9_11_TO_9_20:
6438        return "LZMA SDK License (versions 9.11 to 9.20)";
6439      case LZMA_SDK_9_22:
6440        return "LZMA SDK License (versions 9.22 and beyond)";
6441      case MAKEINDEX:
6442        return "MakeIndex License";
6443      case MARTIN_BIRGMEIER:
6444        return "Martin Birgmeier License";
6445      case METAMAIL:
6446        return "metamail License";
6447      case MINPACK:
6448        return "Minpack License";
6449      case MIROS:
6450        return "The MirOS Licence";
6451      case MIT:
6452        return "MIT License";
6453      case MIT_0:
6454        return "MIT No Attribution";
6455      case MIT_ADVERTISING:
6456        return "Enlightenment License (e16)";
6457      case MIT_CMU:
6458        return "CMU License";
6459      case MIT_ENNA:
6460        return "enna License";
6461      case MIT_FEH:
6462        return "feh License";
6463      case MIT_FESTIVAL:
6464        return "MIT Festival Variant";
6465      case MIT_MODERN_VARIANT:
6466        return "MIT License Modern Variant";
6467      case MIT_OPEN_GROUP:
6468        return "MIT Open Group variant";
6469      case MIT_WU:
6470        return "MIT Tom Wu Variant";
6471      case MITNFA:
6472        return "MIT +no-false-attribs license";
6473      case MOTOSOTO:
6474        return "Motosoto License";
6475      case MPI_PERMISSIVE:
6476        return "mpi Permissive License";
6477      case MPICH2:
6478        return "mpich2 License";
6479      case MPL_1_0:
6480        return "Mozilla Public License 1.0";
6481      case MPL_1_1:
6482        return "Mozilla Public License 1.1";
6483      case MPL_2_0:
6484        return "Mozilla Public License 2.0";
6485      case MPL_2_0_NO_COPYLEFT_EXCEPTION:
6486        return "Mozilla Public License 2.0 (no copyleft exception)";
6487      case MPLUS:
6488        return "mplus Font License";
6489      case MS_LPL:
6490        return "Microsoft Limited Public License";
6491      case MS_PL:
6492        return "Microsoft Public License";
6493      case MS_RL:
6494        return "Microsoft Reciprocal License";
6495      case MTLL:
6496        return "Matrix Template Library License";
6497      case MULANPSL_1_0:
6498        return "Mulan Permissive Software License, Version 1";
6499      case MULANPSL_2_0:
6500        return "Mulan Permissive Software License, Version 2";
6501      case MULTICS:
6502        return "Multics License";
6503      case MUP:
6504        return "Mup License";
6505      case NAIST_2003:
6506        return "Nara Institute of Science and Technology License (2003)";
6507      case NASA_1_3:
6508        return "NASA Open Source Agreement 1.3";
6509      case NAUMEN:
6510        return "Naumen Public License";
6511      case NBPL_1_0:
6512        return "Net Boolean Public License v1";
6513      case NCGL_UK_2_0:
6514        return "Non-Commercial Government Licence";
6515      case NCSA:
6516        return "University of Illinois/NCSA Open Source License";
6517      case NET_SNMP:
6518        return "Net-SNMP License";
6519      case NETCDF:
6520        return "NetCDF license";
6521      case NEWSLETR:
6522        return "Newsletr License";
6523      case NGPL:
6524        return "Nethack General Public License";
6525      case NICTA_1_0:
6526        return "NICTA Public Software License, Version 1.0";
6527      case NIST_PD:
6528        return "NIST Public Domain Notice";
6529      case NIST_PD_FALLBACK:
6530        return "NIST Public Domain Notice with license fallback";
6531      case NIST_SOFTWARE:
6532        return "NIST Software License";
6533      case NLOD_1_0:
6534        return "Norwegian Licence for Open Government Data (NLOD) 1.0";
6535      case NLOD_2_0:
6536        return "Norwegian Licence for Open Government Data (NLOD) 2.0";
6537      case NLPL:
6538        return "No Limit Public License";
6539      case NOKIA:
6540        return "Nokia Open Source License";
6541      case NOSL:
6542        return "Netizen Open Source License";
6543      case NOT_OPEN_SOURCE:
6544        return "Not an open source license.";
6545      case NOWEB:
6546        return "Noweb License";
6547      case NPL_1_0:
6548        return "Netscape Public License v1.0";
6549      case NPL_1_1:
6550        return "Netscape Public License v1.1";
6551      case NPOSL_3_0:
6552        return "Non-Profit Open Software License 3.0";
6553      case NRL:
6554        return "NRL License";
6555      case NTP:
6556        return "NTP License";
6557      case NTP_0:
6558        return "NTP No Attribution";
6559      case NUNIT:
6560        return "Nunit License";
6561      case O_UDA_1_0:
6562        return "Open Use of Data Agreement v1.0";
6563      case OCCT_PL:
6564        return "Open CASCADE Technology Public License";
6565      case OCLC_2_0:
6566        return "OCLC Research Public License 2.0";
6567      case ODBL_1_0:
6568        return "Open Data Commons Open Database License v1.0";
6569      case ODC_BY_1_0:
6570        return "Open Data Commons Attribution License v1.0";
6571      case OFFIS:
6572        return "OFFIS License";
6573      case OFL_1_0:
6574        return "SIL Open Font License 1.0";
6575      case OFL_1_0_NO_RFN:
6576        return "SIL Open Font License 1.0 with no Reserved Font Name";
6577      case OFL_1_0_RFN:
6578        return "SIL Open Font License 1.0 with Reserved Font Name";
6579      case OFL_1_1:
6580        return "SIL Open Font License 1.1";
6581      case OFL_1_1_NO_RFN:
6582        return "SIL Open Font License 1.1 with no Reserved Font Name";
6583      case OFL_1_1_RFN:
6584        return "SIL Open Font License 1.1 with Reserved Font Name";
6585      case OGC_1_0:
6586        return "OGC Software License, Version 1.0";
6587      case OGDL_TAIWAN_1_0:
6588        return "Taiwan Open Government Data License, version 1.0";
6589      case OGL_CANADA_2_0:
6590        return "Open Government Licence - Canada";
6591      case OGL_UK_1_0:
6592        return "Open Government Licence v1.0";
6593      case OGL_UK_2_0:
6594        return "Open Government Licence v2.0";
6595      case OGL_UK_3_0:
6596        return "Open Government Licence v3.0";
6597      case OGTSL:
6598        return "Open Group Test Suite License";
6599      case OLDAP_1_1:
6600        return "Open LDAP Public License v1.1";
6601      case OLDAP_1_2:
6602        return "Open LDAP Public License v1.2";
6603      case OLDAP_1_3:
6604        return "Open LDAP Public License v1.3";
6605      case OLDAP_1_4:
6606        return "Open LDAP Public License v1.4";
6607      case OLDAP_2_0:
6608        return "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)";
6609      case OLDAP_2_0_1:
6610        return "Open LDAP Public License v2.0.1";
6611      case OLDAP_2_1:
6612        return "Open LDAP Public License v2.1";
6613      case OLDAP_2_2:
6614        return "Open LDAP Public License v2.2";
6615      case OLDAP_2_2_1:
6616        return "Open LDAP Public License v2.2.1";
6617      case OLDAP_2_2_2:
6618        return "Open LDAP Public License 2.2.2";
6619      case OLDAP_2_3:
6620        return "Open LDAP Public License v2.3";
6621      case OLDAP_2_4:
6622        return "Open LDAP Public License v2.4";
6623      case OLDAP_2_5:
6624        return "Open LDAP Public License v2.5";
6625      case OLDAP_2_6:
6626        return "Open LDAP Public License v2.6";
6627      case OLDAP_2_7:
6628        return "Open LDAP Public License v2.7";
6629      case OLDAP_2_8:
6630        return "Open LDAP Public License v2.8";
6631      case OLFL_1_3:
6632        return "Open Logistics Foundation License Version 1.3";
6633      case OML:
6634        return "Open Market License";
6635      case OPENPBS_2_3:
6636        return "OpenPBS v2.3 Software License";
6637      case OPENSSL:
6638        return "OpenSSL License";
6639      case OPL_1_0:
6640        return "Open Public License v1.0";
6641      case OPL_UK_3_0:
6642        return "United    Kingdom Open Parliament Licence v3.0";
6643      case OPUBL_1_0:
6644        return "Open Publication License v1.0";
6645      case OSET_PL_2_1:
6646        return "OSET Public License version 2.1";
6647      case OSL_1_0:
6648        return "Open Software License 1.0";
6649      case OSL_1_1:
6650        return "Open Software License 1.1";
6651      case OSL_2_0:
6652        return "Open Software License 2.0";
6653      case OSL_2_1:
6654        return "Open Software License 2.1";
6655      case OSL_3_0:
6656        return "Open Software License 3.0";
6657      case PARITY_6_0_0:
6658        return "The Parity Public License 6.0.0";
6659      case PARITY_7_0_0:
6660        return "The Parity Public License 7.0.0";
6661      case PDDL_1_0:
6662        return "Open Data Commons Public Domain Dedication & License 1.0";
6663      case PHP_3_0:
6664        return "PHP License v3.0";
6665      case PHP_3_01:
6666        return "PHP License v3.01";
6667      case PLEXUS:
6668        return "Plexus Classworlds License";
6669      case POLYFORM_NONCOMMERCIAL_1_0_0:
6670        return "PolyForm Noncommercial License 1.0.0";
6671      case POLYFORM_SMALL_BUSINESS_1_0_0:
6672        return "PolyForm Small Business License 1.0.0";
6673      case POSTGRESQL:
6674        return "PostgreSQL License";
6675      case PSF_2_0:
6676        return "Python Software Foundation License 2.0";
6677      case PSFRAG:
6678        return "psfrag License";
6679      case PSUTILS:
6680        return "psutils License";
6681      case PYTHON_2_0:
6682        return "Python License 2.0";
6683      case PYTHON_2_0_1:
6684        return "Python License 2.0.1";
6685      case QHULL:
6686        return "Qhull License";
6687      case QPL_1_0:
6688        return "Q Public License 1.0";
6689      case QPL_1_0_INRIA_2004:
6690        return "Q Public License 1.0 - INRIA 2004 variant";
6691      case RDISC:
6692        return "Rdisc License";
6693      case RHECOS_1_1:
6694        return "Red Hat eCos Public License v1.1";
6695      case RPL_1_1:
6696        return "Reciprocal Public License 1.1";
6697      case RPL_1_5:
6698        return "Reciprocal Public License 1.5";
6699      case RPSL_1_0:
6700        return "RealNetworks Public Source License v1.0";
6701      case RSA_MD:
6702        return "RSA Message-Digest License";
6703      case RSCPL:
6704        return "Ricoh Source Code Public License";
6705      case RUBY:
6706        return "Ruby License";
6707      case SAX_PD:
6708        return "Sax Public Domain Notice";
6709      case SAXPATH:
6710        return "Saxpath License";
6711      case SCEA:
6712        return "SCEA Shared Source License";
6713      case SCHEMEREPORT:
6714        return "Scheme Language Report License";
6715      case SENDMAIL:
6716        return "Sendmail License";
6717      case SENDMAIL_8_23:
6718        return "Sendmail License 8.23";
6719      case SGI_B_1_0:
6720        return "SGI Free Software License B v1.0";
6721      case SGI_B_1_1:
6722        return "SGI Free Software License B v1.1";
6723      case SGI_B_2_0:
6724        return "SGI Free Software License B v2.0";
6725      case SGP4:
6726        return "SGP4 Permission Notice";
6727      case SHL_0_5:
6728        return "Solderpad Hardware License v0.5";
6729      case SHL_0_51:
6730        return "Solderpad Hardware License, Version 0.51";
6731      case SIMPL_2_0:
6732        return "Simple Public License 2.0";
6733      case SISSL:
6734        return "Sun Industry Standards Source License v1.1";
6735      case SISSL_1_2:
6736        return "Sun Industry Standards Source License v1.2";
6737      case SLEEPYCAT:
6738        return "Sleepycat License";
6739      case SMLNJ:
6740        return "Standard ML of New Jersey License";
6741      case SMPPL:
6742        return "Secure Messaging Protocol Public License";
6743      case SNIA:
6744        return "SNIA Public License 1.1";
6745      case SNPRINTF:
6746        return "snprintf License";
6747      case SPENCER_86:
6748        return "Spencer License 86";
6749      case SPENCER_94:
6750        return "Spencer License 94";
6751      case SPENCER_99:
6752        return "Spencer License 99";
6753      case SPL_1_0:
6754        return "Sun Public License v1.0";
6755      case SSH_OPENSSH:
6756        return "SSH OpenSSH license";
6757      case SSH_SHORT:
6758        return "SSH short notice";
6759      case SSPL_1_0:
6760        return "Server Side Public License, v 1";
6761      case STANDARDML_NJ:
6762        return "Standard ML of New Jersey License";
6763      case SUGARCRM_1_1_3:
6764        return "SugarCRM Public License v1.1.3";
6765      case SUNPRO:
6766        return "SunPro License";
6767      case SWL:
6768        return "Scheme Widget Library (SWL) Software License Agreement";
6769      case SYMLINKS:
6770        return "Symlinks License";
6771      case TAPR_OHL_1_0:
6772        return "TAPR Open Hardware License v1.0";
6773      case TCL:
6774        return "TCL/TK License";
6775      case TCP_WRAPPERS:
6776        return "TCP Wrappers License";
6777      case TERMREADKEY:
6778        return "TermReadKey License";
6779      case TMATE:
6780        return "TMate Open Source License";
6781      case TORQUE_1_1:
6782        return "TORQUE v2.5+ Software License v1.1";
6783      case TOSL:
6784        return "Trusster Open Source License";
6785      case TPDL:
6786        return "Time::ParseDate License";
6787      case TPL_1_0:
6788        return "THOR Public License 1.0";
6789      case TTWL:
6790        return "Text-Tabs+Wrap License";
6791      case TU_BERLIN_1_0:
6792        return "Technische Universitaet Berlin License 1.0";
6793      case TU_BERLIN_2_0:
6794        return "Technische Universitaet Berlin License 2.0";
6795      case UCAR:
6796        return "UCAR License";
6797      case UCL_1_0:
6798        return "Upstream Compatibility License v1.0";
6799      case UNICODE_DFS_2015:
6800        return "Unicode License Agreement - Data Files and Software (2015)";
6801      case UNICODE_DFS_2016:
6802        return "Unicode License Agreement - Data Files and Software (2016)";
6803      case UNICODE_TOU:
6804        return "Unicode Terms of Use";
6805      case UNIXCRYPT:
6806        return "UnixCrypt License";
6807      case UNLICENSE:
6808        return "The Unlicense";
6809      case UPL_1_0:
6810        return "Universal Permissive License v1.0";
6811      case VIM:
6812        return "Vim License";
6813      case VOSTROM:
6814        return "VOSTROM Public License for Open Source";
6815      case VSL_1_0:
6816        return "Vovida Software License v1.0";
6817      case W3C:
6818        return "W3C Software Notice and License (2002-12-31)";
6819      case W3C_19980720:
6820        return "W3C Software Notice and License (1998-07-20)";
6821      case W3C_20150513:
6822        return "W3C Software Notice and Document License (2015-05-13)";
6823      case W3M:
6824        return "w3m License";
6825      case WATCOM_1_0:
6826        return "Sybase Open Watcom Public License 1.0";
6827      case WIDGET_WORKSHOP:
6828        return "Widget Workshop License";
6829      case WSUIPA:
6830        return "Wsuipa License";
6831      case WTFPL:
6832        return "Do What The F*ck You Want To Public License";
6833      case WXWINDOWS:
6834        return "wxWindows Library License";
6835      case X11:
6836        return "X11 License";
6837      case X11_DISTRIBUTE_MODIFICATIONS_VARIANT:
6838        return "X11 License Distribution Modification Variant";
6839      case XDEBUG_1_03:
6840        return "Xdebug License v 1.03";
6841      case XEROX:
6842        return "Xerox License";
6843      case XFIG:
6844        return "Xfig License";
6845      case XFREE86_1_1:
6846        return "XFree86 License 1.1";
6847      case XINETD:
6848        return "xinetd License";
6849      case XLOCK:
6850        return "xlock License";
6851      case XNET:
6852        return "X.Net License";
6853      case XPP:
6854        return "XPP License";
6855      case XSKAT:
6856        return "XSkat License";
6857      case YPL_1_0:
6858        return "Yahoo! Public License v1.0";
6859      case YPL_1_1:
6860        return "Yahoo! Public License v1.1";
6861      case ZED:
6862        return "Zed License";
6863      case ZEND_2_0:
6864        return "Zend License v2.0";
6865      case ZIMBRA_1_3:
6866        return "Zimbra Public License v1.3";
6867      case ZIMBRA_1_4:
6868        return "Zimbra Public License v1.4";
6869      case ZLIB:
6870        return "zlib License";
6871      case ZLIB_ACKNOWLEDGEMENT:
6872        return "zlib/libpng License with Acknowledgement";
6873      case ZPL_1_1:
6874        return "Zope Public License 1.1";
6875      case ZPL_2_0:
6876        return "Zope Public License 2.0";
6877      case ZPL_2_1:
6878        return "Zope Public License 2.1";
6879      case NULL:
6880        return null;
6881      default:
6882        return "?";
6883      }
6884    }
6885
6886    public String getDisplay() {
6887      switch (this) {
6888      case _0BSD:
6889        return "BSD Zero Clause License";
6890      case AAL:
6891        return "Attribution Assurance License";
6892      case ABSTYLES:
6893        return "Abstyles License";
6894      case ADACORE_DOC:
6895        return "AdaCore Doc License";
6896      case ADOBE_2006:
6897        return "Adobe Systems Incorporated Source Code License Agreement";
6898      case ADOBE_GLYPH:
6899        return "Adobe Glyph List License";
6900      case ADSL:
6901        return "Amazon Digital Services License";
6902      case AFL_1_1:
6903        return "Academic Free License v1.1";
6904      case AFL_1_2:
6905        return "Academic Free License v1.2";
6906      case AFL_2_0:
6907        return "Academic Free License v2.0";
6908      case AFL_2_1:
6909        return "Academic Free License v2.1";
6910      case AFL_3_0:
6911        return "Academic Free License v3.0";
6912      case AFMPARSE:
6913        return "Afmparse License";
6914      case AGPL_1_0:
6915        return "Affero General Public License v1.0";
6916      case AGPL_1_0_ONLY:
6917        return "Affero General Public License v1.0 only";
6918      case AGPL_1_0_OR_LATER:
6919        return "Affero General Public License v1.0 or later";
6920      case AGPL_3_0:
6921        return "GNU Affero General Public License v3.0";
6922      case AGPL_3_0_ONLY:
6923        return "GNU Affero General Public License v3.0 only";
6924      case AGPL_3_0_OR_LATER:
6925        return "GNU Affero General Public License v3.0 or later";
6926      case ALADDIN:
6927        return "Aladdin Free Public License";
6928      case AMDPLPA:
6929        return "AMD's plpa_map.c License";
6930      case AML:
6931        return "Apple MIT License";
6932      case AMPAS:
6933        return "Academy of Motion Picture Arts and Sciences BSD";
6934      case ANTLR_PD:
6935        return "ANTLR Software Rights Notice";
6936      case ANTLR_PD_FALLBACK:
6937        return "ANTLR Software Rights Notice with license fallback";
6938      case APACHE_1_0:
6939        return "Apache License 1.0";
6940      case APACHE_1_1:
6941        return "Apache License 1.1";
6942      case APACHE_2_0:
6943        return "Apache License 2.0";
6944      case APAFML:
6945        return "Adobe Postscript AFM License";
6946      case APL_1_0:
6947        return "Adaptive Public License 1.0";
6948      case APP_S2P:
6949        return "App::s2p License";
6950      case APSL_1_0:
6951        return "Apple Public Source License 1.0";
6952      case APSL_1_1:
6953        return "Apple Public Source License 1.1";
6954      case APSL_1_2:
6955        return "Apple Public Source License 1.2";
6956      case APSL_2_0:
6957        return "Apple Public Source License 2.0";
6958      case ARPHIC_1999:
6959        return "Arphic Public License";
6960      case ARTISTIC_1_0:
6961        return "Artistic License 1.0";
6962      case ARTISTIC_1_0_CL8:
6963        return "Artistic License 1.0 w/clause 8";
6964      case ARTISTIC_1_0_PERL:
6965        return "Artistic License 1.0 (Perl)";
6966      case ARTISTIC_2_0:
6967        return "Artistic License 2.0";
6968      case ASWF_DIGITAL_ASSETS_1_0:
6969        return "ASWF Digital Assets License version 1.0";
6970      case ASWF_DIGITAL_ASSETS_1_1:
6971        return "ASWF Digital Assets License 1.1";
6972      case BAEKMUK:
6973        return "Baekmuk License";
6974      case BAHYPH:
6975        return "Bahyph License";
6976      case BARR:
6977        return "Barr License";
6978      case BEERWARE:
6979        return "Beerware License";
6980      case BITSTREAM_CHARTER:
6981        return "Bitstream Charter Font License";
6982      case BITSTREAM_VERA:
6983        return "Bitstream Vera Font License";
6984      case BITTORRENT_1_0:
6985        return "BitTorrent Open Source License v1.0";
6986      case BITTORRENT_1_1:
6987        return "BitTorrent Open Source License v1.1";
6988      case BLESSING:
6989        return "SQLite Blessing";
6990      case BLUEOAK_1_0_0:
6991        return "Blue Oak Model License 1.0.0";
6992      case BOEHM_GC:
6993        return "Boehm-Demers-Weiser GC License";
6994      case BORCEUX:
6995        return "Borceux license";
6996      case BRIAN_GLADMAN_3_CLAUSE:
6997        return "Brian Gladman 3-Clause License";
6998      case BSD_1_CLAUSE:
6999        return "BSD 1-Clause License";
7000      case BSD_2_CLAUSE:
7001        return "BSD 2-Clause \"Simplified\" License";
7002      case BSD_2_CLAUSE_FREEBSD:
7003        return "BSD 2-Clause FreeBSD License";
7004      case BSD_2_CLAUSE_NETBSD:
7005        return "BSD 2-Clause NetBSD License";
7006      case BSD_2_CLAUSE_PATENT:
7007        return "BSD-2-Clause Plus Patent License";
7008      case BSD_2_CLAUSE_VIEWS:
7009        return "BSD 2-Clause with views sentence";
7010      case BSD_3_CLAUSE:
7011        return "BSD 3-Clause \"New\" or \"Revised\" License";
7012      case BSD_3_CLAUSE_ATTRIBUTION:
7013        return "BSD with attribution";
7014      case BSD_3_CLAUSE_CLEAR:
7015        return "BSD 3-Clause Clear License";
7016      case BSD_3_CLAUSE_LBNL:
7017        return "Lawrence Berkeley National Labs BSD variant license";
7018      case BSD_3_CLAUSE_MODIFICATION:
7019        return "BSD 3-Clause Modification";
7020      case BSD_3_CLAUSE_NO_MILITARY_LICENSE:
7021        return "BSD 3-Clause No Military License";
7022      case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE:
7023        return "BSD 3-Clause No Nuclear License";
7024      case BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014:
7025        return "BSD 3-Clause No Nuclear License 2014";
7026      case BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY:
7027        return "BSD 3-Clause No Nuclear Warranty";
7028      case BSD_3_CLAUSE_OPEN_MPI:
7029        return "BSD 3-Clause Open MPI variant";
7030      case BSD_4_CLAUSE:
7031        return "BSD 4-Clause \"Original\" or \"Old\" License";
7032      case BSD_4_CLAUSE_SHORTENED:
7033        return "BSD 4 Clause Shortened";
7034      case BSD_4_CLAUSE_UC:
7035        return "BSD-4-Clause (University of California-Specific)";
7036      case BSD_4_3RENO:
7037        return "BSD 4.3 RENO License";
7038      case BSD_4_3TAHOE:
7039        return "BSD 4.3 TAHOE License";
7040      case BSD_ADVERTISING_ACKNOWLEDGEMENT:
7041        return "BSD Advertising Acknowledgement License";
7042      case BSD_ATTRIBUTION_HPND_DISCLAIMER:
7043        return "BSD with Attribution and HPND disclaimer";
7044      case BSD_PROTECTION:
7045        return "BSD Protection License";
7046      case BSD_SOURCE_CODE:
7047        return "BSD Source Code Attribution";
7048      case BSL_1_0:
7049        return "Boost Software License 1.0";
7050      case BUSL_1_1:
7051        return "Business Source License 1.1";
7052      case BZIP2_1_0_5:
7053        return "bzip2 and libbzip2 License v1.0.5";
7054      case BZIP2_1_0_6:
7055        return "bzip2 and libbzip2 License v1.0.6";
7056      case C_UDA_1_0:
7057        return "Computational Use of Data Agreement v1.0";
7058      case CAL_1_0:
7059        return "Cryptographic Autonomy License 1.0";
7060      case CAL_1_0_COMBINED_WORK_EXCEPTION:
7061        return "Cryptographic Autonomy License 1.0 (Combined Work Exception)";
7062      case CALDERA:
7063        return "Caldera License";
7064      case CATOSL_1_1:
7065        return "Computer Associates Trusted Open Source License 1.1";
7066      case CC_BY_1_0:
7067        return "Creative Commons Attribution 1.0 Generic";
7068      case CC_BY_2_0:
7069        return "Creative Commons Attribution 2.0 Generic";
7070      case CC_BY_2_5:
7071        return "Creative Commons Attribution 2.5 Generic";
7072      case CC_BY_2_5_AU:
7073        return "Creative Commons Attribution 2.5 Australia";
7074      case CC_BY_3_0:
7075        return "Creative Commons Attribution 3.0 Unported";
7076      case CC_BY_3_0_AT:
7077        return "Creative Commons Attribution 3.0 Austria";
7078      case CC_BY_3_0_DE:
7079        return "Creative Commons Attribution 3.0 Germany";
7080      case CC_BY_3_0_IGO:
7081        return "Creative Commons Attribution 3.0 IGO";
7082      case CC_BY_3_0_NL:
7083        return "Creative Commons Attribution 3.0 Netherlands";
7084      case CC_BY_3_0_US:
7085        return "Creative Commons Attribution 3.0 United States";
7086      case CC_BY_4_0:
7087        return "Creative Commons Attribution 4.0 International";
7088      case CC_BY_NC_1_0:
7089        return "Creative Commons Attribution Non Commercial 1.0 Generic";
7090      case CC_BY_NC_2_0:
7091        return "Creative Commons Attribution Non Commercial 2.0 Generic";
7092      case CC_BY_NC_2_5:
7093        return "Creative Commons Attribution Non Commercial 2.5 Generic";
7094      case CC_BY_NC_3_0:
7095        return "Creative Commons Attribution Non Commercial 3.0 Unported";
7096      case CC_BY_NC_3_0_DE:
7097        return "Creative Commons Attribution Non Commercial 3.0 Germany";
7098      case CC_BY_NC_4_0:
7099        return "Creative Commons Attribution Non Commercial 4.0 International";
7100      case CC_BY_NC_ND_1_0:
7101        return "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic";
7102      case CC_BY_NC_ND_2_0:
7103        return "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic";
7104      case CC_BY_NC_ND_2_5:
7105        return "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic";
7106      case CC_BY_NC_ND_3_0:
7107        return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported";
7108      case CC_BY_NC_ND_3_0_DE:
7109        return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Germany";
7110      case CC_BY_NC_ND_3_0_IGO:
7111        return "Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO";
7112      case CC_BY_NC_ND_4_0:
7113        return "Creative Commons Attribution Non Commercial No Derivatives 4.0 International";
7114      case CC_BY_NC_SA_1_0:
7115        return "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic";
7116      case CC_BY_NC_SA_2_0:
7117        return "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic";
7118      case CC_BY_NC_SA_2_0_DE:
7119        return "Creative Commons Attribution Non Commercial Share Alike 2.0 Germany";
7120      case CC_BY_NC_SA_2_0_FR:
7121        return "Creative Commons Attribution-NonCommercial-ShareAlike 2.0 France";
7122      case CC_BY_NC_SA_2_0_UK:
7123        return "Creative Commons Attribution Non Commercial Share Alike 2.0 England and Wales";
7124      case CC_BY_NC_SA_2_5:
7125        return "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic";
7126      case CC_BY_NC_SA_3_0:
7127        return "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported";
7128      case CC_BY_NC_SA_3_0_DE:
7129        return "Creative Commons Attribution Non Commercial Share Alike 3.0 Germany";
7130      case CC_BY_NC_SA_3_0_IGO:
7131        return "Creative Commons Attribution Non Commercial Share Alike 3.0 IGO";
7132      case CC_BY_NC_SA_4_0:
7133        return "Creative Commons Attribution Non Commercial Share Alike 4.0 International";
7134      case CC_BY_ND_1_0:
7135        return "Creative Commons Attribution No Derivatives 1.0 Generic";
7136      case CC_BY_ND_2_0:
7137        return "Creative Commons Attribution No Derivatives 2.0 Generic";
7138      case CC_BY_ND_2_5:
7139        return "Creative Commons Attribution No Derivatives 2.5 Generic";
7140      case CC_BY_ND_3_0:
7141        return "Creative Commons Attribution No Derivatives 3.0 Unported";
7142      case CC_BY_ND_3_0_DE:
7143        return "Creative Commons Attribution No Derivatives 3.0 Germany";
7144      case CC_BY_ND_4_0:
7145        return "Creative Commons Attribution No Derivatives 4.0 International";
7146      case CC_BY_SA_1_0:
7147        return "Creative Commons Attribution Share Alike 1.0 Generic";
7148      case CC_BY_SA_2_0:
7149        return "Creative Commons Attribution Share Alike 2.0 Generic";
7150      case CC_BY_SA_2_0_UK:
7151        return "Creative Commons Attribution Share Alike 2.0 England and Wales";
7152      case CC_BY_SA_2_1_JP:
7153        return "Creative Commons Attribution Share Alike 2.1 Japan";
7154      case CC_BY_SA_2_5:
7155        return "Creative Commons Attribution Share Alike 2.5 Generic";
7156      case CC_BY_SA_3_0:
7157        return "Creative Commons Attribution Share Alike 3.0 Unported";
7158      case CC_BY_SA_3_0_AT:
7159        return "Creative Commons Attribution Share Alike 3.0 Austria";
7160      case CC_BY_SA_3_0_DE:
7161        return "Creative Commons Attribution Share Alike 3.0 Germany";
7162      case CC_BY_SA_3_0_IGO:
7163        return "Creative Commons Attribution-ShareAlike 3.0 IGO";
7164      case CC_BY_SA_4_0:
7165        return "Creative Commons Attribution Share Alike 4.0 International";
7166      case CC_PDDC:
7167        return "Creative Commons Public Domain Dedication and Certification";
7168      case CC0_1_0:
7169        return "Creative Commons Zero v1.0 Universal";
7170      case CDDL_1_0:
7171        return "Common Development and Distribution License 1.0";
7172      case CDDL_1_1:
7173        return "Common Development and Distribution License 1.1";
7174      case CDL_1_0:
7175        return "Common Documentation License 1.0";
7176      case CDLA_PERMISSIVE_1_0:
7177        return "Community Data License Agreement Permissive 1.0";
7178      case CDLA_PERMISSIVE_2_0:
7179        return "Community Data License Agreement Permissive 2.0";
7180      case CDLA_SHARING_1_0:
7181        return "Community Data License Agreement Sharing 1.0";
7182      case CECILL_1_0:
7183        return "CeCILL Free Software License Agreement v1.0";
7184      case CECILL_1_1:
7185        return "CeCILL Free Software License Agreement v1.1";
7186      case CECILL_2_0:
7187        return "CeCILL Free Software License Agreement v2.0";
7188      case CECILL_2_1:
7189        return "CeCILL Free Software License Agreement v2.1";
7190      case CECILL_B:
7191        return "CeCILL-B Free Software License Agreement";
7192      case CECILL_C:
7193        return "CeCILL-C Free Software License Agreement";
7194      case CERN_OHL_1_1:
7195        return "CERN Open Hardware Licence v1.1";
7196      case CERN_OHL_1_2:
7197        return "CERN Open Hardware Licence v1.2";
7198      case CERN_OHL_P_2_0:
7199        return "CERN Open Hardware Licence Version 2 - Permissive";
7200      case CERN_OHL_S_2_0:
7201        return "CERN Open Hardware Licence Version 2 - Strongly Reciprocal";
7202      case CERN_OHL_W_2_0:
7203        return "CERN Open Hardware Licence Version 2 - Weakly Reciprocal";
7204      case CFITSIO:
7205        return "CFITSIO License";
7206      case CHECKMK:
7207        return "Checkmk License";
7208      case CLARTISTIC:
7209        return "Clarified Artistic License";
7210      case CLIPS:
7211        return "Clips License";
7212      case CMU_MACH:
7213        return "CMU Mach License";
7214      case CNRI_JYTHON:
7215        return "CNRI Jython License";
7216      case CNRI_PYTHON:
7217        return "CNRI Python License";
7218      case CNRI_PYTHON_GPL_COMPATIBLE:
7219        return "CNRI Python Open Source GPL Compatible License Agreement";
7220      case COIL_1_0:
7221        return "Copyfree Open Innovation License";
7222      case COMMUNITY_SPEC_1_0:
7223        return "Community Specification License 1.0";
7224      case CONDOR_1_1:
7225        return "Condor Public License v1.1";
7226      case COPYLEFT_NEXT_0_3_0:
7227        return "copyleft-next 0.3.0";
7228      case COPYLEFT_NEXT_0_3_1:
7229        return "copyleft-next 0.3.1";
7230      case CORNELL_LOSSLESS_JPEG:
7231        return "Cornell Lossless JPEG License";
7232      case CPAL_1_0:
7233        return "Common Public Attribution License 1.0";
7234      case CPL_1_0:
7235        return "Common Public License 1.0";
7236      case CPOL_1_02:
7237        return "Code Project Open License 1.02";
7238      case CROSSWORD:
7239        return "Crossword License";
7240      case CRYSTALSTACKER:
7241        return "CrystalStacker License";
7242      case CUA_OPL_1_0:
7243        return "CUA Office Public License v1.0";
7244      case CUBE:
7245        return "Cube License";
7246      case CURL:
7247        return "curl License";
7248      case D_FSL_1_0:
7249        return "Deutsche Freie Software Lizenz";
7250      case DIFFMARK:
7251        return "diffmark license";
7252      case DL_DE_BY_2_0:
7253        return "Data licence Germany ? attribution ? version 2.0";
7254      case DOC:
7255        return "DOC License";
7256      case DOTSEQN:
7257        return "Dotseqn License";
7258      case DRL_1_0:
7259        return "Detection Rule License 1.0";
7260      case DSDP:
7261        return "DSDP License";
7262      case DTOA:
7263        return "David M. Gay dtoa License";
7264      case DVIPDFM:
7265        return "dvipdfm License";
7266      case ECL_1_0:
7267        return "Educational Community License v1.0";
7268      case ECL_2_0:
7269        return "Educational Community License v2.0";
7270      case ECOS_2_0:
7271        return "eCos license version 2.0";
7272      case EFL_1_0:
7273        return "Eiffel Forum License v1.0";
7274      case EFL_2_0:
7275        return "Eiffel Forum License v2.0";
7276      case EGENIX:
7277        return "eGenix.com Public License 1.1.0";
7278      case ELASTIC_2_0:
7279        return "Elastic License 2.0";
7280      case ENTESSA:
7281        return "Entessa Public License v1.0";
7282      case EPICS:
7283        return "EPICS Open License";
7284      case EPL_1_0:
7285        return "Eclipse Public License 1.0";
7286      case EPL_2_0:
7287        return "Eclipse Public License 2.0";
7288      case ERLPL_1_1:
7289        return "Erlang Public License v1.1";
7290      case ETALAB_2_0:
7291        return "Etalab Open License 2.0";
7292      case EUDATAGRID:
7293        return "EU DataGrid Software License";
7294      case EUPL_1_0:
7295        return "European Union Public License 1.0";
7296      case EUPL_1_1:
7297        return "European Union Public License 1.1";
7298      case EUPL_1_2:
7299        return "European Union Public License 1.2";
7300      case EUROSYM:
7301        return "Eurosym License";
7302      case FAIR:
7303        return "Fair License";
7304      case FDK_AAC:
7305        return "Fraunhofer FDK AAC Codec Library";
7306      case FRAMEWORX_1_0:
7307        return "Frameworx Open License 1.0";
7308      case FREEBSD_DOC:
7309        return "FreeBSD Documentation License";
7310      case FREEIMAGE:
7311        return "FreeImage Public License v1.0";
7312      case FSFAP:
7313        return "FSF All Permissive License";
7314      case FSFUL:
7315        return "FSF Unlimited License";
7316      case FSFULLR:
7317        return "FSF Unlimited License (with License Retention)";
7318      case FSFULLRWD:
7319        return "FSF Unlimited License (With License Retention and Warranty Disclaimer)";
7320      case FTL:
7321        return "Freetype Project License";
7322      case GD:
7323        return "GD License";
7324      case GFDL_1_1:
7325        return "GNU Free Documentation License v1.1";
7326      case GFDL_1_1_INVARIANTS_ONLY:
7327        return "GNU Free Documentation License v1.1 only - invariants";
7328      case GFDL_1_1_INVARIANTS_OR_LATER:
7329        return "GNU Free Documentation License v1.1 or later - invariants";
7330      case GFDL_1_1_NO_INVARIANTS_ONLY:
7331        return "GNU Free Documentation License v1.1 only - no invariants";
7332      case GFDL_1_1_NO_INVARIANTS_OR_LATER:
7333        return "GNU Free Documentation License v1.1 or later - no invariants";
7334      case GFDL_1_1_ONLY:
7335        return "GNU Free Documentation License v1.1 only";
7336      case GFDL_1_1_OR_LATER:
7337        return "GNU Free Documentation License v1.1 or later";
7338      case GFDL_1_2:
7339        return "GNU Free Documentation License v1.2";
7340      case GFDL_1_2_INVARIANTS_ONLY:
7341        return "GNU Free Documentation License v1.2 only - invariants";
7342      case GFDL_1_2_INVARIANTS_OR_LATER:
7343        return "GNU Free Documentation License v1.2 or later - invariants";
7344      case GFDL_1_2_NO_INVARIANTS_ONLY:
7345        return "GNU Free Documentation License v1.2 only - no invariants";
7346      case GFDL_1_2_NO_INVARIANTS_OR_LATER:
7347        return "GNU Free Documentation License v1.2 or later - no invariants";
7348      case GFDL_1_2_ONLY:
7349        return "GNU Free Documentation License v1.2 only";
7350      case GFDL_1_2_OR_LATER:
7351        return "GNU Free Documentation License v1.2 or later";
7352      case GFDL_1_3:
7353        return "GNU Free Documentation License v1.3";
7354      case GFDL_1_3_INVARIANTS_ONLY:
7355        return "GNU Free Documentation License v1.3 only - invariants";
7356      case GFDL_1_3_INVARIANTS_OR_LATER:
7357        return "GNU Free Documentation License v1.3 or later - invariants";
7358      case GFDL_1_3_NO_INVARIANTS_ONLY:
7359        return "GNU Free Documentation License v1.3 only - no invariants";
7360      case GFDL_1_3_NO_INVARIANTS_OR_LATER:
7361        return "GNU Free Documentation License v1.3 or later - no invariants";
7362      case GFDL_1_3_ONLY:
7363        return "GNU Free Documentation License v1.3 only";
7364      case GFDL_1_3_OR_LATER:
7365        return "GNU Free Documentation License v1.3 or later";
7366      case GIFTWARE:
7367        return "Giftware License";
7368      case GL2PS:
7369        return "GL2PS License";
7370      case GLIDE:
7371        return "3dfx Glide License";
7372      case GLULXE:
7373        return "Glulxe License";
7374      case GLWTPL:
7375        return "Good Luck With That Public License";
7376      case GNUPLOT:
7377        return "gnuplot License";
7378      case GPL_1_0:
7379        return "GNU General Public License v1.0 only";
7380      case GPL_1_0PLUS:
7381        return "GNU General Public License v1.0 or later";
7382      case GPL_1_0_ONLY:
7383        return "GNU General Public License v1.0 only";
7384      case GPL_1_0_OR_LATER:
7385        return "GNU General Public License v1.0 or later";
7386      case GPL_2_0:
7387        return "GNU General Public License v2.0 only";
7388      case GPL_2_0PLUS:
7389        return "GNU General Public License v2.0 or later";
7390      case GPL_2_0_ONLY:
7391        return "GNU General Public License v2.0 only";
7392      case GPL_2_0_OR_LATER:
7393        return "GNU General Public License v2.0 or later";
7394      case GPL_2_0_WITH_AUTOCONF_EXCEPTION:
7395        return "GNU General Public License v2.0 w/Autoconf exception";
7396      case GPL_2_0_WITH_BISON_EXCEPTION:
7397        return "GNU General Public License v2.0 w/Bison exception";
7398      case GPL_2_0_WITH_CLASSPATH_EXCEPTION:
7399        return "GNU General Public License v2.0 w/Classpath exception";
7400      case GPL_2_0_WITH_FONT_EXCEPTION:
7401        return "GNU General Public License v2.0 w/Font exception";
7402      case GPL_2_0_WITH_GCC_EXCEPTION:
7403        return "GNU General Public License v2.0 w/GCC Runtime Library exception";
7404      case GPL_3_0:
7405        return "GNU General Public License v3.0 only";
7406      case GPL_3_0PLUS:
7407        return "GNU General Public License v3.0 or later";
7408      case GPL_3_0_ONLY:
7409        return "GNU General Public License v3.0 only";
7410      case GPL_3_0_OR_LATER:
7411        return "GNU General Public License v3.0 or later";
7412      case GPL_3_0_WITH_AUTOCONF_EXCEPTION:
7413        return "GNU General Public License v3.0 w/Autoconf exception";
7414      case GPL_3_0_WITH_GCC_EXCEPTION:
7415        return "GNU General Public License v3.0 w/GCC Runtime Library exception";
7416      case GRAPHICS_GEMS:
7417        return "Graphics Gems License";
7418      case GSOAP_1_3B:
7419        return "gSOAP Public License v1.3b";
7420      case HASKELLREPORT:
7421        return "Haskell Language Report License";
7422      case HIPPOCRATIC_2_1:
7423        return "Hippocratic License 2.1";
7424      case HP_1986:
7425        return "Hewlett-Packard 1986 License";
7426      case HPND:
7427        return "Historical Permission Notice and Disclaimer";
7428      case HPND_EXPORT_US:
7429        return "HPND with US Government export control warning";
7430      case HPND_MARKUS_KUHN:
7431        return "Historical Permission Notice and Disclaimer - Markus Kuhn variant";
7432      case HPND_SELL_VARIANT:
7433        return "Historical Permission Notice and Disclaimer - sell variant";
7434      case HPND_SELL_VARIANT_MIT_DISCLAIMER:
7435        return "HPND sell variant with MIT disclaimer";
7436      case HTMLTIDY:
7437        return "HTML Tidy License";
7438      case IBM_PIBS:
7439        return "IBM PowerPC Initialization and Boot Software";
7440      case ICU:
7441        return "ICU License";
7442      case IEC_CODE_COMPONENTS_EULA:
7443        return "IEC    Code Components End-user licence agreement";
7444      case IJG:
7445        return "Independent JPEG Group License";
7446      case IJG_SHORT:
7447        return "Independent JPEG Group License - short";
7448      case IMAGEMAGICK:
7449        return "ImageMagick License";
7450      case IMATIX:
7451        return "iMatix Standard Function Library Agreement";
7452      case IMLIB2:
7453        return "Imlib2 License";
7454      case INFO_ZIP:
7455        return "Info-ZIP License";
7456      case INNER_NET_2_0:
7457        return "Inner Net License v2.0";
7458      case INTEL:
7459        return "Intel Open Source License";
7460      case INTEL_ACPI:
7461        return "Intel ACPI Software License Agreement";
7462      case INTERBASE_1_0:
7463        return "Interbase Public License v1.0";
7464      case IPA:
7465        return "IPA Font License";
7466      case IPL_1_0:
7467        return "IBM Public License v1.0";
7468      case ISC:
7469        return "ISC License";
7470      case JAM:
7471        return "Jam License";
7472      case JASPER_2_0:
7473        return "JasPer License";
7474      case JPL_IMAGE:
7475        return "JPL Image Use Policy";
7476      case JPNIC:
7477        return "Japan Network Information Center License";
7478      case JSON:
7479        return "JSON License";
7480      case KAZLIB:
7481        return "Kazlib License";
7482      case KNUTH_CTAN:
7483        return "Knuth CTAN License";
7484      case LAL_1_2:
7485        return "Licence Art Libre 1.2";
7486      case LAL_1_3:
7487        return "Licence Art Libre 1.3";
7488      case LATEX2E:
7489        return "Latex2e License";
7490      case LATEX2E_TRANSLATED_NOTICE:
7491        return "Latex2e with translated notice permission";
7492      case LEPTONICA:
7493        return "Leptonica License";
7494      case LGPL_2_0:
7495        return "GNU Library General Public License v2 only";
7496      case LGPL_2_0PLUS:
7497        return "GNU Library General Public License v2 or later";
7498      case LGPL_2_0_ONLY:
7499        return "GNU Library General Public License v2 only";
7500      case LGPL_2_0_OR_LATER:
7501        return "GNU Library General Public License v2 or later";
7502      case LGPL_2_1:
7503        return "GNU Lesser General Public License v2.1 only";
7504      case LGPL_2_1PLUS:
7505        return "GNU Lesser General Public License v2.1 or later";
7506      case LGPL_2_1_ONLY:
7507        return "GNU Lesser General Public License v2.1 only";
7508      case LGPL_2_1_OR_LATER:
7509        return "GNU Lesser General Public License v2.1 or later";
7510      case LGPL_3_0:
7511        return "GNU Lesser General Public License v3.0 only";
7512      case LGPL_3_0PLUS:
7513        return "GNU Lesser General Public License v3.0 or later";
7514      case LGPL_3_0_ONLY:
7515        return "GNU Lesser General Public License v3.0 only";
7516      case LGPL_3_0_OR_LATER:
7517        return "GNU Lesser General Public License v3.0 or later";
7518      case LGPLLR:
7519        return "Lesser General Public License For Linguistic Resources";
7520      case LIBPNG:
7521        return "libpng License";
7522      case LIBPNG_2_0:
7523        return "PNG Reference Library version 2";
7524      case LIBSELINUX_1_0:
7525        return "libselinux public domain notice";
7526      case LIBTIFF:
7527        return "libtiff License";
7528      case LIBUTIL_DAVID_NUGENT:
7529        return "libutil David Nugent License";
7530      case LILIQ_P_1_1:
7531        return "Licence Libre du Québec ? Permissive version 1.1";
7532      case LILIQ_R_1_1:
7533        return "Licence Libre du Québec ? Réciprocité version 1.1";
7534      case LILIQ_RPLUS_1_1:
7535        return "Licence Libre du Québec ? Réciprocité forte version 1.1";
7536      case LINUX_MAN_PAGES_1_PARA:
7537        return "Linux man-pages - 1 paragraph";
7538      case LINUX_MAN_PAGES_COPYLEFT:
7539        return "Linux man-pages Copyleft";
7540      case LINUX_MAN_PAGES_COPYLEFT_2_PARA:
7541        return "Linux man-pages Copyleft - 2 paragraphs";
7542      case LINUX_MAN_PAGES_COPYLEFT_VAR:
7543        return "Linux man-pages Copyleft Variant";
7544      case LINUX_OPENIB:
7545        return "Linux Kernel Variant of OpenIB.org license";
7546      case LOOP:
7547        return "Common Lisp LOOP License";
7548      case LPL_1_0:
7549        return "Lucent Public License Version 1.0";
7550      case LPL_1_02:
7551        return "Lucent Public License v1.02";
7552      case LPPL_1_0:
7553        return "LaTeX Project Public License v1.0";
7554      case LPPL_1_1:
7555        return "LaTeX Project Public License v1.1";
7556      case LPPL_1_2:
7557        return "LaTeX Project Public License v1.2";
7558      case LPPL_1_3A:
7559        return "LaTeX Project Public License v1.3a";
7560      case LPPL_1_3C:
7561        return "LaTeX Project Public License v1.3c";
7562      case LZMA_SDK_9_11_TO_9_20:
7563        return "LZMA SDK License (versions 9.11 to 9.20)";
7564      case LZMA_SDK_9_22:
7565        return "LZMA SDK License (versions 9.22 and beyond)";
7566      case MAKEINDEX:
7567        return "MakeIndex License";
7568      case MARTIN_BIRGMEIER:
7569        return "Martin Birgmeier License";
7570      case METAMAIL:
7571        return "metamail License";
7572      case MINPACK:
7573        return "Minpack License";
7574      case MIROS:
7575        return "The MirOS Licence";
7576      case MIT:
7577        return "MIT License";
7578      case MIT_0:
7579        return "MIT No Attribution";
7580      case MIT_ADVERTISING:
7581        return "Enlightenment License (e16)";
7582      case MIT_CMU:
7583        return "CMU License";
7584      case MIT_ENNA:
7585        return "enna License";
7586      case MIT_FEH:
7587        return "feh License";
7588      case MIT_FESTIVAL:
7589        return "MIT Festival Variant";
7590      case MIT_MODERN_VARIANT:
7591        return "MIT License Modern Variant";
7592      case MIT_OPEN_GROUP:
7593        return "MIT Open Group variant";
7594      case MIT_WU:
7595        return "MIT Tom Wu Variant";
7596      case MITNFA:
7597        return "MIT +no-false-attribs license";
7598      case MOTOSOTO:
7599        return "Motosoto License";
7600      case MPI_PERMISSIVE:
7601        return "mpi Permissive License";
7602      case MPICH2:
7603        return "mpich2 License";
7604      case MPL_1_0:
7605        return "Mozilla Public License 1.0";
7606      case MPL_1_1:
7607        return "Mozilla Public License 1.1";
7608      case MPL_2_0:
7609        return "Mozilla Public License 2.0";
7610      case MPL_2_0_NO_COPYLEFT_EXCEPTION:
7611        return "Mozilla Public License 2.0 (no copyleft exception)";
7612      case MPLUS:
7613        return "mplus Font License";
7614      case MS_LPL:
7615        return "Microsoft Limited Public License";
7616      case MS_PL:
7617        return "Microsoft Public License";
7618      case MS_RL:
7619        return "Microsoft Reciprocal License";
7620      case MTLL:
7621        return "Matrix Template Library License";
7622      case MULANPSL_1_0:
7623        return "Mulan Permissive Software License, Version 1";
7624      case MULANPSL_2_0:
7625        return "Mulan Permissive Software License, Version 2";
7626      case MULTICS:
7627        return "Multics License";
7628      case MUP:
7629        return "Mup License";
7630      case NAIST_2003:
7631        return "Nara Institute of Science and Technology License (2003)";
7632      case NASA_1_3:
7633        return "NASA Open Source Agreement 1.3";
7634      case NAUMEN:
7635        return "Naumen Public License";
7636      case NBPL_1_0:
7637        return "Net Boolean Public License v1";
7638      case NCGL_UK_2_0:
7639        return "Non-Commercial Government Licence";
7640      case NCSA:
7641        return "University of Illinois/NCSA Open Source License";
7642      case NET_SNMP:
7643        return "Net-SNMP License";
7644      case NETCDF:
7645        return "NetCDF license";
7646      case NEWSLETR:
7647        return "Newsletr License";
7648      case NGPL:
7649        return "Nethack General Public License";
7650      case NICTA_1_0:
7651        return "NICTA Public Software License, Version 1.0";
7652      case NIST_PD:
7653        return "NIST Public Domain Notice";
7654      case NIST_PD_FALLBACK:
7655        return "NIST Public Domain Notice with license fallback";
7656      case NIST_SOFTWARE:
7657        return "NIST Software License";
7658      case NLOD_1_0:
7659        return "Norwegian Licence for Open Government Data (NLOD) 1.0";
7660      case NLOD_2_0:
7661        return "Norwegian Licence for Open Government Data (NLOD) 2.0";
7662      case NLPL:
7663        return "No Limit Public License";
7664      case NOKIA:
7665        return "Nokia Open Source License";
7666      case NOSL:
7667        return "Netizen Open Source License";
7668      case NOT_OPEN_SOURCE:
7669        return "Not open source";
7670      case NOWEB:
7671        return "Noweb License";
7672      case NPL_1_0:
7673        return "Netscape Public License v1.0";
7674      case NPL_1_1:
7675        return "Netscape Public License v1.1";
7676      case NPOSL_3_0:
7677        return "Non-Profit Open Software License 3.0";
7678      case NRL:
7679        return "NRL License";
7680      case NTP:
7681        return "NTP License";
7682      case NTP_0:
7683        return "NTP No Attribution";
7684      case NUNIT:
7685        return "Nunit License";
7686      case O_UDA_1_0:
7687        return "Open Use of Data Agreement v1.0";
7688      case OCCT_PL:
7689        return "Open CASCADE Technology Public License";
7690      case OCLC_2_0:
7691        return "OCLC Research Public License 2.0";
7692      case ODBL_1_0:
7693        return "Open Data Commons Open Database License v1.0";
7694      case ODC_BY_1_0:
7695        return "Open Data Commons Attribution License v1.0";
7696      case OFFIS:
7697        return "OFFIS License";
7698      case OFL_1_0:
7699        return "SIL Open Font License 1.0";
7700      case OFL_1_0_NO_RFN:
7701        return "SIL Open Font License 1.0 with no Reserved Font Name";
7702      case OFL_1_0_RFN:
7703        return "SIL Open Font License 1.0 with Reserved Font Name";
7704      case OFL_1_1:
7705        return "SIL Open Font License 1.1";
7706      case OFL_1_1_NO_RFN:
7707        return "SIL Open Font License 1.1 with no Reserved Font Name";
7708      case OFL_1_1_RFN:
7709        return "SIL Open Font License 1.1 with Reserved Font Name";
7710      case OGC_1_0:
7711        return "OGC Software License, Version 1.0";
7712      case OGDL_TAIWAN_1_0:
7713        return "Taiwan Open Government Data License, version 1.0";
7714      case OGL_CANADA_2_0:
7715        return "Open Government Licence - Canada";
7716      case OGL_UK_1_0:
7717        return "Open Government Licence v1.0";
7718      case OGL_UK_2_0:
7719        return "Open Government Licence v2.0";
7720      case OGL_UK_3_0:
7721        return "Open Government Licence v3.0";
7722      case OGTSL:
7723        return "Open Group Test Suite License";
7724      case OLDAP_1_1:
7725        return "Open LDAP Public License v1.1";
7726      case OLDAP_1_2:
7727        return "Open LDAP Public License v1.2";
7728      case OLDAP_1_3:
7729        return "Open LDAP Public License v1.3";
7730      case OLDAP_1_4:
7731        return "Open LDAP Public License v1.4";
7732      case OLDAP_2_0:
7733        return "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)";
7734      case OLDAP_2_0_1:
7735        return "Open LDAP Public License v2.0.1";
7736      case OLDAP_2_1:
7737        return "Open LDAP Public License v2.1";
7738      case OLDAP_2_2:
7739        return "Open LDAP Public License v2.2";
7740      case OLDAP_2_2_1:
7741        return "Open LDAP Public License v2.2.1";
7742      case OLDAP_2_2_2:
7743        return "Open LDAP Public License 2.2.2";
7744      case OLDAP_2_3:
7745        return "Open LDAP Public License v2.3";
7746      case OLDAP_2_4:
7747        return "Open LDAP Public License v2.4";
7748      case OLDAP_2_5:
7749        return "Open LDAP Public License v2.5";
7750      case OLDAP_2_6:
7751        return "Open LDAP Public License v2.6";
7752      case OLDAP_2_7:
7753        return "Open LDAP Public License v2.7";
7754      case OLDAP_2_8:
7755        return "Open LDAP Public License v2.8";
7756      case OLFL_1_3:
7757        return "Open Logistics Foundation License Version 1.3";
7758      case OML:
7759        return "Open Market License";
7760      case OPENPBS_2_3:
7761        return "OpenPBS v2.3 Software License";
7762      case OPENSSL:
7763        return "OpenSSL License";
7764      case OPL_1_0:
7765        return "Open Public License v1.0";
7766      case OPL_UK_3_0:
7767        return "United    Kingdom Open Parliament Licence v3.0";
7768      case OPUBL_1_0:
7769        return "Open Publication License v1.0";
7770      case OSET_PL_2_1:
7771        return "OSET Public License version 2.1";
7772      case OSL_1_0:
7773        return "Open Software License 1.0";
7774      case OSL_1_1:
7775        return "Open Software License 1.1";
7776      case OSL_2_0:
7777        return "Open Software License 2.0";
7778      case OSL_2_1:
7779        return "Open Software License 2.1";
7780      case OSL_3_0:
7781        return "Open Software License 3.0";
7782      case PARITY_6_0_0:
7783        return "The Parity Public License 6.0.0";
7784      case PARITY_7_0_0:
7785        return "The Parity Public License 7.0.0";
7786      case PDDL_1_0:
7787        return "Open Data Commons Public Domain Dedication & License 1.0";
7788      case PHP_3_0:
7789        return "PHP License v3.0";
7790      case PHP_3_01:
7791        return "PHP License v3.01";
7792      case PLEXUS:
7793        return "Plexus Classworlds License";
7794      case POLYFORM_NONCOMMERCIAL_1_0_0:
7795        return "PolyForm Noncommercial License 1.0.0";
7796      case POLYFORM_SMALL_BUSINESS_1_0_0:
7797        return "PolyForm Small Business License 1.0.0";
7798      case POSTGRESQL:
7799        return "PostgreSQL License";
7800      case PSF_2_0:
7801        return "Python Software Foundation License 2.0";
7802      case PSFRAG:
7803        return "psfrag License";
7804      case PSUTILS:
7805        return "psutils License";
7806      case PYTHON_2_0:
7807        return "Python License 2.0";
7808      case PYTHON_2_0_1:
7809        return "Python License 2.0.1";
7810      case QHULL:
7811        return "Qhull License";
7812      case QPL_1_0:
7813        return "Q Public License 1.0";
7814      case QPL_1_0_INRIA_2004:
7815        return "Q Public License 1.0 - INRIA 2004 variant";
7816      case RDISC:
7817        return "Rdisc License";
7818      case RHECOS_1_1:
7819        return "Red Hat eCos Public License v1.1";
7820      case RPL_1_1:
7821        return "Reciprocal Public License 1.1";
7822      case RPL_1_5:
7823        return "Reciprocal Public License 1.5";
7824      case RPSL_1_0:
7825        return "RealNetworks Public Source License v1.0";
7826      case RSA_MD:
7827        return "RSA Message-Digest License";
7828      case RSCPL:
7829        return "Ricoh Source Code Public License";
7830      case RUBY:
7831        return "Ruby License";
7832      case SAX_PD:
7833        return "Sax Public Domain Notice";
7834      case SAXPATH:
7835        return "Saxpath License";
7836      case SCEA:
7837        return "SCEA Shared Source License";
7838      case SCHEMEREPORT:
7839        return "Scheme Language Report License";
7840      case SENDMAIL:
7841        return "Sendmail License";
7842      case SENDMAIL_8_23:
7843        return "Sendmail License 8.23";
7844      case SGI_B_1_0:
7845        return "SGI Free Software License B v1.0";
7846      case SGI_B_1_1:
7847        return "SGI Free Software License B v1.1";
7848      case SGI_B_2_0:
7849        return "SGI Free Software License B v2.0";
7850      case SGP4:
7851        return "SGP4 Permission Notice";
7852      case SHL_0_5:
7853        return "Solderpad Hardware License v0.5";
7854      case SHL_0_51:
7855        return "Solderpad Hardware License, Version 0.51";
7856      case SIMPL_2_0:
7857        return "Simple Public License 2.0";
7858      case SISSL:
7859        return "Sun Industry Standards Source License v1.1";
7860      case SISSL_1_2:
7861        return "Sun Industry Standards Source License v1.2";
7862      case SLEEPYCAT:
7863        return "Sleepycat License";
7864      case SMLNJ:
7865        return "Standard ML of New Jersey License";
7866      case SMPPL:
7867        return "Secure Messaging Protocol Public License";
7868      case SNIA:
7869        return "SNIA Public License 1.1";
7870      case SNPRINTF:
7871        return "snprintf License";
7872      case SPENCER_86:
7873        return "Spencer License 86";
7874      case SPENCER_94:
7875        return "Spencer License 94";
7876      case SPENCER_99:
7877        return "Spencer License 99";
7878      case SPL_1_0:
7879        return "Sun Public License v1.0";
7880      case SSH_OPENSSH:
7881        return "SSH OpenSSH license";
7882      case SSH_SHORT:
7883        return "SSH short notice";
7884      case SSPL_1_0:
7885        return "Server Side Public License, v 1";
7886      case STANDARDML_NJ:
7887        return "Standard ML of New Jersey License";
7888      case SUGARCRM_1_1_3:
7889        return "SugarCRM Public License v1.1.3";
7890      case SUNPRO:
7891        return "SunPro License";
7892      case SWL:
7893        return "Scheme Widget Library (SWL) Software License Agreement";
7894      case SYMLINKS:
7895        return "Symlinks License";
7896      case TAPR_OHL_1_0:
7897        return "TAPR Open Hardware License v1.0";
7898      case TCL:
7899        return "TCL/TK License";
7900      case TCP_WRAPPERS:
7901        return "TCP Wrappers License";
7902      case TERMREADKEY:
7903        return "TermReadKey License";
7904      case TMATE:
7905        return "TMate Open Source License";
7906      case TORQUE_1_1:
7907        return "TORQUE v2.5+ Software License v1.1";
7908      case TOSL:
7909        return "Trusster Open Source License";
7910      case TPDL:
7911        return "Time::ParseDate License";
7912      case TPL_1_0:
7913        return "THOR Public License 1.0";
7914      case TTWL:
7915        return "Text-Tabs+Wrap License";
7916      case TU_BERLIN_1_0:
7917        return "Technische Universitaet Berlin License 1.0";
7918      case TU_BERLIN_2_0:
7919        return "Technische Universitaet Berlin License 2.0";
7920      case UCAR:
7921        return "UCAR License";
7922      case UCL_1_0:
7923        return "Upstream Compatibility License v1.0";
7924      case UNICODE_DFS_2015:
7925        return "Unicode License Agreement - Data Files and Software (2015)";
7926      case UNICODE_DFS_2016:
7927        return "Unicode License Agreement - Data Files and Software (2016)";
7928      case UNICODE_TOU:
7929        return "Unicode Terms of Use";
7930      case UNIXCRYPT:
7931        return "UnixCrypt License";
7932      case UNLICENSE:
7933        return "The Unlicense";
7934      case UPL_1_0:
7935        return "Universal Permissive License v1.0";
7936      case VIM:
7937        return "Vim License";
7938      case VOSTROM:
7939        return "VOSTROM Public License for Open Source";
7940      case VSL_1_0:
7941        return "Vovida Software License v1.0";
7942      case W3C:
7943        return "W3C Software Notice and License (2002-12-31)";
7944      case W3C_19980720:
7945        return "W3C Software Notice and License (1998-07-20)";
7946      case W3C_20150513:
7947        return "W3C Software Notice and Document License (2015-05-13)";
7948      case W3M:
7949        return "w3m License";
7950      case WATCOM_1_0:
7951        return "Sybase Open Watcom Public License 1.0";
7952      case WIDGET_WORKSHOP:
7953        return "Widget Workshop License";
7954      case WSUIPA:
7955        return "Wsuipa License";
7956      case WTFPL:
7957        return "Do What The F*ck You Want To Public License";
7958      case WXWINDOWS:
7959        return "wxWindows Library License";
7960      case X11:
7961        return "X11 License";
7962      case X11_DISTRIBUTE_MODIFICATIONS_VARIANT:
7963        return "X11 License Distribution Modification Variant";
7964      case XDEBUG_1_03:
7965        return "Xdebug License v 1.03";
7966      case XEROX:
7967        return "Xerox License";
7968      case XFIG:
7969        return "Xfig License";
7970      case XFREE86_1_1:
7971        return "XFree86 License 1.1";
7972      case XINETD:
7973        return "xinetd License";
7974      case XLOCK:
7975        return "xlock License";
7976      case XNET:
7977        return "X.Net License";
7978      case XPP:
7979        return "XPP License";
7980      case XSKAT:
7981        return "XSkat License";
7982      case YPL_1_0:
7983        return "Yahoo! Public License v1.0";
7984      case YPL_1_1:
7985        return "Yahoo! Public License v1.1";
7986      case ZED:
7987        return "Zed License";
7988      case ZEND_2_0:
7989        return "Zend License v2.0";
7990      case ZIMBRA_1_3:
7991        return "Zimbra Public License v1.3";
7992      case ZIMBRA_1_4:
7993        return "Zimbra Public License v1.4";
7994      case ZLIB:
7995        return "zlib License";
7996      case ZLIB_ACKNOWLEDGEMENT:
7997        return "zlib/libpng License with Acknowledgement";
7998      case ZPL_1_1:
7999        return "Zope Public License 1.1";
8000      case ZPL_2_0:
8001        return "Zope Public License 2.0";
8002      case ZPL_2_1:
8003        return "Zope Public License 2.1";
8004      case NULL:
8005        return null;
8006      default:
8007        return "?";
8008      }
8009    }
8010  }
8011
8012  public static class SPDXLicenseEnumFactory implements EnumFactory<SPDXLicense> {
8013    public SPDXLicense fromCode(String codeString) throws IllegalArgumentException {
8014      if (codeString == null || "".equals(codeString))
8015        if (codeString == null || "".equals(codeString))
8016          return null;
8017      if ("0BSD".equals(codeString))
8018        return SPDXLicense._0BSD;
8019      if ("AAL".equals(codeString))
8020        return SPDXLicense.AAL;
8021      if ("Abstyles".equals(codeString))
8022        return SPDXLicense.ABSTYLES;
8023      if ("AdaCore-doc".equals(codeString))
8024        return SPDXLicense.ADACORE_DOC;
8025      if ("Adobe-2006".equals(codeString))
8026        return SPDXLicense.ADOBE_2006;
8027      if ("Adobe-Glyph".equals(codeString))
8028        return SPDXLicense.ADOBE_GLYPH;
8029      if ("ADSL".equals(codeString))
8030        return SPDXLicense.ADSL;
8031      if ("AFL-1.1".equals(codeString))
8032        return SPDXLicense.AFL_1_1;
8033      if ("AFL-1.2".equals(codeString))
8034        return SPDXLicense.AFL_1_2;
8035      if ("AFL-2.0".equals(codeString))
8036        return SPDXLicense.AFL_2_0;
8037      if ("AFL-2.1".equals(codeString))
8038        return SPDXLicense.AFL_2_1;
8039      if ("AFL-3.0".equals(codeString))
8040        return SPDXLicense.AFL_3_0;
8041      if ("Afmparse".equals(codeString))
8042        return SPDXLicense.AFMPARSE;
8043      if ("AGPL-1.0".equals(codeString))
8044        return SPDXLicense.AGPL_1_0;
8045      if ("AGPL-1.0-only".equals(codeString))
8046        return SPDXLicense.AGPL_1_0_ONLY;
8047      if ("AGPL-1.0-or-later".equals(codeString))
8048        return SPDXLicense.AGPL_1_0_OR_LATER;
8049      if ("AGPL-3.0".equals(codeString))
8050        return SPDXLicense.AGPL_3_0;
8051      if ("AGPL-3.0-only".equals(codeString))
8052        return SPDXLicense.AGPL_3_0_ONLY;
8053      if ("AGPL-3.0-or-later".equals(codeString))
8054        return SPDXLicense.AGPL_3_0_OR_LATER;
8055      if ("Aladdin".equals(codeString))
8056        return SPDXLicense.ALADDIN;
8057      if ("AMDPLPA".equals(codeString))
8058        return SPDXLicense.AMDPLPA;
8059      if ("AML".equals(codeString))
8060        return SPDXLicense.AML;
8061      if ("AMPAS".equals(codeString))
8062        return SPDXLicense.AMPAS;
8063      if ("ANTLR-PD".equals(codeString))
8064        return SPDXLicense.ANTLR_PD;
8065      if ("ANTLR-PD-fallback".equals(codeString))
8066        return SPDXLicense.ANTLR_PD_FALLBACK;
8067      if ("Apache-1.0".equals(codeString))
8068        return SPDXLicense.APACHE_1_0;
8069      if ("Apache-1.1".equals(codeString))
8070        return SPDXLicense.APACHE_1_1;
8071      if ("Apache-2.0".equals(codeString))
8072        return SPDXLicense.APACHE_2_0;
8073      if ("APAFML".equals(codeString))
8074        return SPDXLicense.APAFML;
8075      if ("APL-1.0".equals(codeString))
8076        return SPDXLicense.APL_1_0;
8077      if ("App-s2p".equals(codeString))
8078        return SPDXLicense.APP_S2P;
8079      if ("APSL-1.0".equals(codeString))
8080        return SPDXLicense.APSL_1_0;
8081      if ("APSL-1.1".equals(codeString))
8082        return SPDXLicense.APSL_1_1;
8083      if ("APSL-1.2".equals(codeString))
8084        return SPDXLicense.APSL_1_2;
8085      if ("APSL-2.0".equals(codeString))
8086        return SPDXLicense.APSL_2_0;
8087      if ("Arphic-1999".equals(codeString))
8088        return SPDXLicense.ARPHIC_1999;
8089      if ("Artistic-1.0".equals(codeString))
8090        return SPDXLicense.ARTISTIC_1_0;
8091      if ("Artistic-1.0-cl8".equals(codeString))
8092        return SPDXLicense.ARTISTIC_1_0_CL8;
8093      if ("Artistic-1.0-Perl".equals(codeString))
8094        return SPDXLicense.ARTISTIC_1_0_PERL;
8095      if ("Artistic-2.0".equals(codeString))
8096        return SPDXLicense.ARTISTIC_2_0;
8097      if ("ASWF-Digital-Assets-1.0".equals(codeString))
8098        return SPDXLicense.ASWF_DIGITAL_ASSETS_1_0;
8099      if ("ASWF-Digital-Assets-1.1".equals(codeString))
8100        return SPDXLicense.ASWF_DIGITAL_ASSETS_1_1;
8101      if ("Baekmuk".equals(codeString))
8102        return SPDXLicense.BAEKMUK;
8103      if ("Bahyph".equals(codeString))
8104        return SPDXLicense.BAHYPH;
8105      if ("Barr".equals(codeString))
8106        return SPDXLicense.BARR;
8107      if ("Beerware".equals(codeString))
8108        return SPDXLicense.BEERWARE;
8109      if ("Bitstream-Charter".equals(codeString))
8110        return SPDXLicense.BITSTREAM_CHARTER;
8111      if ("Bitstream-Vera".equals(codeString))
8112        return SPDXLicense.BITSTREAM_VERA;
8113      if ("BitTorrent-1.0".equals(codeString))
8114        return SPDXLicense.BITTORRENT_1_0;
8115      if ("BitTorrent-1.1".equals(codeString))
8116        return SPDXLicense.BITTORRENT_1_1;
8117      if ("blessing".equals(codeString))
8118        return SPDXLicense.BLESSING;
8119      if ("BlueOak-1.0.0".equals(codeString))
8120        return SPDXLicense.BLUEOAK_1_0_0;
8121      if ("Boehm-GC".equals(codeString))
8122        return SPDXLicense.BOEHM_GC;
8123      if ("Borceux".equals(codeString))
8124        return SPDXLicense.BORCEUX;
8125      if ("Brian-Gladman-3-Clause".equals(codeString))
8126        return SPDXLicense.BRIAN_GLADMAN_3_CLAUSE;
8127      if ("BSD-1-Clause".equals(codeString))
8128        return SPDXLicense.BSD_1_CLAUSE;
8129      if ("BSD-2-Clause".equals(codeString))
8130        return SPDXLicense.BSD_2_CLAUSE;
8131      if ("BSD-2-Clause-FreeBSD".equals(codeString))
8132        return SPDXLicense.BSD_2_CLAUSE_FREEBSD;
8133      if ("BSD-2-Clause-NetBSD".equals(codeString))
8134        return SPDXLicense.BSD_2_CLAUSE_NETBSD;
8135      if ("BSD-2-Clause-Patent".equals(codeString))
8136        return SPDXLicense.BSD_2_CLAUSE_PATENT;
8137      if ("BSD-2-Clause-Views".equals(codeString))
8138        return SPDXLicense.BSD_2_CLAUSE_VIEWS;
8139      if ("BSD-3-Clause".equals(codeString))
8140        return SPDXLicense.BSD_3_CLAUSE;
8141      if ("BSD-3-Clause-Attribution".equals(codeString))
8142        return SPDXLicense.BSD_3_CLAUSE_ATTRIBUTION;
8143      if ("BSD-3-Clause-Clear".equals(codeString))
8144        return SPDXLicense.BSD_3_CLAUSE_CLEAR;
8145      if ("BSD-3-Clause-LBNL".equals(codeString))
8146        return SPDXLicense.BSD_3_CLAUSE_LBNL;
8147      if ("BSD-3-Clause-Modification".equals(codeString))
8148        return SPDXLicense.BSD_3_CLAUSE_MODIFICATION;
8149      if ("BSD-3-Clause-No-Military-License".equals(codeString))
8150        return SPDXLicense.BSD_3_CLAUSE_NO_MILITARY_LICENSE;
8151      if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
8152        return SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_LICENSE;
8153      if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
8154        return SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014;
8155      if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
8156        return SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY;
8157      if ("BSD-3-Clause-Open-MPI".equals(codeString))
8158        return SPDXLicense.BSD_3_CLAUSE_OPEN_MPI;
8159      if ("BSD-4-Clause".equals(codeString))
8160        return SPDXLicense.BSD_4_CLAUSE;
8161      if ("BSD-4-Clause-Shortened".equals(codeString))
8162        return SPDXLicense.BSD_4_CLAUSE_SHORTENED;
8163      if ("BSD-4-Clause-UC".equals(codeString))
8164        return SPDXLicense.BSD_4_CLAUSE_UC;
8165      if ("BSD-4.3RENO".equals(codeString))
8166        return SPDXLicense.BSD_4_3RENO;
8167      if ("BSD-4.3TAHOE".equals(codeString))
8168        return SPDXLicense.BSD_4_3TAHOE;
8169      if ("BSD-Advertising-Acknowledgement".equals(codeString))
8170        return SPDXLicense.BSD_ADVERTISING_ACKNOWLEDGEMENT;
8171      if ("BSD-Attribution-HPND-disclaimer".equals(codeString))
8172        return SPDXLicense.BSD_ATTRIBUTION_HPND_DISCLAIMER;
8173      if ("BSD-Protection".equals(codeString))
8174        return SPDXLicense.BSD_PROTECTION;
8175      if ("BSD-Source-Code".equals(codeString))
8176        return SPDXLicense.BSD_SOURCE_CODE;
8177      if ("BSL-1.0".equals(codeString))
8178        return SPDXLicense.BSL_1_0;
8179      if ("BUSL-1.1".equals(codeString))
8180        return SPDXLicense.BUSL_1_1;
8181      if ("bzip2-1.0.5".equals(codeString))
8182        return SPDXLicense.BZIP2_1_0_5;
8183      if ("bzip2-1.0.6".equals(codeString))
8184        return SPDXLicense.BZIP2_1_0_6;
8185      if ("C-UDA-1.0".equals(codeString))
8186        return SPDXLicense.C_UDA_1_0;
8187      if ("CAL-1.0".equals(codeString))
8188        return SPDXLicense.CAL_1_0;
8189      if ("CAL-1.0-Combined-Work-Exception".equals(codeString))
8190        return SPDXLicense.CAL_1_0_COMBINED_WORK_EXCEPTION;
8191      if ("Caldera".equals(codeString))
8192        return SPDXLicense.CALDERA;
8193      if ("CATOSL-1.1".equals(codeString))
8194        return SPDXLicense.CATOSL_1_1;
8195      if ("CC-BY-1.0".equals(codeString))
8196        return SPDXLicense.CC_BY_1_0;
8197      if ("CC-BY-2.0".equals(codeString))
8198        return SPDXLicense.CC_BY_2_0;
8199      if ("CC-BY-2.5".equals(codeString))
8200        return SPDXLicense.CC_BY_2_5;
8201      if ("CC-BY-2.5-AU".equals(codeString))
8202        return SPDXLicense.CC_BY_2_5_AU;
8203      if ("CC-BY-3.0".equals(codeString))
8204        return SPDXLicense.CC_BY_3_0;
8205      if ("CC-BY-3.0-AT".equals(codeString))
8206        return SPDXLicense.CC_BY_3_0_AT;
8207      if ("CC-BY-3.0-DE".equals(codeString))
8208        return SPDXLicense.CC_BY_3_0_DE;
8209      if ("CC-BY-3.0-IGO".equals(codeString))
8210        return SPDXLicense.CC_BY_3_0_IGO;
8211      if ("CC-BY-3.0-NL".equals(codeString))
8212        return SPDXLicense.CC_BY_3_0_NL;
8213      if ("CC-BY-3.0-US".equals(codeString))
8214        return SPDXLicense.CC_BY_3_0_US;
8215      if ("CC-BY-4.0".equals(codeString))
8216        return SPDXLicense.CC_BY_4_0;
8217      if ("CC-BY-NC-1.0".equals(codeString))
8218        return SPDXLicense.CC_BY_NC_1_0;
8219      if ("CC-BY-NC-2.0".equals(codeString))
8220        return SPDXLicense.CC_BY_NC_2_0;
8221      if ("CC-BY-NC-2.5".equals(codeString))
8222        return SPDXLicense.CC_BY_NC_2_5;
8223      if ("CC-BY-NC-3.0".equals(codeString))
8224        return SPDXLicense.CC_BY_NC_3_0;
8225      if ("CC-BY-NC-3.0-DE".equals(codeString))
8226        return SPDXLicense.CC_BY_NC_3_0_DE;
8227      if ("CC-BY-NC-4.0".equals(codeString))
8228        return SPDXLicense.CC_BY_NC_4_0;
8229      if ("CC-BY-NC-ND-1.0".equals(codeString))
8230        return SPDXLicense.CC_BY_NC_ND_1_0;
8231      if ("CC-BY-NC-ND-2.0".equals(codeString))
8232        return SPDXLicense.CC_BY_NC_ND_2_0;
8233      if ("CC-BY-NC-ND-2.5".equals(codeString))
8234        return SPDXLicense.CC_BY_NC_ND_2_5;
8235      if ("CC-BY-NC-ND-3.0".equals(codeString))
8236        return SPDXLicense.CC_BY_NC_ND_3_0;
8237      if ("CC-BY-NC-ND-3.0-DE".equals(codeString))
8238        return SPDXLicense.CC_BY_NC_ND_3_0_DE;
8239      if ("CC-BY-NC-ND-3.0-IGO".equals(codeString))
8240        return SPDXLicense.CC_BY_NC_ND_3_0_IGO;
8241      if ("CC-BY-NC-ND-4.0".equals(codeString))
8242        return SPDXLicense.CC_BY_NC_ND_4_0;
8243      if ("CC-BY-NC-SA-1.0".equals(codeString))
8244        return SPDXLicense.CC_BY_NC_SA_1_0;
8245      if ("CC-BY-NC-SA-2.0".equals(codeString))
8246        return SPDXLicense.CC_BY_NC_SA_2_0;
8247      if ("CC-BY-NC-SA-2.0-DE".equals(codeString))
8248        return SPDXLicense.CC_BY_NC_SA_2_0_DE;
8249      if ("CC-BY-NC-SA-2.0-FR".equals(codeString))
8250        return SPDXLicense.CC_BY_NC_SA_2_0_FR;
8251      if ("CC-BY-NC-SA-2.0-UK".equals(codeString))
8252        return SPDXLicense.CC_BY_NC_SA_2_0_UK;
8253      if ("CC-BY-NC-SA-2.5".equals(codeString))
8254        return SPDXLicense.CC_BY_NC_SA_2_5;
8255      if ("CC-BY-NC-SA-3.0".equals(codeString))
8256        return SPDXLicense.CC_BY_NC_SA_3_0;
8257      if ("CC-BY-NC-SA-3.0-DE".equals(codeString))
8258        return SPDXLicense.CC_BY_NC_SA_3_0_DE;
8259      if ("CC-BY-NC-SA-3.0-IGO".equals(codeString))
8260        return SPDXLicense.CC_BY_NC_SA_3_0_IGO;
8261      if ("CC-BY-NC-SA-4.0".equals(codeString))
8262        return SPDXLicense.CC_BY_NC_SA_4_0;
8263      if ("CC-BY-ND-1.0".equals(codeString))
8264        return SPDXLicense.CC_BY_ND_1_0;
8265      if ("CC-BY-ND-2.0".equals(codeString))
8266        return SPDXLicense.CC_BY_ND_2_0;
8267      if ("CC-BY-ND-2.5".equals(codeString))
8268        return SPDXLicense.CC_BY_ND_2_5;
8269      if ("CC-BY-ND-3.0".equals(codeString))
8270        return SPDXLicense.CC_BY_ND_3_0;
8271      if ("CC-BY-ND-3.0-DE".equals(codeString))
8272        return SPDXLicense.CC_BY_ND_3_0_DE;
8273      if ("CC-BY-ND-4.0".equals(codeString))
8274        return SPDXLicense.CC_BY_ND_4_0;
8275      if ("CC-BY-SA-1.0".equals(codeString))
8276        return SPDXLicense.CC_BY_SA_1_0;
8277      if ("CC-BY-SA-2.0".equals(codeString))
8278        return SPDXLicense.CC_BY_SA_2_0;
8279      if ("CC-BY-SA-2.0-UK".equals(codeString))
8280        return SPDXLicense.CC_BY_SA_2_0_UK;
8281      if ("CC-BY-SA-2.1-JP".equals(codeString))
8282        return SPDXLicense.CC_BY_SA_2_1_JP;
8283      if ("CC-BY-SA-2.5".equals(codeString))
8284        return SPDXLicense.CC_BY_SA_2_5;
8285      if ("CC-BY-SA-3.0".equals(codeString))
8286        return SPDXLicense.CC_BY_SA_3_0;
8287      if ("CC-BY-SA-3.0-AT".equals(codeString))
8288        return SPDXLicense.CC_BY_SA_3_0_AT;
8289      if ("CC-BY-SA-3.0-DE".equals(codeString))
8290        return SPDXLicense.CC_BY_SA_3_0_DE;
8291      if ("CC-BY-SA-3.0-IGO".equals(codeString))
8292        return SPDXLicense.CC_BY_SA_3_0_IGO;
8293      if ("CC-BY-SA-4.0".equals(codeString))
8294        return SPDXLicense.CC_BY_SA_4_0;
8295      if ("CC-PDDC".equals(codeString))
8296        return SPDXLicense.CC_PDDC;
8297      if ("CC0-1.0".equals(codeString))
8298        return SPDXLicense.CC0_1_0;
8299      if ("CDDL-1.0".equals(codeString))
8300        return SPDXLicense.CDDL_1_0;
8301      if ("CDDL-1.1".equals(codeString))
8302        return SPDXLicense.CDDL_1_1;
8303      if ("CDL-1.0".equals(codeString))
8304        return SPDXLicense.CDL_1_0;
8305      if ("CDLA-Permissive-1.0".equals(codeString))
8306        return SPDXLicense.CDLA_PERMISSIVE_1_0;
8307      if ("CDLA-Permissive-2.0".equals(codeString))
8308        return SPDXLicense.CDLA_PERMISSIVE_2_0;
8309      if ("CDLA-Sharing-1.0".equals(codeString))
8310        return SPDXLicense.CDLA_SHARING_1_0;
8311      if ("CECILL-1.0".equals(codeString))
8312        return SPDXLicense.CECILL_1_0;
8313      if ("CECILL-1.1".equals(codeString))
8314        return SPDXLicense.CECILL_1_1;
8315      if ("CECILL-2.0".equals(codeString))
8316        return SPDXLicense.CECILL_2_0;
8317      if ("CECILL-2.1".equals(codeString))
8318        return SPDXLicense.CECILL_2_1;
8319      if ("CECILL-B".equals(codeString))
8320        return SPDXLicense.CECILL_B;
8321      if ("CECILL-C".equals(codeString))
8322        return SPDXLicense.CECILL_C;
8323      if ("CERN-OHL-1.1".equals(codeString))
8324        return SPDXLicense.CERN_OHL_1_1;
8325      if ("CERN-OHL-1.2".equals(codeString))
8326        return SPDXLicense.CERN_OHL_1_2;
8327      if ("CERN-OHL-P-2.0".equals(codeString))
8328        return SPDXLicense.CERN_OHL_P_2_0;
8329      if ("CERN-OHL-S-2.0".equals(codeString))
8330        return SPDXLicense.CERN_OHL_S_2_0;
8331      if ("CERN-OHL-W-2.0".equals(codeString))
8332        return SPDXLicense.CERN_OHL_W_2_0;
8333      if ("CFITSIO".equals(codeString))
8334        return SPDXLicense.CFITSIO;
8335      if ("checkmk".equals(codeString))
8336        return SPDXLicense.CHECKMK;
8337      if ("ClArtistic".equals(codeString))
8338        return SPDXLicense.CLARTISTIC;
8339      if ("Clips".equals(codeString))
8340        return SPDXLicense.CLIPS;
8341      if ("CMU-Mach".equals(codeString))
8342        return SPDXLicense.CMU_MACH;
8343      if ("CNRI-Jython".equals(codeString))
8344        return SPDXLicense.CNRI_JYTHON;
8345      if ("CNRI-Python".equals(codeString))
8346        return SPDXLicense.CNRI_PYTHON;
8347      if ("CNRI-Python-GPL-Compatible".equals(codeString))
8348        return SPDXLicense.CNRI_PYTHON_GPL_COMPATIBLE;
8349      if ("COIL-1.0".equals(codeString))
8350        return SPDXLicense.COIL_1_0;
8351      if ("Community-Spec-1.0".equals(codeString))
8352        return SPDXLicense.COMMUNITY_SPEC_1_0;
8353      if ("Condor-1.1".equals(codeString))
8354        return SPDXLicense.CONDOR_1_1;
8355      if ("copyleft-next-0.3.0".equals(codeString))
8356        return SPDXLicense.COPYLEFT_NEXT_0_3_0;
8357      if ("copyleft-next-0.3.1".equals(codeString))
8358        return SPDXLicense.COPYLEFT_NEXT_0_3_1;
8359      if ("Cornell-Lossless-JPEG".equals(codeString))
8360        return SPDXLicense.CORNELL_LOSSLESS_JPEG;
8361      if ("CPAL-1.0".equals(codeString))
8362        return SPDXLicense.CPAL_1_0;
8363      if ("CPL-1.0".equals(codeString))
8364        return SPDXLicense.CPL_1_0;
8365      if ("CPOL-1.02".equals(codeString))
8366        return SPDXLicense.CPOL_1_02;
8367      if ("Crossword".equals(codeString))
8368        return SPDXLicense.CROSSWORD;
8369      if ("CrystalStacker".equals(codeString))
8370        return SPDXLicense.CRYSTALSTACKER;
8371      if ("CUA-OPL-1.0".equals(codeString))
8372        return SPDXLicense.CUA_OPL_1_0;
8373      if ("Cube".equals(codeString))
8374        return SPDXLicense.CUBE;
8375      if ("curl".equals(codeString))
8376        return SPDXLicense.CURL;
8377      if ("D-FSL-1.0".equals(codeString))
8378        return SPDXLicense.D_FSL_1_0;
8379      if ("diffmark".equals(codeString))
8380        return SPDXLicense.DIFFMARK;
8381      if ("DL-DE-BY-2.0".equals(codeString))
8382        return SPDXLicense.DL_DE_BY_2_0;
8383      if ("DOC".equals(codeString))
8384        return SPDXLicense.DOC;
8385      if ("Dotseqn".equals(codeString))
8386        return SPDXLicense.DOTSEQN;
8387      if ("DRL-1.0".equals(codeString))
8388        return SPDXLicense.DRL_1_0;
8389      if ("DSDP".equals(codeString))
8390        return SPDXLicense.DSDP;
8391      if ("dtoa".equals(codeString))
8392        return SPDXLicense.DTOA;
8393      if ("dvipdfm".equals(codeString))
8394        return SPDXLicense.DVIPDFM;
8395      if ("ECL-1.0".equals(codeString))
8396        return SPDXLicense.ECL_1_0;
8397      if ("ECL-2.0".equals(codeString))
8398        return SPDXLicense.ECL_2_0;
8399      if ("eCos-2.0".equals(codeString))
8400        return SPDXLicense.ECOS_2_0;
8401      if ("EFL-1.0".equals(codeString))
8402        return SPDXLicense.EFL_1_0;
8403      if ("EFL-2.0".equals(codeString))
8404        return SPDXLicense.EFL_2_0;
8405      if ("eGenix".equals(codeString))
8406        return SPDXLicense.EGENIX;
8407      if ("Elastic-2.0".equals(codeString))
8408        return SPDXLicense.ELASTIC_2_0;
8409      if ("Entessa".equals(codeString))
8410        return SPDXLicense.ENTESSA;
8411      if ("EPICS".equals(codeString))
8412        return SPDXLicense.EPICS;
8413      if ("EPL-1.0".equals(codeString))
8414        return SPDXLicense.EPL_1_0;
8415      if ("EPL-2.0".equals(codeString))
8416        return SPDXLicense.EPL_2_0;
8417      if ("ErlPL-1.1".equals(codeString))
8418        return SPDXLicense.ERLPL_1_1;
8419      if ("etalab-2.0".equals(codeString))
8420        return SPDXLicense.ETALAB_2_0;
8421      if ("EUDatagrid".equals(codeString))
8422        return SPDXLicense.EUDATAGRID;
8423      if ("EUPL-1.0".equals(codeString))
8424        return SPDXLicense.EUPL_1_0;
8425      if ("EUPL-1.1".equals(codeString))
8426        return SPDXLicense.EUPL_1_1;
8427      if ("EUPL-1.2".equals(codeString))
8428        return SPDXLicense.EUPL_1_2;
8429      if ("Eurosym".equals(codeString))
8430        return SPDXLicense.EUROSYM;
8431      if ("Fair".equals(codeString))
8432        return SPDXLicense.FAIR;
8433      if ("FDK-AAC".equals(codeString))
8434        return SPDXLicense.FDK_AAC;
8435      if ("Frameworx-1.0".equals(codeString))
8436        return SPDXLicense.FRAMEWORX_1_0;
8437      if ("FreeBSD-DOC".equals(codeString))
8438        return SPDXLicense.FREEBSD_DOC;
8439      if ("FreeImage".equals(codeString))
8440        return SPDXLicense.FREEIMAGE;
8441      if ("FSFAP".equals(codeString))
8442        return SPDXLicense.FSFAP;
8443      if ("FSFUL".equals(codeString))
8444        return SPDXLicense.FSFUL;
8445      if ("FSFULLR".equals(codeString))
8446        return SPDXLicense.FSFULLR;
8447      if ("FSFULLRWD".equals(codeString))
8448        return SPDXLicense.FSFULLRWD;
8449      if ("FTL".equals(codeString))
8450        return SPDXLicense.FTL;
8451      if ("GD".equals(codeString))
8452        return SPDXLicense.GD;
8453      if ("GFDL-1.1".equals(codeString))
8454        return SPDXLicense.GFDL_1_1;
8455      if ("GFDL-1.1-invariants-only".equals(codeString))
8456        return SPDXLicense.GFDL_1_1_INVARIANTS_ONLY;
8457      if ("GFDL-1.1-invariants-or-later".equals(codeString))
8458        return SPDXLicense.GFDL_1_1_INVARIANTS_OR_LATER;
8459      if ("GFDL-1.1-no-invariants-only".equals(codeString))
8460        return SPDXLicense.GFDL_1_1_NO_INVARIANTS_ONLY;
8461      if ("GFDL-1.1-no-invariants-or-later".equals(codeString))
8462        return SPDXLicense.GFDL_1_1_NO_INVARIANTS_OR_LATER;
8463      if ("GFDL-1.1-only".equals(codeString))
8464        return SPDXLicense.GFDL_1_1_ONLY;
8465      if ("GFDL-1.1-or-later".equals(codeString))
8466        return SPDXLicense.GFDL_1_1_OR_LATER;
8467      if ("GFDL-1.2".equals(codeString))
8468        return SPDXLicense.GFDL_1_2;
8469      if ("GFDL-1.2-invariants-only".equals(codeString))
8470        return SPDXLicense.GFDL_1_2_INVARIANTS_ONLY;
8471      if ("GFDL-1.2-invariants-or-later".equals(codeString))
8472        return SPDXLicense.GFDL_1_2_INVARIANTS_OR_LATER;
8473      if ("GFDL-1.2-no-invariants-only".equals(codeString))
8474        return SPDXLicense.GFDL_1_2_NO_INVARIANTS_ONLY;
8475      if ("GFDL-1.2-no-invariants-or-later".equals(codeString))
8476        return SPDXLicense.GFDL_1_2_NO_INVARIANTS_OR_LATER;
8477      if ("GFDL-1.2-only".equals(codeString))
8478        return SPDXLicense.GFDL_1_2_ONLY;
8479      if ("GFDL-1.2-or-later".equals(codeString))
8480        return SPDXLicense.GFDL_1_2_OR_LATER;
8481      if ("GFDL-1.3".equals(codeString))
8482        return SPDXLicense.GFDL_1_3;
8483      if ("GFDL-1.3-invariants-only".equals(codeString))
8484        return SPDXLicense.GFDL_1_3_INVARIANTS_ONLY;
8485      if ("GFDL-1.3-invariants-or-later".equals(codeString))
8486        return SPDXLicense.GFDL_1_3_INVARIANTS_OR_LATER;
8487      if ("GFDL-1.3-no-invariants-only".equals(codeString))
8488        return SPDXLicense.GFDL_1_3_NO_INVARIANTS_ONLY;
8489      if ("GFDL-1.3-no-invariants-or-later".equals(codeString))
8490        return SPDXLicense.GFDL_1_3_NO_INVARIANTS_OR_LATER;
8491      if ("GFDL-1.3-only".equals(codeString))
8492        return SPDXLicense.GFDL_1_3_ONLY;
8493      if ("GFDL-1.3-or-later".equals(codeString))
8494        return SPDXLicense.GFDL_1_3_OR_LATER;
8495      if ("Giftware".equals(codeString))
8496        return SPDXLicense.GIFTWARE;
8497      if ("GL2PS".equals(codeString))
8498        return SPDXLicense.GL2PS;
8499      if ("Glide".equals(codeString))
8500        return SPDXLicense.GLIDE;
8501      if ("Glulxe".equals(codeString))
8502        return SPDXLicense.GLULXE;
8503      if ("GLWTPL".equals(codeString))
8504        return SPDXLicense.GLWTPL;
8505      if ("gnuplot".equals(codeString))
8506        return SPDXLicense.GNUPLOT;
8507      if ("GPL-1.0".equals(codeString))
8508        return SPDXLicense.GPL_1_0;
8509      if ("GPL-1.0+".equals(codeString))
8510        return SPDXLicense.GPL_1_0PLUS;
8511      if ("GPL-1.0-only".equals(codeString))
8512        return SPDXLicense.GPL_1_0_ONLY;
8513      if ("GPL-1.0-or-later".equals(codeString))
8514        return SPDXLicense.GPL_1_0_OR_LATER;
8515      if ("GPL-2.0".equals(codeString))
8516        return SPDXLicense.GPL_2_0;
8517      if ("GPL-2.0+".equals(codeString))
8518        return SPDXLicense.GPL_2_0PLUS;
8519      if ("GPL-2.0-only".equals(codeString))
8520        return SPDXLicense.GPL_2_0_ONLY;
8521      if ("GPL-2.0-or-later".equals(codeString))
8522        return SPDXLicense.GPL_2_0_OR_LATER;
8523      if ("GPL-2.0-with-autoconf-exception".equals(codeString))
8524        return SPDXLicense.GPL_2_0_WITH_AUTOCONF_EXCEPTION;
8525      if ("GPL-2.0-with-bison-exception".equals(codeString))
8526        return SPDXLicense.GPL_2_0_WITH_BISON_EXCEPTION;
8527      if ("GPL-2.0-with-classpath-exception".equals(codeString))
8528        return SPDXLicense.GPL_2_0_WITH_CLASSPATH_EXCEPTION;
8529      if ("GPL-2.0-with-font-exception".equals(codeString))
8530        return SPDXLicense.GPL_2_0_WITH_FONT_EXCEPTION;
8531      if ("GPL-2.0-with-GCC-exception".equals(codeString))
8532        return SPDXLicense.GPL_2_0_WITH_GCC_EXCEPTION;
8533      if ("GPL-3.0".equals(codeString))
8534        return SPDXLicense.GPL_3_0;
8535      if ("GPL-3.0+".equals(codeString))
8536        return SPDXLicense.GPL_3_0PLUS;
8537      if ("GPL-3.0-only".equals(codeString))
8538        return SPDXLicense.GPL_3_0_ONLY;
8539      if ("GPL-3.0-or-later".equals(codeString))
8540        return SPDXLicense.GPL_3_0_OR_LATER;
8541      if ("GPL-3.0-with-autoconf-exception".equals(codeString))
8542        return SPDXLicense.GPL_3_0_WITH_AUTOCONF_EXCEPTION;
8543      if ("GPL-3.0-with-GCC-exception".equals(codeString))
8544        return SPDXLicense.GPL_3_0_WITH_GCC_EXCEPTION;
8545      if ("Graphics-Gems".equals(codeString))
8546        return SPDXLicense.GRAPHICS_GEMS;
8547      if ("gSOAP-1.3b".equals(codeString))
8548        return SPDXLicense.GSOAP_1_3B;
8549      if ("HaskellReport".equals(codeString))
8550        return SPDXLicense.HASKELLREPORT;
8551      if ("Hippocratic-2.1".equals(codeString))
8552        return SPDXLicense.HIPPOCRATIC_2_1;
8553      if ("HP-1986".equals(codeString))
8554        return SPDXLicense.HP_1986;
8555      if ("HPND".equals(codeString))
8556        return SPDXLicense.HPND;
8557      if ("HPND-export-US".equals(codeString))
8558        return SPDXLicense.HPND_EXPORT_US;
8559      if ("HPND-Markus-Kuhn".equals(codeString))
8560        return SPDXLicense.HPND_MARKUS_KUHN;
8561      if ("HPND-sell-variant".equals(codeString))
8562        return SPDXLicense.HPND_SELL_VARIANT;
8563      if ("HPND-sell-variant-MIT-disclaimer".equals(codeString))
8564        return SPDXLicense.HPND_SELL_VARIANT_MIT_DISCLAIMER;
8565      if ("HTMLTIDY".equals(codeString))
8566        return SPDXLicense.HTMLTIDY;
8567      if ("IBM-pibs".equals(codeString))
8568        return SPDXLicense.IBM_PIBS;
8569      if ("ICU".equals(codeString))
8570        return SPDXLicense.ICU;
8571      if ("IEC-Code-Components-EULA".equals(codeString))
8572        return SPDXLicense.IEC_CODE_COMPONENTS_EULA;
8573      if ("IJG".equals(codeString))
8574        return SPDXLicense.IJG;
8575      if ("IJG-short".equals(codeString))
8576        return SPDXLicense.IJG_SHORT;
8577      if ("ImageMagick".equals(codeString))
8578        return SPDXLicense.IMAGEMAGICK;
8579      if ("iMatix".equals(codeString))
8580        return SPDXLicense.IMATIX;
8581      if ("Imlib2".equals(codeString))
8582        return SPDXLicense.IMLIB2;
8583      if ("Info-ZIP".equals(codeString))
8584        return SPDXLicense.INFO_ZIP;
8585      if ("Inner-Net-2.0".equals(codeString))
8586        return SPDXLicense.INNER_NET_2_0;
8587      if ("Intel".equals(codeString))
8588        return SPDXLicense.INTEL;
8589      if ("Intel-ACPI".equals(codeString))
8590        return SPDXLicense.INTEL_ACPI;
8591      if ("Interbase-1.0".equals(codeString))
8592        return SPDXLicense.INTERBASE_1_0;
8593      if ("IPA".equals(codeString))
8594        return SPDXLicense.IPA;
8595      if ("IPL-1.0".equals(codeString))
8596        return SPDXLicense.IPL_1_0;
8597      if ("ISC".equals(codeString))
8598        return SPDXLicense.ISC;
8599      if ("Jam".equals(codeString))
8600        return SPDXLicense.JAM;
8601      if ("JasPer-2.0".equals(codeString))
8602        return SPDXLicense.JASPER_2_0;
8603      if ("JPL-image".equals(codeString))
8604        return SPDXLicense.JPL_IMAGE;
8605      if ("JPNIC".equals(codeString))
8606        return SPDXLicense.JPNIC;
8607      if ("JSON".equals(codeString))
8608        return SPDXLicense.JSON;
8609      if ("Kazlib".equals(codeString))
8610        return SPDXLicense.KAZLIB;
8611      if ("Knuth-CTAN".equals(codeString))
8612        return SPDXLicense.KNUTH_CTAN;
8613      if ("LAL-1.2".equals(codeString))
8614        return SPDXLicense.LAL_1_2;
8615      if ("LAL-1.3".equals(codeString))
8616        return SPDXLicense.LAL_1_3;
8617      if ("Latex2e".equals(codeString))
8618        return SPDXLicense.LATEX2E;
8619      if ("Latex2e-translated-notice".equals(codeString))
8620        return SPDXLicense.LATEX2E_TRANSLATED_NOTICE;
8621      if ("Leptonica".equals(codeString))
8622        return SPDXLicense.LEPTONICA;
8623      if ("LGPL-2.0".equals(codeString))
8624        return SPDXLicense.LGPL_2_0;
8625      if ("LGPL-2.0+".equals(codeString))
8626        return SPDXLicense.LGPL_2_0PLUS;
8627      if ("LGPL-2.0-only".equals(codeString))
8628        return SPDXLicense.LGPL_2_0_ONLY;
8629      if ("LGPL-2.0-or-later".equals(codeString))
8630        return SPDXLicense.LGPL_2_0_OR_LATER;
8631      if ("LGPL-2.1".equals(codeString))
8632        return SPDXLicense.LGPL_2_1;
8633      if ("LGPL-2.1+".equals(codeString))
8634        return SPDXLicense.LGPL_2_1PLUS;
8635      if ("LGPL-2.1-only".equals(codeString))
8636        return SPDXLicense.LGPL_2_1_ONLY;
8637      if ("LGPL-2.1-or-later".equals(codeString))
8638        return SPDXLicense.LGPL_2_1_OR_LATER;
8639      if ("LGPL-3.0".equals(codeString))
8640        return SPDXLicense.LGPL_3_0;
8641      if ("LGPL-3.0+".equals(codeString))
8642        return SPDXLicense.LGPL_3_0PLUS;
8643      if ("LGPL-3.0-only".equals(codeString))
8644        return SPDXLicense.LGPL_3_0_ONLY;
8645      if ("LGPL-3.0-or-later".equals(codeString))
8646        return SPDXLicense.LGPL_3_0_OR_LATER;
8647      if ("LGPLLR".equals(codeString))
8648        return SPDXLicense.LGPLLR;
8649      if ("Libpng".equals(codeString))
8650        return SPDXLicense.LIBPNG;
8651      if ("libpng-2.0".equals(codeString))
8652        return SPDXLicense.LIBPNG_2_0;
8653      if ("libselinux-1.0".equals(codeString))
8654        return SPDXLicense.LIBSELINUX_1_0;
8655      if ("libtiff".equals(codeString))
8656        return SPDXLicense.LIBTIFF;
8657      if ("libutil-David-Nugent".equals(codeString))
8658        return SPDXLicense.LIBUTIL_DAVID_NUGENT;
8659      if ("LiLiQ-P-1.1".equals(codeString))
8660        return SPDXLicense.LILIQ_P_1_1;
8661      if ("LiLiQ-R-1.1".equals(codeString))
8662        return SPDXLicense.LILIQ_R_1_1;
8663      if ("LiLiQ-Rplus-1.1".equals(codeString))
8664        return SPDXLicense.LILIQ_RPLUS_1_1;
8665      if ("Linux-man-pages-1-para".equals(codeString))
8666        return SPDXLicense.LINUX_MAN_PAGES_1_PARA;
8667      if ("Linux-man-pages-copyleft".equals(codeString))
8668        return SPDXLicense.LINUX_MAN_PAGES_COPYLEFT;
8669      if ("Linux-man-pages-copyleft-2-para".equals(codeString))
8670        return SPDXLicense.LINUX_MAN_PAGES_COPYLEFT_2_PARA;
8671      if ("Linux-man-pages-copyleft-var".equals(codeString))
8672        return SPDXLicense.LINUX_MAN_PAGES_COPYLEFT_VAR;
8673      if ("Linux-OpenIB".equals(codeString))
8674        return SPDXLicense.LINUX_OPENIB;
8675      if ("LOOP".equals(codeString))
8676        return SPDXLicense.LOOP;
8677      if ("LPL-1.0".equals(codeString))
8678        return SPDXLicense.LPL_1_0;
8679      if ("LPL-1.02".equals(codeString))
8680        return SPDXLicense.LPL_1_02;
8681      if ("LPPL-1.0".equals(codeString))
8682        return SPDXLicense.LPPL_1_0;
8683      if ("LPPL-1.1".equals(codeString))
8684        return SPDXLicense.LPPL_1_1;
8685      if ("LPPL-1.2".equals(codeString))
8686        return SPDXLicense.LPPL_1_2;
8687      if ("LPPL-1.3a".equals(codeString))
8688        return SPDXLicense.LPPL_1_3A;
8689      if ("LPPL-1.3c".equals(codeString))
8690        return SPDXLicense.LPPL_1_3C;
8691      if ("LZMA-SDK-9.11-to-9.20".equals(codeString))
8692        return SPDXLicense.LZMA_SDK_9_11_TO_9_20;
8693      if ("LZMA-SDK-9.22".equals(codeString))
8694        return SPDXLicense.LZMA_SDK_9_22;
8695      if ("MakeIndex".equals(codeString))
8696        return SPDXLicense.MAKEINDEX;
8697      if ("Martin-Birgmeier".equals(codeString))
8698        return SPDXLicense.MARTIN_BIRGMEIER;
8699      if ("metamail".equals(codeString))
8700        return SPDXLicense.METAMAIL;
8701      if ("Minpack".equals(codeString))
8702        return SPDXLicense.MINPACK;
8703      if ("MirOS".equals(codeString))
8704        return SPDXLicense.MIROS;
8705      if ("MIT".equals(codeString))
8706        return SPDXLicense.MIT;
8707      if ("MIT-0".equals(codeString))
8708        return SPDXLicense.MIT_0;
8709      if ("MIT-advertising".equals(codeString))
8710        return SPDXLicense.MIT_ADVERTISING;
8711      if ("MIT-CMU".equals(codeString))
8712        return SPDXLicense.MIT_CMU;
8713      if ("MIT-enna".equals(codeString))
8714        return SPDXLicense.MIT_ENNA;
8715      if ("MIT-feh".equals(codeString))
8716        return SPDXLicense.MIT_FEH;
8717      if ("MIT-Festival".equals(codeString))
8718        return SPDXLicense.MIT_FESTIVAL;
8719      if ("MIT-Modern-Variant".equals(codeString))
8720        return SPDXLicense.MIT_MODERN_VARIANT;
8721      if ("MIT-open-group".equals(codeString))
8722        return SPDXLicense.MIT_OPEN_GROUP;
8723      if ("MIT-Wu".equals(codeString))
8724        return SPDXLicense.MIT_WU;
8725      if ("MITNFA".equals(codeString))
8726        return SPDXLicense.MITNFA;
8727      if ("Motosoto".equals(codeString))
8728        return SPDXLicense.MOTOSOTO;
8729      if ("mpi-permissive".equals(codeString))
8730        return SPDXLicense.MPI_PERMISSIVE;
8731      if ("mpich2".equals(codeString))
8732        return SPDXLicense.MPICH2;
8733      if ("MPL-1.0".equals(codeString))
8734        return SPDXLicense.MPL_1_0;
8735      if ("MPL-1.1".equals(codeString))
8736        return SPDXLicense.MPL_1_1;
8737      if ("MPL-2.0".equals(codeString))
8738        return SPDXLicense.MPL_2_0;
8739      if ("MPL-2.0-no-copyleft-exception".equals(codeString))
8740        return SPDXLicense.MPL_2_0_NO_COPYLEFT_EXCEPTION;
8741      if ("mplus".equals(codeString))
8742        return SPDXLicense.MPLUS;
8743      if ("MS-LPL".equals(codeString))
8744        return SPDXLicense.MS_LPL;
8745      if ("MS-PL".equals(codeString))
8746        return SPDXLicense.MS_PL;
8747      if ("MS-RL".equals(codeString))
8748        return SPDXLicense.MS_RL;
8749      if ("MTLL".equals(codeString))
8750        return SPDXLicense.MTLL;
8751      if ("MulanPSL-1.0".equals(codeString))
8752        return SPDXLicense.MULANPSL_1_0;
8753      if ("MulanPSL-2.0".equals(codeString))
8754        return SPDXLicense.MULANPSL_2_0;
8755      if ("Multics".equals(codeString))
8756        return SPDXLicense.MULTICS;
8757      if ("Mup".equals(codeString))
8758        return SPDXLicense.MUP;
8759      if ("NAIST-2003".equals(codeString))
8760        return SPDXLicense.NAIST_2003;
8761      if ("NASA-1.3".equals(codeString))
8762        return SPDXLicense.NASA_1_3;
8763      if ("Naumen".equals(codeString))
8764        return SPDXLicense.NAUMEN;
8765      if ("NBPL-1.0".equals(codeString))
8766        return SPDXLicense.NBPL_1_0;
8767      if ("NCGL-UK-2.0".equals(codeString))
8768        return SPDXLicense.NCGL_UK_2_0;
8769      if ("NCSA".equals(codeString))
8770        return SPDXLicense.NCSA;
8771      if ("Net-SNMP".equals(codeString))
8772        return SPDXLicense.NET_SNMP;
8773      if ("NetCDF".equals(codeString))
8774        return SPDXLicense.NETCDF;
8775      if ("Newsletr".equals(codeString))
8776        return SPDXLicense.NEWSLETR;
8777      if ("NGPL".equals(codeString))
8778        return SPDXLicense.NGPL;
8779      if ("NICTA-1.0".equals(codeString))
8780        return SPDXLicense.NICTA_1_0;
8781      if ("NIST-PD".equals(codeString))
8782        return SPDXLicense.NIST_PD;
8783      if ("NIST-PD-fallback".equals(codeString))
8784        return SPDXLicense.NIST_PD_FALLBACK;
8785      if ("NIST-Software".equals(codeString))
8786        return SPDXLicense.NIST_SOFTWARE;
8787      if ("NLOD-1.0".equals(codeString))
8788        return SPDXLicense.NLOD_1_0;
8789      if ("NLOD-2.0".equals(codeString))
8790        return SPDXLicense.NLOD_2_0;
8791      if ("NLPL".equals(codeString))
8792        return SPDXLicense.NLPL;
8793      if ("Nokia".equals(codeString))
8794        return SPDXLicense.NOKIA;
8795      if ("NOSL".equals(codeString))
8796        return SPDXLicense.NOSL;
8797      if ("not-open-source".equals(codeString))
8798        return SPDXLicense.NOT_OPEN_SOURCE;
8799      if ("Noweb".equals(codeString))
8800        return SPDXLicense.NOWEB;
8801      if ("NPL-1.0".equals(codeString))
8802        return SPDXLicense.NPL_1_0;
8803      if ("NPL-1.1".equals(codeString))
8804        return SPDXLicense.NPL_1_1;
8805      if ("NPOSL-3.0".equals(codeString))
8806        return SPDXLicense.NPOSL_3_0;
8807      if ("NRL".equals(codeString))
8808        return SPDXLicense.NRL;
8809      if ("NTP".equals(codeString))
8810        return SPDXLicense.NTP;
8811      if ("NTP-0".equals(codeString))
8812        return SPDXLicense.NTP_0;
8813      if ("Nunit".equals(codeString))
8814        return SPDXLicense.NUNIT;
8815      if ("O-UDA-1.0".equals(codeString))
8816        return SPDXLicense.O_UDA_1_0;
8817      if ("OCCT-PL".equals(codeString))
8818        return SPDXLicense.OCCT_PL;
8819      if ("OCLC-2.0".equals(codeString))
8820        return SPDXLicense.OCLC_2_0;
8821      if ("ODbL-1.0".equals(codeString))
8822        return SPDXLicense.ODBL_1_0;
8823      if ("ODC-By-1.0".equals(codeString))
8824        return SPDXLicense.ODC_BY_1_0;
8825      if ("OFFIS".equals(codeString))
8826        return SPDXLicense.OFFIS;
8827      if ("OFL-1.0".equals(codeString))
8828        return SPDXLicense.OFL_1_0;
8829      if ("OFL-1.0-no-RFN".equals(codeString))
8830        return SPDXLicense.OFL_1_0_NO_RFN;
8831      if ("OFL-1.0-RFN".equals(codeString))
8832        return SPDXLicense.OFL_1_0_RFN;
8833      if ("OFL-1.1".equals(codeString))
8834        return SPDXLicense.OFL_1_1;
8835      if ("OFL-1.1-no-RFN".equals(codeString))
8836        return SPDXLicense.OFL_1_1_NO_RFN;
8837      if ("OFL-1.1-RFN".equals(codeString))
8838        return SPDXLicense.OFL_1_1_RFN;
8839      if ("OGC-1.0".equals(codeString))
8840        return SPDXLicense.OGC_1_0;
8841      if ("OGDL-Taiwan-1.0".equals(codeString))
8842        return SPDXLicense.OGDL_TAIWAN_1_0;
8843      if ("OGL-Canada-2.0".equals(codeString))
8844        return SPDXLicense.OGL_CANADA_2_0;
8845      if ("OGL-UK-1.0".equals(codeString))
8846        return SPDXLicense.OGL_UK_1_0;
8847      if ("OGL-UK-2.0".equals(codeString))
8848        return SPDXLicense.OGL_UK_2_0;
8849      if ("OGL-UK-3.0".equals(codeString))
8850        return SPDXLicense.OGL_UK_3_0;
8851      if ("OGTSL".equals(codeString))
8852        return SPDXLicense.OGTSL;
8853      if ("OLDAP-1.1".equals(codeString))
8854        return SPDXLicense.OLDAP_1_1;
8855      if ("OLDAP-1.2".equals(codeString))
8856        return SPDXLicense.OLDAP_1_2;
8857      if ("OLDAP-1.3".equals(codeString))
8858        return SPDXLicense.OLDAP_1_3;
8859      if ("OLDAP-1.4".equals(codeString))
8860        return SPDXLicense.OLDAP_1_4;
8861      if ("OLDAP-2.0".equals(codeString))
8862        return SPDXLicense.OLDAP_2_0;
8863      if ("OLDAP-2.0.1".equals(codeString))
8864        return SPDXLicense.OLDAP_2_0_1;
8865      if ("OLDAP-2.1".equals(codeString))
8866        return SPDXLicense.OLDAP_2_1;
8867      if ("OLDAP-2.2".equals(codeString))
8868        return SPDXLicense.OLDAP_2_2;
8869      if ("OLDAP-2.2.1".equals(codeString))
8870        return SPDXLicense.OLDAP_2_2_1;
8871      if ("OLDAP-2.2.2".equals(codeString))
8872        return SPDXLicense.OLDAP_2_2_2;
8873      if ("OLDAP-2.3".equals(codeString))
8874        return SPDXLicense.OLDAP_2_3;
8875      if ("OLDAP-2.4".equals(codeString))
8876        return SPDXLicense.OLDAP_2_4;
8877      if ("OLDAP-2.5".equals(codeString))
8878        return SPDXLicense.OLDAP_2_5;
8879      if ("OLDAP-2.6".equals(codeString))
8880        return SPDXLicense.OLDAP_2_6;
8881      if ("OLDAP-2.7".equals(codeString))
8882        return SPDXLicense.OLDAP_2_7;
8883      if ("OLDAP-2.8".equals(codeString))
8884        return SPDXLicense.OLDAP_2_8;
8885      if ("OLFL-1.3".equals(codeString))
8886        return SPDXLicense.OLFL_1_3;
8887      if ("OML".equals(codeString))
8888        return SPDXLicense.OML;
8889      if ("OpenPBS-2.3".equals(codeString))
8890        return SPDXLicense.OPENPBS_2_3;
8891      if ("OpenSSL".equals(codeString))
8892        return SPDXLicense.OPENSSL;
8893      if ("OPL-1.0".equals(codeString))
8894        return SPDXLicense.OPL_1_0;
8895      if ("OPL-UK-3.0".equals(codeString))
8896        return SPDXLicense.OPL_UK_3_0;
8897      if ("OPUBL-1.0".equals(codeString))
8898        return SPDXLicense.OPUBL_1_0;
8899      if ("OSET-PL-2.1".equals(codeString))
8900        return SPDXLicense.OSET_PL_2_1;
8901      if ("OSL-1.0".equals(codeString))
8902        return SPDXLicense.OSL_1_0;
8903      if ("OSL-1.1".equals(codeString))
8904        return SPDXLicense.OSL_1_1;
8905      if ("OSL-2.0".equals(codeString))
8906        return SPDXLicense.OSL_2_0;
8907      if ("OSL-2.1".equals(codeString))
8908        return SPDXLicense.OSL_2_1;
8909      if ("OSL-3.0".equals(codeString))
8910        return SPDXLicense.OSL_3_0;
8911      if ("Parity-6.0.0".equals(codeString))
8912        return SPDXLicense.PARITY_6_0_0;
8913      if ("Parity-7.0.0".equals(codeString))
8914        return SPDXLicense.PARITY_7_0_0;
8915      if ("PDDL-1.0".equals(codeString))
8916        return SPDXLicense.PDDL_1_0;
8917      if ("PHP-3.0".equals(codeString))
8918        return SPDXLicense.PHP_3_0;
8919      if ("PHP-3.01".equals(codeString))
8920        return SPDXLicense.PHP_3_01;
8921      if ("Plexus".equals(codeString))
8922        return SPDXLicense.PLEXUS;
8923      if ("PolyForm-Noncommercial-1.0.0".equals(codeString))
8924        return SPDXLicense.POLYFORM_NONCOMMERCIAL_1_0_0;
8925      if ("PolyForm-Small-Business-1.0.0".equals(codeString))
8926        return SPDXLicense.POLYFORM_SMALL_BUSINESS_1_0_0;
8927      if ("PostgreSQL".equals(codeString))
8928        return SPDXLicense.POSTGRESQL;
8929      if ("PSF-2.0".equals(codeString))
8930        return SPDXLicense.PSF_2_0;
8931      if ("psfrag".equals(codeString))
8932        return SPDXLicense.PSFRAG;
8933      if ("psutils".equals(codeString))
8934        return SPDXLicense.PSUTILS;
8935      if ("Python-2.0".equals(codeString))
8936        return SPDXLicense.PYTHON_2_0;
8937      if ("Python-2.0.1".equals(codeString))
8938        return SPDXLicense.PYTHON_2_0_1;
8939      if ("Qhull".equals(codeString))
8940        return SPDXLicense.QHULL;
8941      if ("QPL-1.0".equals(codeString))
8942        return SPDXLicense.QPL_1_0;
8943      if ("QPL-1.0-INRIA-2004".equals(codeString))
8944        return SPDXLicense.QPL_1_0_INRIA_2004;
8945      if ("Rdisc".equals(codeString))
8946        return SPDXLicense.RDISC;
8947      if ("RHeCos-1.1".equals(codeString))
8948        return SPDXLicense.RHECOS_1_1;
8949      if ("RPL-1.1".equals(codeString))
8950        return SPDXLicense.RPL_1_1;
8951      if ("RPL-1.5".equals(codeString))
8952        return SPDXLicense.RPL_1_5;
8953      if ("RPSL-1.0".equals(codeString))
8954        return SPDXLicense.RPSL_1_0;
8955      if ("RSA-MD".equals(codeString))
8956        return SPDXLicense.RSA_MD;
8957      if ("RSCPL".equals(codeString))
8958        return SPDXLicense.RSCPL;
8959      if ("Ruby".equals(codeString))
8960        return SPDXLicense.RUBY;
8961      if ("SAX-PD".equals(codeString))
8962        return SPDXLicense.SAX_PD;
8963      if ("Saxpath".equals(codeString))
8964        return SPDXLicense.SAXPATH;
8965      if ("SCEA".equals(codeString))
8966        return SPDXLicense.SCEA;
8967      if ("SchemeReport".equals(codeString))
8968        return SPDXLicense.SCHEMEREPORT;
8969      if ("Sendmail".equals(codeString))
8970        return SPDXLicense.SENDMAIL;
8971      if ("Sendmail-8.23".equals(codeString))
8972        return SPDXLicense.SENDMAIL_8_23;
8973      if ("SGI-B-1.0".equals(codeString))
8974        return SPDXLicense.SGI_B_1_0;
8975      if ("SGI-B-1.1".equals(codeString))
8976        return SPDXLicense.SGI_B_1_1;
8977      if ("SGI-B-2.0".equals(codeString))
8978        return SPDXLicense.SGI_B_2_0;
8979      if ("SGP4".equals(codeString))
8980        return SPDXLicense.SGP4;
8981      if ("SHL-0.5".equals(codeString))
8982        return SPDXLicense.SHL_0_5;
8983      if ("SHL-0.51".equals(codeString))
8984        return SPDXLicense.SHL_0_51;
8985      if ("SimPL-2.0".equals(codeString))
8986        return SPDXLicense.SIMPL_2_0;
8987      if ("SISSL".equals(codeString))
8988        return SPDXLicense.SISSL;
8989      if ("SISSL-1.2".equals(codeString))
8990        return SPDXLicense.SISSL_1_2;
8991      if ("Sleepycat".equals(codeString))
8992        return SPDXLicense.SLEEPYCAT;
8993      if ("SMLNJ".equals(codeString))
8994        return SPDXLicense.SMLNJ;
8995      if ("SMPPL".equals(codeString))
8996        return SPDXLicense.SMPPL;
8997      if ("SNIA".equals(codeString))
8998        return SPDXLicense.SNIA;
8999      if ("snprintf".equals(codeString))
9000        return SPDXLicense.SNPRINTF;
9001      if ("Spencer-86".equals(codeString))
9002        return SPDXLicense.SPENCER_86;
9003      if ("Spencer-94".equals(codeString))
9004        return SPDXLicense.SPENCER_94;
9005      if ("Spencer-99".equals(codeString))
9006        return SPDXLicense.SPENCER_99;
9007      if ("SPL-1.0".equals(codeString))
9008        return SPDXLicense.SPL_1_0;
9009      if ("SSH-OpenSSH".equals(codeString))
9010        return SPDXLicense.SSH_OPENSSH;
9011      if ("SSH-short".equals(codeString))
9012        return SPDXLicense.SSH_SHORT;
9013      if ("SSPL-1.0".equals(codeString))
9014        return SPDXLicense.SSPL_1_0;
9015      if ("StandardML-NJ".equals(codeString))
9016        return SPDXLicense.STANDARDML_NJ;
9017      if ("SugarCRM-1.1.3".equals(codeString))
9018        return SPDXLicense.SUGARCRM_1_1_3;
9019      if ("SunPro".equals(codeString))
9020        return SPDXLicense.SUNPRO;
9021      if ("SWL".equals(codeString))
9022        return SPDXLicense.SWL;
9023      if ("Symlinks".equals(codeString))
9024        return SPDXLicense.SYMLINKS;
9025      if ("TAPR-OHL-1.0".equals(codeString))
9026        return SPDXLicense.TAPR_OHL_1_0;
9027      if ("TCL".equals(codeString))
9028        return SPDXLicense.TCL;
9029      if ("TCP-wrappers".equals(codeString))
9030        return SPDXLicense.TCP_WRAPPERS;
9031      if ("TermReadKey".equals(codeString))
9032        return SPDXLicense.TERMREADKEY;
9033      if ("TMate".equals(codeString))
9034        return SPDXLicense.TMATE;
9035      if ("TORQUE-1.1".equals(codeString))
9036        return SPDXLicense.TORQUE_1_1;
9037      if ("TOSL".equals(codeString))
9038        return SPDXLicense.TOSL;
9039      if ("TPDL".equals(codeString))
9040        return SPDXLicense.TPDL;
9041      if ("TPL-1.0".equals(codeString))
9042        return SPDXLicense.TPL_1_0;
9043      if ("TTWL".equals(codeString))
9044        return SPDXLicense.TTWL;
9045      if ("TU-Berlin-1.0".equals(codeString))
9046        return SPDXLicense.TU_BERLIN_1_0;
9047      if ("TU-Berlin-2.0".equals(codeString))
9048        return SPDXLicense.TU_BERLIN_2_0;
9049      if ("UCAR".equals(codeString))
9050        return SPDXLicense.UCAR;
9051      if ("UCL-1.0".equals(codeString))
9052        return SPDXLicense.UCL_1_0;
9053      if ("Unicode-DFS-2015".equals(codeString))
9054        return SPDXLicense.UNICODE_DFS_2015;
9055      if ("Unicode-DFS-2016".equals(codeString))
9056        return SPDXLicense.UNICODE_DFS_2016;
9057      if ("Unicode-TOU".equals(codeString))
9058        return SPDXLicense.UNICODE_TOU;
9059      if ("UnixCrypt".equals(codeString))
9060        return SPDXLicense.UNIXCRYPT;
9061      if ("Unlicense".equals(codeString))
9062        return SPDXLicense.UNLICENSE;
9063      if ("UPL-1.0".equals(codeString))
9064        return SPDXLicense.UPL_1_0;
9065      if ("Vim".equals(codeString))
9066        return SPDXLicense.VIM;
9067      if ("VOSTROM".equals(codeString))
9068        return SPDXLicense.VOSTROM;
9069      if ("VSL-1.0".equals(codeString))
9070        return SPDXLicense.VSL_1_0;
9071      if ("W3C".equals(codeString))
9072        return SPDXLicense.W3C;
9073      if ("W3C-19980720".equals(codeString))
9074        return SPDXLicense.W3C_19980720;
9075      if ("W3C-20150513".equals(codeString))
9076        return SPDXLicense.W3C_20150513;
9077      if ("w3m".equals(codeString))
9078        return SPDXLicense.W3M;
9079      if ("Watcom-1.0".equals(codeString))
9080        return SPDXLicense.WATCOM_1_0;
9081      if ("Widget-Workshop".equals(codeString))
9082        return SPDXLicense.WIDGET_WORKSHOP;
9083      if ("Wsuipa".equals(codeString))
9084        return SPDXLicense.WSUIPA;
9085      if ("WTFPL".equals(codeString))
9086        return SPDXLicense.WTFPL;
9087      if ("wxWindows".equals(codeString))
9088        return SPDXLicense.WXWINDOWS;
9089      if ("X11".equals(codeString))
9090        return SPDXLicense.X11;
9091      if ("X11-distribute-modifications-variant".equals(codeString))
9092        return SPDXLicense.X11_DISTRIBUTE_MODIFICATIONS_VARIANT;
9093      if ("Xdebug-1.03".equals(codeString))
9094        return SPDXLicense.XDEBUG_1_03;
9095      if ("Xerox".equals(codeString))
9096        return SPDXLicense.XEROX;
9097      if ("Xfig".equals(codeString))
9098        return SPDXLicense.XFIG;
9099      if ("XFree86-1.1".equals(codeString))
9100        return SPDXLicense.XFREE86_1_1;
9101      if ("xinetd".equals(codeString))
9102        return SPDXLicense.XINETD;
9103      if ("xlock".equals(codeString))
9104        return SPDXLicense.XLOCK;
9105      if ("Xnet".equals(codeString))
9106        return SPDXLicense.XNET;
9107      if ("xpp".equals(codeString))
9108        return SPDXLicense.XPP;
9109      if ("XSkat".equals(codeString))
9110        return SPDXLicense.XSKAT;
9111      if ("YPL-1.0".equals(codeString))
9112        return SPDXLicense.YPL_1_0;
9113      if ("YPL-1.1".equals(codeString))
9114        return SPDXLicense.YPL_1_1;
9115      if ("Zed".equals(codeString))
9116        return SPDXLicense.ZED;
9117      if ("Zend-2.0".equals(codeString))
9118        return SPDXLicense.ZEND_2_0;
9119      if ("Zimbra-1.3".equals(codeString))
9120        return SPDXLicense.ZIMBRA_1_3;
9121      if ("Zimbra-1.4".equals(codeString))
9122        return SPDXLicense.ZIMBRA_1_4;
9123      if ("Zlib".equals(codeString))
9124        return SPDXLicense.ZLIB;
9125      if ("zlib-acknowledgement".equals(codeString))
9126        return SPDXLicense.ZLIB_ACKNOWLEDGEMENT;
9127      if ("ZPL-1.1".equals(codeString))
9128        return SPDXLicense.ZPL_1_1;
9129      if ("ZPL-2.0".equals(codeString))
9130        return SPDXLicense.ZPL_2_0;
9131      if ("ZPL-2.1".equals(codeString))
9132        return SPDXLicense.ZPL_2_1;
9133      throw new IllegalArgumentException("Unknown SPDXLicense code '" + codeString + "'");
9134    }
9135
9136    public Enumeration<SPDXLicense> fromType(PrimitiveType<?> code) throws FHIRException {
9137      if (code == null)
9138        return null;
9139      if (code.isEmpty())
9140        return new Enumeration<SPDXLicense>(this, SPDXLicense.NULL, code);
9141      String codeString = ((PrimitiveType) code).asStringValue();
9142      if (codeString == null || "".equals(codeString))
9143        return new Enumeration<SPDXLicense>(this, SPDXLicense.NULL, code);
9144      if ("0BSD".equals(codeString))
9145        return new Enumeration<SPDXLicense>(this, SPDXLicense._0BSD, code);
9146      if ("AAL".equals(codeString))
9147        return new Enumeration<SPDXLicense>(this, SPDXLicense.AAL, code);
9148      if ("Abstyles".equals(codeString))
9149        return new Enumeration<SPDXLicense>(this, SPDXLicense.ABSTYLES, code);
9150      if ("AdaCore-doc".equals(codeString))
9151        return new Enumeration<SPDXLicense>(this, SPDXLicense.ADACORE_DOC, code);
9152      if ("Adobe-2006".equals(codeString))
9153        return new Enumeration<SPDXLicense>(this, SPDXLicense.ADOBE_2006, code);
9154      if ("Adobe-Glyph".equals(codeString))
9155        return new Enumeration<SPDXLicense>(this, SPDXLicense.ADOBE_GLYPH, code);
9156      if ("ADSL".equals(codeString))
9157        return new Enumeration<SPDXLicense>(this, SPDXLicense.ADSL, code);
9158      if ("AFL-1.1".equals(codeString))
9159        return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL_1_1, code);
9160      if ("AFL-1.2".equals(codeString))
9161        return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL_1_2, code);
9162      if ("AFL-2.0".equals(codeString))
9163        return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL_2_0, code);
9164      if ("AFL-2.1".equals(codeString))
9165        return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL_2_1, code);
9166      if ("AFL-3.0".equals(codeString))
9167        return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL_3_0, code);
9168      if ("Afmparse".equals(codeString))
9169        return new Enumeration<SPDXLicense>(this, SPDXLicense.AFMPARSE, code);
9170      if ("AGPL-1.0".equals(codeString))
9171        return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL_1_0, code);
9172      if ("AGPL-1.0-only".equals(codeString))
9173        return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL_1_0_ONLY, code);
9174      if ("AGPL-1.0-or-later".equals(codeString))
9175        return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL_1_0_OR_LATER, code);
9176      if ("AGPL-3.0".equals(codeString))
9177        return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL_3_0, code);
9178      if ("AGPL-3.0-only".equals(codeString))
9179        return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL_3_0_ONLY, code);
9180      if ("AGPL-3.0-or-later".equals(codeString))
9181        return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL_3_0_OR_LATER, code);
9182      if ("Aladdin".equals(codeString))
9183        return new Enumeration<SPDXLicense>(this, SPDXLicense.ALADDIN, code);
9184      if ("AMDPLPA".equals(codeString))
9185        return new Enumeration<SPDXLicense>(this, SPDXLicense.AMDPLPA, code);
9186      if ("AML".equals(codeString))
9187        return new Enumeration<SPDXLicense>(this, SPDXLicense.AML, code);
9188      if ("AMPAS".equals(codeString))
9189        return new Enumeration<SPDXLicense>(this, SPDXLicense.AMPAS, code);
9190      if ("ANTLR-PD".equals(codeString))
9191        return new Enumeration<SPDXLicense>(this, SPDXLicense.ANTLR_PD, code);
9192      if ("ANTLR-PD-fallback".equals(codeString))
9193        return new Enumeration<SPDXLicense>(this, SPDXLicense.ANTLR_PD_FALLBACK, code);
9194      if ("Apache-1.0".equals(codeString))
9195        return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE_1_0, code);
9196      if ("Apache-1.1".equals(codeString))
9197        return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE_1_1, code);
9198      if ("Apache-2.0".equals(codeString))
9199        return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE_2_0, code);
9200      if ("APAFML".equals(codeString))
9201        return new Enumeration<SPDXLicense>(this, SPDXLicense.APAFML, code);
9202      if ("APL-1.0".equals(codeString))
9203        return new Enumeration<SPDXLicense>(this, SPDXLicense.APL_1_0, code);
9204      if ("App-s2p".equals(codeString))
9205        return new Enumeration<SPDXLicense>(this, SPDXLicense.APP_S2P, code);
9206      if ("APSL-1.0".equals(codeString))
9207        return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL_1_0, code);
9208      if ("APSL-1.1".equals(codeString))
9209        return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL_1_1, code);
9210      if ("APSL-1.2".equals(codeString))
9211        return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL_1_2, code);
9212      if ("APSL-2.0".equals(codeString))
9213        return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL_2_0, code);
9214      if ("Arphic-1999".equals(codeString))
9215        return new Enumeration<SPDXLicense>(this, SPDXLicense.ARPHIC_1999, code);
9216      if ("Artistic-1.0".equals(codeString))
9217        return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC_1_0, code);
9218      if ("Artistic-1.0-cl8".equals(codeString))
9219        return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC_1_0_CL8, code);
9220      if ("Artistic-1.0-Perl".equals(codeString))
9221        return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC_1_0_PERL, code);
9222      if ("Artistic-2.0".equals(codeString))
9223        return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC_2_0, code);
9224      if ("ASWF-Digital-Assets-1.0".equals(codeString))
9225        return new Enumeration<SPDXLicense>(this, SPDXLicense.ASWF_DIGITAL_ASSETS_1_0, code);
9226      if ("ASWF-Digital-Assets-1.1".equals(codeString))
9227        return new Enumeration<SPDXLicense>(this, SPDXLicense.ASWF_DIGITAL_ASSETS_1_1, code);
9228      if ("Baekmuk".equals(codeString))
9229        return new Enumeration<SPDXLicense>(this, SPDXLicense.BAEKMUK, code);
9230      if ("Bahyph".equals(codeString))
9231        return new Enumeration<SPDXLicense>(this, SPDXLicense.BAHYPH, code);
9232      if ("Barr".equals(codeString))
9233        return new Enumeration<SPDXLicense>(this, SPDXLicense.BARR, code);
9234      if ("Beerware".equals(codeString))
9235        return new Enumeration<SPDXLicense>(this, SPDXLicense.BEERWARE, code);
9236      if ("Bitstream-Charter".equals(codeString))
9237        return new Enumeration<SPDXLicense>(this, SPDXLicense.BITSTREAM_CHARTER, code);
9238      if ("Bitstream-Vera".equals(codeString))
9239        return new Enumeration<SPDXLicense>(this, SPDXLicense.BITSTREAM_VERA, code);
9240      if ("BitTorrent-1.0".equals(codeString))
9241        return new Enumeration<SPDXLicense>(this, SPDXLicense.BITTORRENT_1_0, code);
9242      if ("BitTorrent-1.1".equals(codeString))
9243        return new Enumeration<SPDXLicense>(this, SPDXLicense.BITTORRENT_1_1, code);
9244      if ("blessing".equals(codeString))
9245        return new Enumeration<SPDXLicense>(this, SPDXLicense.BLESSING, code);
9246      if ("BlueOak-1.0.0".equals(codeString))
9247        return new Enumeration<SPDXLicense>(this, SPDXLicense.BLUEOAK_1_0_0, code);
9248      if ("Boehm-GC".equals(codeString))
9249        return new Enumeration<SPDXLicense>(this, SPDXLicense.BOEHM_GC, code);
9250      if ("Borceux".equals(codeString))
9251        return new Enumeration<SPDXLicense>(this, SPDXLicense.BORCEUX, code);
9252      if ("Brian-Gladman-3-Clause".equals(codeString))
9253        return new Enumeration<SPDXLicense>(this, SPDXLicense.BRIAN_GLADMAN_3_CLAUSE, code);
9254      if ("BSD-1-Clause".equals(codeString))
9255        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_1_CLAUSE, code);
9256      if ("BSD-2-Clause".equals(codeString))
9257        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_2_CLAUSE, code);
9258      if ("BSD-2-Clause-FreeBSD".equals(codeString))
9259        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_2_CLAUSE_FREEBSD, code);
9260      if ("BSD-2-Clause-NetBSD".equals(codeString))
9261        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_2_CLAUSE_NETBSD, code);
9262      if ("BSD-2-Clause-Patent".equals(codeString))
9263        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_2_CLAUSE_PATENT, code);
9264      if ("BSD-2-Clause-Views".equals(codeString))
9265        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_2_CLAUSE_VIEWS, code);
9266      if ("BSD-3-Clause".equals(codeString))
9267        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE, code);
9268      if ("BSD-3-Clause-Attribution".equals(codeString))
9269        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_ATTRIBUTION, code);
9270      if ("BSD-3-Clause-Clear".equals(codeString))
9271        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_CLEAR, code);
9272      if ("BSD-3-Clause-LBNL".equals(codeString))
9273        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_LBNL, code);
9274      if ("BSD-3-Clause-Modification".equals(codeString))
9275        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_MODIFICATION, code);
9276      if ("BSD-3-Clause-No-Military-License".equals(codeString))
9277        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_NO_MILITARY_LICENSE, code);
9278      if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
9279        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_LICENSE, code);
9280      if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
9281        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014, code);
9282      if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
9283        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY, code);
9284      if ("BSD-3-Clause-Open-MPI".equals(codeString))
9285        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_3_CLAUSE_OPEN_MPI, code);
9286      if ("BSD-4-Clause".equals(codeString))
9287        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_4_CLAUSE, code);
9288      if ("BSD-4-Clause-Shortened".equals(codeString))
9289        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_4_CLAUSE_SHORTENED, code);
9290      if ("BSD-4-Clause-UC".equals(codeString))
9291        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_4_CLAUSE_UC, code);
9292      if ("BSD-4.3RENO".equals(codeString))
9293        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_4_3RENO, code);
9294      if ("BSD-4.3TAHOE".equals(codeString))
9295        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_4_3TAHOE, code);
9296      if ("BSD-Advertising-Acknowledgement".equals(codeString))
9297        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_ADVERTISING_ACKNOWLEDGEMENT, code);
9298      if ("BSD-Attribution-HPND-disclaimer".equals(codeString))
9299        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_ATTRIBUTION_HPND_DISCLAIMER, code);
9300      if ("BSD-Protection".equals(codeString))
9301        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_PROTECTION, code);
9302      if ("BSD-Source-Code".equals(codeString))
9303        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD_SOURCE_CODE, code);
9304      if ("BSL-1.0".equals(codeString))
9305        return new Enumeration<SPDXLicense>(this, SPDXLicense.BSL_1_0, code);
9306      if ("BUSL-1.1".equals(codeString))
9307        return new Enumeration<SPDXLicense>(this, SPDXLicense.BUSL_1_1, code);
9308      if ("bzip2-1.0.5".equals(codeString))
9309        return new Enumeration<SPDXLicense>(this, SPDXLicense.BZIP2_1_0_5, code);
9310      if ("bzip2-1.0.6".equals(codeString))
9311        return new Enumeration<SPDXLicense>(this, SPDXLicense.BZIP2_1_0_6, code);
9312      if ("C-UDA-1.0".equals(codeString))
9313        return new Enumeration<SPDXLicense>(this, SPDXLicense.C_UDA_1_0, code);
9314      if ("CAL-1.0".equals(codeString))
9315        return new Enumeration<SPDXLicense>(this, SPDXLicense.CAL_1_0, code);
9316      if ("CAL-1.0-Combined-Work-Exception".equals(codeString))
9317        return new Enumeration<SPDXLicense>(this, SPDXLicense.CAL_1_0_COMBINED_WORK_EXCEPTION, code);
9318      if ("Caldera".equals(codeString))
9319        return new Enumeration<SPDXLicense>(this, SPDXLicense.CALDERA, code);
9320      if ("CATOSL-1.1".equals(codeString))
9321        return new Enumeration<SPDXLicense>(this, SPDXLicense.CATOSL_1_1, code);
9322      if ("CC-BY-1.0".equals(codeString))
9323        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_1_0, code);
9324      if ("CC-BY-2.0".equals(codeString))
9325        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_2_0, code);
9326      if ("CC-BY-2.5".equals(codeString))
9327        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_2_5, code);
9328      if ("CC-BY-2.5-AU".equals(codeString))
9329        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_2_5_AU, code);
9330      if ("CC-BY-3.0".equals(codeString))
9331        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_3_0, code);
9332      if ("CC-BY-3.0-AT".equals(codeString))
9333        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_3_0_AT, code);
9334      if ("CC-BY-3.0-DE".equals(codeString))
9335        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_3_0_DE, code);
9336      if ("CC-BY-3.0-IGO".equals(codeString))
9337        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_3_0_IGO, code);
9338      if ("CC-BY-3.0-NL".equals(codeString))
9339        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_3_0_NL, code);
9340      if ("CC-BY-3.0-US".equals(codeString))
9341        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_3_0_US, code);
9342      if ("CC-BY-4.0".equals(codeString))
9343        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_4_0, code);
9344      if ("CC-BY-NC-1.0".equals(codeString))
9345        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_1_0, code);
9346      if ("CC-BY-NC-2.0".equals(codeString))
9347        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_2_0, code);
9348      if ("CC-BY-NC-2.5".equals(codeString))
9349        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_2_5, code);
9350      if ("CC-BY-NC-3.0".equals(codeString))
9351        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_3_0, code);
9352      if ("CC-BY-NC-3.0-DE".equals(codeString))
9353        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_3_0_DE, code);
9354      if ("CC-BY-NC-4.0".equals(codeString))
9355        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_4_0, code);
9356      if ("CC-BY-NC-ND-1.0".equals(codeString))
9357        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_1_0, code);
9358      if ("CC-BY-NC-ND-2.0".equals(codeString))
9359        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_2_0, code);
9360      if ("CC-BY-NC-ND-2.5".equals(codeString))
9361        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_2_5, code);
9362      if ("CC-BY-NC-ND-3.0".equals(codeString))
9363        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_3_0, code);
9364      if ("CC-BY-NC-ND-3.0-DE".equals(codeString))
9365        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_3_0_DE, code);
9366      if ("CC-BY-NC-ND-3.0-IGO".equals(codeString))
9367        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_3_0_IGO, code);
9368      if ("CC-BY-NC-ND-4.0".equals(codeString))
9369        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_ND_4_0, code);
9370      if ("CC-BY-NC-SA-1.0".equals(codeString))
9371        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_1_0, code);
9372      if ("CC-BY-NC-SA-2.0".equals(codeString))
9373        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_2_0, code);
9374      if ("CC-BY-NC-SA-2.0-DE".equals(codeString))
9375        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_2_0_DE, code);
9376      if ("CC-BY-NC-SA-2.0-FR".equals(codeString))
9377        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_2_0_FR, code);
9378      if ("CC-BY-NC-SA-2.0-UK".equals(codeString))
9379        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_2_0_UK, code);
9380      if ("CC-BY-NC-SA-2.5".equals(codeString))
9381        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_2_5, code);
9382      if ("CC-BY-NC-SA-3.0".equals(codeString))
9383        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_3_0, code);
9384      if ("CC-BY-NC-SA-3.0-DE".equals(codeString))
9385        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_3_0_DE, code);
9386      if ("CC-BY-NC-SA-3.0-IGO".equals(codeString))
9387        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_3_0_IGO, code);
9388      if ("CC-BY-NC-SA-4.0".equals(codeString))
9389        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_NC_SA_4_0, code);
9390      if ("CC-BY-ND-1.0".equals(codeString))
9391        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_ND_1_0, code);
9392      if ("CC-BY-ND-2.0".equals(codeString))
9393        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_ND_2_0, code);
9394      if ("CC-BY-ND-2.5".equals(codeString))
9395        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_ND_2_5, code);
9396      if ("CC-BY-ND-3.0".equals(codeString))
9397        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_ND_3_0, code);
9398      if ("CC-BY-ND-3.0-DE".equals(codeString))
9399        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_ND_3_0_DE, code);
9400      if ("CC-BY-ND-4.0".equals(codeString))
9401        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_ND_4_0, code);
9402      if ("CC-BY-SA-1.0".equals(codeString))
9403        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_1_0, code);
9404      if ("CC-BY-SA-2.0".equals(codeString))
9405        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_2_0, code);
9406      if ("CC-BY-SA-2.0-UK".equals(codeString))
9407        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_2_0_UK, code);
9408      if ("CC-BY-SA-2.1-JP".equals(codeString))
9409        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_2_1_JP, code);
9410      if ("CC-BY-SA-2.5".equals(codeString))
9411        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_2_5, code);
9412      if ("CC-BY-SA-3.0".equals(codeString))
9413        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_3_0, code);
9414      if ("CC-BY-SA-3.0-AT".equals(codeString))
9415        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_3_0_AT, code);
9416      if ("CC-BY-SA-3.0-DE".equals(codeString))
9417        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_3_0_DE, code);
9418      if ("CC-BY-SA-3.0-IGO".equals(codeString))
9419        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_3_0_IGO, code);
9420      if ("CC-BY-SA-4.0".equals(codeString))
9421        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_BY_SA_4_0, code);
9422      if ("CC-PDDC".equals(codeString))
9423        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC_PDDC, code);
9424      if ("CC0-1.0".equals(codeString))
9425        return new Enumeration<SPDXLicense>(this, SPDXLicense.CC0_1_0, code);
9426      if ("CDDL-1.0".equals(codeString))
9427        return new Enumeration<SPDXLicense>(this, SPDXLicense.CDDL_1_0, code);
9428      if ("CDDL-1.1".equals(codeString))
9429        return new Enumeration<SPDXLicense>(this, SPDXLicense.CDDL_1_1, code);
9430      if ("CDL-1.0".equals(codeString))
9431        return new Enumeration<SPDXLicense>(this, SPDXLicense.CDL_1_0, code);
9432      if ("CDLA-Permissive-1.0".equals(codeString))
9433        return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLA_PERMISSIVE_1_0, code);
9434      if ("CDLA-Permissive-2.0".equals(codeString))
9435        return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLA_PERMISSIVE_2_0, code);
9436      if ("CDLA-Sharing-1.0".equals(codeString))
9437        return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLA_SHARING_1_0, code);
9438      if ("CECILL-1.0".equals(codeString))
9439        return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL_1_0, code);
9440      if ("CECILL-1.1".equals(codeString))
9441        return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL_1_1, code);
9442      if ("CECILL-2.0".equals(codeString))
9443        return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL_2_0, code);
9444      if ("CECILL-2.1".equals(codeString))
9445        return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL_2_1, code);
9446      if ("CECILL-B".equals(codeString))
9447        return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL_B, code);
9448      if ("CECILL-C".equals(codeString))
9449        return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL_C, code);
9450      if ("CERN-OHL-1.1".equals(codeString))
9451        return new Enumeration<SPDXLicense>(this, SPDXLicense.CERN_OHL_1_1, code);
9452      if ("CERN-OHL-1.2".equals(codeString))
9453        return new Enumeration<SPDXLicense>(this, SPDXLicense.CERN_OHL_1_2, code);
9454      if ("CERN-OHL-P-2.0".equals(codeString))
9455        return new Enumeration<SPDXLicense>(this, SPDXLicense.CERN_OHL_P_2_0, code);
9456      if ("CERN-OHL-S-2.0".equals(codeString))
9457        return new Enumeration<SPDXLicense>(this, SPDXLicense.CERN_OHL_S_2_0, code);
9458      if ("CERN-OHL-W-2.0".equals(codeString))
9459        return new Enumeration<SPDXLicense>(this, SPDXLicense.CERN_OHL_W_2_0, code);
9460      if ("CFITSIO".equals(codeString))
9461        return new Enumeration<SPDXLicense>(this, SPDXLicense.CFITSIO, code);
9462      if ("checkmk".equals(codeString))
9463        return new Enumeration<SPDXLicense>(this, SPDXLicense.CHECKMK, code);
9464      if ("ClArtistic".equals(codeString))
9465        return new Enumeration<SPDXLicense>(this, SPDXLicense.CLARTISTIC, code);
9466      if ("Clips".equals(codeString))
9467        return new Enumeration<SPDXLicense>(this, SPDXLicense.CLIPS, code);
9468      if ("CMU-Mach".equals(codeString))
9469        return new Enumeration<SPDXLicense>(this, SPDXLicense.CMU_MACH, code);
9470      if ("CNRI-Jython".equals(codeString))
9471        return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRI_JYTHON, code);
9472      if ("CNRI-Python".equals(codeString))
9473        return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRI_PYTHON, code);
9474      if ("CNRI-Python-GPL-Compatible".equals(codeString))
9475        return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRI_PYTHON_GPL_COMPATIBLE, code);
9476      if ("COIL-1.0".equals(codeString))
9477        return new Enumeration<SPDXLicense>(this, SPDXLicense.COIL_1_0, code);
9478      if ("Community-Spec-1.0".equals(codeString))
9479        return new Enumeration<SPDXLicense>(this, SPDXLicense.COMMUNITY_SPEC_1_0, code);
9480      if ("Condor-1.1".equals(codeString))
9481        return new Enumeration<SPDXLicense>(this, SPDXLicense.CONDOR_1_1, code);
9482      if ("copyleft-next-0.3.0".equals(codeString))
9483        return new Enumeration<SPDXLicense>(this, SPDXLicense.COPYLEFT_NEXT_0_3_0, code);
9484      if ("copyleft-next-0.3.1".equals(codeString))
9485        return new Enumeration<SPDXLicense>(this, SPDXLicense.COPYLEFT_NEXT_0_3_1, code);
9486      if ("Cornell-Lossless-JPEG".equals(codeString))
9487        return new Enumeration<SPDXLicense>(this, SPDXLicense.CORNELL_LOSSLESS_JPEG, code);
9488      if ("CPAL-1.0".equals(codeString))
9489        return new Enumeration<SPDXLicense>(this, SPDXLicense.CPAL_1_0, code);
9490      if ("CPL-1.0".equals(codeString))
9491        return new Enumeration<SPDXLicense>(this, SPDXLicense.CPL_1_0, code);
9492      if ("CPOL-1.02".equals(codeString))
9493        return new Enumeration<SPDXLicense>(this, SPDXLicense.CPOL_1_02, code);
9494      if ("Crossword".equals(codeString))
9495        return new Enumeration<SPDXLicense>(this, SPDXLicense.CROSSWORD, code);
9496      if ("CrystalStacker".equals(codeString))
9497        return new Enumeration<SPDXLicense>(this, SPDXLicense.CRYSTALSTACKER, code);
9498      if ("CUA-OPL-1.0".equals(codeString))
9499        return new Enumeration<SPDXLicense>(this, SPDXLicense.CUA_OPL_1_0, code);
9500      if ("Cube".equals(codeString))
9501        return new Enumeration<SPDXLicense>(this, SPDXLicense.CUBE, code);
9502      if ("curl".equals(codeString))
9503        return new Enumeration<SPDXLicense>(this, SPDXLicense.CURL, code);
9504      if ("D-FSL-1.0".equals(codeString))
9505        return new Enumeration<SPDXLicense>(this, SPDXLicense.D_FSL_1_0, code);
9506      if ("diffmark".equals(codeString))
9507        return new Enumeration<SPDXLicense>(this, SPDXLicense.DIFFMARK, code);
9508      if ("DL-DE-BY-2.0".equals(codeString))
9509        return new Enumeration<SPDXLicense>(this, SPDXLicense.DL_DE_BY_2_0, code);
9510      if ("DOC".equals(codeString))
9511        return new Enumeration<SPDXLicense>(this, SPDXLicense.DOC, code);
9512      if ("Dotseqn".equals(codeString))
9513        return new Enumeration<SPDXLicense>(this, SPDXLicense.DOTSEQN, code);
9514      if ("DRL-1.0".equals(codeString))
9515        return new Enumeration<SPDXLicense>(this, SPDXLicense.DRL_1_0, code);
9516      if ("DSDP".equals(codeString))
9517        return new Enumeration<SPDXLicense>(this, SPDXLicense.DSDP, code);
9518      if ("dtoa".equals(codeString))
9519        return new Enumeration<SPDXLicense>(this, SPDXLicense.DTOA, code);
9520      if ("dvipdfm".equals(codeString))
9521        return new Enumeration<SPDXLicense>(this, SPDXLicense.DVIPDFM, code);
9522      if ("ECL-1.0".equals(codeString))
9523        return new Enumeration<SPDXLicense>(this, SPDXLicense.ECL_1_0, code);
9524      if ("ECL-2.0".equals(codeString))
9525        return new Enumeration<SPDXLicense>(this, SPDXLicense.ECL_2_0, code);
9526      if ("eCos-2.0".equals(codeString))
9527        return new Enumeration<SPDXLicense>(this, SPDXLicense.ECOS_2_0, code);
9528      if ("EFL-1.0".equals(codeString))
9529        return new Enumeration<SPDXLicense>(this, SPDXLicense.EFL_1_0, code);
9530      if ("EFL-2.0".equals(codeString))
9531        return new Enumeration<SPDXLicense>(this, SPDXLicense.EFL_2_0, code);
9532      if ("eGenix".equals(codeString))
9533        return new Enumeration<SPDXLicense>(this, SPDXLicense.EGENIX, code);
9534      if ("Elastic-2.0".equals(codeString))
9535        return new Enumeration<SPDXLicense>(this, SPDXLicense.ELASTIC_2_0, code);
9536      if ("Entessa".equals(codeString))
9537        return new Enumeration<SPDXLicense>(this, SPDXLicense.ENTESSA, code);
9538      if ("EPICS".equals(codeString))
9539        return new Enumeration<SPDXLicense>(this, SPDXLicense.EPICS, code);
9540      if ("EPL-1.0".equals(codeString))
9541        return new Enumeration<SPDXLicense>(this, SPDXLicense.EPL_1_0, code);
9542      if ("EPL-2.0".equals(codeString))
9543        return new Enumeration<SPDXLicense>(this, SPDXLicense.EPL_2_0, code);
9544      if ("ErlPL-1.1".equals(codeString))
9545        return new Enumeration<SPDXLicense>(this, SPDXLicense.ERLPL_1_1, code);
9546      if ("etalab-2.0".equals(codeString))
9547        return new Enumeration<SPDXLicense>(this, SPDXLicense.ETALAB_2_0, code);
9548      if ("EUDatagrid".equals(codeString))
9549        return new Enumeration<SPDXLicense>(this, SPDXLicense.EUDATAGRID, code);
9550      if ("EUPL-1.0".equals(codeString))
9551        return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL_1_0, code);
9552      if ("EUPL-1.1".equals(codeString))
9553        return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL_1_1, code);
9554      if ("EUPL-1.2".equals(codeString))
9555        return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL_1_2, code);
9556      if ("Eurosym".equals(codeString))
9557        return new Enumeration<SPDXLicense>(this, SPDXLicense.EUROSYM, code);
9558      if ("Fair".equals(codeString))
9559        return new Enumeration<SPDXLicense>(this, SPDXLicense.FAIR, code);
9560      if ("FDK-AAC".equals(codeString))
9561        return new Enumeration<SPDXLicense>(this, SPDXLicense.FDK_AAC, code);
9562      if ("Frameworx-1.0".equals(codeString))
9563        return new Enumeration<SPDXLicense>(this, SPDXLicense.FRAMEWORX_1_0, code);
9564      if ("FreeBSD-DOC".equals(codeString))
9565        return new Enumeration<SPDXLicense>(this, SPDXLicense.FREEBSD_DOC, code);
9566      if ("FreeImage".equals(codeString))
9567        return new Enumeration<SPDXLicense>(this, SPDXLicense.FREEIMAGE, code);
9568      if ("FSFAP".equals(codeString))
9569        return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFAP, code);
9570      if ("FSFUL".equals(codeString))
9571        return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFUL, code);
9572      if ("FSFULLR".equals(codeString))
9573        return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFULLR, code);
9574      if ("FSFULLRWD".equals(codeString))
9575        return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFULLRWD, code);
9576      if ("FTL".equals(codeString))
9577        return new Enumeration<SPDXLicense>(this, SPDXLicense.FTL, code);
9578      if ("GD".equals(codeString))
9579        return new Enumeration<SPDXLicense>(this, SPDXLicense.GD, code);
9580      if ("GFDL-1.1".equals(codeString))
9581        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1, code);
9582      if ("GFDL-1.1-invariants-only".equals(codeString))
9583        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1_INVARIANTS_ONLY, code);
9584      if ("GFDL-1.1-invariants-or-later".equals(codeString))
9585        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1_INVARIANTS_OR_LATER, code);
9586      if ("GFDL-1.1-no-invariants-only".equals(codeString))
9587        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1_NO_INVARIANTS_ONLY, code);
9588      if ("GFDL-1.1-no-invariants-or-later".equals(codeString))
9589        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1_NO_INVARIANTS_OR_LATER, code);
9590      if ("GFDL-1.1-only".equals(codeString))
9591        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1_ONLY, code);
9592      if ("GFDL-1.1-or-later".equals(codeString))
9593        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_1_OR_LATER, code);
9594      if ("GFDL-1.2".equals(codeString))
9595        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2, code);
9596      if ("GFDL-1.2-invariants-only".equals(codeString))
9597        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2_INVARIANTS_ONLY, code);
9598      if ("GFDL-1.2-invariants-or-later".equals(codeString))
9599        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2_INVARIANTS_OR_LATER, code);
9600      if ("GFDL-1.2-no-invariants-only".equals(codeString))
9601        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2_NO_INVARIANTS_ONLY, code);
9602      if ("GFDL-1.2-no-invariants-or-later".equals(codeString))
9603        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2_NO_INVARIANTS_OR_LATER, code);
9604      if ("GFDL-1.2-only".equals(codeString))
9605        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2_ONLY, code);
9606      if ("GFDL-1.2-or-later".equals(codeString))
9607        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_2_OR_LATER, code);
9608      if ("GFDL-1.3".equals(codeString))
9609        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3, code);
9610      if ("GFDL-1.3-invariants-only".equals(codeString))
9611        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3_INVARIANTS_ONLY, code);
9612      if ("GFDL-1.3-invariants-or-later".equals(codeString))
9613        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3_INVARIANTS_OR_LATER, code);
9614      if ("GFDL-1.3-no-invariants-only".equals(codeString))
9615        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3_NO_INVARIANTS_ONLY, code);
9616      if ("GFDL-1.3-no-invariants-or-later".equals(codeString))
9617        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3_NO_INVARIANTS_OR_LATER, code);
9618      if ("GFDL-1.3-only".equals(codeString))
9619        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3_ONLY, code);
9620      if ("GFDL-1.3-or-later".equals(codeString))
9621        return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL_1_3_OR_LATER, code);
9622      if ("Giftware".equals(codeString))
9623        return new Enumeration<SPDXLicense>(this, SPDXLicense.GIFTWARE, code);
9624      if ("GL2PS".equals(codeString))
9625        return new Enumeration<SPDXLicense>(this, SPDXLicense.GL2PS, code);
9626      if ("Glide".equals(codeString))
9627        return new Enumeration<SPDXLicense>(this, SPDXLicense.GLIDE, code);
9628      if ("Glulxe".equals(codeString))
9629        return new Enumeration<SPDXLicense>(this, SPDXLicense.GLULXE, code);
9630      if ("GLWTPL".equals(codeString))
9631        return new Enumeration<SPDXLicense>(this, SPDXLicense.GLWTPL, code);
9632      if ("gnuplot".equals(codeString))
9633        return new Enumeration<SPDXLicense>(this, SPDXLicense.GNUPLOT, code);
9634      if ("GPL-1.0".equals(codeString))
9635        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_1_0, code);
9636      if ("GPL-1.0+".equals(codeString))
9637        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_1_0PLUS, code);
9638      if ("GPL-1.0-only".equals(codeString))
9639        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_1_0_ONLY, code);
9640      if ("GPL-1.0-or-later".equals(codeString))
9641        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_1_0_OR_LATER, code);
9642      if ("GPL-2.0".equals(codeString))
9643        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0, code);
9644      if ("GPL-2.0+".equals(codeString))
9645        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0PLUS, code);
9646      if ("GPL-2.0-only".equals(codeString))
9647        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_ONLY, code);
9648      if ("GPL-2.0-or-later".equals(codeString))
9649        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_OR_LATER, code);
9650      if ("GPL-2.0-with-autoconf-exception".equals(codeString))
9651        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_WITH_AUTOCONF_EXCEPTION, code);
9652      if ("GPL-2.0-with-bison-exception".equals(codeString))
9653        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_WITH_BISON_EXCEPTION, code);
9654      if ("GPL-2.0-with-classpath-exception".equals(codeString))
9655        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_WITH_CLASSPATH_EXCEPTION, code);
9656      if ("GPL-2.0-with-font-exception".equals(codeString))
9657        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_WITH_FONT_EXCEPTION, code);
9658      if ("GPL-2.0-with-GCC-exception".equals(codeString))
9659        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_2_0_WITH_GCC_EXCEPTION, code);
9660      if ("GPL-3.0".equals(codeString))
9661        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_3_0, code);
9662      if ("GPL-3.0+".equals(codeString))
9663        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_3_0PLUS, code);
9664      if ("GPL-3.0-only".equals(codeString))
9665        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_3_0_ONLY, code);
9666      if ("GPL-3.0-or-later".equals(codeString))
9667        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_3_0_OR_LATER, code);
9668      if ("GPL-3.0-with-autoconf-exception".equals(codeString))
9669        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_3_0_WITH_AUTOCONF_EXCEPTION, code);
9670      if ("GPL-3.0-with-GCC-exception".equals(codeString))
9671        return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL_3_0_WITH_GCC_EXCEPTION, code);
9672      if ("Graphics-Gems".equals(codeString))
9673        return new Enumeration<SPDXLicense>(this, SPDXLicense.GRAPHICS_GEMS, code);
9674      if ("gSOAP-1.3b".equals(codeString))
9675        return new Enumeration<SPDXLicense>(this, SPDXLicense.GSOAP_1_3B, code);
9676      if ("HaskellReport".equals(codeString))
9677        return new Enumeration<SPDXLicense>(this, SPDXLicense.HASKELLREPORT, code);
9678      if ("Hippocratic-2.1".equals(codeString))
9679        return new Enumeration<SPDXLicense>(this, SPDXLicense.HIPPOCRATIC_2_1, code);
9680      if ("HP-1986".equals(codeString))
9681        return new Enumeration<SPDXLicense>(this, SPDXLicense.HP_1986, code);
9682      if ("HPND".equals(codeString))
9683        return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND, code);
9684      if ("HPND-export-US".equals(codeString))
9685        return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND_EXPORT_US, code);
9686      if ("HPND-Markus-Kuhn".equals(codeString))
9687        return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND_MARKUS_KUHN, code);
9688      if ("HPND-sell-variant".equals(codeString))
9689        return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND_SELL_VARIANT, code);
9690      if ("HPND-sell-variant-MIT-disclaimer".equals(codeString))
9691        return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND_SELL_VARIANT_MIT_DISCLAIMER, code);
9692      if ("HTMLTIDY".equals(codeString))
9693        return new Enumeration<SPDXLicense>(this, SPDXLicense.HTMLTIDY, code);
9694      if ("IBM-pibs".equals(codeString))
9695        return new Enumeration<SPDXLicense>(this, SPDXLicense.IBM_PIBS, code);
9696      if ("ICU".equals(codeString))
9697        return new Enumeration<SPDXLicense>(this, SPDXLicense.ICU, code);
9698      if ("IEC-Code-Components-EULA".equals(codeString))
9699        return new Enumeration<SPDXLicense>(this, SPDXLicense.IEC_CODE_COMPONENTS_EULA, code);
9700      if ("IJG".equals(codeString))
9701        return new Enumeration<SPDXLicense>(this, SPDXLicense.IJG, code);
9702      if ("IJG-short".equals(codeString))
9703        return new Enumeration<SPDXLicense>(this, SPDXLicense.IJG_SHORT, code);
9704      if ("ImageMagick".equals(codeString))
9705        return new Enumeration<SPDXLicense>(this, SPDXLicense.IMAGEMAGICK, code);
9706      if ("iMatix".equals(codeString))
9707        return new Enumeration<SPDXLicense>(this, SPDXLicense.IMATIX, code);
9708      if ("Imlib2".equals(codeString))
9709        return new Enumeration<SPDXLicense>(this, SPDXLicense.IMLIB2, code);
9710      if ("Info-ZIP".equals(codeString))
9711        return new Enumeration<SPDXLicense>(this, SPDXLicense.INFO_ZIP, code);
9712      if ("Inner-Net-2.0".equals(codeString))
9713        return new Enumeration<SPDXLicense>(this, SPDXLicense.INNER_NET_2_0, code);
9714      if ("Intel".equals(codeString))
9715        return new Enumeration<SPDXLicense>(this, SPDXLicense.INTEL, code);
9716      if ("Intel-ACPI".equals(codeString))
9717        return new Enumeration<SPDXLicense>(this, SPDXLicense.INTEL_ACPI, code);
9718      if ("Interbase-1.0".equals(codeString))
9719        return new Enumeration<SPDXLicense>(this, SPDXLicense.INTERBASE_1_0, code);
9720      if ("IPA".equals(codeString))
9721        return new Enumeration<SPDXLicense>(this, SPDXLicense.IPA, code);
9722      if ("IPL-1.0".equals(codeString))
9723        return new Enumeration<SPDXLicense>(this, SPDXLicense.IPL_1_0, code);
9724      if ("ISC".equals(codeString))
9725        return new Enumeration<SPDXLicense>(this, SPDXLicense.ISC, code);
9726      if ("Jam".equals(codeString))
9727        return new Enumeration<SPDXLicense>(this, SPDXLicense.JAM, code);
9728      if ("JasPer-2.0".equals(codeString))
9729        return new Enumeration<SPDXLicense>(this, SPDXLicense.JASPER_2_0, code);
9730      if ("JPL-image".equals(codeString))
9731        return new Enumeration<SPDXLicense>(this, SPDXLicense.JPL_IMAGE, code);
9732      if ("JPNIC".equals(codeString))
9733        return new Enumeration<SPDXLicense>(this, SPDXLicense.JPNIC, code);
9734      if ("JSON".equals(codeString))
9735        return new Enumeration<SPDXLicense>(this, SPDXLicense.JSON, code);
9736      if ("Kazlib".equals(codeString))
9737        return new Enumeration<SPDXLicense>(this, SPDXLicense.KAZLIB, code);
9738      if ("Knuth-CTAN".equals(codeString))
9739        return new Enumeration<SPDXLicense>(this, SPDXLicense.KNUTH_CTAN, code);
9740      if ("LAL-1.2".equals(codeString))
9741        return new Enumeration<SPDXLicense>(this, SPDXLicense.LAL_1_2, code);
9742      if ("LAL-1.3".equals(codeString))
9743        return new Enumeration<SPDXLicense>(this, SPDXLicense.LAL_1_3, code);
9744      if ("Latex2e".equals(codeString))
9745        return new Enumeration<SPDXLicense>(this, SPDXLicense.LATEX2E, code);
9746      if ("Latex2e-translated-notice".equals(codeString))
9747        return new Enumeration<SPDXLicense>(this, SPDXLicense.LATEX2E_TRANSLATED_NOTICE, code);
9748      if ("Leptonica".equals(codeString))
9749        return new Enumeration<SPDXLicense>(this, SPDXLicense.LEPTONICA, code);
9750      if ("LGPL-2.0".equals(codeString))
9751        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_0, code);
9752      if ("LGPL-2.0+".equals(codeString))
9753        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_0PLUS, code);
9754      if ("LGPL-2.0-only".equals(codeString))
9755        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_0_ONLY, code);
9756      if ("LGPL-2.0-or-later".equals(codeString))
9757        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_0_OR_LATER, code);
9758      if ("LGPL-2.1".equals(codeString))
9759        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_1, code);
9760      if ("LGPL-2.1+".equals(codeString))
9761        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_1PLUS, code);
9762      if ("LGPL-2.1-only".equals(codeString))
9763        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_1_ONLY, code);
9764      if ("LGPL-2.1-or-later".equals(codeString))
9765        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_2_1_OR_LATER, code);
9766      if ("LGPL-3.0".equals(codeString))
9767        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_3_0, code);
9768      if ("LGPL-3.0+".equals(codeString))
9769        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_3_0PLUS, code);
9770      if ("LGPL-3.0-only".equals(codeString))
9771        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_3_0_ONLY, code);
9772      if ("LGPL-3.0-or-later".equals(codeString))
9773        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL_3_0_OR_LATER, code);
9774      if ("LGPLLR".equals(codeString))
9775        return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPLLR, code);
9776      if ("Libpng".equals(codeString))
9777        return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBPNG, code);
9778      if ("libpng-2.0".equals(codeString))
9779        return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBPNG_2_0, code);
9780      if ("libselinux-1.0".equals(codeString))
9781        return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBSELINUX_1_0, code);
9782      if ("libtiff".equals(codeString))
9783        return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBTIFF, code);
9784      if ("libutil-David-Nugent".equals(codeString))
9785        return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBUTIL_DAVID_NUGENT, code);
9786      if ("LiLiQ-P-1.1".equals(codeString))
9787        return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQ_P_1_1, code);
9788      if ("LiLiQ-R-1.1".equals(codeString))
9789        return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQ_R_1_1, code);
9790      if ("LiLiQ-Rplus-1.1".equals(codeString))
9791        return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQ_RPLUS_1_1, code);
9792      if ("Linux-man-pages-1-para".equals(codeString))
9793        return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUX_MAN_PAGES_1_PARA, code);
9794      if ("Linux-man-pages-copyleft".equals(codeString))
9795        return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUX_MAN_PAGES_COPYLEFT, code);
9796      if ("Linux-man-pages-copyleft-2-para".equals(codeString))
9797        return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUX_MAN_PAGES_COPYLEFT_2_PARA, code);
9798      if ("Linux-man-pages-copyleft-var".equals(codeString))
9799        return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUX_MAN_PAGES_COPYLEFT_VAR, code);
9800      if ("Linux-OpenIB".equals(codeString))
9801        return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUX_OPENIB, code);
9802      if ("LOOP".equals(codeString))
9803        return new Enumeration<SPDXLicense>(this, SPDXLicense.LOOP, code);
9804      if ("LPL-1.0".equals(codeString))
9805        return new Enumeration<SPDXLicense>(this, SPDXLicense.LPL_1_0, code);
9806      if ("LPL-1.02".equals(codeString))
9807        return new Enumeration<SPDXLicense>(this, SPDXLicense.LPL_1_02, code);
9808      if ("LPPL-1.0".equals(codeString))
9809        return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL_1_0, code);
9810      if ("LPPL-1.1".equals(codeString))
9811        return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL_1_1, code);
9812      if ("LPPL-1.2".equals(codeString))
9813        return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL_1_2, code);
9814      if ("LPPL-1.3a".equals(codeString))
9815        return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL_1_3A, code);
9816      if ("LPPL-1.3c".equals(codeString))
9817        return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL_1_3C, code);
9818      if ("LZMA-SDK-9.11-to-9.20".equals(codeString))
9819        return new Enumeration<SPDXLicense>(this, SPDXLicense.LZMA_SDK_9_11_TO_9_20, code);
9820      if ("LZMA-SDK-9.22".equals(codeString))
9821        return new Enumeration<SPDXLicense>(this, SPDXLicense.LZMA_SDK_9_22, code);
9822      if ("MakeIndex".equals(codeString))
9823        return new Enumeration<SPDXLicense>(this, SPDXLicense.MAKEINDEX, code);
9824      if ("Martin-Birgmeier".equals(codeString))
9825        return new Enumeration<SPDXLicense>(this, SPDXLicense.MARTIN_BIRGMEIER, code);
9826      if ("metamail".equals(codeString))
9827        return new Enumeration<SPDXLicense>(this, SPDXLicense.METAMAIL, code);
9828      if ("Minpack".equals(codeString))
9829        return new Enumeration<SPDXLicense>(this, SPDXLicense.MINPACK, code);
9830      if ("MirOS".equals(codeString))
9831        return new Enumeration<SPDXLicense>(this, SPDXLicense.MIROS, code);
9832      if ("MIT".equals(codeString))
9833        return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT, code);
9834      if ("MIT-0".equals(codeString))
9835        return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_0, code);
9836      if ("MIT-advertising".equals(codeString))
9837        return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_ADVERTISING, code);
9838      if ("MIT-CMU".equals(codeString))
9839        return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_CMU, code);
9840      if ("MIT-enna".equals(codeString))
9841        return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_ENNA, code);
9842      if ("MIT-feh".equals(codeString))
9843        return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_FEH, code);
9844      if ("MIT-Festival".equals(codeString))
9845        return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_FESTIVAL, code);
9846      if ("MIT-Modern-Variant".equals(codeString))
9847        return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_MODERN_VARIANT, code);
9848      if ("MIT-open-group".equals(codeString))
9849        return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_OPEN_GROUP, code);
9850      if ("MIT-Wu".equals(codeString))
9851        return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT_WU, code);
9852      if ("MITNFA".equals(codeString))
9853        return new Enumeration<SPDXLicense>(this, SPDXLicense.MITNFA, code);
9854      if ("Motosoto".equals(codeString))
9855        return new Enumeration<SPDXLicense>(this, SPDXLicense.MOTOSOTO, code);
9856      if ("mpi-permissive".equals(codeString))
9857        return new Enumeration<SPDXLicense>(this, SPDXLicense.MPI_PERMISSIVE, code);
9858      if ("mpich2".equals(codeString))
9859        return new Enumeration<SPDXLicense>(this, SPDXLicense.MPICH2, code);
9860      if ("MPL-1.0".equals(codeString))
9861        return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL_1_0, code);
9862      if ("MPL-1.1".equals(codeString))
9863        return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL_1_1, code);
9864      if ("MPL-2.0".equals(codeString))
9865        return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL_2_0, code);
9866      if ("MPL-2.0-no-copyleft-exception".equals(codeString))
9867        return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL_2_0_NO_COPYLEFT_EXCEPTION, code);
9868      if ("mplus".equals(codeString))
9869        return new Enumeration<SPDXLicense>(this, SPDXLicense.MPLUS, code);
9870      if ("MS-LPL".equals(codeString))
9871        return new Enumeration<SPDXLicense>(this, SPDXLicense.MS_LPL, code);
9872      if ("MS-PL".equals(codeString))
9873        return new Enumeration<SPDXLicense>(this, SPDXLicense.MS_PL, code);
9874      if ("MS-RL".equals(codeString))
9875        return new Enumeration<SPDXLicense>(this, SPDXLicense.MS_RL, code);
9876      if ("MTLL".equals(codeString))
9877        return new Enumeration<SPDXLicense>(this, SPDXLicense.MTLL, code);
9878      if ("MulanPSL-1.0".equals(codeString))
9879        return new Enumeration<SPDXLicense>(this, SPDXLicense.MULANPSL_1_0, code);
9880      if ("MulanPSL-2.0".equals(codeString))
9881        return new Enumeration<SPDXLicense>(this, SPDXLicense.MULANPSL_2_0, code);
9882      if ("Multics".equals(codeString))
9883        return new Enumeration<SPDXLicense>(this, SPDXLicense.MULTICS, code);
9884      if ("Mup".equals(codeString))
9885        return new Enumeration<SPDXLicense>(this, SPDXLicense.MUP, code);
9886      if ("NAIST-2003".equals(codeString))
9887        return new Enumeration<SPDXLicense>(this, SPDXLicense.NAIST_2003, code);
9888      if ("NASA-1.3".equals(codeString))
9889        return new Enumeration<SPDXLicense>(this, SPDXLicense.NASA_1_3, code);
9890      if ("Naumen".equals(codeString))
9891        return new Enumeration<SPDXLicense>(this, SPDXLicense.NAUMEN, code);
9892      if ("NBPL-1.0".equals(codeString))
9893        return new Enumeration<SPDXLicense>(this, SPDXLicense.NBPL_1_0, code);
9894      if ("NCGL-UK-2.0".equals(codeString))
9895        return new Enumeration<SPDXLicense>(this, SPDXLicense.NCGL_UK_2_0, code);
9896      if ("NCSA".equals(codeString))
9897        return new Enumeration<SPDXLicense>(this, SPDXLicense.NCSA, code);
9898      if ("Net-SNMP".equals(codeString))
9899        return new Enumeration<SPDXLicense>(this, SPDXLicense.NET_SNMP, code);
9900      if ("NetCDF".equals(codeString))
9901        return new Enumeration<SPDXLicense>(this, SPDXLicense.NETCDF, code);
9902      if ("Newsletr".equals(codeString))
9903        return new Enumeration<SPDXLicense>(this, SPDXLicense.NEWSLETR, code);
9904      if ("NGPL".equals(codeString))
9905        return new Enumeration<SPDXLicense>(this, SPDXLicense.NGPL, code);
9906      if ("NICTA-1.0".equals(codeString))
9907        return new Enumeration<SPDXLicense>(this, SPDXLicense.NICTA_1_0, code);
9908      if ("NIST-PD".equals(codeString))
9909        return new Enumeration<SPDXLicense>(this, SPDXLicense.NIST_PD, code);
9910      if ("NIST-PD-fallback".equals(codeString))
9911        return new Enumeration<SPDXLicense>(this, SPDXLicense.NIST_PD_FALLBACK, code);
9912      if ("NIST-Software".equals(codeString))
9913        return new Enumeration<SPDXLicense>(this, SPDXLicense.NIST_SOFTWARE, code);
9914      if ("NLOD-1.0".equals(codeString))
9915        return new Enumeration<SPDXLicense>(this, SPDXLicense.NLOD_1_0, code);
9916      if ("NLOD-2.0".equals(codeString))
9917        return new Enumeration<SPDXLicense>(this, SPDXLicense.NLOD_2_0, code);
9918      if ("NLPL".equals(codeString))
9919        return new Enumeration<SPDXLicense>(this, SPDXLicense.NLPL, code);
9920      if ("Nokia".equals(codeString))
9921        return new Enumeration<SPDXLicense>(this, SPDXLicense.NOKIA, code);
9922      if ("NOSL".equals(codeString))
9923        return new Enumeration<SPDXLicense>(this, SPDXLicense.NOSL, code);
9924      if ("not-open-source".equals(codeString))
9925        return new Enumeration<SPDXLicense>(this, SPDXLicense.NOT_OPEN_SOURCE, code);
9926      if ("Noweb".equals(codeString))
9927        return new Enumeration<SPDXLicense>(this, SPDXLicense.NOWEB, code);
9928      if ("NPL-1.0".equals(codeString))
9929        return new Enumeration<SPDXLicense>(this, SPDXLicense.NPL_1_0, code);
9930      if ("NPL-1.1".equals(codeString))
9931        return new Enumeration<SPDXLicense>(this, SPDXLicense.NPL_1_1, code);
9932      if ("NPOSL-3.0".equals(codeString))
9933        return new Enumeration<SPDXLicense>(this, SPDXLicense.NPOSL_3_0, code);
9934      if ("NRL".equals(codeString))
9935        return new Enumeration<SPDXLicense>(this, SPDXLicense.NRL, code);
9936      if ("NTP".equals(codeString))
9937        return new Enumeration<SPDXLicense>(this, SPDXLicense.NTP, code);
9938      if ("NTP-0".equals(codeString))
9939        return new Enumeration<SPDXLicense>(this, SPDXLicense.NTP_0, code);
9940      if ("Nunit".equals(codeString))
9941        return new Enumeration<SPDXLicense>(this, SPDXLicense.NUNIT, code);
9942      if ("O-UDA-1.0".equals(codeString))
9943        return new Enumeration<SPDXLicense>(this, SPDXLicense.O_UDA_1_0, code);
9944      if ("OCCT-PL".equals(codeString))
9945        return new Enumeration<SPDXLicense>(this, SPDXLicense.OCCT_PL, code);
9946      if ("OCLC-2.0".equals(codeString))
9947        return new Enumeration<SPDXLicense>(this, SPDXLicense.OCLC_2_0, code);
9948      if ("ODbL-1.0".equals(codeString))
9949        return new Enumeration<SPDXLicense>(this, SPDXLicense.ODBL_1_0, code);
9950      if ("ODC-By-1.0".equals(codeString))
9951        return new Enumeration<SPDXLicense>(this, SPDXLicense.ODC_BY_1_0, code);
9952      if ("OFFIS".equals(codeString))
9953        return new Enumeration<SPDXLicense>(this, SPDXLicense.OFFIS, code);
9954      if ("OFL-1.0".equals(codeString))
9955        return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL_1_0, code);
9956      if ("OFL-1.0-no-RFN".equals(codeString))
9957        return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL_1_0_NO_RFN, code);
9958      if ("OFL-1.0-RFN".equals(codeString))
9959        return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL_1_0_RFN, code);
9960      if ("OFL-1.1".equals(codeString))
9961        return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL_1_1, code);
9962      if ("OFL-1.1-no-RFN".equals(codeString))
9963        return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL_1_1_NO_RFN, code);
9964      if ("OFL-1.1-RFN".equals(codeString))
9965        return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL_1_1_RFN, code);
9966      if ("OGC-1.0".equals(codeString))
9967        return new Enumeration<SPDXLicense>(this, SPDXLicense.OGC_1_0, code);
9968      if ("OGDL-Taiwan-1.0".equals(codeString))
9969        return new Enumeration<SPDXLicense>(this, SPDXLicense.OGDL_TAIWAN_1_0, code);
9970      if ("OGL-Canada-2.0".equals(codeString))
9971        return new Enumeration<SPDXLicense>(this, SPDXLicense.OGL_CANADA_2_0, code);
9972      if ("OGL-UK-1.0".equals(codeString))
9973        return new Enumeration<SPDXLicense>(this, SPDXLicense.OGL_UK_1_0, code);
9974      if ("OGL-UK-2.0".equals(codeString))
9975        return new Enumeration<SPDXLicense>(this, SPDXLicense.OGL_UK_2_0, code);
9976      if ("OGL-UK-3.0".equals(codeString))
9977        return new Enumeration<SPDXLicense>(this, SPDXLicense.OGL_UK_3_0, code);
9978      if ("OGTSL".equals(codeString))
9979        return new Enumeration<SPDXLicense>(this, SPDXLicense.OGTSL, code);
9980      if ("OLDAP-1.1".equals(codeString))
9981        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_1_1, code);
9982      if ("OLDAP-1.2".equals(codeString))
9983        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_1_2, code);
9984      if ("OLDAP-1.3".equals(codeString))
9985        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_1_3, code);
9986      if ("OLDAP-1.4".equals(codeString))
9987        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_1_4, code);
9988      if ("OLDAP-2.0".equals(codeString))
9989        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_0, code);
9990      if ("OLDAP-2.0.1".equals(codeString))
9991        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_0_1, code);
9992      if ("OLDAP-2.1".equals(codeString))
9993        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_1, code);
9994      if ("OLDAP-2.2".equals(codeString))
9995        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_2, code);
9996      if ("OLDAP-2.2.1".equals(codeString))
9997        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_2_1, code);
9998      if ("OLDAP-2.2.2".equals(codeString))
9999        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_2_2, code);
10000      if ("OLDAP-2.3".equals(codeString))
10001        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_3, code);
10002      if ("OLDAP-2.4".equals(codeString))
10003        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_4, code);
10004      if ("OLDAP-2.5".equals(codeString))
10005        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_5, code);
10006      if ("OLDAP-2.6".equals(codeString))
10007        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_6, code);
10008      if ("OLDAP-2.7".equals(codeString))
10009        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_7, code);
10010      if ("OLDAP-2.8".equals(codeString))
10011        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP_2_8, code);
10012      if ("OLFL-1.3".equals(codeString))
10013        return new Enumeration<SPDXLicense>(this, SPDXLicense.OLFL_1_3, code);
10014      if ("OML".equals(codeString))
10015        return new Enumeration<SPDXLicense>(this, SPDXLicense.OML, code);
10016      if ("OpenPBS-2.3".equals(codeString))
10017        return new Enumeration<SPDXLicense>(this, SPDXLicense.OPENPBS_2_3, code);
10018      if ("OpenSSL".equals(codeString))
10019        return new Enumeration<SPDXLicense>(this, SPDXLicense.OPENSSL, code);
10020      if ("OPL-1.0".equals(codeString))
10021        return new Enumeration<SPDXLicense>(this, SPDXLicense.OPL_1_0, code);
10022      if ("OPL-UK-3.0".equals(codeString))
10023        return new Enumeration<SPDXLicense>(this, SPDXLicense.OPL_UK_3_0, code);
10024      if ("OPUBL-1.0".equals(codeString))
10025        return new Enumeration<SPDXLicense>(this, SPDXLicense.OPUBL_1_0, code);
10026      if ("OSET-PL-2.1".equals(codeString))
10027        return new Enumeration<SPDXLicense>(this, SPDXLicense.OSET_PL_2_1, code);
10028      if ("OSL-1.0".equals(codeString))
10029        return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL_1_0, code);
10030      if ("OSL-1.1".equals(codeString))
10031        return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL_1_1, code);
10032      if ("OSL-2.0".equals(codeString))
10033        return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL_2_0, code);
10034      if ("OSL-2.1".equals(codeString))
10035        return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL_2_1, code);
10036      if ("OSL-3.0".equals(codeString))
10037        return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL_3_0, code);
10038      if ("Parity-6.0.0".equals(codeString))
10039        return new Enumeration<SPDXLicense>(this, SPDXLicense.PARITY_6_0_0, code);
10040      if ("Parity-7.0.0".equals(codeString))
10041        return new Enumeration<SPDXLicense>(this, SPDXLicense.PARITY_7_0_0, code);
10042      if ("PDDL-1.0".equals(codeString))
10043        return new Enumeration<SPDXLicense>(this, SPDXLicense.PDDL_1_0, code);
10044      if ("PHP-3.0".equals(codeString))
10045        return new Enumeration<SPDXLicense>(this, SPDXLicense.PHP_3_0, code);
10046      if ("PHP-3.01".equals(codeString))
10047        return new Enumeration<SPDXLicense>(this, SPDXLicense.PHP_3_01, code);
10048      if ("Plexus".equals(codeString))
10049        return new Enumeration<SPDXLicense>(this, SPDXLicense.PLEXUS, code);
10050      if ("PolyForm-Noncommercial-1.0.0".equals(codeString))
10051        return new Enumeration<SPDXLicense>(this, SPDXLicense.POLYFORM_NONCOMMERCIAL_1_0_0, code);
10052      if ("PolyForm-Small-Business-1.0.0".equals(codeString))
10053        return new Enumeration<SPDXLicense>(this, SPDXLicense.POLYFORM_SMALL_BUSINESS_1_0_0, code);
10054      if ("PostgreSQL".equals(codeString))
10055        return new Enumeration<SPDXLicense>(this, SPDXLicense.POSTGRESQL, code);
10056      if ("PSF-2.0".equals(codeString))
10057        return new Enumeration<SPDXLicense>(this, SPDXLicense.PSF_2_0, code);
10058      if ("psfrag".equals(codeString))
10059        return new Enumeration<SPDXLicense>(this, SPDXLicense.PSFRAG, code);
10060      if ("psutils".equals(codeString))
10061        return new Enumeration<SPDXLicense>(this, SPDXLicense.PSUTILS, code);
10062      if ("Python-2.0".equals(codeString))
10063        return new Enumeration<SPDXLicense>(this, SPDXLicense.PYTHON_2_0, code);
10064      if ("Python-2.0.1".equals(codeString))
10065        return new Enumeration<SPDXLicense>(this, SPDXLicense.PYTHON_2_0_1, code);
10066      if ("Qhull".equals(codeString))
10067        return new Enumeration<SPDXLicense>(this, SPDXLicense.QHULL, code);
10068      if ("QPL-1.0".equals(codeString))
10069        return new Enumeration<SPDXLicense>(this, SPDXLicense.QPL_1_0, code);
10070      if ("QPL-1.0-INRIA-2004".equals(codeString))
10071        return new Enumeration<SPDXLicense>(this, SPDXLicense.QPL_1_0_INRIA_2004, code);
10072      if ("Rdisc".equals(codeString))
10073        return new Enumeration<SPDXLicense>(this, SPDXLicense.RDISC, code);
10074      if ("RHeCos-1.1".equals(codeString))
10075        return new Enumeration<SPDXLicense>(this, SPDXLicense.RHECOS_1_1, code);
10076      if ("RPL-1.1".equals(codeString))
10077        return new Enumeration<SPDXLicense>(this, SPDXLicense.RPL_1_1, code);
10078      if ("RPL-1.5".equals(codeString))
10079        return new Enumeration<SPDXLicense>(this, SPDXLicense.RPL_1_5, code);
10080      if ("RPSL-1.0".equals(codeString))
10081        return new Enumeration<SPDXLicense>(this, SPDXLicense.RPSL_1_0, code);
10082      if ("RSA-MD".equals(codeString))
10083        return new Enumeration<SPDXLicense>(this, SPDXLicense.RSA_MD, code);
10084      if ("RSCPL".equals(codeString))
10085        return new Enumeration<SPDXLicense>(this, SPDXLicense.RSCPL, code);
10086      if ("Ruby".equals(codeString))
10087        return new Enumeration<SPDXLicense>(this, SPDXLicense.RUBY, code);
10088      if ("SAX-PD".equals(codeString))
10089        return new Enumeration<SPDXLicense>(this, SPDXLicense.SAX_PD, code);
10090      if ("Saxpath".equals(codeString))
10091        return new Enumeration<SPDXLicense>(this, SPDXLicense.SAXPATH, code);
10092      if ("SCEA".equals(codeString))
10093        return new Enumeration<SPDXLicense>(this, SPDXLicense.SCEA, code);
10094      if ("SchemeReport".equals(codeString))
10095        return new Enumeration<SPDXLicense>(this, SPDXLicense.SCHEMEREPORT, code);
10096      if ("Sendmail".equals(codeString))
10097        return new Enumeration<SPDXLicense>(this, SPDXLicense.SENDMAIL, code);
10098      if ("Sendmail-8.23".equals(codeString))
10099        return new Enumeration<SPDXLicense>(this, SPDXLicense.SENDMAIL_8_23, code);
10100      if ("SGI-B-1.0".equals(codeString))
10101        return new Enumeration<SPDXLicense>(this, SPDXLicense.SGI_B_1_0, code);
10102      if ("SGI-B-1.1".equals(codeString))
10103        return new Enumeration<SPDXLicense>(this, SPDXLicense.SGI_B_1_1, code);
10104      if ("SGI-B-2.0".equals(codeString))
10105        return new Enumeration<SPDXLicense>(this, SPDXLicense.SGI_B_2_0, code);
10106      if ("SGP4".equals(codeString))
10107        return new Enumeration<SPDXLicense>(this, SPDXLicense.SGP4, code);
10108      if ("SHL-0.5".equals(codeString))
10109        return new Enumeration<SPDXLicense>(this, SPDXLicense.SHL_0_5, code);
10110      if ("SHL-0.51".equals(codeString))
10111        return new Enumeration<SPDXLicense>(this, SPDXLicense.SHL_0_51, code);
10112      if ("SimPL-2.0".equals(codeString))
10113        return new Enumeration<SPDXLicense>(this, SPDXLicense.SIMPL_2_0, code);
10114      if ("SISSL".equals(codeString))
10115        return new Enumeration<SPDXLicense>(this, SPDXLicense.SISSL, code);
10116      if ("SISSL-1.2".equals(codeString))
10117        return new Enumeration<SPDXLicense>(this, SPDXLicense.SISSL_1_2, code);
10118      if ("Sleepycat".equals(codeString))
10119        return new Enumeration<SPDXLicense>(this, SPDXLicense.SLEEPYCAT, code);
10120      if ("SMLNJ".equals(codeString))
10121        return new Enumeration<SPDXLicense>(this, SPDXLicense.SMLNJ, code);
10122      if ("SMPPL".equals(codeString))
10123        return new Enumeration<SPDXLicense>(this, SPDXLicense.SMPPL, code);
10124      if ("SNIA".equals(codeString))
10125        return new Enumeration<SPDXLicense>(this, SPDXLicense.SNIA, code);
10126      if ("snprintf".equals(codeString))
10127        return new Enumeration<SPDXLicense>(this, SPDXLicense.SNPRINTF, code);
10128      if ("Spencer-86".equals(codeString))
10129        return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER_86, code);
10130      if ("Spencer-94".equals(codeString))
10131        return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER_94, code);
10132      if ("Spencer-99".equals(codeString))
10133        return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER_99, code);
10134      if ("SPL-1.0".equals(codeString))
10135        return new Enumeration<SPDXLicense>(this, SPDXLicense.SPL_1_0, code);
10136      if ("SSH-OpenSSH".equals(codeString))
10137        return new Enumeration<SPDXLicense>(this, SPDXLicense.SSH_OPENSSH, code);
10138      if ("SSH-short".equals(codeString))
10139        return new Enumeration<SPDXLicense>(this, SPDXLicense.SSH_SHORT, code);
10140      if ("SSPL-1.0".equals(codeString))
10141        return new Enumeration<SPDXLicense>(this, SPDXLicense.SSPL_1_0, code);
10142      if ("StandardML-NJ".equals(codeString))
10143        return new Enumeration<SPDXLicense>(this, SPDXLicense.STANDARDML_NJ, code);
10144      if ("SugarCRM-1.1.3".equals(codeString))
10145        return new Enumeration<SPDXLicense>(this, SPDXLicense.SUGARCRM_1_1_3, code);
10146      if ("SunPro".equals(codeString))
10147        return new Enumeration<SPDXLicense>(this, SPDXLicense.SUNPRO, code);
10148      if ("SWL".equals(codeString))
10149        return new Enumeration<SPDXLicense>(this, SPDXLicense.SWL, code);
10150      if ("Symlinks".equals(codeString))
10151        return new Enumeration<SPDXLicense>(this, SPDXLicense.SYMLINKS, code);
10152      if ("TAPR-OHL-1.0".equals(codeString))
10153        return new Enumeration<SPDXLicense>(this, SPDXLicense.TAPR_OHL_1_0, code);
10154      if ("TCL".equals(codeString))
10155        return new Enumeration<SPDXLicense>(this, SPDXLicense.TCL, code);
10156      if ("TCP-wrappers".equals(codeString))
10157        return new Enumeration<SPDXLicense>(this, SPDXLicense.TCP_WRAPPERS, code);
10158      if ("TermReadKey".equals(codeString))
10159        return new Enumeration<SPDXLicense>(this, SPDXLicense.TERMREADKEY, code);
10160      if ("TMate".equals(codeString))
10161        return new Enumeration<SPDXLicense>(this, SPDXLicense.TMATE, code);
10162      if ("TORQUE-1.1".equals(codeString))
10163        return new Enumeration<SPDXLicense>(this, SPDXLicense.TORQUE_1_1, code);
10164      if ("TOSL".equals(codeString))
10165        return new Enumeration<SPDXLicense>(this, SPDXLicense.TOSL, code);
10166      if ("TPDL".equals(codeString))
10167        return new Enumeration<SPDXLicense>(this, SPDXLicense.TPDL, code);
10168      if ("TPL-1.0".equals(codeString))
10169        return new Enumeration<SPDXLicense>(this, SPDXLicense.TPL_1_0, code);
10170      if ("TTWL".equals(codeString))
10171        return new Enumeration<SPDXLicense>(this, SPDXLicense.TTWL, code);
10172      if ("TU-Berlin-1.0".equals(codeString))
10173        return new Enumeration<SPDXLicense>(this, SPDXLicense.TU_BERLIN_1_0, code);
10174      if ("TU-Berlin-2.0".equals(codeString))
10175        return new Enumeration<SPDXLicense>(this, SPDXLicense.TU_BERLIN_2_0, code);
10176      if ("UCAR".equals(codeString))
10177        return new Enumeration<SPDXLicense>(this, SPDXLicense.UCAR, code);
10178      if ("UCL-1.0".equals(codeString))
10179        return new Enumeration<SPDXLicense>(this, SPDXLicense.UCL_1_0, code);
10180      if ("Unicode-DFS-2015".equals(codeString))
10181        return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODE_DFS_2015, code);
10182      if ("Unicode-DFS-2016".equals(codeString))
10183        return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODE_DFS_2016, code);
10184      if ("Unicode-TOU".equals(codeString))
10185        return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODE_TOU, code);
10186      if ("UnixCrypt".equals(codeString))
10187        return new Enumeration<SPDXLicense>(this, SPDXLicense.UNIXCRYPT, code);
10188      if ("Unlicense".equals(codeString))
10189        return new Enumeration<SPDXLicense>(this, SPDXLicense.UNLICENSE, code);
10190      if ("UPL-1.0".equals(codeString))
10191        return new Enumeration<SPDXLicense>(this, SPDXLicense.UPL_1_0, code);
10192      if ("Vim".equals(codeString))
10193        return new Enumeration<SPDXLicense>(this, SPDXLicense.VIM, code);
10194      if ("VOSTROM".equals(codeString))
10195        return new Enumeration<SPDXLicense>(this, SPDXLicense.VOSTROM, code);
10196      if ("VSL-1.0".equals(codeString))
10197        return new Enumeration<SPDXLicense>(this, SPDXLicense.VSL_1_0, code);
10198      if ("W3C".equals(codeString))
10199        return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C, code);
10200      if ("W3C-19980720".equals(codeString))
10201        return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C_19980720, code);
10202      if ("W3C-20150513".equals(codeString))
10203        return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C_20150513, code);
10204      if ("w3m".equals(codeString))
10205        return new Enumeration<SPDXLicense>(this, SPDXLicense.W3M, code);
10206      if ("Watcom-1.0".equals(codeString))
10207        return new Enumeration<SPDXLicense>(this, SPDXLicense.WATCOM_1_0, code);
10208      if ("Widget-Workshop".equals(codeString))
10209        return new Enumeration<SPDXLicense>(this, SPDXLicense.WIDGET_WORKSHOP, code);
10210      if ("Wsuipa".equals(codeString))
10211        return new Enumeration<SPDXLicense>(this, SPDXLicense.WSUIPA, code);
10212      if ("WTFPL".equals(codeString))
10213        return new Enumeration<SPDXLicense>(this, SPDXLicense.WTFPL, code);
10214      if ("wxWindows".equals(codeString))
10215        return new Enumeration<SPDXLicense>(this, SPDXLicense.WXWINDOWS, code);
10216      if ("X11".equals(codeString))
10217        return new Enumeration<SPDXLicense>(this, SPDXLicense.X11, code);
10218      if ("X11-distribute-modifications-variant".equals(codeString))
10219        return new Enumeration<SPDXLicense>(this, SPDXLicense.X11_DISTRIBUTE_MODIFICATIONS_VARIANT, code);
10220      if ("Xdebug-1.03".equals(codeString))
10221        return new Enumeration<SPDXLicense>(this, SPDXLicense.XDEBUG_1_03, code);
10222      if ("Xerox".equals(codeString))
10223        return new Enumeration<SPDXLicense>(this, SPDXLicense.XEROX, code);
10224      if ("Xfig".equals(codeString))
10225        return new Enumeration<SPDXLicense>(this, SPDXLicense.XFIG, code);
10226      if ("XFree86-1.1".equals(codeString))
10227        return new Enumeration<SPDXLicense>(this, SPDXLicense.XFREE86_1_1, code);
10228      if ("xinetd".equals(codeString))
10229        return new Enumeration<SPDXLicense>(this, SPDXLicense.XINETD, code);
10230      if ("xlock".equals(codeString))
10231        return new Enumeration<SPDXLicense>(this, SPDXLicense.XLOCK, code);
10232      if ("Xnet".equals(codeString))
10233        return new Enumeration<SPDXLicense>(this, SPDXLicense.XNET, code);
10234      if ("xpp".equals(codeString))
10235        return new Enumeration<SPDXLicense>(this, SPDXLicense.XPP, code);
10236      if ("XSkat".equals(codeString))
10237        return new Enumeration<SPDXLicense>(this, SPDXLicense.XSKAT, code);
10238      if ("YPL-1.0".equals(codeString))
10239        return new Enumeration<SPDXLicense>(this, SPDXLicense.YPL_1_0, code);
10240      if ("YPL-1.1".equals(codeString))
10241        return new Enumeration<SPDXLicense>(this, SPDXLicense.YPL_1_1, code);
10242      if ("Zed".equals(codeString))
10243        return new Enumeration<SPDXLicense>(this, SPDXLicense.ZED, code);
10244      if ("Zend-2.0".equals(codeString))
10245        return new Enumeration<SPDXLicense>(this, SPDXLicense.ZEND_2_0, code);
10246      if ("Zimbra-1.3".equals(codeString))
10247        return new Enumeration<SPDXLicense>(this, SPDXLicense.ZIMBRA_1_3, code);
10248      if ("Zimbra-1.4".equals(codeString))
10249        return new Enumeration<SPDXLicense>(this, SPDXLicense.ZIMBRA_1_4, code);
10250      if ("Zlib".equals(codeString))
10251        return new Enumeration<SPDXLicense>(this, SPDXLicense.ZLIB, code);
10252      if ("zlib-acknowledgement".equals(codeString))
10253        return new Enumeration<SPDXLicense>(this, SPDXLicense.ZLIB_ACKNOWLEDGEMENT, code);
10254      if ("ZPL-1.1".equals(codeString))
10255        return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL_1_1, code);
10256      if ("ZPL-2.0".equals(codeString))
10257        return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL_2_0, code);
10258      if ("ZPL-2.1".equals(codeString))
10259        return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL_2_1, code);
10260      throw new FHIRException("Unknown SPDXLicense code '" + codeString + "'");
10261    }
10262
10263    public String toCode(SPDXLicense code) {
10264      if (code == SPDXLicense._0BSD)
10265        return "0BSD";
10266      if (code == SPDXLicense.AAL)
10267        return "AAL";
10268      if (code == SPDXLicense.ABSTYLES)
10269        return "Abstyles";
10270      if (code == SPDXLicense.ADACORE_DOC)
10271        return "AdaCore-doc";
10272      if (code == SPDXLicense.ADOBE_2006)
10273        return "Adobe-2006";
10274      if (code == SPDXLicense.ADOBE_GLYPH)
10275        return "Adobe-Glyph";
10276      if (code == SPDXLicense.ADSL)
10277        return "ADSL";
10278      if (code == SPDXLicense.AFL_1_1)
10279        return "AFL-1.1";
10280      if (code == SPDXLicense.AFL_1_2)
10281        return "AFL-1.2";
10282      if (code == SPDXLicense.AFL_2_0)
10283        return "AFL-2.0";
10284      if (code == SPDXLicense.AFL_2_1)
10285        return "AFL-2.1";
10286      if (code == SPDXLicense.AFL_3_0)
10287        return "AFL-3.0";
10288      if (code == SPDXLicense.AFMPARSE)
10289        return "Afmparse";
10290      if (code == SPDXLicense.AGPL_1_0)
10291        return "AGPL-1.0";
10292      if (code == SPDXLicense.AGPL_1_0_ONLY)
10293        return "AGPL-1.0-only";
10294      if (code == SPDXLicense.AGPL_1_0_OR_LATER)
10295        return "AGPL-1.0-or-later";
10296      if (code == SPDXLicense.AGPL_3_0)
10297        return "AGPL-3.0";
10298      if (code == SPDXLicense.AGPL_3_0_ONLY)
10299        return "AGPL-3.0-only";
10300      if (code == SPDXLicense.AGPL_3_0_OR_LATER)
10301        return "AGPL-3.0-or-later";
10302      if (code == SPDXLicense.ALADDIN)
10303        return "Aladdin";
10304      if (code == SPDXLicense.AMDPLPA)
10305        return "AMDPLPA";
10306      if (code == SPDXLicense.AML)
10307        return "AML";
10308      if (code == SPDXLicense.AMPAS)
10309        return "AMPAS";
10310      if (code == SPDXLicense.ANTLR_PD)
10311        return "ANTLR-PD";
10312      if (code == SPDXLicense.ANTLR_PD_FALLBACK)
10313        return "ANTLR-PD-fallback";
10314      if (code == SPDXLicense.APACHE_1_0)
10315        return "Apache-1.0";
10316      if (code == SPDXLicense.APACHE_1_1)
10317        return "Apache-1.1";
10318      if (code == SPDXLicense.APACHE_2_0)
10319        return "Apache-2.0";
10320      if (code == SPDXLicense.APAFML)
10321        return "APAFML";
10322      if (code == SPDXLicense.APL_1_0)
10323        return "APL-1.0";
10324      if (code == SPDXLicense.APP_S2P)
10325        return "App-s2p";
10326      if (code == SPDXLicense.APSL_1_0)
10327        return "APSL-1.0";
10328      if (code == SPDXLicense.APSL_1_1)
10329        return "APSL-1.1";
10330      if (code == SPDXLicense.APSL_1_2)
10331        return "APSL-1.2";
10332      if (code == SPDXLicense.APSL_2_0)
10333        return "APSL-2.0";
10334      if (code == SPDXLicense.ARPHIC_1999)
10335        return "Arphic-1999";
10336      if (code == SPDXLicense.ARTISTIC_1_0)
10337        return "Artistic-1.0";
10338      if (code == SPDXLicense.ARTISTIC_1_0_CL8)
10339        return "Artistic-1.0-cl8";
10340      if (code == SPDXLicense.ARTISTIC_1_0_PERL)
10341        return "Artistic-1.0-Perl";
10342      if (code == SPDXLicense.ARTISTIC_2_0)
10343        return "Artistic-2.0";
10344      if (code == SPDXLicense.ASWF_DIGITAL_ASSETS_1_0)
10345        return "ASWF-Digital-Assets-1.0";
10346      if (code == SPDXLicense.ASWF_DIGITAL_ASSETS_1_1)
10347        return "ASWF-Digital-Assets-1.1";
10348      if (code == SPDXLicense.BAEKMUK)
10349        return "Baekmuk";
10350      if (code == SPDXLicense.BAHYPH)
10351        return "Bahyph";
10352      if (code == SPDXLicense.BARR)
10353        return "Barr";
10354      if (code == SPDXLicense.BEERWARE)
10355        return "Beerware";
10356      if (code == SPDXLicense.BITSTREAM_CHARTER)
10357        return "Bitstream-Charter";
10358      if (code == SPDXLicense.BITSTREAM_VERA)
10359        return "Bitstream-Vera";
10360      if (code == SPDXLicense.BITTORRENT_1_0)
10361        return "BitTorrent-1.0";
10362      if (code == SPDXLicense.BITTORRENT_1_1)
10363        return "BitTorrent-1.1";
10364      if (code == SPDXLicense.BLESSING)
10365        return "blessing";
10366      if (code == SPDXLicense.BLUEOAK_1_0_0)
10367        return "BlueOak-1.0.0";
10368      if (code == SPDXLicense.BOEHM_GC)
10369        return "Boehm-GC";
10370      if (code == SPDXLicense.BORCEUX)
10371        return "Borceux";
10372      if (code == SPDXLicense.BRIAN_GLADMAN_3_CLAUSE)
10373        return "Brian-Gladman-3-Clause";
10374      if (code == SPDXLicense.BSD_1_CLAUSE)
10375        return "BSD-1-Clause";
10376      if (code == SPDXLicense.BSD_2_CLAUSE)
10377        return "BSD-2-Clause";
10378      if (code == SPDXLicense.BSD_2_CLAUSE_FREEBSD)
10379        return "BSD-2-Clause-FreeBSD";
10380      if (code == SPDXLicense.BSD_2_CLAUSE_NETBSD)
10381        return "BSD-2-Clause-NetBSD";
10382      if (code == SPDXLicense.BSD_2_CLAUSE_PATENT)
10383        return "BSD-2-Clause-Patent";
10384      if (code == SPDXLicense.BSD_2_CLAUSE_VIEWS)
10385        return "BSD-2-Clause-Views";
10386      if (code == SPDXLicense.BSD_3_CLAUSE)
10387        return "BSD-3-Clause";
10388      if (code == SPDXLicense.BSD_3_CLAUSE_ATTRIBUTION)
10389        return "BSD-3-Clause-Attribution";
10390      if (code == SPDXLicense.BSD_3_CLAUSE_CLEAR)
10391        return "BSD-3-Clause-Clear";
10392      if (code == SPDXLicense.BSD_3_CLAUSE_LBNL)
10393        return "BSD-3-Clause-LBNL";
10394      if (code == SPDXLicense.BSD_3_CLAUSE_MODIFICATION)
10395        return "BSD-3-Clause-Modification";
10396      if (code == SPDXLicense.BSD_3_CLAUSE_NO_MILITARY_LICENSE)
10397        return "BSD-3-Clause-No-Military-License";
10398      if (code == SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_LICENSE)
10399        return "BSD-3-Clause-No-Nuclear-License";
10400      if (code == SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_LICENSE_2014)
10401        return "BSD-3-Clause-No-Nuclear-License-2014";
10402      if (code == SPDXLicense.BSD_3_CLAUSE_NO_NUCLEAR_WARRANTY)
10403        return "BSD-3-Clause-No-Nuclear-Warranty";
10404      if (code == SPDXLicense.BSD_3_CLAUSE_OPEN_MPI)
10405        return "BSD-3-Clause-Open-MPI";
10406      if (code == SPDXLicense.BSD_4_CLAUSE)
10407        return "BSD-4-Clause";
10408      if (code == SPDXLicense.BSD_4_CLAUSE_SHORTENED)
10409        return "BSD-4-Clause-Shortened";
10410      if (code == SPDXLicense.BSD_4_CLAUSE_UC)
10411        return "BSD-4-Clause-UC";
10412      if (code == SPDXLicense.BSD_4_3RENO)
10413        return "BSD-4.3RENO";
10414      if (code == SPDXLicense.BSD_4_3TAHOE)
10415        return "BSD-4.3TAHOE";
10416      if (code == SPDXLicense.BSD_ADVERTISING_ACKNOWLEDGEMENT)
10417        return "BSD-Advertising-Acknowledgement";
10418      if (code == SPDXLicense.BSD_ATTRIBUTION_HPND_DISCLAIMER)
10419        return "BSD-Attribution-HPND-disclaimer";
10420      if (code == SPDXLicense.BSD_PROTECTION)
10421        return "BSD-Protection";
10422      if (code == SPDXLicense.BSD_SOURCE_CODE)
10423        return "BSD-Source-Code";
10424      if (code == SPDXLicense.BSL_1_0)
10425        return "BSL-1.0";
10426      if (code == SPDXLicense.BUSL_1_1)
10427        return "BUSL-1.1";
10428      if (code == SPDXLicense.BZIP2_1_0_5)
10429        return "bzip2-1.0.5";
10430      if (code == SPDXLicense.BZIP2_1_0_6)
10431        return "bzip2-1.0.6";
10432      if (code == SPDXLicense.C_UDA_1_0)
10433        return "C-UDA-1.0";
10434      if (code == SPDXLicense.CAL_1_0)
10435        return "CAL-1.0";
10436      if (code == SPDXLicense.CAL_1_0_COMBINED_WORK_EXCEPTION)
10437        return "CAL-1.0-Combined-Work-Exception";
10438      if (code == SPDXLicense.CALDERA)
10439        return "Caldera";
10440      if (code == SPDXLicense.CATOSL_1_1)
10441        return "CATOSL-1.1";
10442      if (code == SPDXLicense.CC_BY_1_0)
10443        return "CC-BY-1.0";
10444      if (code == SPDXLicense.CC_BY_2_0)
10445        return "CC-BY-2.0";
10446      if (code == SPDXLicense.CC_BY_2_5)
10447        return "CC-BY-2.5";
10448      if (code == SPDXLicense.CC_BY_2_5_AU)
10449        return "CC-BY-2.5-AU";
10450      if (code == SPDXLicense.CC_BY_3_0)
10451        return "CC-BY-3.0";
10452      if (code == SPDXLicense.CC_BY_3_0_AT)
10453        return "CC-BY-3.0-AT";
10454      if (code == SPDXLicense.CC_BY_3_0_DE)
10455        return "CC-BY-3.0-DE";
10456      if (code == SPDXLicense.CC_BY_3_0_IGO)
10457        return "CC-BY-3.0-IGO";
10458      if (code == SPDXLicense.CC_BY_3_0_NL)
10459        return "CC-BY-3.0-NL";
10460      if (code == SPDXLicense.CC_BY_3_0_US)
10461        return "CC-BY-3.0-US";
10462      if (code == SPDXLicense.CC_BY_4_0)
10463        return "CC-BY-4.0";
10464      if (code == SPDXLicense.CC_BY_NC_1_0)
10465        return "CC-BY-NC-1.0";
10466      if (code == SPDXLicense.CC_BY_NC_2_0)
10467        return "CC-BY-NC-2.0";
10468      if (code == SPDXLicense.CC_BY_NC_2_5)
10469        return "CC-BY-NC-2.5";
10470      if (code == SPDXLicense.CC_BY_NC_3_0)
10471        return "CC-BY-NC-3.0";
10472      if (code == SPDXLicense.CC_BY_NC_3_0_DE)
10473        return "CC-BY-NC-3.0-DE";
10474      if (code == SPDXLicense.CC_BY_NC_4_0)
10475        return "CC-BY-NC-4.0";
10476      if (code == SPDXLicense.CC_BY_NC_ND_1_0)
10477        return "CC-BY-NC-ND-1.0";
10478      if (code == SPDXLicense.CC_BY_NC_ND_2_0)
10479        return "CC-BY-NC-ND-2.0";
10480      if (code == SPDXLicense.CC_BY_NC_ND_2_5)
10481        return "CC-BY-NC-ND-2.5";
10482      if (code == SPDXLicense.CC_BY_NC_ND_3_0)
10483        return "CC-BY-NC-ND-3.0";
10484      if (code == SPDXLicense.CC_BY_NC_ND_3_0_DE)
10485        return "CC-BY-NC-ND-3.0-DE";
10486      if (code == SPDXLicense.CC_BY_NC_ND_3_0_IGO)
10487        return "CC-BY-NC-ND-3.0-IGO";
10488      if (code == SPDXLicense.CC_BY_NC_ND_4_0)
10489        return "CC-BY-NC-ND-4.0";
10490      if (code == SPDXLicense.CC_BY_NC_SA_1_0)
10491        return "CC-BY-NC-SA-1.0";
10492      if (code == SPDXLicense.CC_BY_NC_SA_2_0)
10493        return "CC-BY-NC-SA-2.0";
10494      if (code == SPDXLicense.CC_BY_NC_SA_2_0_DE)
10495        return "CC-BY-NC-SA-2.0-DE";
10496      if (code == SPDXLicense.CC_BY_NC_SA_2_0_FR)
10497        return "CC-BY-NC-SA-2.0-FR";
10498      if (code == SPDXLicense.CC_BY_NC_SA_2_0_UK)
10499        return "CC-BY-NC-SA-2.0-UK";
10500      if (code == SPDXLicense.CC_BY_NC_SA_2_5)
10501        return "CC-BY-NC-SA-2.5";
10502      if (code == SPDXLicense.CC_BY_NC_SA_3_0)
10503        return "CC-BY-NC-SA-3.0";
10504      if (code == SPDXLicense.CC_BY_NC_SA_3_0_DE)
10505        return "CC-BY-NC-SA-3.0-DE";
10506      if (code == SPDXLicense.CC_BY_NC_SA_3_0_IGO)
10507        return "CC-BY-NC-SA-3.0-IGO";
10508      if (code == SPDXLicense.CC_BY_NC_SA_4_0)
10509        return "CC-BY-NC-SA-4.0";
10510      if (code == SPDXLicense.CC_BY_ND_1_0)
10511        return "CC-BY-ND-1.0";
10512      if (code == SPDXLicense.CC_BY_ND_2_0)
10513        return "CC-BY-ND-2.0";
10514      if (code == SPDXLicense.CC_BY_ND_2_5)
10515        return "CC-BY-ND-2.5";
10516      if (code == SPDXLicense.CC_BY_ND_3_0)
10517        return "CC-BY-ND-3.0";
10518      if (code == SPDXLicense.CC_BY_ND_3_0_DE)
10519        return "CC-BY-ND-3.0-DE";
10520      if (code == SPDXLicense.CC_BY_ND_4_0)
10521        return "CC-BY-ND-4.0";
10522      if (code == SPDXLicense.CC_BY_SA_1_0)
10523        return "CC-BY-SA-1.0";
10524      if (code == SPDXLicense.CC_BY_SA_2_0)
10525        return "CC-BY-SA-2.0";
10526      if (code == SPDXLicense.CC_BY_SA_2_0_UK)
10527        return "CC-BY-SA-2.0-UK";
10528      if (code == SPDXLicense.CC_BY_SA_2_1_JP)
10529        return "CC-BY-SA-2.1-JP";
10530      if (code == SPDXLicense.CC_BY_SA_2_5)
10531        return "CC-BY-SA-2.5";
10532      if (code == SPDXLicense.CC_BY_SA_3_0)
10533        return "CC-BY-SA-3.0";
10534      if (code == SPDXLicense.CC_BY_SA_3_0_AT)
10535        return "CC-BY-SA-3.0-AT";
10536      if (code == SPDXLicense.CC_BY_SA_3_0_DE)
10537        return "CC-BY-SA-3.0-DE";
10538      if (code == SPDXLicense.CC_BY_SA_3_0_IGO)
10539        return "CC-BY-SA-3.0-IGO";
10540      if (code == SPDXLicense.CC_BY_SA_4_0)
10541        return "CC-BY-SA-4.0";
10542      if (code == SPDXLicense.CC_PDDC)
10543        return "CC-PDDC";
10544      if (code == SPDXLicense.CC0_1_0)
10545        return "CC0-1.0";
10546      if (code == SPDXLicense.CDDL_1_0)
10547        return "CDDL-1.0";
10548      if (code == SPDXLicense.CDDL_1_1)
10549        return "CDDL-1.1";
10550      if (code == SPDXLicense.CDL_1_0)
10551        return "CDL-1.0";
10552      if (code == SPDXLicense.CDLA_PERMISSIVE_1_0)
10553        return "CDLA-Permissive-1.0";
10554      if (code == SPDXLicense.CDLA_PERMISSIVE_2_0)
10555        return "CDLA-Permissive-2.0";
10556      if (code == SPDXLicense.CDLA_SHARING_1_0)
10557        return "CDLA-Sharing-1.0";
10558      if (code == SPDXLicense.CECILL_1_0)
10559        return "CECILL-1.0";
10560      if (code == SPDXLicense.CECILL_1_1)
10561        return "CECILL-1.1";
10562      if (code == SPDXLicense.CECILL_2_0)
10563        return "CECILL-2.0";
10564      if (code == SPDXLicense.CECILL_2_1)
10565        return "CECILL-2.1";
10566      if (code == SPDXLicense.CECILL_B)
10567        return "CECILL-B";
10568      if (code == SPDXLicense.CECILL_C)
10569        return "CECILL-C";
10570      if (code == SPDXLicense.CERN_OHL_1_1)
10571        return "CERN-OHL-1.1";
10572      if (code == SPDXLicense.CERN_OHL_1_2)
10573        return "CERN-OHL-1.2";
10574      if (code == SPDXLicense.CERN_OHL_P_2_0)
10575        return "CERN-OHL-P-2.0";
10576      if (code == SPDXLicense.CERN_OHL_S_2_0)
10577        return "CERN-OHL-S-2.0";
10578      if (code == SPDXLicense.CERN_OHL_W_2_0)
10579        return "CERN-OHL-W-2.0";
10580      if (code == SPDXLicense.CFITSIO)
10581        return "CFITSIO";
10582      if (code == SPDXLicense.CHECKMK)
10583        return "checkmk";
10584      if (code == SPDXLicense.CLARTISTIC)
10585        return "ClArtistic";
10586      if (code == SPDXLicense.CLIPS)
10587        return "Clips";
10588      if (code == SPDXLicense.CMU_MACH)
10589        return "CMU-Mach";
10590      if (code == SPDXLicense.CNRI_JYTHON)
10591        return "CNRI-Jython";
10592      if (code == SPDXLicense.CNRI_PYTHON)
10593        return "CNRI-Python";
10594      if (code == SPDXLicense.CNRI_PYTHON_GPL_COMPATIBLE)
10595        return "CNRI-Python-GPL-Compatible";
10596      if (code == SPDXLicense.COIL_1_0)
10597        return "COIL-1.0";
10598      if (code == SPDXLicense.COMMUNITY_SPEC_1_0)
10599        return "Community-Spec-1.0";
10600      if (code == SPDXLicense.CONDOR_1_1)
10601        return "Condor-1.1";
10602      if (code == SPDXLicense.COPYLEFT_NEXT_0_3_0)
10603        return "copyleft-next-0.3.0";
10604      if (code == SPDXLicense.COPYLEFT_NEXT_0_3_1)
10605        return "copyleft-next-0.3.1";
10606      if (code == SPDXLicense.CORNELL_LOSSLESS_JPEG)
10607        return "Cornell-Lossless-JPEG";
10608      if (code == SPDXLicense.CPAL_1_0)
10609        return "CPAL-1.0";
10610      if (code == SPDXLicense.CPL_1_0)
10611        return "CPL-1.0";
10612      if (code == SPDXLicense.CPOL_1_02)
10613        return "CPOL-1.02";
10614      if (code == SPDXLicense.CROSSWORD)
10615        return "Crossword";
10616      if (code == SPDXLicense.CRYSTALSTACKER)
10617        return "CrystalStacker";
10618      if (code == SPDXLicense.CUA_OPL_1_0)
10619        return "CUA-OPL-1.0";
10620      if (code == SPDXLicense.CUBE)
10621        return "Cube";
10622      if (code == SPDXLicense.CURL)
10623        return "curl";
10624      if (code == SPDXLicense.D_FSL_1_0)
10625        return "D-FSL-1.0";
10626      if (code == SPDXLicense.DIFFMARK)
10627        return "diffmark";
10628      if (code == SPDXLicense.DL_DE_BY_2_0)
10629        return "DL-DE-BY-2.0";
10630      if (code == SPDXLicense.DOC)
10631        return "DOC";
10632      if (code == SPDXLicense.DOTSEQN)
10633        return "Dotseqn";
10634      if (code == SPDXLicense.DRL_1_0)
10635        return "DRL-1.0";
10636      if (code == SPDXLicense.DSDP)
10637        return "DSDP";
10638      if (code == SPDXLicense.DTOA)
10639        return "dtoa";
10640      if (code == SPDXLicense.DVIPDFM)
10641        return "dvipdfm";
10642      if (code == SPDXLicense.ECL_1_0)
10643        return "ECL-1.0";
10644      if (code == SPDXLicense.ECL_2_0)
10645        return "ECL-2.0";
10646      if (code == SPDXLicense.ECOS_2_0)
10647        return "eCos-2.0";
10648      if (code == SPDXLicense.EFL_1_0)
10649        return "EFL-1.0";
10650      if (code == SPDXLicense.EFL_2_0)
10651        return "EFL-2.0";
10652      if (code == SPDXLicense.EGENIX)
10653        return "eGenix";
10654      if (code == SPDXLicense.ELASTIC_2_0)
10655        return "Elastic-2.0";
10656      if (code == SPDXLicense.ENTESSA)
10657        return "Entessa";
10658      if (code == SPDXLicense.EPICS)
10659        return "EPICS";
10660      if (code == SPDXLicense.EPL_1_0)
10661        return "EPL-1.0";
10662      if (code == SPDXLicense.EPL_2_0)
10663        return "EPL-2.0";
10664      if (code == SPDXLicense.ERLPL_1_1)
10665        return "ErlPL-1.1";
10666      if (code == SPDXLicense.ETALAB_2_0)
10667        return "etalab-2.0";
10668      if (code == SPDXLicense.EUDATAGRID)
10669        return "EUDatagrid";
10670      if (code == SPDXLicense.EUPL_1_0)
10671        return "EUPL-1.0";
10672      if (code == SPDXLicense.EUPL_1_1)
10673        return "EUPL-1.1";
10674      if (code == SPDXLicense.EUPL_1_2)
10675        return "EUPL-1.2";
10676      if (code == SPDXLicense.EUROSYM)
10677        return "Eurosym";
10678      if (code == SPDXLicense.FAIR)
10679        return "Fair";
10680      if (code == SPDXLicense.FDK_AAC)
10681        return "FDK-AAC";
10682      if (code == SPDXLicense.FRAMEWORX_1_0)
10683        return "Frameworx-1.0";
10684      if (code == SPDXLicense.FREEBSD_DOC)
10685        return "FreeBSD-DOC";
10686      if (code == SPDXLicense.FREEIMAGE)
10687        return "FreeImage";
10688      if (code == SPDXLicense.FSFAP)
10689        return "FSFAP";
10690      if (code == SPDXLicense.FSFUL)
10691        return "FSFUL";
10692      if (code == SPDXLicense.FSFULLR)
10693        return "FSFULLR";
10694      if (code == SPDXLicense.FSFULLRWD)
10695        return "FSFULLRWD";
10696      if (code == SPDXLicense.FTL)
10697        return "FTL";
10698      if (code == SPDXLicense.GD)
10699        return "GD";
10700      if (code == SPDXLicense.GFDL_1_1)
10701        return "GFDL-1.1";
10702      if (code == SPDXLicense.GFDL_1_1_INVARIANTS_ONLY)
10703        return "GFDL-1.1-invariants-only";
10704      if (code == SPDXLicense.GFDL_1_1_INVARIANTS_OR_LATER)
10705        return "GFDL-1.1-invariants-or-later";
10706      if (code == SPDXLicense.GFDL_1_1_NO_INVARIANTS_ONLY)
10707        return "GFDL-1.1-no-invariants-only";
10708      if (code == SPDXLicense.GFDL_1_1_NO_INVARIANTS_OR_LATER)
10709        return "GFDL-1.1-no-invariants-or-later";
10710      if (code == SPDXLicense.GFDL_1_1_ONLY)
10711        return "GFDL-1.1-only";
10712      if (code == SPDXLicense.GFDL_1_1_OR_LATER)
10713        return "GFDL-1.1-or-later";
10714      if (code == SPDXLicense.GFDL_1_2)
10715        return "GFDL-1.2";
10716      if (code == SPDXLicense.GFDL_1_2_INVARIANTS_ONLY)
10717        return "GFDL-1.2-invariants-only";
10718      if (code == SPDXLicense.GFDL_1_2_INVARIANTS_OR_LATER)
10719        return "GFDL-1.2-invariants-or-later";
10720      if (code == SPDXLicense.GFDL_1_2_NO_INVARIANTS_ONLY)
10721        return "GFDL-1.2-no-invariants-only";
10722      if (code == SPDXLicense.GFDL_1_2_NO_INVARIANTS_OR_LATER)
10723        return "GFDL-1.2-no-invariants-or-later";
10724      if (code == SPDXLicense.GFDL_1_2_ONLY)
10725        return "GFDL-1.2-only";
10726      if (code == SPDXLicense.GFDL_1_2_OR_LATER)
10727        return "GFDL-1.2-or-later";
10728      if (code == SPDXLicense.GFDL_1_3)
10729        return "GFDL-1.3";
10730      if (code == SPDXLicense.GFDL_1_3_INVARIANTS_ONLY)
10731        return "GFDL-1.3-invariants-only";
10732      if (code == SPDXLicense.GFDL_1_3_INVARIANTS_OR_LATER)
10733        return "GFDL-1.3-invariants-or-later";
10734      if (code == SPDXLicense.GFDL_1_3_NO_INVARIANTS_ONLY)
10735        return "GFDL-1.3-no-invariants-only";
10736      if (code == SPDXLicense.GFDL_1_3_NO_INVARIANTS_OR_LATER)
10737        return "GFDL-1.3-no-invariants-or-later";
10738      if (code == SPDXLicense.GFDL_1_3_ONLY)
10739        return "GFDL-1.3-only";
10740      if (code == SPDXLicense.GFDL_1_3_OR_LATER)
10741        return "GFDL-1.3-or-later";
10742      if (code == SPDXLicense.GIFTWARE)
10743        return "Giftware";
10744      if (code == SPDXLicense.GL2PS)
10745        return "GL2PS";
10746      if (code == SPDXLicense.GLIDE)
10747        return "Glide";
10748      if (code == SPDXLicense.GLULXE)
10749        return "Glulxe";
10750      if (code == SPDXLicense.GLWTPL)
10751        return "GLWTPL";
10752      if (code == SPDXLicense.GNUPLOT)
10753        return "gnuplot";
10754      if (code == SPDXLicense.GPL_1_0)
10755        return "GPL-1.0";
10756      if (code == SPDXLicense.GPL_1_0PLUS)
10757        return "GPL-1.0+";
10758      if (code == SPDXLicense.GPL_1_0_ONLY)
10759        return "GPL-1.0-only";
10760      if (code == SPDXLicense.GPL_1_0_OR_LATER)
10761        return "GPL-1.0-or-later";
10762      if (code == SPDXLicense.GPL_2_0)
10763        return "GPL-2.0";
10764      if (code == SPDXLicense.GPL_2_0PLUS)
10765        return "GPL-2.0+";
10766      if (code == SPDXLicense.GPL_2_0_ONLY)
10767        return "GPL-2.0-only";
10768      if (code == SPDXLicense.GPL_2_0_OR_LATER)
10769        return "GPL-2.0-or-later";
10770      if (code == SPDXLicense.GPL_2_0_WITH_AUTOCONF_EXCEPTION)
10771        return "GPL-2.0-with-autoconf-exception";
10772      if (code == SPDXLicense.GPL_2_0_WITH_BISON_EXCEPTION)
10773        return "GPL-2.0-with-bison-exception";
10774      if (code == SPDXLicense.GPL_2_0_WITH_CLASSPATH_EXCEPTION)
10775        return "GPL-2.0-with-classpath-exception";
10776      if (code == SPDXLicense.GPL_2_0_WITH_FONT_EXCEPTION)
10777        return "GPL-2.0-with-font-exception";
10778      if (code == SPDXLicense.GPL_2_0_WITH_GCC_EXCEPTION)
10779        return "GPL-2.0-with-GCC-exception";
10780      if (code == SPDXLicense.GPL_3_0)
10781        return "GPL-3.0";
10782      if (code == SPDXLicense.GPL_3_0PLUS)
10783        return "GPL-3.0+";
10784      if (code == SPDXLicense.GPL_3_0_ONLY)
10785        return "GPL-3.0-only";
10786      if (code == SPDXLicense.GPL_3_0_OR_LATER)
10787        return "GPL-3.0-or-later";
10788      if (code == SPDXLicense.GPL_3_0_WITH_AUTOCONF_EXCEPTION)
10789        return "GPL-3.0-with-autoconf-exception";
10790      if (code == SPDXLicense.GPL_3_0_WITH_GCC_EXCEPTION)
10791        return "GPL-3.0-with-GCC-exception";
10792      if (code == SPDXLicense.GRAPHICS_GEMS)
10793        return "Graphics-Gems";
10794      if (code == SPDXLicense.GSOAP_1_3B)
10795        return "gSOAP-1.3b";
10796      if (code == SPDXLicense.HASKELLREPORT)
10797        return "HaskellReport";
10798      if (code == SPDXLicense.HIPPOCRATIC_2_1)
10799        return "Hippocratic-2.1";
10800      if (code == SPDXLicense.HP_1986)
10801        return "HP-1986";
10802      if (code == SPDXLicense.HPND)
10803        return "HPND";
10804      if (code == SPDXLicense.HPND_EXPORT_US)
10805        return "HPND-export-US";
10806      if (code == SPDXLicense.HPND_MARKUS_KUHN)
10807        return "HPND-Markus-Kuhn";
10808      if (code == SPDXLicense.HPND_SELL_VARIANT)
10809        return "HPND-sell-variant";
10810      if (code == SPDXLicense.HPND_SELL_VARIANT_MIT_DISCLAIMER)
10811        return "HPND-sell-variant-MIT-disclaimer";
10812      if (code == SPDXLicense.HTMLTIDY)
10813        return "HTMLTIDY";
10814      if (code == SPDXLicense.IBM_PIBS)
10815        return "IBM-pibs";
10816      if (code == SPDXLicense.ICU)
10817        return "ICU";
10818      if (code == SPDXLicense.IEC_CODE_COMPONENTS_EULA)
10819        return "IEC-Code-Components-EULA";
10820      if (code == SPDXLicense.IJG)
10821        return "IJG";
10822      if (code == SPDXLicense.IJG_SHORT)
10823        return "IJG-short";
10824      if (code == SPDXLicense.IMAGEMAGICK)
10825        return "ImageMagick";
10826      if (code == SPDXLicense.IMATIX)
10827        return "iMatix";
10828      if (code == SPDXLicense.IMLIB2)
10829        return "Imlib2";
10830      if (code == SPDXLicense.INFO_ZIP)
10831        return "Info-ZIP";
10832      if (code == SPDXLicense.INNER_NET_2_0)
10833        return "Inner-Net-2.0";
10834      if (code == SPDXLicense.INTEL)
10835        return "Intel";
10836      if (code == SPDXLicense.INTEL_ACPI)
10837        return "Intel-ACPI";
10838      if (code == SPDXLicense.INTERBASE_1_0)
10839        return "Interbase-1.0";
10840      if (code == SPDXLicense.IPA)
10841        return "IPA";
10842      if (code == SPDXLicense.IPL_1_0)
10843        return "IPL-1.0";
10844      if (code == SPDXLicense.ISC)
10845        return "ISC";
10846      if (code == SPDXLicense.JAM)
10847        return "Jam";
10848      if (code == SPDXLicense.JASPER_2_0)
10849        return "JasPer-2.0";
10850      if (code == SPDXLicense.JPL_IMAGE)
10851        return "JPL-image";
10852      if (code == SPDXLicense.JPNIC)
10853        return "JPNIC";
10854      if (code == SPDXLicense.JSON)
10855        return "JSON";
10856      if (code == SPDXLicense.KAZLIB)
10857        return "Kazlib";
10858      if (code == SPDXLicense.KNUTH_CTAN)
10859        return "Knuth-CTAN";
10860      if (code == SPDXLicense.LAL_1_2)
10861        return "LAL-1.2";
10862      if (code == SPDXLicense.LAL_1_3)
10863        return "LAL-1.3";
10864      if (code == SPDXLicense.LATEX2E)
10865        return "Latex2e";
10866      if (code == SPDXLicense.LATEX2E_TRANSLATED_NOTICE)
10867        return "Latex2e-translated-notice";
10868      if (code == SPDXLicense.LEPTONICA)
10869        return "Leptonica";
10870      if (code == SPDXLicense.LGPL_2_0)
10871        return "LGPL-2.0";
10872      if (code == SPDXLicense.LGPL_2_0PLUS)
10873        return "LGPL-2.0+";
10874      if (code == SPDXLicense.LGPL_2_0_ONLY)
10875        return "LGPL-2.0-only";
10876      if (code == SPDXLicense.LGPL_2_0_OR_LATER)
10877        return "LGPL-2.0-or-later";
10878      if (code == SPDXLicense.LGPL_2_1)
10879        return "LGPL-2.1";
10880      if (code == SPDXLicense.LGPL_2_1PLUS)
10881        return "LGPL-2.1+";
10882      if (code == SPDXLicense.LGPL_2_1_ONLY)
10883        return "LGPL-2.1-only";
10884      if (code == SPDXLicense.LGPL_2_1_OR_LATER)
10885        return "LGPL-2.1-or-later";
10886      if (code == SPDXLicense.LGPL_3_0)
10887        return "LGPL-3.0";
10888      if (code == SPDXLicense.LGPL_3_0PLUS)
10889        return "LGPL-3.0+";
10890      if (code == SPDXLicense.LGPL_3_0_ONLY)
10891        return "LGPL-3.0-only";
10892      if (code == SPDXLicense.LGPL_3_0_OR_LATER)
10893        return "LGPL-3.0-or-later";
10894      if (code == SPDXLicense.LGPLLR)
10895        return "LGPLLR";
10896      if (code == SPDXLicense.LIBPNG)
10897        return "Libpng";
10898      if (code == SPDXLicense.LIBPNG_2_0)
10899        return "libpng-2.0";
10900      if (code == SPDXLicense.LIBSELINUX_1_0)
10901        return "libselinux-1.0";
10902      if (code == SPDXLicense.LIBTIFF)
10903        return "libtiff";
10904      if (code == SPDXLicense.LIBUTIL_DAVID_NUGENT)
10905        return "libutil-David-Nugent";
10906      if (code == SPDXLicense.LILIQ_P_1_1)
10907        return "LiLiQ-P-1.1";
10908      if (code == SPDXLicense.LILIQ_R_1_1)
10909        return "LiLiQ-R-1.1";
10910      if (code == SPDXLicense.LILIQ_RPLUS_1_1)
10911        return "LiLiQ-Rplus-1.1";
10912      if (code == SPDXLicense.LINUX_MAN_PAGES_1_PARA)
10913        return "Linux-man-pages-1-para";
10914      if (code == SPDXLicense.LINUX_MAN_PAGES_COPYLEFT)
10915        return "Linux-man-pages-copyleft";
10916      if (code == SPDXLicense.LINUX_MAN_PAGES_COPYLEFT_2_PARA)
10917        return "Linux-man-pages-copyleft-2-para";
10918      if (code == SPDXLicense.LINUX_MAN_PAGES_COPYLEFT_VAR)
10919        return "Linux-man-pages-copyleft-var";
10920      if (code == SPDXLicense.LINUX_OPENIB)
10921        return "Linux-OpenIB";
10922      if (code == SPDXLicense.LOOP)
10923        return "LOOP";
10924      if (code == SPDXLicense.LPL_1_0)
10925        return "LPL-1.0";
10926      if (code == SPDXLicense.LPL_1_02)
10927        return "LPL-1.02";
10928      if (code == SPDXLicense.LPPL_1_0)
10929        return "LPPL-1.0";
10930      if (code == SPDXLicense.LPPL_1_1)
10931        return "LPPL-1.1";
10932      if (code == SPDXLicense.LPPL_1_2)
10933        return "LPPL-1.2";
10934      if (code == SPDXLicense.LPPL_1_3A)
10935        return "LPPL-1.3a";
10936      if (code == SPDXLicense.LPPL_1_3C)
10937        return "LPPL-1.3c";
10938      if (code == SPDXLicense.LZMA_SDK_9_11_TO_9_20)
10939        return "LZMA-SDK-9.11-to-9.20";
10940      if (code == SPDXLicense.LZMA_SDK_9_22)
10941        return "LZMA-SDK-9.22";
10942      if (code == SPDXLicense.MAKEINDEX)
10943        return "MakeIndex";
10944      if (code == SPDXLicense.MARTIN_BIRGMEIER)
10945        return "Martin-Birgmeier";
10946      if (code == SPDXLicense.METAMAIL)
10947        return "metamail";
10948      if (code == SPDXLicense.MINPACK)
10949        return "Minpack";
10950      if (code == SPDXLicense.MIROS)
10951        return "MirOS";
10952      if (code == SPDXLicense.MIT)
10953        return "MIT";
10954      if (code == SPDXLicense.MIT_0)
10955        return "MIT-0";
10956      if (code == SPDXLicense.MIT_ADVERTISING)
10957        return "MIT-advertising";
10958      if (code == SPDXLicense.MIT_CMU)
10959        return "MIT-CMU";
10960      if (code == SPDXLicense.MIT_ENNA)
10961        return "MIT-enna";
10962      if (code == SPDXLicense.MIT_FEH)
10963        return "MIT-feh";
10964      if (code == SPDXLicense.MIT_FESTIVAL)
10965        return "MIT-Festival";
10966      if (code == SPDXLicense.MIT_MODERN_VARIANT)
10967        return "MIT-Modern-Variant";
10968      if (code == SPDXLicense.MIT_OPEN_GROUP)
10969        return "MIT-open-group";
10970      if (code == SPDXLicense.MIT_WU)
10971        return "MIT-Wu";
10972      if (code == SPDXLicense.MITNFA)
10973        return "MITNFA";
10974      if (code == SPDXLicense.MOTOSOTO)
10975        return "Motosoto";
10976      if (code == SPDXLicense.MPI_PERMISSIVE)
10977        return "mpi-permissive";
10978      if (code == SPDXLicense.MPICH2)
10979        return "mpich2";
10980      if (code == SPDXLicense.MPL_1_0)
10981        return "MPL-1.0";
10982      if (code == SPDXLicense.MPL_1_1)
10983        return "MPL-1.1";
10984      if (code == SPDXLicense.MPL_2_0)
10985        return "MPL-2.0";
10986      if (code == SPDXLicense.MPL_2_0_NO_COPYLEFT_EXCEPTION)
10987        return "MPL-2.0-no-copyleft-exception";
10988      if (code == SPDXLicense.MPLUS)
10989        return "mplus";
10990      if (code == SPDXLicense.MS_LPL)
10991        return "MS-LPL";
10992      if (code == SPDXLicense.MS_PL)
10993        return "MS-PL";
10994      if (code == SPDXLicense.MS_RL)
10995        return "MS-RL";
10996      if (code == SPDXLicense.MTLL)
10997        return "MTLL";
10998      if (code == SPDXLicense.MULANPSL_1_0)
10999        return "MulanPSL-1.0";
11000      if (code == SPDXLicense.MULANPSL_2_0)
11001        return "MulanPSL-2.0";
11002      if (code == SPDXLicense.MULTICS)
11003        return "Multics";
11004      if (code == SPDXLicense.MUP)
11005        return "Mup";
11006      if (code == SPDXLicense.NAIST_2003)
11007        return "NAIST-2003";
11008      if (code == SPDXLicense.NASA_1_3)
11009        return "NASA-1.3";
11010      if (code == SPDXLicense.NAUMEN)
11011        return "Naumen";
11012      if (code == SPDXLicense.NBPL_1_0)
11013        return "NBPL-1.0";
11014      if (code == SPDXLicense.NCGL_UK_2_0)
11015        return "NCGL-UK-2.0";
11016      if (code == SPDXLicense.NCSA)
11017        return "NCSA";
11018      if (code == SPDXLicense.NET_SNMP)
11019        return "Net-SNMP";
11020      if (code == SPDXLicense.NETCDF)
11021        return "NetCDF";
11022      if (code == SPDXLicense.NEWSLETR)
11023        return "Newsletr";
11024      if (code == SPDXLicense.NGPL)
11025        return "NGPL";
11026      if (code == SPDXLicense.NICTA_1_0)
11027        return "NICTA-1.0";
11028      if (code == SPDXLicense.NIST_PD)
11029        return "NIST-PD";
11030      if (code == SPDXLicense.NIST_PD_FALLBACK)
11031        return "NIST-PD-fallback";
11032      if (code == SPDXLicense.NIST_SOFTWARE)
11033        return "NIST-Software";
11034      if (code == SPDXLicense.NLOD_1_0)
11035        return "NLOD-1.0";
11036      if (code == SPDXLicense.NLOD_2_0)
11037        return "NLOD-2.0";
11038      if (code == SPDXLicense.NLPL)
11039        return "NLPL";
11040      if (code == SPDXLicense.NOKIA)
11041        return "Nokia";
11042      if (code == SPDXLicense.NOSL)
11043        return "NOSL";
11044      if (code == SPDXLicense.NOT_OPEN_SOURCE)
11045        return "not-open-source";
11046      if (code == SPDXLicense.NOWEB)
11047        return "Noweb";
11048      if (code == SPDXLicense.NPL_1_0)
11049        return "NPL-1.0";
11050      if (code == SPDXLicense.NPL_1_1)
11051        return "NPL-1.1";
11052      if (code == SPDXLicense.NPOSL_3_0)
11053        return "NPOSL-3.0";
11054      if (code == SPDXLicense.NRL)
11055        return "NRL";
11056      if (code == SPDXLicense.NTP)
11057        return "NTP";
11058      if (code == SPDXLicense.NTP_0)
11059        return "NTP-0";
11060      if (code == SPDXLicense.NUNIT)
11061        return "Nunit";
11062      if (code == SPDXLicense.O_UDA_1_0)
11063        return "O-UDA-1.0";
11064      if (code == SPDXLicense.OCCT_PL)
11065        return "OCCT-PL";
11066      if (code == SPDXLicense.OCLC_2_0)
11067        return "OCLC-2.0";
11068      if (code == SPDXLicense.ODBL_1_0)
11069        return "ODbL-1.0";
11070      if (code == SPDXLicense.ODC_BY_1_0)
11071        return "ODC-By-1.0";
11072      if (code == SPDXLicense.OFFIS)
11073        return "OFFIS";
11074      if (code == SPDXLicense.OFL_1_0)
11075        return "OFL-1.0";
11076      if (code == SPDXLicense.OFL_1_0_NO_RFN)
11077        return "OFL-1.0-no-RFN";
11078      if (code == SPDXLicense.OFL_1_0_RFN)
11079        return "OFL-1.0-RFN";
11080      if (code == SPDXLicense.OFL_1_1)
11081        return "OFL-1.1";
11082      if (code == SPDXLicense.OFL_1_1_NO_RFN)
11083        return "OFL-1.1-no-RFN";
11084      if (code == SPDXLicense.OFL_1_1_RFN)
11085        return "OFL-1.1-RFN";
11086      if (code == SPDXLicense.OGC_1_0)
11087        return "OGC-1.0";
11088      if (code == SPDXLicense.OGDL_TAIWAN_1_0)
11089        return "OGDL-Taiwan-1.0";
11090      if (code == SPDXLicense.OGL_CANADA_2_0)
11091        return "OGL-Canada-2.0";
11092      if (code == SPDXLicense.OGL_UK_1_0)
11093        return "OGL-UK-1.0";
11094      if (code == SPDXLicense.OGL_UK_2_0)
11095        return "OGL-UK-2.0";
11096      if (code == SPDXLicense.OGL_UK_3_0)
11097        return "OGL-UK-3.0";
11098      if (code == SPDXLicense.OGTSL)
11099        return "OGTSL";
11100      if (code == SPDXLicense.OLDAP_1_1)
11101        return "OLDAP-1.1";
11102      if (code == SPDXLicense.OLDAP_1_2)
11103        return "OLDAP-1.2";
11104      if (code == SPDXLicense.OLDAP_1_3)
11105        return "OLDAP-1.3";
11106      if (code == SPDXLicense.OLDAP_1_4)
11107        return "OLDAP-1.4";
11108      if (code == SPDXLicense.OLDAP_2_0)
11109        return "OLDAP-2.0";
11110      if (code == SPDXLicense.OLDAP_2_0_1)
11111        return "OLDAP-2.0.1";
11112      if (code == SPDXLicense.OLDAP_2_1)
11113        return "OLDAP-2.1";
11114      if (code == SPDXLicense.OLDAP_2_2)
11115        return "OLDAP-2.2";
11116      if (code == SPDXLicense.OLDAP_2_2_1)
11117        return "OLDAP-2.2.1";
11118      if (code == SPDXLicense.OLDAP_2_2_2)
11119        return "OLDAP-2.2.2";
11120      if (code == SPDXLicense.OLDAP_2_3)
11121        return "OLDAP-2.3";
11122      if (code == SPDXLicense.OLDAP_2_4)
11123        return "OLDAP-2.4";
11124      if (code == SPDXLicense.OLDAP_2_5)
11125        return "OLDAP-2.5";
11126      if (code == SPDXLicense.OLDAP_2_6)
11127        return "OLDAP-2.6";
11128      if (code == SPDXLicense.OLDAP_2_7)
11129        return "OLDAP-2.7";
11130      if (code == SPDXLicense.OLDAP_2_8)
11131        return "OLDAP-2.8";
11132      if (code == SPDXLicense.OLFL_1_3)
11133        return "OLFL-1.3";
11134      if (code == SPDXLicense.OML)
11135        return "OML";
11136      if (code == SPDXLicense.OPENPBS_2_3)
11137        return "OpenPBS-2.3";
11138      if (code == SPDXLicense.OPENSSL)
11139        return "OpenSSL";
11140      if (code == SPDXLicense.OPL_1_0)
11141        return "OPL-1.0";
11142      if (code == SPDXLicense.OPL_UK_3_0)
11143        return "OPL-UK-3.0";
11144      if (code == SPDXLicense.OPUBL_1_0)
11145        return "OPUBL-1.0";
11146      if (code == SPDXLicense.OSET_PL_2_1)
11147        return "OSET-PL-2.1";
11148      if (code == SPDXLicense.OSL_1_0)
11149        return "OSL-1.0";
11150      if (code == SPDXLicense.OSL_1_1)
11151        return "OSL-1.1";
11152      if (code == SPDXLicense.OSL_2_0)
11153        return "OSL-2.0";
11154      if (code == SPDXLicense.OSL_2_1)
11155        return "OSL-2.1";
11156      if (code == SPDXLicense.OSL_3_0)
11157        return "OSL-3.0";
11158      if (code == SPDXLicense.PARITY_6_0_0)
11159        return "Parity-6.0.0";
11160      if (code == SPDXLicense.PARITY_7_0_0)
11161        return "Parity-7.0.0";
11162      if (code == SPDXLicense.PDDL_1_0)
11163        return "PDDL-1.0";
11164      if (code == SPDXLicense.PHP_3_0)
11165        return "PHP-3.0";
11166      if (code == SPDXLicense.PHP_3_01)
11167        return "PHP-3.01";
11168      if (code == SPDXLicense.PLEXUS)
11169        return "Plexus";
11170      if (code == SPDXLicense.POLYFORM_NONCOMMERCIAL_1_0_0)
11171        return "PolyForm-Noncommercial-1.0.0";
11172      if (code == SPDXLicense.POLYFORM_SMALL_BUSINESS_1_0_0)
11173        return "PolyForm-Small-Business-1.0.0";
11174      if (code == SPDXLicense.POSTGRESQL)
11175        return "PostgreSQL";
11176      if (code == SPDXLicense.PSF_2_0)
11177        return "PSF-2.0";
11178      if (code == SPDXLicense.PSFRAG)
11179        return "psfrag";
11180      if (code == SPDXLicense.PSUTILS)
11181        return "psutils";
11182      if (code == SPDXLicense.PYTHON_2_0)
11183        return "Python-2.0";
11184      if (code == SPDXLicense.PYTHON_2_0_1)
11185        return "Python-2.0.1";
11186      if (code == SPDXLicense.QHULL)
11187        return "Qhull";
11188      if (code == SPDXLicense.QPL_1_0)
11189        return "QPL-1.0";
11190      if (code == SPDXLicense.QPL_1_0_INRIA_2004)
11191        return "QPL-1.0-INRIA-2004";
11192      if (code == SPDXLicense.RDISC)
11193        return "Rdisc";
11194      if (code == SPDXLicense.RHECOS_1_1)
11195        return "RHeCos-1.1";
11196      if (code == SPDXLicense.RPL_1_1)
11197        return "RPL-1.1";
11198      if (code == SPDXLicense.RPL_1_5)
11199        return "RPL-1.5";
11200      if (code == SPDXLicense.RPSL_1_0)
11201        return "RPSL-1.0";
11202      if (code == SPDXLicense.RSA_MD)
11203        return "RSA-MD";
11204      if (code == SPDXLicense.RSCPL)
11205        return "RSCPL";
11206      if (code == SPDXLicense.RUBY)
11207        return "Ruby";
11208      if (code == SPDXLicense.SAX_PD)
11209        return "SAX-PD";
11210      if (code == SPDXLicense.SAXPATH)
11211        return "Saxpath";
11212      if (code == SPDXLicense.SCEA)
11213        return "SCEA";
11214      if (code == SPDXLicense.SCHEMEREPORT)
11215        return "SchemeReport";
11216      if (code == SPDXLicense.SENDMAIL)
11217        return "Sendmail";
11218      if (code == SPDXLicense.SENDMAIL_8_23)
11219        return "Sendmail-8.23";
11220      if (code == SPDXLicense.SGI_B_1_0)
11221        return "SGI-B-1.0";
11222      if (code == SPDXLicense.SGI_B_1_1)
11223        return "SGI-B-1.1";
11224      if (code == SPDXLicense.SGI_B_2_0)
11225        return "SGI-B-2.0";
11226      if (code == SPDXLicense.SGP4)
11227        return "SGP4";
11228      if (code == SPDXLicense.SHL_0_5)
11229        return "SHL-0.5";
11230      if (code == SPDXLicense.SHL_0_51)
11231        return "SHL-0.51";
11232      if (code == SPDXLicense.SIMPL_2_0)
11233        return "SimPL-2.0";
11234      if (code == SPDXLicense.SISSL)
11235        return "SISSL";
11236      if (code == SPDXLicense.SISSL_1_2)
11237        return "SISSL-1.2";
11238      if (code == SPDXLicense.SLEEPYCAT)
11239        return "Sleepycat";
11240      if (code == SPDXLicense.SMLNJ)
11241        return "SMLNJ";
11242      if (code == SPDXLicense.SMPPL)
11243        return "SMPPL";
11244      if (code == SPDXLicense.SNIA)
11245        return "SNIA";
11246      if (code == SPDXLicense.SNPRINTF)
11247        return "snprintf";
11248      if (code == SPDXLicense.SPENCER_86)
11249        return "Spencer-86";
11250      if (code == SPDXLicense.SPENCER_94)
11251        return "Spencer-94";
11252      if (code == SPDXLicense.SPENCER_99)
11253        return "Spencer-99";
11254      if (code == SPDXLicense.SPL_1_0)
11255        return "SPL-1.0";
11256      if (code == SPDXLicense.SSH_OPENSSH)
11257        return "SSH-OpenSSH";
11258      if (code == SPDXLicense.SSH_SHORT)
11259        return "SSH-short";
11260      if (code == SPDXLicense.SSPL_1_0)
11261        return "SSPL-1.0";
11262      if (code == SPDXLicense.STANDARDML_NJ)
11263        return "StandardML-NJ";
11264      if (code == SPDXLicense.SUGARCRM_1_1_3)
11265        return "SugarCRM-1.1.3";
11266      if (code == SPDXLicense.SUNPRO)
11267        return "SunPro";
11268      if (code == SPDXLicense.SWL)
11269        return "SWL";
11270      if (code == SPDXLicense.SYMLINKS)
11271        return "Symlinks";
11272      if (code == SPDXLicense.TAPR_OHL_1_0)
11273        return "TAPR-OHL-1.0";
11274      if (code == SPDXLicense.TCL)
11275        return "TCL";
11276      if (code == SPDXLicense.TCP_WRAPPERS)
11277        return "TCP-wrappers";
11278      if (code == SPDXLicense.TERMREADKEY)
11279        return "TermReadKey";
11280      if (code == SPDXLicense.TMATE)
11281        return "TMate";
11282      if (code == SPDXLicense.TORQUE_1_1)
11283        return "TORQUE-1.1";
11284      if (code == SPDXLicense.TOSL)
11285        return "TOSL";
11286      if (code == SPDXLicense.TPDL)
11287        return "TPDL";
11288      if (code == SPDXLicense.TPL_1_0)
11289        return "TPL-1.0";
11290      if (code == SPDXLicense.TTWL)
11291        return "TTWL";
11292      if (code == SPDXLicense.TU_BERLIN_1_0)
11293        return "TU-Berlin-1.0";
11294      if (code == SPDXLicense.TU_BERLIN_2_0)
11295        return "TU-Berlin-2.0";
11296      if (code == SPDXLicense.UCAR)
11297        return "UCAR";
11298      if (code == SPDXLicense.UCL_1_0)
11299        return "UCL-1.0";
11300      if (code == SPDXLicense.UNICODE_DFS_2015)
11301        return "Unicode-DFS-2015";
11302      if (code == SPDXLicense.UNICODE_DFS_2016)
11303        return "Unicode-DFS-2016";
11304      if (code == SPDXLicense.UNICODE_TOU)
11305        return "Unicode-TOU";
11306      if (code == SPDXLicense.UNIXCRYPT)
11307        return "UnixCrypt";
11308      if (code == SPDXLicense.UNLICENSE)
11309        return "Unlicense";
11310      if (code == SPDXLicense.UPL_1_0)
11311        return "UPL-1.0";
11312      if (code == SPDXLicense.VIM)
11313        return "Vim";
11314      if (code == SPDXLicense.VOSTROM)
11315        return "VOSTROM";
11316      if (code == SPDXLicense.VSL_1_0)
11317        return "VSL-1.0";
11318      if (code == SPDXLicense.W3C)
11319        return "W3C";
11320      if (code == SPDXLicense.W3C_19980720)
11321        return "W3C-19980720";
11322      if (code == SPDXLicense.W3C_20150513)
11323        return "W3C-20150513";
11324      if (code == SPDXLicense.W3M)
11325        return "w3m";
11326      if (code == SPDXLicense.WATCOM_1_0)
11327        return "Watcom-1.0";
11328      if (code == SPDXLicense.WIDGET_WORKSHOP)
11329        return "Widget-Workshop";
11330      if (code == SPDXLicense.WSUIPA)
11331        return "Wsuipa";
11332      if (code == SPDXLicense.WTFPL)
11333        return "WTFPL";
11334      if (code == SPDXLicense.WXWINDOWS)
11335        return "wxWindows";
11336      if (code == SPDXLicense.X11)
11337        return "X11";
11338      if (code == SPDXLicense.X11_DISTRIBUTE_MODIFICATIONS_VARIANT)
11339        return "X11-distribute-modifications-variant";
11340      if (code == SPDXLicense.XDEBUG_1_03)
11341        return "Xdebug-1.03";
11342      if (code == SPDXLicense.XEROX)
11343        return "Xerox";
11344      if (code == SPDXLicense.XFIG)
11345        return "Xfig";
11346      if (code == SPDXLicense.XFREE86_1_1)
11347        return "XFree86-1.1";
11348      if (code == SPDXLicense.XINETD)
11349        return "xinetd";
11350      if (code == SPDXLicense.XLOCK)
11351        return "xlock";
11352      if (code == SPDXLicense.XNET)
11353        return "Xnet";
11354      if (code == SPDXLicense.XPP)
11355        return "xpp";
11356      if (code == SPDXLicense.XSKAT)
11357        return "XSkat";
11358      if (code == SPDXLicense.YPL_1_0)
11359        return "YPL-1.0";
11360      if (code == SPDXLicense.YPL_1_1)
11361        return "YPL-1.1";
11362      if (code == SPDXLicense.ZED)
11363        return "Zed";
11364      if (code == SPDXLicense.ZEND_2_0)
11365        return "Zend-2.0";
11366      if (code == SPDXLicense.ZIMBRA_1_3)
11367        return "Zimbra-1.3";
11368      if (code == SPDXLicense.ZIMBRA_1_4)
11369        return "Zimbra-1.4";
11370      if (code == SPDXLicense.ZLIB)
11371        return "Zlib";
11372      if (code == SPDXLicense.ZLIB_ACKNOWLEDGEMENT)
11373        return "zlib-acknowledgement";
11374      if (code == SPDXLicense.ZPL_1_1)
11375        return "ZPL-1.1";
11376      if (code == SPDXLicense.ZPL_2_0)
11377        return "ZPL-2.0";
11378      if (code == SPDXLicense.ZPL_2_1)
11379        return "ZPL-2.1";
11380      return "?";
11381    }
11382
11383    public String toSystem(SPDXLicense code) {
11384      return code.getSystem();
11385    }
11386  }
11387
11388  public enum GuidePageGeneration {
11389    /**
11390     * Page is proper xhtml with no templating. Will be brought across unchanged for
11391     * standard post-processing.
11392     */
11393    HTML,
11394    /**
11395     * Page is markdown with templating. Will use the template to create a file that
11396     * imports the markdown file prior to post-processing.
11397     */
11398    MARKDOWN,
11399    /**
11400     * Page is xml with templating. Will use the template to create a file that
11401     * imports the source file and run the nominated XSLT transform (see parameters)
11402     * if present prior to post-processing.
11403     */
11404    XML,
11405    /**
11406     * Page will be generated by the publication process - no source to bring
11407     * across.
11408     */
11409    GENERATED,
11410    /**
11411     * added to help the parsers with the generic types
11412     */
11413    NULL;
11414
11415    public static GuidePageGeneration fromCode(String codeString) throws FHIRException {
11416      if (codeString == null || "".equals(codeString))
11417        return null;
11418      if ("html".equals(codeString))
11419        return HTML;
11420      if ("markdown".equals(codeString))
11421        return MARKDOWN;
11422      if ("xml".equals(codeString))
11423        return XML;
11424      if ("generated".equals(codeString))
11425        return GENERATED;
11426      if (Configuration.isAcceptInvalidEnums())
11427        return null;
11428      else
11429        throw new FHIRException("Unknown GuidePageGeneration code '" + codeString + "'");
11430    }
11431
11432    public String toCode() {
11433      switch (this) {
11434      case HTML:
11435        return "html";
11436      case MARKDOWN:
11437        return "markdown";
11438      case XML:
11439        return "xml";
11440      case GENERATED:
11441        return "generated";
11442      case NULL:
11443        return null;
11444      default:
11445        return "?";
11446      }
11447    }
11448
11449    public String getSystem() {
11450      switch (this) {
11451      case HTML:
11452        return "http://hl7.org/fhir/guide-page-generation";
11453      case MARKDOWN:
11454        return "http://hl7.org/fhir/guide-page-generation";
11455      case XML:
11456        return "http://hl7.org/fhir/guide-page-generation";
11457      case GENERATED:
11458        return "http://hl7.org/fhir/guide-page-generation";
11459      case NULL:
11460        return null;
11461      default:
11462        return "?";
11463      }
11464    }
11465
11466    public String getDefinition() {
11467      switch (this) {
11468      case HTML:
11469        return "Page is proper xhtml with no templating.  Will be brought across unchanged for standard post-processing.";
11470      case MARKDOWN:
11471        return "Page is markdown with templating.  Will use the template to create a file that imports the markdown file prior to post-processing.";
11472      case XML:
11473        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.";
11474      case GENERATED:
11475        return "Page will be generated by the publication process - no source to bring across.";
11476      case NULL:
11477        return null;
11478      default:
11479        return "?";
11480      }
11481    }
11482
11483    public String getDisplay() {
11484      switch (this) {
11485      case HTML:
11486        return "HTML";
11487      case MARKDOWN:
11488        return "Markdown";
11489      case XML:
11490        return "XML";
11491      case GENERATED:
11492        return "Generated";
11493      case NULL:
11494        return null;
11495      default:
11496        return "?";
11497      }
11498    }
11499  }
11500
11501  public static class GuidePageGenerationEnumFactory implements EnumFactory<GuidePageGeneration> {
11502    public GuidePageGeneration fromCode(String codeString) throws IllegalArgumentException {
11503      if (codeString == null || "".equals(codeString))
11504        if (codeString == null || "".equals(codeString))
11505          return null;
11506      if ("html".equals(codeString))
11507        return GuidePageGeneration.HTML;
11508      if ("markdown".equals(codeString))
11509        return GuidePageGeneration.MARKDOWN;
11510      if ("xml".equals(codeString))
11511        return GuidePageGeneration.XML;
11512      if ("generated".equals(codeString))
11513        return GuidePageGeneration.GENERATED;
11514      throw new IllegalArgumentException("Unknown GuidePageGeneration code '" + codeString + "'");
11515    }
11516
11517    public Enumeration<GuidePageGeneration> fromType(PrimitiveType<?> code) throws FHIRException {
11518      if (code == null)
11519        return null;
11520      if (code.isEmpty())
11521        return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.NULL, code);
11522      String codeString = code.asStringValue();
11523      if (codeString == null || "".equals(codeString))
11524        return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.NULL, code);
11525      if ("html".equals(codeString))
11526        return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.HTML, code);
11527      if ("markdown".equals(codeString))
11528        return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.MARKDOWN, code);
11529      if ("xml".equals(codeString))
11530        return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.XML, code);
11531      if ("generated".equals(codeString))
11532        return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.GENERATED, code);
11533      throw new FHIRException("Unknown GuidePageGeneration code '" + codeString + "'");
11534    }
11535
11536    public String toCode(GuidePageGeneration code) {
11537      if (code == GuidePageGeneration.HTML)
11538        return "html";
11539      if (code == GuidePageGeneration.MARKDOWN)
11540        return "markdown";
11541      if (code == GuidePageGeneration.XML)
11542        return "xml";
11543      if (code == GuidePageGeneration.GENERATED)
11544        return "generated";
11545      return "?";
11546    }
11547
11548    public String toSystem(GuidePageGeneration code) {
11549      return code.getSystem();
11550    }
11551  }
11552
11553  public enum GuideParameterCode {
11554    /**
11555     * If the value of this string 0..* parameter is one of the metadata fields then
11556     * all conformance resources will have any specified [Resource].[field]
11557     * overwritten with the ImplementationGuide.[field], where field is one of:
11558     * version, date, status, publisher, contact, copyright, experimental,
11559     * jurisdiction, useContext.
11560     */
11561    APPLY,
11562    /**
11563     * The value of this string 0..* parameter is a subfolder of the build context's
11564     * location that is to be scanned to load resources. Scope is (if present) a
11565     * particular resource type.
11566     */
11567    PATHRESOURCE,
11568    /**
11569     * The value of this string 0..1 parameter is a subfolder of the build context's
11570     * location that contains files that are part of the html content processed by
11571     * the builder.
11572     */
11573    PATHPAGES,
11574    /**
11575     * The value of this string 0..1 parameter is a subfolder of the build context's
11576     * location that is used as the terminology cache. If this is not present, the
11577     * terminology cache is on the local system, not under version control.
11578     */
11579    PATHTXCACHE,
11580    /**
11581     * The value of this string 0..* parameter is a parameter (name=value) when
11582     * expanding value sets for this implementation guide. This is particularly used
11583     * to specify the versions of published terminologies such as SNOMED CT.
11584     */
11585    EXPANSIONPARAMETER,
11586    /**
11587     * The value of this string 0..1 parameter is either "warning" or "error"
11588     * (default = "error"). If the value is "warning" then IG build tools allow the
11589     * IG to be considered successfully build even when there is no internal broken
11590     * links.
11591     */
11592    RULEBROKENLINKS,
11593    /**
11594     * The value of this boolean 0..1 parameter specifies whether the IG publisher
11595     * creates examples in XML format. If not present, the Publication Tool decides
11596     * whether to generate XML.
11597     */
11598    GENERATEXML,
11599    /**
11600     * The value of this boolean 0..1 parameter specifies whether the IG publisher
11601     * creates examples in JSON format. If not present, the Publication Tool decides
11602     * whether to generate JSON.
11603     */
11604    GENERATEJSON,
11605    /**
11606     * The value of this boolean 0..1 parameter specifies whether the IG publisher
11607     * creates examples in Turtle format. If not present, the Publication Tool
11608     * decides whether to generate Turtle.
11609     */
11610    GENERATETURTLE,
11611    /**
11612     * The value of this string singleton parameter is the name of the file to use
11613     * as the builder template for each generated page (see templating).
11614     */
11615    HTMLTEMPLATE,
11616    /**
11617     * added to help the parsers with the generic types
11618     */
11619    NULL;
11620
11621    public static GuideParameterCode fromCode(String codeString) throws FHIRException {
11622      if (codeString == null || "".equals(codeString))
11623        return null;
11624      if ("apply".equals(codeString))
11625        return APPLY;
11626      if ("path-resource".equals(codeString))
11627        return PATHRESOURCE;
11628      if ("path-pages".equals(codeString))
11629        return PATHPAGES;
11630      if ("path-tx-cache".equals(codeString))
11631        return PATHTXCACHE;
11632      if ("expansion-parameter".equals(codeString))
11633        return EXPANSIONPARAMETER;
11634      if ("rule-broken-links".equals(codeString))
11635        return RULEBROKENLINKS;
11636      if ("generate-xml".equals(codeString))
11637        return GENERATEXML;
11638      if ("generate-json".equals(codeString))
11639        return GENERATEJSON;
11640      if ("generate-turtle".equals(codeString))
11641        return GENERATETURTLE;
11642      if ("html-template".equals(codeString))
11643        return HTMLTEMPLATE;
11644      if (Configuration.isAcceptInvalidEnums())
11645        return null;
11646      else
11647        throw new FHIRException("Unknown GuideParameterCode code '" + codeString + "'");
11648    }
11649
11650    public String toCode() {
11651      switch (this) {
11652      case APPLY:
11653        return "apply";
11654      case PATHRESOURCE:
11655        return "path-resource";
11656      case PATHPAGES:
11657        return "path-pages";
11658      case PATHTXCACHE:
11659        return "path-tx-cache";
11660      case EXPANSIONPARAMETER:
11661        return "expansion-parameter";
11662      case RULEBROKENLINKS:
11663        return "rule-broken-links";
11664      case GENERATEXML:
11665        return "generate-xml";
11666      case GENERATEJSON:
11667        return "generate-json";
11668      case GENERATETURTLE:
11669        return "generate-turtle";
11670      case HTMLTEMPLATE:
11671        return "html-template";
11672      case NULL:
11673        return null;
11674      default:
11675        return "?";
11676      }
11677    }
11678
11679    public String getSystem() {
11680      switch (this) {
11681      case APPLY:
11682        return "http://hl7.org/fhir/guide-parameter-code";
11683      case PATHRESOURCE:
11684        return "http://hl7.org/fhir/guide-parameter-code";
11685      case PATHPAGES:
11686        return "http://hl7.org/fhir/guide-parameter-code";
11687      case PATHTXCACHE:
11688        return "http://hl7.org/fhir/guide-parameter-code";
11689      case EXPANSIONPARAMETER:
11690        return "http://hl7.org/fhir/guide-parameter-code";
11691      case RULEBROKENLINKS:
11692        return "http://hl7.org/fhir/guide-parameter-code";
11693      case GENERATEXML:
11694        return "http://hl7.org/fhir/guide-parameter-code";
11695      case GENERATEJSON:
11696        return "http://hl7.org/fhir/guide-parameter-code";
11697      case GENERATETURTLE:
11698        return "http://hl7.org/fhir/guide-parameter-code";
11699      case HTMLTEMPLATE:
11700        return "http://hl7.org/fhir/guide-parameter-code";
11701      case NULL:
11702        return null;
11703      default:
11704        return "?";
11705      }
11706    }
11707
11708    public String getDefinition() {
11709      switch (this) {
11710      case APPLY:
11711        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.";
11712      case PATHRESOURCE:
11713        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.";
11714      case PATHPAGES:
11715        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.";
11716      case PATHTXCACHE:
11717        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.";
11718      case EXPANSIONPARAMETER:
11719        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.";
11720      case RULEBROKENLINKS:
11721        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.";
11722      case GENERATEXML:
11723        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.";
11724      case GENERATEJSON:
11725        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.";
11726      case GENERATETURTLE:
11727        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.";
11728      case HTMLTEMPLATE:
11729        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).";
11730      case NULL:
11731        return null;
11732      default:
11733        return "?";
11734      }
11735    }
11736
11737    public String getDisplay() {
11738      switch (this) {
11739      case APPLY:
11740        return "Apply Metadata Value";
11741      case PATHRESOURCE:
11742        return "Resource Path";
11743      case PATHPAGES:
11744        return "Pages Path";
11745      case PATHTXCACHE:
11746        return "Terminology Cache Path";
11747      case EXPANSIONPARAMETER:
11748        return "Expansion Profile";
11749      case RULEBROKENLINKS:
11750        return "Broken Links Rule";
11751      case GENERATEXML:
11752        return "Generate XML";
11753      case GENERATEJSON:
11754        return "Generate JSON";
11755      case GENERATETURTLE:
11756        return "Generate Turtle";
11757      case HTMLTEMPLATE:
11758        return "HTML Template";
11759      case NULL:
11760        return null;
11761      default:
11762        return "?";
11763      }
11764    }
11765  }
11766
11767  public static class GuideParameterCodeEnumFactory implements EnumFactory<GuideParameterCode> {
11768    public GuideParameterCode fromCode(String codeString) throws IllegalArgumentException {
11769      if (codeString == null || "".equals(codeString))
11770        if (codeString == null || "".equals(codeString))
11771          return null;
11772      if ("apply".equals(codeString))
11773        return GuideParameterCode.APPLY;
11774      if ("path-resource".equals(codeString))
11775        return GuideParameterCode.PATHRESOURCE;
11776      if ("path-pages".equals(codeString))
11777        return GuideParameterCode.PATHPAGES;
11778      if ("path-tx-cache".equals(codeString))
11779        return GuideParameterCode.PATHTXCACHE;
11780      if ("expansion-parameter".equals(codeString))
11781        return GuideParameterCode.EXPANSIONPARAMETER;
11782      if ("rule-broken-links".equals(codeString))
11783        return GuideParameterCode.RULEBROKENLINKS;
11784      if ("generate-xml".equals(codeString))
11785        return GuideParameterCode.GENERATEXML;
11786      if ("generate-json".equals(codeString))
11787        return GuideParameterCode.GENERATEJSON;
11788      if ("generate-turtle".equals(codeString))
11789        return GuideParameterCode.GENERATETURTLE;
11790      if ("html-template".equals(codeString))
11791        return GuideParameterCode.HTMLTEMPLATE;
11792      throw new IllegalArgumentException("Unknown GuideParameterCode code '" + codeString + "'");
11793    }
11794
11795    public Enumeration<GuideParameterCode> fromType(PrimitiveType<?> code) throws FHIRException {
11796      if (code == null)
11797        return null;
11798      if (code.isEmpty())
11799        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.NULL, code);
11800      String codeString = code.asStringValue();
11801      if (codeString == null || "".equals(codeString))
11802        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.NULL, code);
11803      if ("apply".equals(codeString))
11804        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.APPLY, code);
11805      if ("path-resource".equals(codeString))
11806        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.PATHRESOURCE, code);
11807      if ("path-pages".equals(codeString))
11808        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.PATHPAGES, code);
11809      if ("path-tx-cache".equals(codeString))
11810        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.PATHTXCACHE, code);
11811      if ("expansion-parameter".equals(codeString))
11812        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.EXPANSIONPARAMETER, code);
11813      if ("rule-broken-links".equals(codeString))
11814        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.RULEBROKENLINKS, code);
11815      if ("generate-xml".equals(codeString))
11816        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.GENERATEXML, code);
11817      if ("generate-json".equals(codeString))
11818        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.GENERATEJSON, code);
11819      if ("generate-turtle".equals(codeString))
11820        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.GENERATETURTLE, code);
11821      if ("html-template".equals(codeString))
11822        return new Enumeration<GuideParameterCode>(this, GuideParameterCode.HTMLTEMPLATE, code);
11823      throw new FHIRException("Unknown GuideParameterCode code '" + codeString + "'");
11824    }
11825
11826    public String toCode(GuideParameterCode code) {
11827      if (code == GuideParameterCode.APPLY)
11828        return "apply";
11829      if (code == GuideParameterCode.PATHRESOURCE)
11830        return "path-resource";
11831      if (code == GuideParameterCode.PATHPAGES)
11832        return "path-pages";
11833      if (code == GuideParameterCode.PATHTXCACHE)
11834        return "path-tx-cache";
11835      if (code == GuideParameterCode.EXPANSIONPARAMETER)
11836        return "expansion-parameter";
11837      if (code == GuideParameterCode.RULEBROKENLINKS)
11838        return "rule-broken-links";
11839      if (code == GuideParameterCode.GENERATEXML)
11840        return "generate-xml";
11841      if (code == GuideParameterCode.GENERATEJSON)
11842        return "generate-json";
11843      if (code == GuideParameterCode.GENERATETURTLE)
11844        return "generate-turtle";
11845      if (code == GuideParameterCode.HTMLTEMPLATE)
11846        return "html-template";
11847      return "?";
11848    }
11849
11850    public String toSystem(GuideParameterCode code) {
11851      return code.getSystem();
11852    }
11853  }
11854
11855  @Block()
11856  public static class ImplementationGuideDependsOnComponent extends BackboneElement implements IBaseBackboneElement {
11857    /**
11858     * A canonical reference to the Implementation guide for the dependency.
11859     */
11860    @Child(name = "uri", type = { CanonicalType.class }, order = 1, min = 1, max = 1, modifier = false, summary = true)
11861    @Description(shortDefinition = "Identity of the IG that this depends on", formalDefinition = "A canonical reference to the Implementation guide for the dependency.")
11862    protected CanonicalType uri;
11863
11864    /**
11865     * The NPM package name for the Implementation Guide that this IG depends on.
11866     */
11867    @Child(name = "packageId", type = { IdType.class }, order = 2, min = 0, max = 1, modifier = false, summary = true)
11868    @Description(shortDefinition = "NPM Package name for IG this depends on", formalDefinition = "The NPM package name for the Implementation Guide that this IG depends on.")
11869    protected IdType packageId;
11870
11871    /**
11872     * The version of the IG that is depended on, when the correct version is
11873     * required to understand the IG correctly.
11874     */
11875    @Child(name = "version", type = { StringType.class }, order = 3, min = 0, max = 1, modifier = false, summary = true)
11876    @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.")
11877    protected StringType version;
11878
11879    private static final long serialVersionUID = -215808797L;
11880
11881    /**
11882     * Constructor
11883     */
11884    public ImplementationGuideDependsOnComponent() {
11885      super();
11886    }
11887
11888    /**
11889     * Constructor
11890     */
11891    public ImplementationGuideDependsOnComponent(CanonicalType uri) {
11892      super();
11893      this.uri = uri;
11894    }
11895
11896    /**
11897     * @return {@link #uri} (A canonical reference to the Implementation guide for
11898     *         the dependency.). This is the underlying object with id, value and
11899     *         extensions. The accessor "getUri" gives direct access to the value
11900     */
11901    public CanonicalType getUriElement() {
11902      if (this.uri == null)
11903        if (Configuration.errorOnAutoCreate())
11904          throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.uri");
11905        else if (Configuration.doAutoCreate())
11906          this.uri = new CanonicalType(); // bb
11907      return this.uri;
11908    }
11909
11910    public boolean hasUriElement() {
11911      return this.uri != null && !this.uri.isEmpty();
11912    }
11913
11914    public boolean hasUri() {
11915      return this.uri != null && !this.uri.isEmpty();
11916    }
11917
11918    /**
11919     * @param value {@link #uri} (A canonical reference to the Implementation guide
11920     *              for the dependency.). This is the underlying object with id,
11921     *              value and extensions. The accessor "getUri" gives direct access
11922     *              to the value
11923     */
11924    public ImplementationGuideDependsOnComponent setUriElement(CanonicalType value) {
11925      this.uri = value;
11926      return this;
11927    }
11928
11929    /**
11930     * @return A canonical reference to the Implementation guide for the dependency.
11931     */
11932    public String getUri() {
11933      return this.uri == null ? null : this.uri.getValue();
11934    }
11935
11936    /**
11937     * @param value A canonical reference to the Implementation guide for the
11938     *              dependency.
11939     */
11940    public ImplementationGuideDependsOnComponent setUri(String value) {
11941      if (this.uri == null)
11942        this.uri = new CanonicalType();
11943      this.uri.setValue(value);
11944      return this;
11945    }
11946
11947    /**
11948     * @return {@link #packageId} (The NPM package name for the Implementation Guide
11949     *         that this IG depends on.). This is the underlying object with id,
11950     *         value and extensions. The accessor "getPackageId" gives direct access
11951     *         to the value
11952     */
11953    public IdType getPackageIdElement() {
11954      if (this.packageId == null)
11955        if (Configuration.errorOnAutoCreate())
11956          throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.packageId");
11957        else if (Configuration.doAutoCreate())
11958          this.packageId = new IdType(); // bb
11959      return this.packageId;
11960    }
11961
11962    public boolean hasPackageIdElement() {
11963      return this.packageId != null && !this.packageId.isEmpty();
11964    }
11965
11966    public boolean hasPackageId() {
11967      return this.packageId != null && !this.packageId.isEmpty();
11968    }
11969
11970    /**
11971     * @param value {@link #packageId} (The NPM package name for the Implementation
11972     *              Guide that this IG depends on.). This is the underlying object
11973     *              with id, value and extensions. The accessor "getPackageId" gives
11974     *              direct access to the value
11975     */
11976    public ImplementationGuideDependsOnComponent setPackageIdElement(IdType value) {
11977      this.packageId = value;
11978      return this;
11979    }
11980
11981    /**
11982     * @return The NPM package name for the Implementation Guide that this IG
11983     *         depends on.
11984     */
11985    public String getPackageId() {
11986      return this.packageId == null ? null : this.packageId.getValue();
11987    }
11988
11989    /**
11990     * @param value The NPM package name for the Implementation Guide that this IG
11991     *              depends on.
11992     */
11993    public ImplementationGuideDependsOnComponent setPackageId(String value) {
11994      if (Utilities.noString(value))
11995        this.packageId = null;
11996      else {
11997        if (this.packageId == null)
11998          this.packageId = new IdType();
11999        this.packageId.setValue(value);
12000      }
12001      return this;
12002    }
12003
12004    /**
12005     * @return {@link #version} (The version of the IG that is depended on, when the
12006     *         correct version is required to understand the IG correctly.). This is
12007     *         the underlying object with id, value and extensions. The accessor
12008     *         "getVersion" gives direct access to the value
12009     */
12010    public StringType getVersionElement() {
12011      if (this.version == null)
12012        if (Configuration.errorOnAutoCreate())
12013          throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.version");
12014        else if (Configuration.doAutoCreate())
12015          this.version = new StringType(); // bb
12016      return this.version;
12017    }
12018
12019    public boolean hasVersionElement() {
12020      return this.version != null && !this.version.isEmpty();
12021    }
12022
12023    public boolean hasVersion() {
12024      return this.version != null && !this.version.isEmpty();
12025    }
12026
12027    /**
12028     * @param value {@link #version} (The version of the IG that is depended on,
12029     *              when the correct version is required to understand the IG
12030     *              correctly.). This is the underlying object with id, value and
12031     *              extensions. The accessor "getVersion" gives direct access to the
12032     *              value
12033     */
12034    public ImplementationGuideDependsOnComponent setVersionElement(StringType value) {
12035      this.version = value;
12036      return this;
12037    }
12038
12039    /**
12040     * @return The version of the IG that is depended on, when the correct version
12041     *         is required to understand the IG correctly.
12042     */
12043    public String getVersion() {
12044      return this.version == null ? null : this.version.getValue();
12045    }
12046
12047    /**
12048     * @param value The version of the IG that is depended on, when the correct
12049     *              version is required to understand the IG correctly.
12050     */
12051    public ImplementationGuideDependsOnComponent setVersion(String value) {
12052      if (Utilities.noString(value))
12053        this.version = null;
12054      else {
12055        if (this.version == null)
12056          this.version = new StringType();
12057        this.version.setValue(value);
12058      }
12059      return this;
12060    }
12061
12062    protected void listChildren(List<Property> children) {
12063      super.listChildren(children);
12064      children.add(new Property("uri", "canonical(ImplementationGuide)",
12065          "A canonical reference to the Implementation guide for the dependency.", 0, 1, uri));
12066      children.add(new Property("packageId", "id",
12067          "The NPM package name for the Implementation Guide that this IG depends on.", 0, 1, packageId));
12068      children.add(new Property("version", "string",
12069          "The version of the IG that is depended on, when the correct version is required to understand the IG correctly.",
12070          0, 1, version));
12071    }
12072
12073    @Override
12074    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
12075      switch (_hash) {
12076      case 116076:
12077        /* uri */ return new Property("uri", "canonical(ImplementationGuide)",
12078            "A canonical reference to the Implementation guide for the dependency.", 0, 1, uri);
12079      case 1802060801:
12080        /* packageId */ return new Property("packageId", "id",
12081            "The NPM package name for the Implementation Guide that this IG depends on.", 0, 1, packageId);
12082      case 351608024:
12083        /* version */ return new Property("version", "string",
12084            "The version of the IG that is depended on, when the correct version is required to understand the IG correctly.",
12085            0, 1, version);
12086      default:
12087        return super.getNamedProperty(_hash, _name, _checkValid);
12088      }
12089
12090    }
12091
12092    @Override
12093    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
12094      switch (hash) {
12095      case 116076:
12096        /* uri */ return this.uri == null ? new Base[0] : new Base[] { this.uri }; // CanonicalType
12097      case 1802060801:
12098        /* packageId */ return this.packageId == null ? new Base[0] : new Base[] { this.packageId }; // IdType
12099      case 351608024:
12100        /* version */ return this.version == null ? new Base[0] : new Base[] { this.version }; // StringType
12101      default:
12102        return super.getProperty(hash, name, checkValid);
12103      }
12104
12105    }
12106
12107    @Override
12108    public Base setProperty(int hash, String name, Base value) throws FHIRException {
12109      switch (hash) {
12110      case 116076: // uri
12111        this.uri = castToCanonical(value); // CanonicalType
12112        return value;
12113      case 1802060801: // packageId
12114        this.packageId = castToId(value); // IdType
12115        return value;
12116      case 351608024: // version
12117        this.version = castToString(value); // StringType
12118        return value;
12119      default:
12120        return super.setProperty(hash, name, value);
12121      }
12122
12123    }
12124
12125    @Override
12126    public Base setProperty(String name, Base value) throws FHIRException {
12127      if (name.equals("uri")) {
12128        this.uri = castToCanonical(value); // CanonicalType
12129      } else if (name.equals("packageId")) {
12130        this.packageId = castToId(value); // IdType
12131      } else if (name.equals("version")) {
12132        this.version = castToString(value); // StringType
12133      } else
12134        return super.setProperty(name, value);
12135      return value;
12136    }
12137
12138    @Override
12139    public Base makeProperty(int hash, String name) throws FHIRException {
12140      switch (hash) {
12141      case 116076:
12142        return getUriElement();
12143      case 1802060801:
12144        return getPackageIdElement();
12145      case 351608024:
12146        return getVersionElement();
12147      default:
12148        return super.makeProperty(hash, name);
12149      }
12150
12151    }
12152
12153    @Override
12154    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
12155      switch (hash) {
12156      case 116076:
12157        /* uri */ return new String[] { "canonical" };
12158      case 1802060801:
12159        /* packageId */ return new String[] { "id" };
12160      case 351608024:
12161        /* version */ return new String[] { "string" };
12162      default:
12163        return super.getTypesForProperty(hash, name);
12164      }
12165
12166    }
12167
12168    @Override
12169    public Base addChild(String name) throws FHIRException {
12170      if (name.equals("uri")) {
12171        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.uri");
12172      } else if (name.equals("packageId")) {
12173        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.packageId");
12174      } else if (name.equals("version")) {
12175        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.version");
12176      } else
12177        return super.addChild(name);
12178    }
12179
12180    public ImplementationGuideDependsOnComponent copy() {
12181      ImplementationGuideDependsOnComponent dst = new ImplementationGuideDependsOnComponent();
12182      copyValues(dst);
12183      return dst;
12184    }
12185
12186    public void copyValues(ImplementationGuideDependsOnComponent dst) {
12187      super.copyValues(dst);
12188      dst.uri = uri == null ? null : uri.copy();
12189      dst.packageId = packageId == null ? null : packageId.copy();
12190      dst.version = version == null ? null : version.copy();
12191    }
12192
12193    @Override
12194    public boolean equalsDeep(Base other_) {
12195      if (!super.equalsDeep(other_))
12196        return false;
12197      if (!(other_ instanceof ImplementationGuideDependsOnComponent))
12198        return false;
12199      ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
12200      return compareDeep(uri, o.uri, true) && compareDeep(packageId, o.packageId, true)
12201          && compareDeep(version, o.version, true);
12202    }
12203
12204    @Override
12205    public boolean equalsShallow(Base other_) {
12206      if (!super.equalsShallow(other_))
12207        return false;
12208      if (!(other_ instanceof ImplementationGuideDependsOnComponent))
12209        return false;
12210      ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
12211      return compareValues(packageId, o.packageId, true) && compareValues(version, o.version, true);
12212    }
12213
12214    public boolean isEmpty() {
12215      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(uri, packageId, version);
12216    }
12217
12218    public String fhirType() {
12219      return "ImplementationGuide.dependsOn";
12220
12221    }
12222
12223  }
12224
12225  @Block()
12226  public static class ImplementationGuideGlobalComponent extends BackboneElement implements IBaseBackboneElement {
12227    /**
12228     * The type of resource that all instances must conform to.
12229     */
12230    @Child(name = "type", type = { CodeType.class }, order = 1, min = 1, max = 1, modifier = false, summary = true)
12231    @Description(shortDefinition = "Type this profile applies to", formalDefinition = "The type of resource that all instances must conform to.")
12232    @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/resource-types")
12233    protected CodeType type;
12234
12235    /**
12236     * A reference to the profile that all instances must conform to.
12237     */
12238    @Child(name = "profile", type = {
12239        CanonicalType.class }, order = 2, min = 1, max = 1, modifier = false, summary = true)
12240    @Description(shortDefinition = "Profile that all resources must conform to", formalDefinition = "A reference to the profile that all instances must conform to.")
12241    protected CanonicalType profile;
12242
12243    private static final long serialVersionUID = 33894666L;
12244
12245    /**
12246     * Constructor
12247     */
12248    public ImplementationGuideGlobalComponent() {
12249      super();
12250    }
12251
12252    /**
12253     * Constructor
12254     */
12255    public ImplementationGuideGlobalComponent(CodeType type, CanonicalType profile) {
12256      super();
12257      this.type = type;
12258      this.profile = profile;
12259    }
12260
12261    /**
12262     * @return {@link #type} (The type of resource that all instances must conform
12263     *         to.). This is the underlying object with id, value and extensions.
12264     *         The accessor "getType" gives direct access to the value
12265     */
12266    public CodeType getTypeElement() {
12267      if (this.type == null)
12268        if (Configuration.errorOnAutoCreate())
12269          throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.type");
12270        else if (Configuration.doAutoCreate())
12271          this.type = new CodeType(); // bb
12272      return this.type;
12273    }
12274
12275    public boolean hasTypeElement() {
12276      return this.type != null && !this.type.isEmpty();
12277    }
12278
12279    public boolean hasType() {
12280      return this.type != null && !this.type.isEmpty();
12281    }
12282
12283    /**
12284     * @param value {@link #type} (The type of resource that all instances must
12285     *              conform to.). This is the underlying object with id, value and
12286     *              extensions. The accessor "getType" gives direct access to the
12287     *              value
12288     */
12289    public ImplementationGuideGlobalComponent setTypeElement(CodeType value) {
12290      this.type = value;
12291      return this;
12292    }
12293
12294    /**
12295     * @return The type of resource that all instances must conform to.
12296     */
12297    public String getType() {
12298      return this.type == null ? null : this.type.getValue();
12299    }
12300
12301    /**
12302     * @param value The type of resource that all instances must conform to.
12303     */
12304    public ImplementationGuideGlobalComponent setType(String value) {
12305      if (this.type == null)
12306        this.type = new CodeType();
12307      this.type.setValue(value);
12308      return this;
12309    }
12310
12311    /**
12312     * @return {@link #profile} (A reference to the profile that all instances must
12313     *         conform to.). This is the underlying object with id, value and
12314     *         extensions. The accessor "getProfile" gives direct access to the
12315     *         value
12316     */
12317    public CanonicalType getProfileElement() {
12318      if (this.profile == null)
12319        if (Configuration.errorOnAutoCreate())
12320          throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.profile");
12321        else if (Configuration.doAutoCreate())
12322          this.profile = new CanonicalType(); // bb
12323      return this.profile;
12324    }
12325
12326    public boolean hasProfileElement() {
12327      return this.profile != null && !this.profile.isEmpty();
12328    }
12329
12330    public boolean hasProfile() {
12331      return this.profile != null && !this.profile.isEmpty();
12332    }
12333
12334    /**
12335     * @param value {@link #profile} (A reference to the profile that all instances
12336     *              must conform to.). This is the underlying object with id, value
12337     *              and extensions. The accessor "getProfile" gives direct access to
12338     *              the value
12339     */
12340    public ImplementationGuideGlobalComponent setProfileElement(CanonicalType value) {
12341      this.profile = value;
12342      return this;
12343    }
12344
12345    /**
12346     * @return A reference to the profile that all instances must conform to.
12347     */
12348    public String getProfile() {
12349      return this.profile == null ? null : this.profile.getValue();
12350    }
12351
12352    /**
12353     * @param value A reference to the profile that all instances must conform to.
12354     */
12355    public ImplementationGuideGlobalComponent setProfile(String value) {
12356      if (this.profile == null)
12357        this.profile = new CanonicalType();
12358      this.profile.setValue(value);
12359      return this;
12360    }
12361
12362    protected void listChildren(List<Property> children) {
12363      super.listChildren(children);
12364      children
12365          .add(new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1, type));
12366      children.add(new Property("profile", "canonical(StructureDefinition)",
12367          "A reference to the profile that all instances must conform to.", 0, 1, profile));
12368    }
12369
12370    @Override
12371    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
12372      switch (_hash) {
12373      case 3575610:
12374        /* type */ return new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1,
12375            type);
12376      case -309425751:
12377        /* profile */ return new Property("profile", "canonical(StructureDefinition)",
12378            "A reference to the profile that all instances must conform to.", 0, 1, profile);
12379      default:
12380        return super.getNamedProperty(_hash, _name, _checkValid);
12381      }
12382
12383    }
12384
12385    @Override
12386    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
12387      switch (hash) {
12388      case 3575610:
12389        /* type */ return this.type == null ? new Base[0] : new Base[] { this.type }; // CodeType
12390      case -309425751:
12391        /* profile */ return this.profile == null ? new Base[0] : new Base[] { this.profile }; // CanonicalType
12392      default:
12393        return super.getProperty(hash, name, checkValid);
12394      }
12395
12396    }
12397
12398    @Override
12399    public Base setProperty(int hash, String name, Base value) throws FHIRException {
12400      switch (hash) {
12401      case 3575610: // type
12402        this.type = castToCode(value); // CodeType
12403        return value;
12404      case -309425751: // profile
12405        this.profile = castToCanonical(value); // CanonicalType
12406        return value;
12407      default:
12408        return super.setProperty(hash, name, value);
12409      }
12410
12411    }
12412
12413    @Override
12414    public Base setProperty(String name, Base value) throws FHIRException {
12415      if (name.equals("type")) {
12416        this.type = castToCode(value); // CodeType
12417      } else if (name.equals("profile")) {
12418        this.profile = castToCanonical(value); // CanonicalType
12419      } else
12420        return super.setProperty(name, value);
12421      return value;
12422    }
12423
12424    @Override
12425    public Base makeProperty(int hash, String name) throws FHIRException {
12426      switch (hash) {
12427      case 3575610:
12428        return getTypeElement();
12429      case -309425751:
12430        return getProfileElement();
12431      default:
12432        return super.makeProperty(hash, name);
12433      }
12434
12435    }
12436
12437    @Override
12438    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
12439      switch (hash) {
12440      case 3575610:
12441        /* type */ return new String[] { "code" };
12442      case -309425751:
12443        /* profile */ return new String[] { "canonical" };
12444      default:
12445        return super.getTypesForProperty(hash, name);
12446      }
12447
12448    }
12449
12450    @Override
12451    public Base addChild(String name) throws FHIRException {
12452      if (name.equals("type")) {
12453        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.type");
12454      } else if (name.equals("profile")) {
12455        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.profile");
12456      } else
12457        return super.addChild(name);
12458    }
12459
12460    public ImplementationGuideGlobalComponent copy() {
12461      ImplementationGuideGlobalComponent dst = new ImplementationGuideGlobalComponent();
12462      copyValues(dst);
12463      return dst;
12464    }
12465
12466    public void copyValues(ImplementationGuideGlobalComponent dst) {
12467      super.copyValues(dst);
12468      dst.type = type == null ? null : type.copy();
12469      dst.profile = profile == null ? null : profile.copy();
12470    }
12471
12472    @Override
12473    public boolean equalsDeep(Base other_) {
12474      if (!super.equalsDeep(other_))
12475        return false;
12476      if (!(other_ instanceof ImplementationGuideGlobalComponent))
12477        return false;
12478      ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
12479      return compareDeep(type, o.type, true) && compareDeep(profile, o.profile, true);
12480    }
12481
12482    @Override
12483    public boolean equalsShallow(Base other_) {
12484      if (!super.equalsShallow(other_))
12485        return false;
12486      if (!(other_ instanceof ImplementationGuideGlobalComponent))
12487        return false;
12488      ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
12489      return compareValues(type, o.type, true);
12490    }
12491
12492    public boolean isEmpty() {
12493      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, profile);
12494    }
12495
12496    public String fhirType() {
12497      return "ImplementationGuide.global";
12498
12499    }
12500
12501  }
12502
12503  @Block()
12504  public static class ImplementationGuideDefinitionComponent extends BackboneElement implements IBaseBackboneElement {
12505    /**
12506     * A logical group of resources. Logical groups can be used when building pages.
12507     */
12508    @Child(name = "grouping", type = {}, order = 1, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
12509    @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.")
12510    protected List<ImplementationGuideDefinitionGroupingComponent> grouping;
12511
12512    /**
12513     * A resource that is part of the implementation guide. Conformance resources
12514     * (value set, structure definition, capability statements etc.) are obvious
12515     * candidates for inclusion, but any kind of resource can be included as an
12516     * example resource.
12517     */
12518    @Child(name = "resource", type = {}, order = 2, min = 1, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
12519    @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.")
12520    protected List<ImplementationGuideDefinitionResourceComponent> resource;
12521
12522    /**
12523     * A page / section in the implementation guide. The root page is the
12524     * implementation guide home page.
12525     */
12526    @Child(name = "page", type = {}, order = 3, min = 0, max = 1, modifier = false, summary = false)
12527    @Description(shortDefinition = "Page/Section in the Guide", formalDefinition = "A page / section in the implementation guide. The root page is the implementation guide home page.")
12528    protected ImplementationGuideDefinitionPageComponent page;
12529
12530    /**
12531     * Defines how IG is built by tools.
12532     */
12533    @Child(name = "parameter", type = {}, order = 4, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
12534    @Description(shortDefinition = "Defines how IG is built by tools", formalDefinition = "Defines how IG is built by tools.")
12535    protected List<ImplementationGuideDefinitionParameterComponent> parameter;
12536
12537    /**
12538     * A template for building resources.
12539     */
12540    @Child(name = "template", type = {}, order = 5, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
12541    @Description(shortDefinition = "A template for building resources", formalDefinition = "A template for building resources.")
12542    protected List<ImplementationGuideDefinitionTemplateComponent> template;
12543
12544    private static final long serialVersionUID = 179051968L;
12545
12546    /**
12547     * Constructor
12548     */
12549    public ImplementationGuideDefinitionComponent() {
12550      super();
12551    }
12552
12553    /**
12554     * @return {@link #grouping} (A logical group of resources. Logical groups can
12555     *         be used when building pages.)
12556     */
12557    public List<ImplementationGuideDefinitionGroupingComponent> getGrouping() {
12558      if (this.grouping == null)
12559        this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
12560      return this.grouping;
12561    }
12562
12563    /**
12564     * @return Returns a reference to <code>this</code> for easy method chaining
12565     */
12566    public ImplementationGuideDefinitionComponent setGrouping(
12567        List<ImplementationGuideDefinitionGroupingComponent> theGrouping) {
12568      this.grouping = theGrouping;
12569      return this;
12570    }
12571
12572    public boolean hasGrouping() {
12573      if (this.grouping == null)
12574        return false;
12575      for (ImplementationGuideDefinitionGroupingComponent item : this.grouping)
12576        if (!item.isEmpty())
12577          return true;
12578      return false;
12579    }
12580
12581    public ImplementationGuideDefinitionGroupingComponent addGrouping() { // 3
12582      ImplementationGuideDefinitionGroupingComponent t = new ImplementationGuideDefinitionGroupingComponent();
12583      if (this.grouping == null)
12584        this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
12585      this.grouping.add(t);
12586      return t;
12587    }
12588
12589    public ImplementationGuideDefinitionComponent addGrouping(ImplementationGuideDefinitionGroupingComponent t) { // 3
12590      if (t == null)
12591        return this;
12592      if (this.grouping == null)
12593        this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
12594      this.grouping.add(t);
12595      return this;
12596    }
12597
12598    /**
12599     * @return The first repetition of repeating field {@link #grouping}, creating
12600     *         it if it does not already exist
12601     */
12602    public ImplementationGuideDefinitionGroupingComponent getGroupingFirstRep() {
12603      if (getGrouping().isEmpty()) {
12604        addGrouping();
12605      }
12606      return getGrouping().get(0);
12607    }
12608
12609    /**
12610     * @return {@link #resource} (A resource that is part of the implementation
12611     *         guide. Conformance resources (value set, structure definition,
12612     *         capability statements etc.) are obvious candidates for inclusion, but
12613     *         any kind of resource can be included as an example resource.)
12614     */
12615    public List<ImplementationGuideDefinitionResourceComponent> getResource() {
12616      if (this.resource == null)
12617        this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
12618      return this.resource;
12619    }
12620
12621    /**
12622     * @return Returns a reference to <code>this</code> for easy method chaining
12623     */
12624    public ImplementationGuideDefinitionComponent setResource(
12625        List<ImplementationGuideDefinitionResourceComponent> theResource) {
12626      this.resource = theResource;
12627      return this;
12628    }
12629
12630    public boolean hasResource() {
12631      if (this.resource == null)
12632        return false;
12633      for (ImplementationGuideDefinitionResourceComponent item : this.resource)
12634        if (!item.isEmpty())
12635          return true;
12636      return false;
12637    }
12638
12639    public ImplementationGuideDefinitionResourceComponent addResource() { // 3
12640      ImplementationGuideDefinitionResourceComponent t = new ImplementationGuideDefinitionResourceComponent();
12641      if (this.resource == null)
12642        this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
12643      this.resource.add(t);
12644      return t;
12645    }
12646
12647    public ImplementationGuideDefinitionComponent addResource(ImplementationGuideDefinitionResourceComponent t) { // 3
12648      if (t == null)
12649        return this;
12650      if (this.resource == null)
12651        this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
12652      this.resource.add(t);
12653      return this;
12654    }
12655
12656    /**
12657     * @return The first repetition of repeating field {@link #resource}, creating
12658     *         it if it does not already exist
12659     */
12660    public ImplementationGuideDefinitionResourceComponent getResourceFirstRep() {
12661      if (getResource().isEmpty()) {
12662        addResource();
12663      }
12664      return getResource().get(0);
12665    }
12666
12667    /**
12668     * @return {@link #page} (A page / section in the implementation guide. The root
12669     *         page is the implementation guide home page.)
12670     */
12671    public ImplementationGuideDefinitionPageComponent getPage() {
12672      if (this.page == null)
12673        if (Configuration.errorOnAutoCreate())
12674          throw new Error("Attempt to auto-create ImplementationGuideDefinitionComponent.page");
12675        else if (Configuration.doAutoCreate())
12676          this.page = new ImplementationGuideDefinitionPageComponent(); // cc
12677      return this.page;
12678    }
12679
12680    public boolean hasPage() {
12681      return this.page != null && !this.page.isEmpty();
12682    }
12683
12684    /**
12685     * @param value {@link #page} (A page / section in the implementation guide. The
12686     *              root page is the implementation guide home page.)
12687     */
12688    public ImplementationGuideDefinitionComponent setPage(ImplementationGuideDefinitionPageComponent value) {
12689      this.page = value;
12690      return this;
12691    }
12692
12693    /**
12694     * @return {@link #parameter} (Defines how IG is built by tools.)
12695     */
12696    public List<ImplementationGuideDefinitionParameterComponent> getParameter() {
12697      if (this.parameter == null)
12698        this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
12699      return this.parameter;
12700    }
12701
12702    /**
12703     * @return Returns a reference to <code>this</code> for easy method chaining
12704     */
12705    public ImplementationGuideDefinitionComponent setParameter(
12706        List<ImplementationGuideDefinitionParameterComponent> theParameter) {
12707      this.parameter = theParameter;
12708      return this;
12709    }
12710
12711    public boolean hasParameter() {
12712      if (this.parameter == null)
12713        return false;
12714      for (ImplementationGuideDefinitionParameterComponent item : this.parameter)
12715        if (!item.isEmpty())
12716          return true;
12717      return false;
12718    }
12719
12720    public ImplementationGuideDefinitionParameterComponent addParameter() { // 3
12721      ImplementationGuideDefinitionParameterComponent t = new ImplementationGuideDefinitionParameterComponent();
12722      if (this.parameter == null)
12723        this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
12724      this.parameter.add(t);
12725      return t;
12726    }
12727
12728    public ImplementationGuideDefinitionComponent addParameter(ImplementationGuideDefinitionParameterComponent t) { // 3
12729      if (t == null)
12730        return this;
12731      if (this.parameter == null)
12732        this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
12733      this.parameter.add(t);
12734      return this;
12735    }
12736
12737    /**
12738     * @return The first repetition of repeating field {@link #parameter}, creating
12739     *         it if it does not already exist
12740     */
12741    public ImplementationGuideDefinitionParameterComponent getParameterFirstRep() {
12742      if (getParameter().isEmpty()) {
12743        addParameter();
12744      }
12745      return getParameter().get(0);
12746    }
12747
12748    /**
12749     * @return {@link #template} (A template for building resources.)
12750     */
12751    public List<ImplementationGuideDefinitionTemplateComponent> getTemplate() {
12752      if (this.template == null)
12753        this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
12754      return this.template;
12755    }
12756
12757    /**
12758     * @return Returns a reference to <code>this</code> for easy method chaining
12759     */
12760    public ImplementationGuideDefinitionComponent setTemplate(
12761        List<ImplementationGuideDefinitionTemplateComponent> theTemplate) {
12762      this.template = theTemplate;
12763      return this;
12764    }
12765
12766    public boolean hasTemplate() {
12767      if (this.template == null)
12768        return false;
12769      for (ImplementationGuideDefinitionTemplateComponent item : this.template)
12770        if (!item.isEmpty())
12771          return true;
12772      return false;
12773    }
12774
12775    public ImplementationGuideDefinitionTemplateComponent addTemplate() { // 3
12776      ImplementationGuideDefinitionTemplateComponent t = new ImplementationGuideDefinitionTemplateComponent();
12777      if (this.template == null)
12778        this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
12779      this.template.add(t);
12780      return t;
12781    }
12782
12783    public ImplementationGuideDefinitionComponent addTemplate(ImplementationGuideDefinitionTemplateComponent t) { // 3
12784      if (t == null)
12785        return this;
12786      if (this.template == null)
12787        this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
12788      this.template.add(t);
12789      return this;
12790    }
12791
12792    /**
12793     * @return The first repetition of repeating field {@link #template}, creating
12794     *         it if it does not already exist
12795     */
12796    public ImplementationGuideDefinitionTemplateComponent getTemplateFirstRep() {
12797      if (getTemplate().isEmpty()) {
12798        addTemplate();
12799      }
12800      return getTemplate().get(0);
12801    }
12802
12803    protected void listChildren(List<Property> children) {
12804      super.listChildren(children);
12805      children.add(
12806          new Property("grouping", "", "A logical group of resources. Logical groups can be used when building pages.",
12807              0, java.lang.Integer.MAX_VALUE, grouping));
12808      children.add(new Property("resource", "",
12809          "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.",
12810          0, java.lang.Integer.MAX_VALUE, resource));
12811      children.add(new Property("page", "",
12812          "A page / section in the implementation guide. The root page is the implementation guide home page.", 0, 1,
12813          page));
12814      children.add(new Property("parameter", "", "Defines how IG is built by tools.", 0, java.lang.Integer.MAX_VALUE,
12815          parameter));
12816      children.add(
12817          new Property("template", "", "A template for building resources.", 0, java.lang.Integer.MAX_VALUE, template));
12818    }
12819
12820    @Override
12821    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
12822      switch (_hash) {
12823      case 506371331:
12824        /* grouping */ return new Property("grouping", "",
12825            "A logical group of resources. Logical groups can be used when building pages.", 0,
12826            java.lang.Integer.MAX_VALUE, grouping);
12827      case -341064690:
12828        /* resource */ return new Property("resource", "",
12829            "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.",
12830            0, java.lang.Integer.MAX_VALUE, resource);
12831      case 3433103:
12832        /* page */ return new Property("page", "",
12833            "A page / section in the implementation guide. The root page is the implementation guide home page.", 0, 1,
12834            page);
12835      case 1954460585:
12836        /* parameter */ return new Property("parameter", "", "Defines how IG is built by tools.", 0,
12837            java.lang.Integer.MAX_VALUE, parameter);
12838      case -1321546630:
12839        /* template */ return new Property("template", "", "A template for building resources.", 0,
12840            java.lang.Integer.MAX_VALUE, template);
12841      default:
12842        return super.getNamedProperty(_hash, _name, _checkValid);
12843      }
12844
12845    }
12846
12847    @Override
12848    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
12849      switch (hash) {
12850      case 506371331:
12851        /* grouping */ return this.grouping == null ? new Base[0]
12852            : this.grouping.toArray(new Base[this.grouping.size()]); // ImplementationGuideDefinitionGroupingComponent
12853      case -341064690:
12854        /* resource */ return this.resource == null ? new Base[0]
12855            : this.resource.toArray(new Base[this.resource.size()]); // ImplementationGuideDefinitionResourceComponent
12856      case 3433103:
12857        /* page */ return this.page == null ? new Base[0] : new Base[] { this.page }; // ImplementationGuideDefinitionPageComponent
12858      case 1954460585:
12859        /* parameter */ return this.parameter == null ? new Base[0]
12860            : this.parameter.toArray(new Base[this.parameter.size()]); // ImplementationGuideDefinitionParameterComponent
12861      case -1321546630:
12862        /* template */ return this.template == null ? new Base[0]
12863            : this.template.toArray(new Base[this.template.size()]); // ImplementationGuideDefinitionTemplateComponent
12864      default:
12865        return super.getProperty(hash, name, checkValid);
12866      }
12867
12868    }
12869
12870    @Override
12871    public Base setProperty(int hash, String name, Base value) throws FHIRException {
12872      switch (hash) {
12873      case 506371331: // grouping
12874        this.getGrouping().add((ImplementationGuideDefinitionGroupingComponent) value); // ImplementationGuideDefinitionGroupingComponent
12875        return value;
12876      case -341064690: // resource
12877        this.getResource().add((ImplementationGuideDefinitionResourceComponent) value); // ImplementationGuideDefinitionResourceComponent
12878        return value;
12879      case 3433103: // page
12880        this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
12881        return value;
12882      case 1954460585: // parameter
12883        this.getParameter().add((ImplementationGuideDefinitionParameterComponent) value); // ImplementationGuideDefinitionParameterComponent
12884        return value;
12885      case -1321546630: // template
12886        this.getTemplate().add((ImplementationGuideDefinitionTemplateComponent) value); // ImplementationGuideDefinitionTemplateComponent
12887        return value;
12888      default:
12889        return super.setProperty(hash, name, value);
12890      }
12891
12892    }
12893
12894    @Override
12895    public Base setProperty(String name, Base value) throws FHIRException {
12896      if (name.equals("grouping")) {
12897        this.getGrouping().add((ImplementationGuideDefinitionGroupingComponent) value);
12898      } else if (name.equals("resource")) {
12899        this.getResource().add((ImplementationGuideDefinitionResourceComponent) value);
12900      } else if (name.equals("page")) {
12901        this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
12902      } else if (name.equals("parameter")) {
12903        this.getParameter().add((ImplementationGuideDefinitionParameterComponent) value);
12904      } else if (name.equals("template")) {
12905        this.getTemplate().add((ImplementationGuideDefinitionTemplateComponent) value);
12906      } else
12907        return super.setProperty(name, value);
12908      return value;
12909    }
12910
12911    @Override
12912    public Base makeProperty(int hash, String name) throws FHIRException {
12913      switch (hash) {
12914      case 506371331:
12915        return addGrouping();
12916      case -341064690:
12917        return addResource();
12918      case 3433103:
12919        return getPage();
12920      case 1954460585:
12921        return addParameter();
12922      case -1321546630:
12923        return addTemplate();
12924      default:
12925        return super.makeProperty(hash, name);
12926      }
12927
12928    }
12929
12930    @Override
12931    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
12932      switch (hash) {
12933      case 506371331:
12934        /* grouping */ return new String[] {};
12935      case -341064690:
12936        /* resource */ return new String[] {};
12937      case 3433103:
12938        /* page */ return new String[] {};
12939      case 1954460585:
12940        /* parameter */ return new String[] {};
12941      case -1321546630:
12942        /* template */ return new String[] {};
12943      default:
12944        return super.getTypesForProperty(hash, name);
12945      }
12946
12947    }
12948
12949    @Override
12950    public Base addChild(String name) throws FHIRException {
12951      if (name.equals("grouping")) {
12952        return addGrouping();
12953      } else if (name.equals("resource")) {
12954        return addResource();
12955      } else if (name.equals("page")) {
12956        this.page = new ImplementationGuideDefinitionPageComponent();
12957        return this.page;
12958      } else if (name.equals("parameter")) {
12959        return addParameter();
12960      } else if (name.equals("template")) {
12961        return addTemplate();
12962      } else
12963        return super.addChild(name);
12964    }
12965
12966    public ImplementationGuideDefinitionComponent copy() {
12967      ImplementationGuideDefinitionComponent dst = new ImplementationGuideDefinitionComponent();
12968      copyValues(dst);
12969      return dst;
12970    }
12971
12972    public void copyValues(ImplementationGuideDefinitionComponent dst) {
12973      super.copyValues(dst);
12974      if (grouping != null) {
12975        dst.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
12976        for (ImplementationGuideDefinitionGroupingComponent i : grouping)
12977          dst.grouping.add(i.copy());
12978      }
12979      ;
12980      if (resource != null) {
12981        dst.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
12982        for (ImplementationGuideDefinitionResourceComponent i : resource)
12983          dst.resource.add(i.copy());
12984      }
12985      ;
12986      dst.page = page == null ? null : page.copy();
12987      if (parameter != null) {
12988        dst.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
12989        for (ImplementationGuideDefinitionParameterComponent i : parameter)
12990          dst.parameter.add(i.copy());
12991      }
12992      ;
12993      if (template != null) {
12994        dst.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
12995        for (ImplementationGuideDefinitionTemplateComponent i : template)
12996          dst.template.add(i.copy());
12997      }
12998      ;
12999    }
13000
13001    @Override
13002    public boolean equalsDeep(Base other_) {
13003      if (!super.equalsDeep(other_))
13004        return false;
13005      if (!(other_ instanceof ImplementationGuideDefinitionComponent))
13006        return false;
13007      ImplementationGuideDefinitionComponent o = (ImplementationGuideDefinitionComponent) other_;
13008      return compareDeep(grouping, o.grouping, true) && compareDeep(resource, o.resource, true)
13009          && compareDeep(page, o.page, true) && compareDeep(parameter, o.parameter, true)
13010          && compareDeep(template, o.template, true);
13011    }
13012
13013    @Override
13014    public boolean equalsShallow(Base other_) {
13015      if (!super.equalsShallow(other_))
13016        return false;
13017      if (!(other_ instanceof ImplementationGuideDefinitionComponent))
13018        return false;
13019      ImplementationGuideDefinitionComponent o = (ImplementationGuideDefinitionComponent) other_;
13020      return true;
13021    }
13022
13023    public boolean isEmpty() {
13024      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(grouping, resource, page, parameter, template);
13025    }
13026
13027    public String fhirType() {
13028      return "ImplementationGuide.definition";
13029
13030    }
13031
13032  }
13033
13034  @Block()
13035  public static class ImplementationGuideDefinitionGroupingComponent extends BackboneElement
13036      implements IBaseBackboneElement {
13037    /**
13038     * The human-readable title to display for the package of resources when
13039     * rendering the implementation guide.
13040     */
13041    @Child(name = "name", type = { StringType.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
13042    @Description(shortDefinition = "Descriptive name for the package", formalDefinition = "The human-readable title to display for the package of resources when rendering the implementation guide.")
13043    protected StringType name;
13044
13045    /**
13046     * Human readable text describing the package.
13047     */
13048    @Child(name = "description", type = {
13049        StringType.class }, order = 2, min = 0, max = 1, modifier = false, summary = false)
13050    @Description(shortDefinition = "Human readable text describing the package", formalDefinition = "Human readable text describing the package.")
13051    protected StringType description;
13052
13053    private static final long serialVersionUID = -1105523499L;
13054
13055    /**
13056     * Constructor
13057     */
13058    public ImplementationGuideDefinitionGroupingComponent() {
13059      super();
13060    }
13061
13062    /**
13063     * Constructor
13064     */
13065    public ImplementationGuideDefinitionGroupingComponent(StringType name) {
13066      super();
13067      this.name = name;
13068    }
13069
13070    /**
13071     * @return {@link #name} (The human-readable title to display for the package of
13072     *         resources when rendering the implementation guide.). This is the
13073     *         underlying object with id, value and extensions. The accessor
13074     *         "getName" gives direct access to the value
13075     */
13076    public StringType getNameElement() {
13077      if (this.name == null)
13078        if (Configuration.errorOnAutoCreate())
13079          throw new Error("Attempt to auto-create ImplementationGuideDefinitionGroupingComponent.name");
13080        else if (Configuration.doAutoCreate())
13081          this.name = new StringType(); // bb
13082      return this.name;
13083    }
13084
13085    public boolean hasNameElement() {
13086      return this.name != null && !this.name.isEmpty();
13087    }
13088
13089    public boolean hasName() {
13090      return this.name != null && !this.name.isEmpty();
13091    }
13092
13093    /**
13094     * @param value {@link #name} (The human-readable title to display for the
13095     *              package of resources when rendering the implementation guide.).
13096     *              This is the underlying object with id, value and extensions. The
13097     *              accessor "getName" gives direct access to the value
13098     */
13099    public ImplementationGuideDefinitionGroupingComponent setNameElement(StringType value) {
13100      this.name = value;
13101      return this;
13102    }
13103
13104    /**
13105     * @return The human-readable title to display for the package of resources when
13106     *         rendering the implementation guide.
13107     */
13108    public String getName() {
13109      return this.name == null ? null : this.name.getValue();
13110    }
13111
13112    /**
13113     * @param value The human-readable title to display for the package of resources
13114     *              when rendering the implementation guide.
13115     */
13116    public ImplementationGuideDefinitionGroupingComponent setName(String value) {
13117      if (this.name == null)
13118        this.name = new StringType();
13119      this.name.setValue(value);
13120      return this;
13121    }
13122
13123    /**
13124     * @return {@link #description} (Human readable text describing the package.).
13125     *         This is the underlying object with id, value and extensions. The
13126     *         accessor "getDescription" gives direct access to the value
13127     */
13128    public StringType getDescriptionElement() {
13129      if (this.description == null)
13130        if (Configuration.errorOnAutoCreate())
13131          throw new Error("Attempt to auto-create ImplementationGuideDefinitionGroupingComponent.description");
13132        else if (Configuration.doAutoCreate())
13133          this.description = new StringType(); // bb
13134      return this.description;
13135    }
13136
13137    public boolean hasDescriptionElement() {
13138      return this.description != null && !this.description.isEmpty();
13139    }
13140
13141    public boolean hasDescription() {
13142      return this.description != null && !this.description.isEmpty();
13143    }
13144
13145    /**
13146     * @param value {@link #description} (Human readable text describing the
13147     *              package.). This is the underlying object with id, value and
13148     *              extensions. The accessor "getDescription" gives direct access to
13149     *              the value
13150     */
13151    public ImplementationGuideDefinitionGroupingComponent setDescriptionElement(StringType value) {
13152      this.description = value;
13153      return this;
13154    }
13155
13156    /**
13157     * @return Human readable text describing the package.
13158     */
13159    public String getDescription() {
13160      return this.description == null ? null : this.description.getValue();
13161    }
13162
13163    /**
13164     * @param value Human readable text describing the package.
13165     */
13166    public ImplementationGuideDefinitionGroupingComponent setDescription(String value) {
13167      if (Utilities.noString(value))
13168        this.description = null;
13169      else {
13170        if (this.description == null)
13171          this.description = new StringType();
13172        this.description.setValue(value);
13173      }
13174      return this;
13175    }
13176
13177    protected void listChildren(List<Property> children) {
13178      super.listChildren(children);
13179      children.add(new Property("name", "string",
13180          "The human-readable title to display for the package of resources when rendering the implementation guide.",
13181          0, 1, name));
13182      children
13183          .add(new Property("description", "string", "Human readable text describing the package.", 0, 1, description));
13184    }
13185
13186    @Override
13187    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
13188      switch (_hash) {
13189      case 3373707:
13190        /* name */ return new Property("name", "string",
13191            "The human-readable title to display for the package of resources when rendering the implementation guide.",
13192            0, 1, name);
13193      case -1724546052:
13194        /* description */ return new Property("description", "string", "Human readable text describing the package.", 0,
13195            1, description);
13196      default:
13197        return super.getNamedProperty(_hash, _name, _checkValid);
13198      }
13199
13200    }
13201
13202    @Override
13203    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
13204      switch (hash) {
13205      case 3373707:
13206        /* name */ return this.name == null ? new Base[0] : new Base[] { this.name }; // StringType
13207      case -1724546052:
13208        /* description */ return this.description == null ? new Base[0] : new Base[] { this.description }; // StringType
13209      default:
13210        return super.getProperty(hash, name, checkValid);
13211      }
13212
13213    }
13214
13215    @Override
13216    public Base setProperty(int hash, String name, Base value) throws FHIRException {
13217      switch (hash) {
13218      case 3373707: // name
13219        this.name = castToString(value); // StringType
13220        return value;
13221      case -1724546052: // description
13222        this.description = castToString(value); // StringType
13223        return value;
13224      default:
13225        return super.setProperty(hash, name, value);
13226      }
13227
13228    }
13229
13230    @Override
13231    public Base setProperty(String name, Base value) throws FHIRException {
13232      if (name.equals("name")) {
13233        this.name = castToString(value); // StringType
13234      } else if (name.equals("description")) {
13235        this.description = castToString(value); // StringType
13236      } else
13237        return super.setProperty(name, value);
13238      return value;
13239    }
13240
13241    @Override
13242    public Base makeProperty(int hash, String name) throws FHIRException {
13243      switch (hash) {
13244      case 3373707:
13245        return getNameElement();
13246      case -1724546052:
13247        return getDescriptionElement();
13248      default:
13249        return super.makeProperty(hash, name);
13250      }
13251
13252    }
13253
13254    @Override
13255    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
13256      switch (hash) {
13257      case 3373707:
13258        /* name */ return new String[] { "string" };
13259      case -1724546052:
13260        /* description */ return new String[] { "string" };
13261      default:
13262        return super.getTypesForProperty(hash, name);
13263      }
13264
13265    }
13266
13267    @Override
13268    public Base addChild(String name) throws FHIRException {
13269      if (name.equals("name")) {
13270        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.name");
13271      } else if (name.equals("description")) {
13272        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.description");
13273      } else
13274        return super.addChild(name);
13275    }
13276
13277    public ImplementationGuideDefinitionGroupingComponent copy() {
13278      ImplementationGuideDefinitionGroupingComponent dst = new ImplementationGuideDefinitionGroupingComponent();
13279      copyValues(dst);
13280      return dst;
13281    }
13282
13283    public void copyValues(ImplementationGuideDefinitionGroupingComponent dst) {
13284      super.copyValues(dst);
13285      dst.name = name == null ? null : name.copy();
13286      dst.description = description == null ? null : description.copy();
13287    }
13288
13289    @Override
13290    public boolean equalsDeep(Base other_) {
13291      if (!super.equalsDeep(other_))
13292        return false;
13293      if (!(other_ instanceof ImplementationGuideDefinitionGroupingComponent))
13294        return false;
13295      ImplementationGuideDefinitionGroupingComponent o = (ImplementationGuideDefinitionGroupingComponent) other_;
13296      return compareDeep(name, o.name, true) && compareDeep(description, o.description, true);
13297    }
13298
13299    @Override
13300    public boolean equalsShallow(Base other_) {
13301      if (!super.equalsShallow(other_))
13302        return false;
13303      if (!(other_ instanceof ImplementationGuideDefinitionGroupingComponent))
13304        return false;
13305      ImplementationGuideDefinitionGroupingComponent o = (ImplementationGuideDefinitionGroupingComponent) other_;
13306      return compareValues(name, o.name, true) && compareValues(description, o.description, true);
13307    }
13308
13309    public boolean isEmpty() {
13310      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, description);
13311    }
13312
13313    public String fhirType() {
13314      return "ImplementationGuide.definition.grouping";
13315
13316    }
13317
13318  }
13319
13320  @Block()
13321  public static class ImplementationGuideDefinitionResourceComponent extends BackboneElement
13322      implements IBaseBackboneElement {
13323    /**
13324     * Where this resource is found.
13325     */
13326    @Child(name = "reference", type = {
13327        Reference.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
13328    @Description(shortDefinition = "Location of the resource", formalDefinition = "Where this resource is found.")
13329    protected Reference reference;
13330
13331    /**
13332     * The actual object that is the target of the reference (Where this resource is
13333     * found.)
13334     */
13335    protected Resource referenceTarget;
13336
13337    /**
13338     * Indicates the FHIR Version(s) this artifact is intended to apply to. If no
13339     * versions are specified, the resource is assumed to apply to all the versions
13340     * stated in ImplementationGuide.fhirVersion.
13341     */
13342    @Child(name = "fhirVersion", type = {
13343        CodeType.class }, order = 2, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
13344    @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.")
13345    @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/FHIR-version")
13346    protected List<Enumeration<FHIRVersion>> fhirVersion;
13347
13348    /**
13349     * A human assigned name for the resource. All resources SHOULD have a name, but
13350     * the name may be extracted from the resource (e.g. ValueSet.name).
13351     */
13352    @Child(name = "name", type = { StringType.class }, order = 3, min = 0, max = 1, modifier = false, summary = false)
13353    @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).")
13354    protected StringType name;
13355
13356    /**
13357     * A description of the reason that a resource has been included in the
13358     * implementation guide.
13359     */
13360    @Child(name = "description", type = {
13361        StringType.class }, order = 4, min = 0, max = 1, modifier = false, summary = false)
13362    @Description(shortDefinition = "Reason why included in guide", formalDefinition = "A description of the reason that a resource has been included in the implementation guide.")
13363    protected StringType description;
13364
13365    /**
13366     * If true or a reference, indicates the resource is an example instance. If a
13367     * reference is present, indicates that the example is an example of the
13368     * specified profile.
13369     */
13370    @Child(name = "example", type = { BooleanType.class,
13371        CanonicalType.class }, order = 5, min = 0, max = 1, modifier = false, summary = false)
13372    @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.")
13373    protected Type example;
13374
13375    /**
13376     * Reference to the id of the grouping this resource appears in.
13377     */
13378    @Child(name = "groupingId", type = { IdType.class }, order = 6, min = 0, max = 1, modifier = false, summary = false)
13379    @Description(shortDefinition = "Grouping this is part of", formalDefinition = "Reference to the id of the grouping this resource appears in.")
13380    protected IdType groupingId;
13381
13382    private static final long serialVersionUID = 1840689093L;
13383
13384    /**
13385     * Constructor
13386     */
13387    public ImplementationGuideDefinitionResourceComponent() {
13388      super();
13389    }
13390
13391    /**
13392     * Constructor
13393     */
13394    public ImplementationGuideDefinitionResourceComponent(Reference reference) {
13395      super();
13396      this.reference = reference;
13397    }
13398
13399    /**
13400     * @return {@link #reference} (Where this resource is found.)
13401     */
13402    public Reference getReference() {
13403      if (this.reference == null)
13404        if (Configuration.errorOnAutoCreate())
13405          throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.reference");
13406        else if (Configuration.doAutoCreate())
13407          this.reference = new Reference(); // cc
13408      return this.reference;
13409    }
13410
13411    public boolean hasReference() {
13412      return this.reference != null && !this.reference.isEmpty();
13413    }
13414
13415    /**
13416     * @param value {@link #reference} (Where this resource is found.)
13417     */
13418    public ImplementationGuideDefinitionResourceComponent setReference(Reference value) {
13419      this.reference = value;
13420      return this;
13421    }
13422
13423    /**
13424     * @return {@link #reference} The actual object that is the target of the
13425     *         reference. The reference library doesn't populate this, but you can
13426     *         use it to hold the resource if you resolve it. (Where this resource
13427     *         is found.)
13428     */
13429    public Resource getReferenceTarget() {
13430      return this.referenceTarget;
13431    }
13432
13433    /**
13434     * @param value {@link #reference} The actual object that is the target of the
13435     *              reference. The reference library doesn't use these, but you can
13436     *              use it to hold the resource if you resolve it. (Where this
13437     *              resource is found.)
13438     */
13439    public ImplementationGuideDefinitionResourceComponent setReferenceTarget(Resource value) {
13440      this.referenceTarget = value;
13441      return this;
13442    }
13443
13444    /**
13445     * @return {@link #fhirVersion} (Indicates the FHIR Version(s) this artifact is
13446     *         intended to apply to. If no versions are specified, the resource is
13447     *         assumed to apply to all the versions stated in
13448     *         ImplementationGuide.fhirVersion.)
13449     */
13450    public List<Enumeration<FHIRVersion>> getFhirVersion() {
13451      if (this.fhirVersion == null)
13452        this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
13453      return this.fhirVersion;
13454    }
13455
13456    /**
13457     * @return Returns a reference to <code>this</code> for easy method chaining
13458     */
13459    public ImplementationGuideDefinitionResourceComponent setFhirVersion(
13460        List<Enumeration<FHIRVersion>> theFhirVersion) {
13461      this.fhirVersion = theFhirVersion;
13462      return this;
13463    }
13464
13465    public boolean hasFhirVersion() {
13466      if (this.fhirVersion == null)
13467        return false;
13468      for (Enumeration<FHIRVersion> item : this.fhirVersion)
13469        if (!item.isEmpty())
13470          return true;
13471      return false;
13472    }
13473
13474    /**
13475     * @return {@link #fhirVersion} (Indicates the FHIR Version(s) this artifact is
13476     *         intended to apply to. If no versions are specified, the resource is
13477     *         assumed to apply to all the versions stated in
13478     *         ImplementationGuide.fhirVersion.)
13479     */
13480    public Enumeration<FHIRVersion> addFhirVersionElement() {// 2
13481      Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
13482      if (this.fhirVersion == null)
13483        this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
13484      this.fhirVersion.add(t);
13485      return t;
13486    }
13487
13488    /**
13489     * @param value {@link #fhirVersion} (Indicates the FHIR Version(s) this
13490     *              artifact is intended to apply to. If no versions are specified,
13491     *              the resource is assumed to apply to all the versions stated in
13492     *              ImplementationGuide.fhirVersion.)
13493     */
13494    public ImplementationGuideDefinitionResourceComponent addFhirVersion(FHIRVersion value) { // 1
13495      Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
13496      t.setValue(value);
13497      if (this.fhirVersion == null)
13498        this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
13499      this.fhirVersion.add(t);
13500      return this;
13501    }
13502
13503    /**
13504     * @param value {@link #fhirVersion} (Indicates the FHIR Version(s) this
13505     *              artifact is intended to apply to. If no versions are specified,
13506     *              the resource is assumed to apply to all the versions stated in
13507     *              ImplementationGuide.fhirVersion.)
13508     */
13509    public boolean hasFhirVersion(FHIRVersion value) {
13510      if (this.fhirVersion == null)
13511        return false;
13512      for (Enumeration<FHIRVersion> v : this.fhirVersion)
13513        if (v.getValue().equals(value)) // code
13514          return true;
13515      return false;
13516    }
13517
13518    /**
13519     * @return {@link #name} (A human assigned name for the resource. All resources
13520     *         SHOULD have a name, but the name may be extracted from the resource
13521     *         (e.g. ValueSet.name).). This is the underlying object with id, value
13522     *         and extensions. The accessor "getName" gives direct access to the
13523     *         value
13524     */
13525    public StringType getNameElement() {
13526      if (this.name == null)
13527        if (Configuration.errorOnAutoCreate())
13528          throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.name");
13529        else if (Configuration.doAutoCreate())
13530          this.name = new StringType(); // bb
13531      return this.name;
13532    }
13533
13534    public boolean hasNameElement() {
13535      return this.name != null && !this.name.isEmpty();
13536    }
13537
13538    public boolean hasName() {
13539      return this.name != null && !this.name.isEmpty();
13540    }
13541
13542    /**
13543     * @param value {@link #name} (A human assigned name for the resource. All
13544     *              resources SHOULD have a name, but the name may be extracted from
13545     *              the resource (e.g. ValueSet.name).). This is the underlying
13546     *              object with id, value and extensions. The accessor "getName"
13547     *              gives direct access to the value
13548     */
13549    public ImplementationGuideDefinitionResourceComponent setNameElement(StringType value) {
13550      this.name = value;
13551      return this;
13552    }
13553
13554    /**
13555     * @return A human assigned name for the resource. All resources SHOULD have a
13556     *         name, but the name may be extracted from the resource (e.g.
13557     *         ValueSet.name).
13558     */
13559    public String getName() {
13560      return this.name == null ? null : this.name.getValue();
13561    }
13562
13563    /**
13564     * @param value A human assigned name for the resource. All resources SHOULD
13565     *              have a name, but the name may be extracted from the resource
13566     *              (e.g. ValueSet.name).
13567     */
13568    public ImplementationGuideDefinitionResourceComponent setName(String value) {
13569      if (Utilities.noString(value))
13570        this.name = null;
13571      else {
13572        if (this.name == null)
13573          this.name = new StringType();
13574        this.name.setValue(value);
13575      }
13576      return this;
13577    }
13578
13579    /**
13580     * @return {@link #description} (A description of the reason that a resource has
13581     *         been included in the implementation guide.). This is the underlying
13582     *         object with id, value and extensions. The accessor "getDescription"
13583     *         gives direct access to the value
13584     */
13585    public StringType getDescriptionElement() {
13586      if (this.description == null)
13587        if (Configuration.errorOnAutoCreate())
13588          throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.description");
13589        else if (Configuration.doAutoCreate())
13590          this.description = new StringType(); // bb
13591      return this.description;
13592    }
13593
13594    public boolean hasDescriptionElement() {
13595      return this.description != null && !this.description.isEmpty();
13596    }
13597
13598    public boolean hasDescription() {
13599      return this.description != null && !this.description.isEmpty();
13600    }
13601
13602    /**
13603     * @param value {@link #description} (A description of the reason that a
13604     *              resource has been included in the implementation guide.). This
13605     *              is the underlying object with id, value and extensions. The
13606     *              accessor "getDescription" gives direct access to the value
13607     */
13608    public ImplementationGuideDefinitionResourceComponent setDescriptionElement(StringType value) {
13609      this.description = value;
13610      return this;
13611    }
13612
13613    /**
13614     * @return A description of the reason that a resource has been included in the
13615     *         implementation guide.
13616     */
13617    public String getDescription() {
13618      return this.description == null ? null : this.description.getValue();
13619    }
13620
13621    /**
13622     * @param value A description of the reason that a resource has been included in
13623     *              the implementation guide.
13624     */
13625    public ImplementationGuideDefinitionResourceComponent setDescription(String value) {
13626      if (Utilities.noString(value))
13627        this.description = null;
13628      else {
13629        if (this.description == null)
13630          this.description = new StringType();
13631        this.description.setValue(value);
13632      }
13633      return this;
13634    }
13635
13636    /**
13637     * @return {@link #example} (If true or a reference, indicates the resource is
13638     *         an example instance. If a reference is present, indicates that the
13639     *         example is an example of the specified profile.)
13640     */
13641    public Type getExample() {
13642      return this.example;
13643    }
13644
13645    /**
13646     * @return {@link #example} (If true or a reference, indicates the resource is
13647     *         an example instance. If a reference is present, indicates that the
13648     *         example is an example of the specified profile.)
13649     */
13650    public BooleanType getExampleBooleanType() throws FHIRException {
13651      if (this.example == null)
13652        this.example = new BooleanType();
13653      if (!(this.example instanceof BooleanType))
13654        throw new FHIRException("Type mismatch: the type BooleanType was expected, but "
13655            + this.example.getClass().getName() + " was encountered");
13656      return (BooleanType) this.example;
13657    }
13658
13659    public boolean hasExampleBooleanType() {
13660      return this != null && this.example instanceof BooleanType;
13661    }
13662
13663    /**
13664     * @return {@link #example} (If true or a reference, indicates the resource is
13665     *         an example instance. If a reference is present, indicates that the
13666     *         example is an example of the specified profile.)
13667     */
13668    public CanonicalType getExampleCanonicalType() throws FHIRException {
13669      if (this.example == null)
13670        this.example = new CanonicalType();
13671      if (!(this.example instanceof CanonicalType))
13672        throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "
13673            + this.example.getClass().getName() + " was encountered");
13674      return (CanonicalType) this.example;
13675    }
13676
13677    public boolean hasExampleCanonicalType() {
13678      return this != null && this.example instanceof CanonicalType;
13679    }
13680
13681    public boolean hasExample() {
13682      return this.example != null && !this.example.isEmpty();
13683    }
13684
13685    /**
13686     * @param value {@link #example} (If true or a reference, indicates the resource
13687     *              is an example instance. If a reference is present, indicates
13688     *              that the example is an example of the specified profile.)
13689     */
13690    public ImplementationGuideDefinitionResourceComponent setExample(Type value) {
13691      if (value != null && !(value instanceof BooleanType || value instanceof CanonicalType))
13692        throw new Error(
13693            "Not the right type for ImplementationGuide.definition.resource.example[x]: " + value.fhirType());
13694      this.example = value;
13695      return this;
13696    }
13697
13698    /**
13699     * @return {@link #groupingId} (Reference to the id of the grouping this
13700     *         resource appears in.). This is the underlying object with id, value
13701     *         and extensions. The accessor "getGroupingId" gives direct access to
13702     *         the value
13703     */
13704    public IdType getGroupingIdElement() {
13705      if (this.groupingId == null)
13706        if (Configuration.errorOnAutoCreate())
13707          throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.groupingId");
13708        else if (Configuration.doAutoCreate())
13709          this.groupingId = new IdType(); // bb
13710      return this.groupingId;
13711    }
13712
13713    public boolean hasGroupingIdElement() {
13714      return this.groupingId != null && !this.groupingId.isEmpty();
13715    }
13716
13717    public boolean hasGroupingId() {
13718      return this.groupingId != null && !this.groupingId.isEmpty();
13719    }
13720
13721    /**
13722     * @param value {@link #groupingId} (Reference to the id of the grouping this
13723     *              resource appears in.). This is the underlying object with id,
13724     *              value and extensions. The accessor "getGroupingId" gives direct
13725     *              access to the value
13726     */
13727    public ImplementationGuideDefinitionResourceComponent setGroupingIdElement(IdType value) {
13728      this.groupingId = value;
13729      return this;
13730    }
13731
13732    /**
13733     * @return Reference to the id of the grouping this resource appears in.
13734     */
13735    public String getGroupingId() {
13736      return this.groupingId == null ? null : this.groupingId.getValue();
13737    }
13738
13739    /**
13740     * @param value Reference to the id of the grouping this resource appears in.
13741     */
13742    public ImplementationGuideDefinitionResourceComponent setGroupingId(String value) {
13743      if (Utilities.noString(value))
13744        this.groupingId = null;
13745      else {
13746        if (this.groupingId == null)
13747          this.groupingId = new IdType();
13748        this.groupingId.setValue(value);
13749      }
13750      return this;
13751    }
13752
13753    protected void listChildren(List<Property> children) {
13754      super.listChildren(children);
13755      children.add(new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference));
13756      children.add(new Property("fhirVersion", "code",
13757          "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.",
13758          0, java.lang.Integer.MAX_VALUE, fhirVersion));
13759      children.add(new Property("name", "string",
13760          "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).",
13761          0, 1, name));
13762      children.add(new Property("description", "string",
13763          "A description of the reason that a resource has been included in the implementation guide.", 0, 1,
13764          description));
13765      children.add(new Property("example[x]", "boolean|canonical(StructureDefinition)",
13766          "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.",
13767          0, 1, example));
13768      children.add(new Property("groupingId", "id", "Reference to the id of the grouping this resource appears in.", 0,
13769          1, groupingId));
13770    }
13771
13772    @Override
13773    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
13774      switch (_hash) {
13775      case -925155509:
13776        /* reference */ return new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1,
13777            reference);
13778      case 461006061:
13779        /* fhirVersion */ return new Property("fhirVersion", "code",
13780            "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.",
13781            0, java.lang.Integer.MAX_VALUE, fhirVersion);
13782      case 3373707:
13783        /* name */ return new Property("name", "string",
13784            "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).",
13785            0, 1, name);
13786      case -1724546052:
13787        /* description */ return new Property("description", "string",
13788            "A description of the reason that a resource has been included in the implementation guide.", 0, 1,
13789            description);
13790      case -2002328874:
13791        /* example[x] */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
13792            "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.",
13793            0, 1, example);
13794      case -1322970774:
13795        /* example */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
13796            "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.",
13797            0, 1, example);
13798      case 159803230:
13799        /* exampleBoolean */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
13800            "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.",
13801            0, 1, example);
13802      case 2016979626:
13803        /* exampleCanonical */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
13804            "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.",
13805            0, 1, example);
13806      case 1291547006:
13807        /* groupingId */ return new Property("groupingId", "id",
13808            "Reference to the id of the grouping this resource appears in.", 0, 1, groupingId);
13809      default:
13810        return super.getNamedProperty(_hash, _name, _checkValid);
13811      }
13812
13813    }
13814
13815    @Override
13816    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
13817      switch (hash) {
13818      case -925155509:
13819        /* reference */ return this.reference == null ? new Base[0] : new Base[] { this.reference }; // Reference
13820      case 461006061:
13821        /* fhirVersion */ return this.fhirVersion == null ? new Base[0]
13822            : this.fhirVersion.toArray(new Base[this.fhirVersion.size()]); // Enumeration<FHIRVersion>
13823      case 3373707:
13824        /* name */ return this.name == null ? new Base[0] : new Base[] { this.name }; // StringType
13825      case -1724546052:
13826        /* description */ return this.description == null ? new Base[0] : new Base[] { this.description }; // StringType
13827      case -1322970774:
13828        /* example */ return this.example == null ? new Base[0] : new Base[] { this.example }; // Type
13829      case 1291547006:
13830        /* groupingId */ return this.groupingId == null ? new Base[0] : new Base[] { this.groupingId }; // IdType
13831      default:
13832        return super.getProperty(hash, name, checkValid);
13833      }
13834
13835    }
13836
13837    @Override
13838    public Base setProperty(int hash, String name, Base value) throws FHIRException {
13839      switch (hash) {
13840      case -925155509: // reference
13841        this.reference = castToReference(value); // Reference
13842        return value;
13843      case 461006061: // fhirVersion
13844        value = new FHIRVersionEnumFactory().fromType(castToCode(value));
13845        this.getFhirVersion().add((Enumeration) value); // Enumeration<FHIRVersion>
13846        return value;
13847      case 3373707: // name
13848        this.name = castToString(value); // StringType
13849        return value;
13850      case -1724546052: // description
13851        this.description = castToString(value); // StringType
13852        return value;
13853      case -1322970774: // example
13854        this.example = castToType(value); // Type
13855        return value;
13856      case 1291547006: // groupingId
13857        this.groupingId = castToId(value); // IdType
13858        return value;
13859      default:
13860        return super.setProperty(hash, name, value);
13861      }
13862
13863    }
13864
13865    @Override
13866    public Base setProperty(String name, Base value) throws FHIRException {
13867      if (name.equals("reference")) {
13868        this.reference = castToReference(value); // Reference
13869      } else if (name.equals("fhirVersion")) {
13870        value = new FHIRVersionEnumFactory().fromType(castToCode(value));
13871        this.getFhirVersion().add((Enumeration) value);
13872      } else if (name.equals("name")) {
13873        this.name = castToString(value); // StringType
13874      } else if (name.equals("description")) {
13875        this.description = castToString(value); // StringType
13876      } else if (name.equals("example[x]")) {
13877        this.example = castToType(value); // Type
13878      } else if (name.equals("groupingId")) {
13879        this.groupingId = castToId(value); // IdType
13880      } else
13881        return super.setProperty(name, value);
13882      return value;
13883    }
13884
13885    @Override
13886    public Base makeProperty(int hash, String name) throws FHIRException {
13887      switch (hash) {
13888      case -925155509:
13889        return getReference();
13890      case 461006061:
13891        return addFhirVersionElement();
13892      case 3373707:
13893        return getNameElement();
13894      case -1724546052:
13895        return getDescriptionElement();
13896      case -2002328874:
13897        return getExample();
13898      case -1322970774:
13899        return getExample();
13900      case 1291547006:
13901        return getGroupingIdElement();
13902      default:
13903        return super.makeProperty(hash, name);
13904      }
13905
13906    }
13907
13908    @Override
13909    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
13910      switch (hash) {
13911      case -925155509:
13912        /* reference */ return new String[] { "Reference" };
13913      case 461006061:
13914        /* fhirVersion */ return new String[] { "code" };
13915      case 3373707:
13916        /* name */ return new String[] { "string" };
13917      case -1724546052:
13918        /* description */ return new String[] { "string" };
13919      case -1322970774:
13920        /* example */ return new String[] { "boolean", "canonical" };
13921      case 1291547006:
13922        /* groupingId */ return new String[] { "id" };
13923      default:
13924        return super.getTypesForProperty(hash, name);
13925      }
13926
13927    }
13928
13929    @Override
13930    public Base addChild(String name) throws FHIRException {
13931      if (name.equals("reference")) {
13932        this.reference = new Reference();
13933        return this.reference;
13934      } else if (name.equals("fhirVersion")) {
13935        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.fhirVersion");
13936      } else if (name.equals("name")) {
13937        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.name");
13938      } else if (name.equals("description")) {
13939        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.description");
13940      } else if (name.equals("exampleBoolean")) {
13941        this.example = new BooleanType();
13942        return this.example;
13943      } else if (name.equals("exampleCanonical")) {
13944        this.example = new CanonicalType();
13945        return this.example;
13946      } else if (name.equals("groupingId")) {
13947        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.groupingId");
13948      } else
13949        return super.addChild(name);
13950    }
13951
13952    public ImplementationGuideDefinitionResourceComponent copy() {
13953      ImplementationGuideDefinitionResourceComponent dst = new ImplementationGuideDefinitionResourceComponent();
13954      copyValues(dst);
13955      return dst;
13956    }
13957
13958    public void copyValues(ImplementationGuideDefinitionResourceComponent dst) {
13959      super.copyValues(dst);
13960      dst.reference = reference == null ? null : reference.copy();
13961      if (fhirVersion != null) {
13962        dst.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
13963        for (Enumeration<FHIRVersion> i : fhirVersion)
13964          dst.fhirVersion.add(i.copy());
13965      }
13966      ;
13967      dst.name = name == null ? null : name.copy();
13968      dst.description = description == null ? null : description.copy();
13969      dst.example = example == null ? null : example.copy();
13970      dst.groupingId = groupingId == null ? null : groupingId.copy();
13971    }
13972
13973    @Override
13974    public boolean equalsDeep(Base other_) {
13975      if (!super.equalsDeep(other_))
13976        return false;
13977      if (!(other_ instanceof ImplementationGuideDefinitionResourceComponent))
13978        return false;
13979      ImplementationGuideDefinitionResourceComponent o = (ImplementationGuideDefinitionResourceComponent) other_;
13980      return compareDeep(reference, o.reference, true) && compareDeep(fhirVersion, o.fhirVersion, true)
13981          && compareDeep(name, o.name, true) && compareDeep(description, o.description, true)
13982          && compareDeep(example, o.example, true) && compareDeep(groupingId, o.groupingId, true);
13983    }
13984
13985    @Override
13986    public boolean equalsShallow(Base other_) {
13987      if (!super.equalsShallow(other_))
13988        return false;
13989      if (!(other_ instanceof ImplementationGuideDefinitionResourceComponent))
13990        return false;
13991      ImplementationGuideDefinitionResourceComponent o = (ImplementationGuideDefinitionResourceComponent) other_;
13992      return compareValues(fhirVersion, o.fhirVersion, true) && compareValues(name, o.name, true)
13993          && compareValues(description, o.description, true) && compareValues(groupingId, o.groupingId, true);
13994    }
13995
13996    public boolean isEmpty() {
13997      return super.isEmpty()
13998          && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, fhirVersion, name, description, example, groupingId);
13999    }
14000
14001    public String fhirType() {
14002      return "ImplementationGuide.definition.resource";
14003
14004    }
14005
14006  }
14007
14008  @Block()
14009  public static class ImplementationGuideDefinitionPageComponent extends BackboneElement
14010      implements IBaseBackboneElement {
14011    /**
14012     * The source address for the page.
14013     */
14014    @Child(name = "name", type = { UrlType.class,
14015        Binary.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
14016    @Description(shortDefinition = "Where to find that page", formalDefinition = "The source address for the page.")
14017    protected Type name;
14018
14019    /**
14020     * A short title used to represent this page in navigational structures such as
14021     * table of contents, bread crumbs, etc.
14022     */
14023    @Child(name = "title", type = { StringType.class }, order = 2, min = 1, max = 1, modifier = false, summary = false)
14024    @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.")
14025    protected StringType title;
14026
14027    /**
14028     * A code that indicates how the page is generated.
14029     */
14030    @Child(name = "generation", type = {
14031        CodeType.class }, order = 3, min = 1, max = 1, modifier = false, summary = false)
14032    @Description(shortDefinition = "html | markdown | xml | generated", formalDefinition = "A code that indicates how the page is generated.")
14033    @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/guide-page-generation")
14034    protected Enumeration<GuidePageGeneration> generation;
14035
14036    /**
14037     * Nested Pages/Sections under this page.
14038     */
14039    @Child(name = "page", type = {
14040        ImplementationGuideDefinitionPageComponent.class }, order = 4, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
14041    @Description(shortDefinition = "Nested Pages / Sections", formalDefinition = "Nested Pages/Sections under this page.")
14042    protected List<ImplementationGuideDefinitionPageComponent> page;
14043
14044    private static final long serialVersionUID = -365655658L;
14045
14046    /**
14047     * Constructor
14048     */
14049    public ImplementationGuideDefinitionPageComponent() {
14050      super();
14051    }
14052
14053    /**
14054     * Constructor
14055     */
14056    public ImplementationGuideDefinitionPageComponent(Type name, StringType title,
14057        Enumeration<GuidePageGeneration> generation) {
14058      super();
14059      this.name = name;
14060      this.title = title;
14061      this.generation = generation;
14062    }
14063
14064    /**
14065     * @return {@link #name} (The source address for the page.)
14066     */
14067    public Type getName() {
14068      return this.name;
14069    }
14070
14071    /**
14072     * @return {@link #name} (The source address for the page.)
14073     */
14074    public UrlType getNameUrlType() throws FHIRException {
14075      if (this.name == null)
14076        this.name = new UrlType();
14077      if (!(this.name instanceof UrlType))
14078        throw new FHIRException(
14079            "Type mismatch: the type UrlType was expected, but " + this.name.getClass().getName() + " was encountered");
14080      return (UrlType) this.name;
14081    }
14082
14083    public boolean hasNameUrlType() {
14084      return this != null && this.name instanceof UrlType;
14085    }
14086
14087    /**
14088     * @return {@link #name} (The source address for the page.)
14089     */
14090    public Reference getNameReference() throws FHIRException {
14091      if (this.name == null)
14092        this.name = new Reference();
14093      if (!(this.name instanceof Reference))
14094        throw new FHIRException("Type mismatch: the type Reference was expected, but " + this.name.getClass().getName()
14095            + " was encountered");
14096      return (Reference) this.name;
14097    }
14098
14099    public boolean hasNameReference() {
14100      return this != null && this.name instanceof Reference;
14101    }
14102
14103    public boolean hasName() {
14104      return this.name != null && !this.name.isEmpty();
14105    }
14106
14107    /**
14108     * @param value {@link #name} (The source address for the page.)
14109     */
14110    public ImplementationGuideDefinitionPageComponent setName(Type value) {
14111      if (value != null && !(value instanceof UrlType || value instanceof Reference))
14112        throw new Error("Not the right type for ImplementationGuide.definition.page.name[x]: " + value.fhirType());
14113      this.name = value;
14114      return this;
14115    }
14116
14117    /**
14118     * @return {@link #title} (A short title used to represent this page in
14119     *         navigational structures such as table of contents, bread crumbs,
14120     *         etc.). This is the underlying object with id, value and extensions.
14121     *         The accessor "getTitle" gives direct access to the value
14122     */
14123    public StringType getTitleElement() {
14124      if (this.title == null)
14125        if (Configuration.errorOnAutoCreate())
14126          throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.title");
14127        else if (Configuration.doAutoCreate())
14128          this.title = new StringType(); // bb
14129      return this.title;
14130    }
14131
14132    public boolean hasTitleElement() {
14133      return this.title != null && !this.title.isEmpty();
14134    }
14135
14136    public boolean hasTitle() {
14137      return this.title != null && !this.title.isEmpty();
14138    }
14139
14140    /**
14141     * @param value {@link #title} (A short title used to represent this page in
14142     *              navigational structures such as table of contents, bread crumbs,
14143     *              etc.). This is the underlying object with id, value and
14144     *              extensions. The accessor "getTitle" gives direct access to the
14145     *              value
14146     */
14147    public ImplementationGuideDefinitionPageComponent setTitleElement(StringType value) {
14148      this.title = value;
14149      return this;
14150    }
14151
14152    /**
14153     * @return A short title used to represent this page in navigational structures
14154     *         such as table of contents, bread crumbs, etc.
14155     */
14156    public String getTitle() {
14157      return this.title == null ? null : this.title.getValue();
14158    }
14159
14160    /**
14161     * @param value A short title used to represent this page in navigational
14162     *              structures such as table of contents, bread crumbs, etc.
14163     */
14164    public ImplementationGuideDefinitionPageComponent setTitle(String value) {
14165      if (this.title == null)
14166        this.title = new StringType();
14167      this.title.setValue(value);
14168      return this;
14169    }
14170
14171    /**
14172     * @return {@link #generation} (A code that indicates how the page is
14173     *         generated.). This is the underlying object with id, value and
14174     *         extensions. The accessor "getGeneration" gives direct access to the
14175     *         value
14176     */
14177    public Enumeration<GuidePageGeneration> getGenerationElement() {
14178      if (this.generation == null)
14179        if (Configuration.errorOnAutoCreate())
14180          throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.generation");
14181        else if (Configuration.doAutoCreate())
14182          this.generation = new Enumeration<GuidePageGeneration>(new GuidePageGenerationEnumFactory()); // bb
14183      return this.generation;
14184    }
14185
14186    public boolean hasGenerationElement() {
14187      return this.generation != null && !this.generation.isEmpty();
14188    }
14189
14190    public boolean hasGeneration() {
14191      return this.generation != null && !this.generation.isEmpty();
14192    }
14193
14194    /**
14195     * @param value {@link #generation} (A code that indicates how the page is
14196     *              generated.). This is the underlying object with id, value and
14197     *              extensions. The accessor "getGeneration" gives direct access to
14198     *              the value
14199     */
14200    public ImplementationGuideDefinitionPageComponent setGenerationElement(Enumeration<GuidePageGeneration> value) {
14201      this.generation = value;
14202      return this;
14203    }
14204
14205    /**
14206     * @return A code that indicates how the page is generated.
14207     */
14208    public GuidePageGeneration getGeneration() {
14209      return this.generation == null ? null : this.generation.getValue();
14210    }
14211
14212    /**
14213     * @param value A code that indicates how the page is generated.
14214     */
14215    public ImplementationGuideDefinitionPageComponent setGeneration(GuidePageGeneration value) {
14216      if (this.generation == null)
14217        this.generation = new Enumeration<GuidePageGeneration>(new GuidePageGenerationEnumFactory());
14218      this.generation.setValue(value);
14219      return this;
14220    }
14221
14222    /**
14223     * @return {@link #page} (Nested Pages/Sections under this page.)
14224     */
14225    public List<ImplementationGuideDefinitionPageComponent> getPage() {
14226      if (this.page == null)
14227        this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
14228      return this.page;
14229    }
14230
14231    /**
14232     * @return Returns a reference to <code>this</code> for easy method chaining
14233     */
14234    public ImplementationGuideDefinitionPageComponent setPage(
14235        List<ImplementationGuideDefinitionPageComponent> thePage) {
14236      this.page = thePage;
14237      return this;
14238    }
14239
14240    public boolean hasPage() {
14241      if (this.page == null)
14242        return false;
14243      for (ImplementationGuideDefinitionPageComponent item : this.page)
14244        if (!item.isEmpty())
14245          return true;
14246      return false;
14247    }
14248
14249    public ImplementationGuideDefinitionPageComponent addPage() { // 3
14250      ImplementationGuideDefinitionPageComponent t = new ImplementationGuideDefinitionPageComponent();
14251      if (this.page == null)
14252        this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
14253      this.page.add(t);
14254      return t;
14255    }
14256
14257    public ImplementationGuideDefinitionPageComponent addPage(ImplementationGuideDefinitionPageComponent t) { // 3
14258      if (t == null)
14259        return this;
14260      if (this.page == null)
14261        this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
14262      this.page.add(t);
14263      return this;
14264    }
14265
14266    /**
14267     * @return The first repetition of repeating field {@link #page}, creating it if
14268     *         it does not already exist
14269     */
14270    public ImplementationGuideDefinitionPageComponent getPageFirstRep() {
14271      if (getPage().isEmpty()) {
14272        addPage();
14273      }
14274      return getPage().get(0);
14275    }
14276
14277    protected void listChildren(List<Property> children) {
14278      super.listChildren(children);
14279      children.add(new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name));
14280      children.add(new Property("title", "string",
14281          "A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.",
14282          0, 1, title));
14283      children.add(
14284          new Property("generation", "code", "A code that indicates how the page is generated.", 0, 1, generation));
14285      children.add(new Property("page", "@ImplementationGuide.definition.page",
14286          "Nested Pages/Sections under this page.", 0, java.lang.Integer.MAX_VALUE, page));
14287    }
14288
14289    @Override
14290    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
14291      switch (_hash) {
14292      case 1721948693:
14293        /* name[x] */ return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1,
14294            name);
14295      case 3373707:
14296        /* name */ return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1,
14297            name);
14298      case 1721942756:
14299        /* nameUrl */ return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1,
14300            name);
14301      case 1833144576:
14302        /* nameReference */ return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.",
14303            0, 1, name);
14304      case 110371416:
14305        /* title */ return new Property("title", "string",
14306            "A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.",
14307            0, 1, title);
14308      case 305703192:
14309        /* generation */ return new Property("generation", "code", "A code that indicates how the page is generated.",
14310            0, 1, generation);
14311      case 3433103:
14312        /* page */ return new Property("page", "@ImplementationGuide.definition.page",
14313            "Nested Pages/Sections under this page.", 0, java.lang.Integer.MAX_VALUE, page);
14314      default:
14315        return super.getNamedProperty(_hash, _name, _checkValid);
14316      }
14317
14318    }
14319
14320    @Override
14321    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
14322      switch (hash) {
14323      case 3373707:
14324        /* name */ return this.name == null ? new Base[0] : new Base[] { this.name }; // Type
14325      case 110371416:
14326        /* title */ return this.title == null ? new Base[0] : new Base[] { this.title }; // StringType
14327      case 305703192:
14328        /* generation */ return this.generation == null ? new Base[0] : new Base[] { this.generation }; // Enumeration<GuidePageGeneration>
14329      case 3433103:
14330        /* page */ return this.page == null ? new Base[0] : this.page.toArray(new Base[this.page.size()]); // ImplementationGuideDefinitionPageComponent
14331      default:
14332        return super.getProperty(hash, name, checkValid);
14333      }
14334
14335    }
14336
14337    @Override
14338    public Base setProperty(int hash, String name, Base value) throws FHIRException {
14339      switch (hash) {
14340      case 3373707: // name
14341        this.name = castToType(value); // Type
14342        return value;
14343      case 110371416: // title
14344        this.title = castToString(value); // StringType
14345        return value;
14346      case 305703192: // generation
14347        value = new GuidePageGenerationEnumFactory().fromType(castToCode(value));
14348        this.generation = (Enumeration) value; // Enumeration<GuidePageGeneration>
14349        return value;
14350      case 3433103: // page
14351        this.getPage().add((ImplementationGuideDefinitionPageComponent) value); // ImplementationGuideDefinitionPageComponent
14352        return value;
14353      default:
14354        return super.setProperty(hash, name, value);
14355      }
14356
14357    }
14358
14359    @Override
14360    public Base setProperty(String name, Base value) throws FHIRException {
14361      if (name.equals("name[x]")) {
14362        this.name = castToType(value); // Type
14363      } else if (name.equals("title")) {
14364        this.title = castToString(value); // StringType
14365      } else if (name.equals("generation")) {
14366        value = new GuidePageGenerationEnumFactory().fromType(castToCode(value));
14367        this.generation = (Enumeration) value; // Enumeration<GuidePageGeneration>
14368      } else if (name.equals("page")) {
14369        this.getPage().add((ImplementationGuideDefinitionPageComponent) value);
14370      } else
14371        return super.setProperty(name, value);
14372      return value;
14373    }
14374
14375    @Override
14376    public Base makeProperty(int hash, String name) throws FHIRException {
14377      switch (hash) {
14378      case 1721948693:
14379        return getName();
14380      case 3373707:
14381        return getName();
14382      case 110371416:
14383        return getTitleElement();
14384      case 305703192:
14385        return getGenerationElement();
14386      case 3433103:
14387        return addPage();
14388      default:
14389        return super.makeProperty(hash, name);
14390      }
14391
14392    }
14393
14394    @Override
14395    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
14396      switch (hash) {
14397      case 3373707:
14398        /* name */ return new String[] { "url", "Reference" };
14399      case 110371416:
14400        /* title */ return new String[] { "string" };
14401      case 305703192:
14402        /* generation */ return new String[] { "code" };
14403      case 3433103:
14404        /* page */ return new String[] { "@ImplementationGuide.definition.page" };
14405      default:
14406        return super.getTypesForProperty(hash, name);
14407      }
14408
14409    }
14410
14411    @Override
14412    public Base addChild(String name) throws FHIRException {
14413      if (name.equals("nameUrl")) {
14414        this.name = new UrlType();
14415        return this.name;
14416      } else if (name.equals("nameReference")) {
14417        this.name = new Reference();
14418        return this.name;
14419      } else if (name.equals("title")) {
14420        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.title");
14421      } else if (name.equals("generation")) {
14422        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.generation");
14423      } else if (name.equals("page")) {
14424        return addPage();
14425      } else
14426        return super.addChild(name);
14427    }
14428
14429    public ImplementationGuideDefinitionPageComponent copy() {
14430      ImplementationGuideDefinitionPageComponent dst = new ImplementationGuideDefinitionPageComponent();
14431      copyValues(dst);
14432      return dst;
14433    }
14434
14435    public void copyValues(ImplementationGuideDefinitionPageComponent dst) {
14436      super.copyValues(dst);
14437      dst.name = name == null ? null : name.copy();
14438      dst.title = title == null ? null : title.copy();
14439      dst.generation = generation == null ? null : generation.copy();
14440      if (page != null) {
14441        dst.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
14442        for (ImplementationGuideDefinitionPageComponent i : page)
14443          dst.page.add(i.copy());
14444      }
14445      ;
14446    }
14447
14448    @Override
14449    public boolean equalsDeep(Base other_) {
14450      if (!super.equalsDeep(other_))
14451        return false;
14452      if (!(other_ instanceof ImplementationGuideDefinitionPageComponent))
14453        return false;
14454      ImplementationGuideDefinitionPageComponent o = (ImplementationGuideDefinitionPageComponent) other_;
14455      return compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
14456          && compareDeep(generation, o.generation, true) && compareDeep(page, o.page, true);
14457    }
14458
14459    @Override
14460    public boolean equalsShallow(Base other_) {
14461      if (!super.equalsShallow(other_))
14462        return false;
14463      if (!(other_ instanceof ImplementationGuideDefinitionPageComponent))
14464        return false;
14465      ImplementationGuideDefinitionPageComponent o = (ImplementationGuideDefinitionPageComponent) other_;
14466      return compareValues(title, o.title, true) && compareValues(generation, o.generation, true);
14467    }
14468
14469    public boolean isEmpty() {
14470      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, title, generation, page);
14471    }
14472
14473    public String fhirType() {
14474      return "ImplementationGuide.definition.page";
14475
14476    }
14477
14478  }
14479
14480  @Block()
14481  public static class ImplementationGuideDefinitionParameterComponent extends BackboneElement
14482      implements IBaseBackboneElement {
14483    /**
14484     * apply | path-resource | path-pages | path-tx-cache | expansion-parameter |
14485     * rule-broken-links | generate-xml | generate-json | generate-turtle |
14486     * html-template.
14487     */
14488    @Child(name = "code", type = { StringType.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
14489    @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.")
14490    protected StringType code;
14491
14492    /**
14493     * Value for named type.
14494     */
14495    @Child(name = "value", type = { StringType.class }, order = 2, min = 1, max = 1, modifier = false, summary = false)
14496    @Description(shortDefinition = "Value for named type", formalDefinition = "Value for named type.")
14497    protected StringType value;
14498
14499    private static final long serialVersionUID = 1188999138L;
14500
14501    /**
14502     * Constructor
14503     */
14504    public ImplementationGuideDefinitionParameterComponent() {
14505      super();
14506    }
14507
14508    /**
14509     * Constructor
14510     */
14511    public ImplementationGuideDefinitionParameterComponent(StringType code, StringType value) {
14512      super();
14513      this.code = code;
14514      this.value = value;
14515    }
14516
14517    /**
14518     * @return {@link #code} (apply | path-resource | path-pages | path-tx-cache |
14519     *         expansion-parameter | rule-broken-links | generate-xml |
14520     *         generate-json | generate-turtle | html-template.). This is the
14521     *         underlying object with id, value and extensions. The accessor
14522     *         "getCode" gives direct access to the value
14523     */
14524    public StringType getCodeElement() {
14525      if (this.code == null)
14526        if (Configuration.errorOnAutoCreate())
14527          throw new Error("Attempt to auto-create ImplementationGuideDefinitionParameterComponent.code");
14528        else if (Configuration.doAutoCreate())
14529          this.code = new StringType(); // bb
14530      return this.code;
14531    }
14532
14533    public boolean hasCodeElement() {
14534      return this.code != null && !this.code.isEmpty();
14535    }
14536
14537    public boolean hasCode() {
14538      return this.code != null && !this.code.isEmpty();
14539    }
14540
14541    /**
14542     * @param value {@link #code} (apply | path-resource | path-pages |
14543     *              path-tx-cache | expansion-parameter | rule-broken-links |
14544     *              generate-xml | generate-json | generate-turtle |
14545     *              html-template.). This is the underlying object with id, value
14546     *              and extensions. The accessor "getCode" gives direct access to
14547     *              the value
14548     */
14549    public ImplementationGuideDefinitionParameterComponent setCodeElement(StringType value) {
14550      this.code = value;
14551      return this;
14552    }
14553
14554    /**
14555     * @return apply | path-resource | path-pages | path-tx-cache |
14556     *         expansion-parameter | rule-broken-links | generate-xml |
14557     *         generate-json | generate-turtle | html-template.
14558     */
14559    public String getCode() {
14560      return this.code == null ? null : this.code.getValue();
14561    }
14562
14563    /**
14564     * @param value apply | path-resource | path-pages | path-tx-cache |
14565     *              expansion-parameter | rule-broken-links | generate-xml |
14566     *              generate-json | generate-turtle | html-template.
14567     */
14568    public ImplementationGuideDefinitionParameterComponent setCode(String value) {
14569      if (this.code == null)
14570        this.code = new StringType();
14571      this.code.setValue(value);
14572      return this;
14573    }
14574
14575    /**
14576     * @return {@link #value} (Value for named type.). This is the underlying object
14577     *         with id, value and extensions. The accessor "getValue" gives direct
14578     *         access to the value
14579     */
14580    public StringType getValueElement() {
14581      if (this.value == null)
14582        if (Configuration.errorOnAutoCreate())
14583          throw new Error("Attempt to auto-create ImplementationGuideDefinitionParameterComponent.value");
14584        else if (Configuration.doAutoCreate())
14585          this.value = new StringType(); // bb
14586      return this.value;
14587    }
14588
14589    public boolean hasValueElement() {
14590      return this.value != null && !this.value.isEmpty();
14591    }
14592
14593    public boolean hasValue() {
14594      return this.value != null && !this.value.isEmpty();
14595    }
14596
14597    /**
14598     * @param value {@link #value} (Value for named type.). This is the underlying
14599     *              object with id, value and extensions. The accessor "getValue"
14600     *              gives direct access to the value
14601     */
14602    public ImplementationGuideDefinitionParameterComponent setValueElement(StringType value) {
14603      this.value = value;
14604      return this;
14605    }
14606
14607    /**
14608     * @return Value for named type.
14609     */
14610    public String getValue() {
14611      return this.value == null ? null : this.value.getValue();
14612    }
14613
14614    /**
14615     * @param value Value for named type.
14616     */
14617    public ImplementationGuideDefinitionParameterComponent setValue(String value) {
14618      if (this.value == null)
14619        this.value = new StringType();
14620      this.value.setValue(value);
14621      return this;
14622    }
14623
14624    protected void listChildren(List<Property> children) {
14625      super.listChildren(children);
14626      children.add(new Property("code", "string",
14627          "apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.",
14628          0, 1, code));
14629      children.add(new Property("value", "string", "Value for named type.", 0, 1, value));
14630    }
14631
14632    @Override
14633    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
14634      switch (_hash) {
14635      case 3059181:
14636        /* code */ return new Property("code", "string",
14637            "apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.",
14638            0, 1, code);
14639      case 111972721:
14640        /* value */ return new Property("value", "string", "Value for named type.", 0, 1, value);
14641      default:
14642        return super.getNamedProperty(_hash, _name, _checkValid);
14643      }
14644
14645    }
14646
14647    @Override
14648    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
14649      switch (hash) {
14650      case 3059181:
14651        /* code */ return this.code == null ? new Base[0] : new Base[] { this.code }; // StringType
14652      case 111972721:
14653        /* value */ return this.value == null ? new Base[0] : new Base[] { this.value }; // StringType
14654      default:
14655        return super.getProperty(hash, name, checkValid);
14656      }
14657
14658    }
14659
14660    @Override
14661    public Base setProperty(int hash, String name, Base value) throws FHIRException {
14662      switch (hash) {
14663      case 3059181: // code
14664        this.code = castToString(value); // StringType
14665        return value;
14666      case 111972721: // value
14667        this.value = castToString(value); // StringType
14668        return value;
14669      default:
14670        return super.setProperty(hash, name, value);
14671      }
14672
14673    }
14674
14675    @Override
14676    public Base setProperty(String name, Base value) throws FHIRException {
14677      if (name.equals("code")) {
14678        this.code = castToString(value); // StringType
14679      } else if (name.equals("value")) {
14680        this.value = castToString(value); // StringType
14681      } else
14682        return super.setProperty(name, value);
14683      return value;
14684    }
14685
14686    @Override
14687    public Base makeProperty(int hash, String name) throws FHIRException {
14688      switch (hash) {
14689      case 3059181:
14690        return getCodeElement();
14691      case 111972721:
14692        return getValueElement();
14693      default:
14694        return super.makeProperty(hash, name);
14695      }
14696
14697    }
14698
14699    @Override
14700    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
14701      switch (hash) {
14702      case 3059181:
14703        /* code */ return new String[] { "string" };
14704      case 111972721:
14705        /* value */ return new String[] { "string" };
14706      default:
14707        return super.getTypesForProperty(hash, name);
14708      }
14709
14710    }
14711
14712    @Override
14713    public Base addChild(String name) throws FHIRException {
14714      if (name.equals("code")) {
14715        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.code");
14716      } else if (name.equals("value")) {
14717        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.value");
14718      } else
14719        return super.addChild(name);
14720    }
14721
14722    public ImplementationGuideDefinitionParameterComponent copy() {
14723      ImplementationGuideDefinitionParameterComponent dst = new ImplementationGuideDefinitionParameterComponent();
14724      copyValues(dst);
14725      return dst;
14726    }
14727
14728    public void copyValues(ImplementationGuideDefinitionParameterComponent dst) {
14729      super.copyValues(dst);
14730      dst.code = code == null ? null : code.copy();
14731      dst.value = value == null ? null : value.copy();
14732    }
14733
14734    @Override
14735    public boolean equalsDeep(Base other_) {
14736      if (!super.equalsDeep(other_))
14737        return false;
14738      if (!(other_ instanceof ImplementationGuideDefinitionParameterComponent))
14739        return false;
14740      ImplementationGuideDefinitionParameterComponent o = (ImplementationGuideDefinitionParameterComponent) other_;
14741      return compareDeep(code, o.code, true) && compareDeep(value, o.value, true);
14742    }
14743
14744    @Override
14745    public boolean equalsShallow(Base other_) {
14746      if (!super.equalsShallow(other_))
14747        return false;
14748      if (!(other_ instanceof ImplementationGuideDefinitionParameterComponent))
14749        return false;
14750      ImplementationGuideDefinitionParameterComponent o = (ImplementationGuideDefinitionParameterComponent) other_;
14751      return compareValues(code, o.code, true) && compareValues(value, o.value, true);
14752    }
14753
14754    public boolean isEmpty() {
14755      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, value);
14756    }
14757
14758    public String fhirType() {
14759      return "ImplementationGuide.definition.parameter";
14760
14761    }
14762
14763  }
14764
14765  @Block()
14766  public static class ImplementationGuideDefinitionTemplateComponent extends BackboneElement
14767      implements IBaseBackboneElement {
14768    /**
14769     * Type of template specified.
14770     */
14771    @Child(name = "code", type = { CodeType.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
14772    @Description(shortDefinition = "Type of template specified", formalDefinition = "Type of template specified.")
14773    protected CodeType code;
14774
14775    /**
14776     * The source location for the template.
14777     */
14778    @Child(name = "source", type = { StringType.class }, order = 2, min = 1, max = 1, modifier = false, summary = false)
14779    @Description(shortDefinition = "The source location for the template", formalDefinition = "The source location for the template.")
14780    protected StringType source;
14781
14782    /**
14783     * The scope in which the template applies.
14784     */
14785    @Child(name = "scope", type = { StringType.class }, order = 3, min = 0, max = 1, modifier = false, summary = false)
14786    @Description(shortDefinition = "The scope in which the template applies", formalDefinition = "The scope in which the template applies.")
14787    protected StringType scope;
14788
14789    private static final long serialVersionUID = 923832457L;
14790
14791    /**
14792     * Constructor
14793     */
14794    public ImplementationGuideDefinitionTemplateComponent() {
14795      super();
14796    }
14797
14798    /**
14799     * Constructor
14800     */
14801    public ImplementationGuideDefinitionTemplateComponent(CodeType code, StringType source) {
14802      super();
14803      this.code = code;
14804      this.source = source;
14805    }
14806
14807    /**
14808     * @return {@link #code} (Type of template specified.). This is the underlying
14809     *         object with id, value and extensions. The accessor "getCode" gives
14810     *         direct access to the value
14811     */
14812    public CodeType getCodeElement() {
14813      if (this.code == null)
14814        if (Configuration.errorOnAutoCreate())
14815          throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.code");
14816        else if (Configuration.doAutoCreate())
14817          this.code = new CodeType(); // bb
14818      return this.code;
14819    }
14820
14821    public boolean hasCodeElement() {
14822      return this.code != null && !this.code.isEmpty();
14823    }
14824
14825    public boolean hasCode() {
14826      return this.code != null && !this.code.isEmpty();
14827    }
14828
14829    /**
14830     * @param value {@link #code} (Type of template specified.). This is the
14831     *              underlying object with id, value and extensions. The accessor
14832     *              "getCode" gives direct access to the value
14833     */
14834    public ImplementationGuideDefinitionTemplateComponent setCodeElement(CodeType value) {
14835      this.code = value;
14836      return this;
14837    }
14838
14839    /**
14840     * @return Type of template specified.
14841     */
14842    public String getCode() {
14843      return this.code == null ? null : this.code.getValue();
14844    }
14845
14846    /**
14847     * @param value Type of template specified.
14848     */
14849    public ImplementationGuideDefinitionTemplateComponent setCode(String value) {
14850      if (this.code == null)
14851        this.code = new CodeType();
14852      this.code.setValue(value);
14853      return this;
14854    }
14855
14856    /**
14857     * @return {@link #source} (The source location for the template.). This is the
14858     *         underlying object with id, value and extensions. The accessor
14859     *         "getSource" gives direct access to the value
14860     */
14861    public StringType getSourceElement() {
14862      if (this.source == null)
14863        if (Configuration.errorOnAutoCreate())
14864          throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.source");
14865        else if (Configuration.doAutoCreate())
14866          this.source = new StringType(); // bb
14867      return this.source;
14868    }
14869
14870    public boolean hasSourceElement() {
14871      return this.source != null && !this.source.isEmpty();
14872    }
14873
14874    public boolean hasSource() {
14875      return this.source != null && !this.source.isEmpty();
14876    }
14877
14878    /**
14879     * @param value {@link #source} (The source location for the template.). This is
14880     *              the underlying object with id, value and extensions. The
14881     *              accessor "getSource" gives direct access to the value
14882     */
14883    public ImplementationGuideDefinitionTemplateComponent setSourceElement(StringType value) {
14884      this.source = value;
14885      return this;
14886    }
14887
14888    /**
14889     * @return The source location for the template.
14890     */
14891    public String getSource() {
14892      return this.source == null ? null : this.source.getValue();
14893    }
14894
14895    /**
14896     * @param value The source location for the template.
14897     */
14898    public ImplementationGuideDefinitionTemplateComponent setSource(String value) {
14899      if (this.source == null)
14900        this.source = new StringType();
14901      this.source.setValue(value);
14902      return this;
14903    }
14904
14905    /**
14906     * @return {@link #scope} (The scope in which the template applies.). This is
14907     *         the underlying object with id, value and extensions. The accessor
14908     *         "getScope" gives direct access to the value
14909     */
14910    public StringType getScopeElement() {
14911      if (this.scope == null)
14912        if (Configuration.errorOnAutoCreate())
14913          throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.scope");
14914        else if (Configuration.doAutoCreate())
14915          this.scope = new StringType(); // bb
14916      return this.scope;
14917    }
14918
14919    public boolean hasScopeElement() {
14920      return this.scope != null && !this.scope.isEmpty();
14921    }
14922
14923    public boolean hasScope() {
14924      return this.scope != null && !this.scope.isEmpty();
14925    }
14926
14927    /**
14928     * @param value {@link #scope} (The scope in which the template applies.). This
14929     *              is the underlying object with id, value and extensions. The
14930     *              accessor "getScope" gives direct access to the value
14931     */
14932    public ImplementationGuideDefinitionTemplateComponent setScopeElement(StringType value) {
14933      this.scope = value;
14934      return this;
14935    }
14936
14937    /**
14938     * @return The scope in which the template applies.
14939     */
14940    public String getScope() {
14941      return this.scope == null ? null : this.scope.getValue();
14942    }
14943
14944    /**
14945     * @param value The scope in which the template applies.
14946     */
14947    public ImplementationGuideDefinitionTemplateComponent setScope(String value) {
14948      if (Utilities.noString(value))
14949        this.scope = null;
14950      else {
14951        if (this.scope == null)
14952          this.scope = new StringType();
14953        this.scope.setValue(value);
14954      }
14955      return this;
14956    }
14957
14958    protected void listChildren(List<Property> children) {
14959      super.listChildren(children);
14960      children.add(new Property("code", "code", "Type of template specified.", 0, 1, code));
14961      children.add(new Property("source", "string", "The source location for the template.", 0, 1, source));
14962      children.add(new Property("scope", "string", "The scope in which the template applies.", 0, 1, scope));
14963    }
14964
14965    @Override
14966    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
14967      switch (_hash) {
14968      case 3059181:
14969        /* code */ return new Property("code", "code", "Type of template specified.", 0, 1, code);
14970      case -896505829:
14971        /* source */ return new Property("source", "string", "The source location for the template.", 0, 1, source);
14972      case 109264468:
14973        /* scope */ return new Property("scope", "string", "The scope in which the template applies.", 0, 1, scope);
14974      default:
14975        return super.getNamedProperty(_hash, _name, _checkValid);
14976      }
14977
14978    }
14979
14980    @Override
14981    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
14982      switch (hash) {
14983      case 3059181:
14984        /* code */ return this.code == null ? new Base[0] : new Base[] { this.code }; // CodeType
14985      case -896505829:
14986        /* source */ return this.source == null ? new Base[0] : new Base[] { this.source }; // StringType
14987      case 109264468:
14988        /* scope */ return this.scope == null ? new Base[0] : new Base[] { this.scope }; // StringType
14989      default:
14990        return super.getProperty(hash, name, checkValid);
14991      }
14992
14993    }
14994
14995    @Override
14996    public Base setProperty(int hash, String name, Base value) throws FHIRException {
14997      switch (hash) {
14998      case 3059181: // code
14999        this.code = castToCode(value); // CodeType
15000        return value;
15001      case -896505829: // source
15002        this.source = castToString(value); // StringType
15003        return value;
15004      case 109264468: // scope
15005        this.scope = castToString(value); // StringType
15006        return value;
15007      default:
15008        return super.setProperty(hash, name, value);
15009      }
15010
15011    }
15012
15013    @Override
15014    public Base setProperty(String name, Base value) throws FHIRException {
15015      if (name.equals("code")) {
15016        this.code = castToCode(value); // CodeType
15017      } else if (name.equals("source")) {
15018        this.source = castToString(value); // StringType
15019      } else if (name.equals("scope")) {
15020        this.scope = castToString(value); // StringType
15021      } else
15022        return super.setProperty(name, value);
15023      return value;
15024    }
15025
15026    @Override
15027    public Base makeProperty(int hash, String name) throws FHIRException {
15028      switch (hash) {
15029      case 3059181:
15030        return getCodeElement();
15031      case -896505829:
15032        return getSourceElement();
15033      case 109264468:
15034        return getScopeElement();
15035      default:
15036        return super.makeProperty(hash, name);
15037      }
15038
15039    }
15040
15041    @Override
15042    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
15043      switch (hash) {
15044      case 3059181:
15045        /* code */ return new String[] { "code" };
15046      case -896505829:
15047        /* source */ return new String[] { "string" };
15048      case 109264468:
15049        /* scope */ return new String[] { "string" };
15050      default:
15051        return super.getTypesForProperty(hash, name);
15052      }
15053
15054    }
15055
15056    @Override
15057    public Base addChild(String name) throws FHIRException {
15058      if (name.equals("code")) {
15059        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.code");
15060      } else if (name.equals("source")) {
15061        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.source");
15062      } else if (name.equals("scope")) {
15063        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.scope");
15064      } else
15065        return super.addChild(name);
15066    }
15067
15068    public ImplementationGuideDefinitionTemplateComponent copy() {
15069      ImplementationGuideDefinitionTemplateComponent dst = new ImplementationGuideDefinitionTemplateComponent();
15070      copyValues(dst);
15071      return dst;
15072    }
15073
15074    public void copyValues(ImplementationGuideDefinitionTemplateComponent dst) {
15075      super.copyValues(dst);
15076      dst.code = code == null ? null : code.copy();
15077      dst.source = source == null ? null : source.copy();
15078      dst.scope = scope == null ? null : scope.copy();
15079    }
15080
15081    @Override
15082    public boolean equalsDeep(Base other_) {
15083      if (!super.equalsDeep(other_))
15084        return false;
15085      if (!(other_ instanceof ImplementationGuideDefinitionTemplateComponent))
15086        return false;
15087      ImplementationGuideDefinitionTemplateComponent o = (ImplementationGuideDefinitionTemplateComponent) other_;
15088      return compareDeep(code, o.code, true) && compareDeep(source, o.source, true)
15089          && compareDeep(scope, o.scope, true);
15090    }
15091
15092    @Override
15093    public boolean equalsShallow(Base other_) {
15094      if (!super.equalsShallow(other_))
15095        return false;
15096      if (!(other_ instanceof ImplementationGuideDefinitionTemplateComponent))
15097        return false;
15098      ImplementationGuideDefinitionTemplateComponent o = (ImplementationGuideDefinitionTemplateComponent) other_;
15099      return compareValues(code, o.code, true) && compareValues(source, o.source, true)
15100          && compareValues(scope, o.scope, true);
15101    }
15102
15103    public boolean isEmpty() {
15104      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, source, scope);
15105    }
15106
15107    public String fhirType() {
15108      return "ImplementationGuide.definition.template";
15109
15110    }
15111
15112  }
15113
15114  @Block()
15115  public static class ImplementationGuideManifestComponent extends BackboneElement implements IBaseBackboneElement {
15116    /**
15117     * A pointer to official web page, PDF or other rendering of the implementation
15118     * guide.
15119     */
15120    @Child(name = "rendering", type = { UrlType.class }, order = 1, min = 0, max = 1, modifier = false, summary = true)
15121    @Description(shortDefinition = "Location of rendered implementation guide", formalDefinition = "A pointer to official web page, PDF or other rendering of the implementation guide.")
15122    protected UrlType rendering;
15123
15124    /**
15125     * A resource that is part of the implementation guide. Conformance resources
15126     * (value set, structure definition, capability statements etc.) are obvious
15127     * candidates for inclusion, but any kind of resource can be included as an
15128     * example resource.
15129     */
15130    @Child(name = "resource", type = {}, order = 2, min = 1, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
15131    @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.")
15132    protected List<ManifestResourceComponent> resource;
15133
15134    /**
15135     * Information about a page within the IG.
15136     */
15137    @Child(name = "page", type = {}, order = 3, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
15138    @Description(shortDefinition = "HTML page within the parent IG", formalDefinition = "Information about a page within the IG.")
15139    protected List<ManifestPageComponent> page;
15140
15141    /**
15142     * Indicates a relative path to an image that exists within the IG.
15143     */
15144    @Child(name = "image", type = {
15145        StringType.class }, order = 4, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
15146    @Description(shortDefinition = "Image within the IG", formalDefinition = "Indicates a relative path to an image that exists within the IG.")
15147    protected List<StringType> image;
15148
15149    /**
15150     * Indicates the relative path of an additional non-page, non-image file that is
15151     * part of the IG - e.g. zip, jar and similar files that could be the target of
15152     * a hyperlink in a derived IG.
15153     */
15154    @Child(name = "other", type = {
15155        StringType.class }, order = 5, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
15156    @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.")
15157    protected List<StringType> other;
15158
15159    private static final long serialVersionUID = 1881327712L;
15160
15161    /**
15162     * Constructor
15163     */
15164    public ImplementationGuideManifestComponent() {
15165      super();
15166    }
15167
15168    /**
15169     * @return {@link #rendering} (A pointer to official web page, PDF or other
15170     *         rendering of the implementation guide.). This is the underlying
15171     *         object with id, value and extensions. The accessor "getRendering"
15172     *         gives direct access to the value
15173     */
15174    public UrlType getRenderingElement() {
15175      if (this.rendering == null)
15176        if (Configuration.errorOnAutoCreate())
15177          throw new Error("Attempt to auto-create ImplementationGuideManifestComponent.rendering");
15178        else if (Configuration.doAutoCreate())
15179          this.rendering = new UrlType(); // bb
15180      return this.rendering;
15181    }
15182
15183    public boolean hasRenderingElement() {
15184      return this.rendering != null && !this.rendering.isEmpty();
15185    }
15186
15187    public boolean hasRendering() {
15188      return this.rendering != null && !this.rendering.isEmpty();
15189    }
15190
15191    /**
15192     * @param value {@link #rendering} (A pointer to official web page, PDF or other
15193     *              rendering of the implementation guide.). This is the underlying
15194     *              object with id, value and extensions. The accessor
15195     *              "getRendering" gives direct access to the value
15196     */
15197    public ImplementationGuideManifestComponent setRenderingElement(UrlType value) {
15198      this.rendering = value;
15199      return this;
15200    }
15201
15202    /**
15203     * @return A pointer to official web page, PDF or other rendering of the
15204     *         implementation guide.
15205     */
15206    public String getRendering() {
15207      return this.rendering == null ? null : this.rendering.getValue();
15208    }
15209
15210    /**
15211     * @param value A pointer to official web page, PDF or other rendering of the
15212     *              implementation guide.
15213     */
15214    public ImplementationGuideManifestComponent setRendering(String value) {
15215      if (Utilities.noString(value))
15216        this.rendering = null;
15217      else {
15218        if (this.rendering == null)
15219          this.rendering = new UrlType();
15220        this.rendering.setValue(value);
15221      }
15222      return this;
15223    }
15224
15225    /**
15226     * @return {@link #resource} (A resource that is part of the implementation
15227     *         guide. Conformance resources (value set, structure definition,
15228     *         capability statements etc.) are obvious candidates for inclusion, but
15229     *         any kind of resource can be included as an example resource.)
15230     */
15231    public List<ManifestResourceComponent> getResource() {
15232      if (this.resource == null)
15233        this.resource = new ArrayList<ManifestResourceComponent>();
15234      return this.resource;
15235    }
15236
15237    /**
15238     * @return Returns a reference to <code>this</code> for easy method chaining
15239     */
15240    public ImplementationGuideManifestComponent setResource(List<ManifestResourceComponent> theResource) {
15241      this.resource = theResource;
15242      return this;
15243    }
15244
15245    public boolean hasResource() {
15246      if (this.resource == null)
15247        return false;
15248      for (ManifestResourceComponent item : this.resource)
15249        if (!item.isEmpty())
15250          return true;
15251      return false;
15252    }
15253
15254    public ManifestResourceComponent addResource() { // 3
15255      ManifestResourceComponent t = new ManifestResourceComponent();
15256      if (this.resource == null)
15257        this.resource = new ArrayList<ManifestResourceComponent>();
15258      this.resource.add(t);
15259      return t;
15260    }
15261
15262    public ImplementationGuideManifestComponent addResource(ManifestResourceComponent t) { // 3
15263      if (t == null)
15264        return this;
15265      if (this.resource == null)
15266        this.resource = new ArrayList<ManifestResourceComponent>();
15267      this.resource.add(t);
15268      return this;
15269    }
15270
15271    /**
15272     * @return The first repetition of repeating field {@link #resource}, creating
15273     *         it if it does not already exist
15274     */
15275    public ManifestResourceComponent getResourceFirstRep() {
15276      if (getResource().isEmpty()) {
15277        addResource();
15278      }
15279      return getResource().get(0);
15280    }
15281
15282    /**
15283     * @return {@link #page} (Information about a page within the IG.)
15284     */
15285    public List<ManifestPageComponent> getPage() {
15286      if (this.page == null)
15287        this.page = new ArrayList<ManifestPageComponent>();
15288      return this.page;
15289    }
15290
15291    /**
15292     * @return Returns a reference to <code>this</code> for easy method chaining
15293     */
15294    public ImplementationGuideManifestComponent setPage(List<ManifestPageComponent> thePage) {
15295      this.page = thePage;
15296      return this;
15297    }
15298
15299    public boolean hasPage() {
15300      if (this.page == null)
15301        return false;
15302      for (ManifestPageComponent item : this.page)
15303        if (!item.isEmpty())
15304          return true;
15305      return false;
15306    }
15307
15308    public ManifestPageComponent addPage() { // 3
15309      ManifestPageComponent t = new ManifestPageComponent();
15310      if (this.page == null)
15311        this.page = new ArrayList<ManifestPageComponent>();
15312      this.page.add(t);
15313      return t;
15314    }
15315
15316    public ImplementationGuideManifestComponent addPage(ManifestPageComponent t) { // 3
15317      if (t == null)
15318        return this;
15319      if (this.page == null)
15320        this.page = new ArrayList<ManifestPageComponent>();
15321      this.page.add(t);
15322      return this;
15323    }
15324
15325    /**
15326     * @return The first repetition of repeating field {@link #page}, creating it if
15327     *         it does not already exist
15328     */
15329    public ManifestPageComponent getPageFirstRep() {
15330      if (getPage().isEmpty()) {
15331        addPage();
15332      }
15333      return getPage().get(0);
15334    }
15335
15336    /**
15337     * @return {@link #image} (Indicates a relative path to an image that exists
15338     *         within the IG.)
15339     */
15340    public List<StringType> getImage() {
15341      if (this.image == null)
15342        this.image = new ArrayList<StringType>();
15343      return this.image;
15344    }
15345
15346    /**
15347     * @return Returns a reference to <code>this</code> for easy method chaining
15348     */
15349    public ImplementationGuideManifestComponent setImage(List<StringType> theImage) {
15350      this.image = theImage;
15351      return this;
15352    }
15353
15354    public boolean hasImage() {
15355      if (this.image == null)
15356        return false;
15357      for (StringType item : this.image)
15358        if (!item.isEmpty())
15359          return true;
15360      return false;
15361    }
15362
15363    /**
15364     * @return {@link #image} (Indicates a relative path to an image that exists
15365     *         within the IG.)
15366     */
15367    public StringType addImageElement() {// 2
15368      StringType t = new StringType();
15369      if (this.image == null)
15370        this.image = new ArrayList<StringType>();
15371      this.image.add(t);
15372      return t;
15373    }
15374
15375    /**
15376     * @param value {@link #image} (Indicates a relative path to an image that
15377     *              exists within the IG.)
15378     */
15379    public ImplementationGuideManifestComponent addImage(String value) { // 1
15380      StringType t = new StringType();
15381      t.setValue(value);
15382      if (this.image == null)
15383        this.image = new ArrayList<StringType>();
15384      this.image.add(t);
15385      return this;
15386    }
15387
15388    /**
15389     * @param value {@link #image} (Indicates a relative path to an image that
15390     *              exists within the IG.)
15391     */
15392    public boolean hasImage(String value) {
15393      if (this.image == null)
15394        return false;
15395      for (StringType v : this.image)
15396        if (v.getValue().equals(value)) // string
15397          return true;
15398      return false;
15399    }
15400
15401    /**
15402     * @return {@link #other} (Indicates the relative path of an additional
15403     *         non-page, non-image file that is part of the IG - e.g. zip, jar and
15404     *         similar files that could be the target of a hyperlink in a derived
15405     *         IG.)
15406     */
15407    public List<StringType> getOther() {
15408      if (this.other == null)
15409        this.other = new ArrayList<StringType>();
15410      return this.other;
15411    }
15412
15413    /**
15414     * @return Returns a reference to <code>this</code> for easy method chaining
15415     */
15416    public ImplementationGuideManifestComponent setOther(List<StringType> theOther) {
15417      this.other = theOther;
15418      return this;
15419    }
15420
15421    public boolean hasOther() {
15422      if (this.other == null)
15423        return false;
15424      for (StringType item : this.other)
15425        if (!item.isEmpty())
15426          return true;
15427      return false;
15428    }
15429
15430    /**
15431     * @return {@link #other} (Indicates the relative path of an additional
15432     *         non-page, non-image file that is part of the IG - e.g. zip, jar and
15433     *         similar files that could be the target of a hyperlink in a derived
15434     *         IG.)
15435     */
15436    public StringType addOtherElement() {// 2
15437      StringType t = new StringType();
15438      if (this.other == null)
15439        this.other = new ArrayList<StringType>();
15440      this.other.add(t);
15441      return t;
15442    }
15443
15444    /**
15445     * @param value {@link #other} (Indicates the relative path of an additional
15446     *              non-page, non-image file that is part of the IG - e.g. zip, jar
15447     *              and similar files that could be the target of a hyperlink in a
15448     *              derived IG.)
15449     */
15450    public ImplementationGuideManifestComponent addOther(String value) { // 1
15451      StringType t = new StringType();
15452      t.setValue(value);
15453      if (this.other == null)
15454        this.other = new ArrayList<StringType>();
15455      this.other.add(t);
15456      return this;
15457    }
15458
15459    /**
15460     * @param value {@link #other} (Indicates the relative path of an additional
15461     *              non-page, non-image file that is part of the IG - e.g. zip, jar
15462     *              and similar files that could be the target of a hyperlink in a
15463     *              derived IG.)
15464     */
15465    public boolean hasOther(String value) {
15466      if (this.other == null)
15467        return false;
15468      for (StringType v : this.other)
15469        if (v.getValue().equals(value)) // string
15470          return true;
15471      return false;
15472    }
15473
15474    protected void listChildren(List<Property> children) {
15475      super.listChildren(children);
15476      children.add(new Property("rendering", "url",
15477          "A pointer to official web page, PDF or other rendering of the implementation guide.", 0, 1, rendering));
15478      children.add(new Property("resource", "",
15479          "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.",
15480          0, java.lang.Integer.MAX_VALUE, resource));
15481      children.add(
15482          new Property("page", "", "Information about a page within the IG.", 0, java.lang.Integer.MAX_VALUE, page));
15483      children.add(new Property("image", "string", "Indicates a relative path to an image that exists within the IG.",
15484          0, java.lang.Integer.MAX_VALUE, image));
15485      children.add(new Property("other", "string",
15486          "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.",
15487          0, java.lang.Integer.MAX_VALUE, other));
15488    }
15489
15490    @Override
15491    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
15492      switch (_hash) {
15493      case 1839654540:
15494        /* rendering */ return new Property("rendering", "url",
15495            "A pointer to official web page, PDF or other rendering of the implementation guide.", 0, 1, rendering);
15496      case -341064690:
15497        /* resource */ return new Property("resource", "",
15498            "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.",
15499            0, java.lang.Integer.MAX_VALUE, resource);
15500      case 3433103:
15501        /* page */ return new Property("page", "", "Information about a page within the IG.", 0,
15502            java.lang.Integer.MAX_VALUE, page);
15503      case 100313435:
15504        /* image */ return new Property("image", "string",
15505            "Indicates a relative path to an image that exists within the IG.", 0, java.lang.Integer.MAX_VALUE, image);
15506      case 106069776:
15507        /* other */ return new Property("other", "string",
15508            "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.",
15509            0, java.lang.Integer.MAX_VALUE, other);
15510      default:
15511        return super.getNamedProperty(_hash, _name, _checkValid);
15512      }
15513
15514    }
15515
15516    @Override
15517    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
15518      switch (hash) {
15519      case 1839654540:
15520        /* rendering */ return this.rendering == null ? new Base[0] : new Base[] { this.rendering }; // UrlType
15521      case -341064690:
15522        /* resource */ return this.resource == null ? new Base[0]
15523            : this.resource.toArray(new Base[this.resource.size()]); // ManifestResourceComponent
15524      case 3433103:
15525        /* page */ return this.page == null ? new Base[0] : this.page.toArray(new Base[this.page.size()]); // ManifestPageComponent
15526      case 100313435:
15527        /* image */ return this.image == null ? new Base[0] : this.image.toArray(new Base[this.image.size()]); // StringType
15528      case 106069776:
15529        /* other */ return this.other == null ? new Base[0] : this.other.toArray(new Base[this.other.size()]); // StringType
15530      default:
15531        return super.getProperty(hash, name, checkValid);
15532      }
15533
15534    }
15535
15536    @Override
15537    public Base setProperty(int hash, String name, Base value) throws FHIRException {
15538      switch (hash) {
15539      case 1839654540: // rendering
15540        this.rendering = castToUrl(value); // UrlType
15541        return value;
15542      case -341064690: // resource
15543        this.getResource().add((ManifestResourceComponent) value); // ManifestResourceComponent
15544        return value;
15545      case 3433103: // page
15546        this.getPage().add((ManifestPageComponent) value); // ManifestPageComponent
15547        return value;
15548      case 100313435: // image
15549        this.getImage().add(castToString(value)); // StringType
15550        return value;
15551      case 106069776: // other
15552        this.getOther().add(castToString(value)); // StringType
15553        return value;
15554      default:
15555        return super.setProperty(hash, name, value);
15556      }
15557
15558    }
15559
15560    @Override
15561    public Base setProperty(String name, Base value) throws FHIRException {
15562      if (name.equals("rendering")) {
15563        this.rendering = castToUrl(value); // UrlType
15564      } else if (name.equals("resource")) {
15565        this.getResource().add((ManifestResourceComponent) value);
15566      } else if (name.equals("page")) {
15567        this.getPage().add((ManifestPageComponent) value);
15568      } else if (name.equals("image")) {
15569        this.getImage().add(castToString(value));
15570      } else if (name.equals("other")) {
15571        this.getOther().add(castToString(value));
15572      } else
15573        return super.setProperty(name, value);
15574      return value;
15575    }
15576
15577    @Override
15578    public Base makeProperty(int hash, String name) throws FHIRException {
15579      switch (hash) {
15580      case 1839654540:
15581        return getRenderingElement();
15582      case -341064690:
15583        return addResource();
15584      case 3433103:
15585        return addPage();
15586      case 100313435:
15587        return addImageElement();
15588      case 106069776:
15589        return addOtherElement();
15590      default:
15591        return super.makeProperty(hash, name);
15592      }
15593
15594    }
15595
15596    @Override
15597    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
15598      switch (hash) {
15599      case 1839654540:
15600        /* rendering */ return new String[] { "url" };
15601      case -341064690:
15602        /* resource */ return new String[] {};
15603      case 3433103:
15604        /* page */ return new String[] {};
15605      case 100313435:
15606        /* image */ return new String[] { "string" };
15607      case 106069776:
15608        /* other */ return new String[] { "string" };
15609      default:
15610        return super.getTypesForProperty(hash, name);
15611      }
15612
15613    }
15614
15615    @Override
15616    public Base addChild(String name) throws FHIRException {
15617      if (name.equals("rendering")) {
15618        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.rendering");
15619      } else if (name.equals("resource")) {
15620        return addResource();
15621      } else if (name.equals("page")) {
15622        return addPage();
15623      } else if (name.equals("image")) {
15624        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.image");
15625      } else if (name.equals("other")) {
15626        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.other");
15627      } else
15628        return super.addChild(name);
15629    }
15630
15631    public ImplementationGuideManifestComponent copy() {
15632      ImplementationGuideManifestComponent dst = new ImplementationGuideManifestComponent();
15633      copyValues(dst);
15634      return dst;
15635    }
15636
15637    public void copyValues(ImplementationGuideManifestComponent dst) {
15638      super.copyValues(dst);
15639      dst.rendering = rendering == null ? null : rendering.copy();
15640      if (resource != null) {
15641        dst.resource = new ArrayList<ManifestResourceComponent>();
15642        for (ManifestResourceComponent i : resource)
15643          dst.resource.add(i.copy());
15644      }
15645      ;
15646      if (page != null) {
15647        dst.page = new ArrayList<ManifestPageComponent>();
15648        for (ManifestPageComponent i : page)
15649          dst.page.add(i.copy());
15650      }
15651      ;
15652      if (image != null) {
15653        dst.image = new ArrayList<StringType>();
15654        for (StringType i : image)
15655          dst.image.add(i.copy());
15656      }
15657      ;
15658      if (other != null) {
15659        dst.other = new ArrayList<StringType>();
15660        for (StringType i : other)
15661          dst.other.add(i.copy());
15662      }
15663      ;
15664    }
15665
15666    @Override
15667    public boolean equalsDeep(Base other_) {
15668      if (!super.equalsDeep(other_))
15669        return false;
15670      if (!(other_ instanceof ImplementationGuideManifestComponent))
15671        return false;
15672      ImplementationGuideManifestComponent o = (ImplementationGuideManifestComponent) other_;
15673      return compareDeep(rendering, o.rendering, true) && compareDeep(resource, o.resource, true)
15674          && compareDeep(page, o.page, true) && compareDeep(image, o.image, true) && compareDeep(other, o.other, true);
15675    }
15676
15677    @Override
15678    public boolean equalsShallow(Base other_) {
15679      if (!super.equalsShallow(other_))
15680        return false;
15681      if (!(other_ instanceof ImplementationGuideManifestComponent))
15682        return false;
15683      ImplementationGuideManifestComponent o = (ImplementationGuideManifestComponent) other_;
15684      return compareValues(rendering, o.rendering, true) && compareValues(image, o.image, true)
15685          && compareValues(other, o.other, true);
15686    }
15687
15688    public boolean isEmpty() {
15689      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(rendering, resource, page, image, other);
15690    }
15691
15692    public String fhirType() {
15693      return "ImplementationGuide.manifest";
15694
15695    }
15696
15697  }
15698
15699  @Block()
15700  public static class ManifestResourceComponent extends BackboneElement implements IBaseBackboneElement {
15701    /**
15702     * Where this resource is found.
15703     */
15704    @Child(name = "reference", type = {
15705        Reference.class }, order = 1, min = 1, max = 1, modifier = false, summary = true)
15706    @Description(shortDefinition = "Location of the resource", formalDefinition = "Where this resource is found.")
15707    protected Reference reference;
15708
15709    /**
15710     * The actual object that is the target of the reference (Where this resource is
15711     * found.)
15712     */
15713    protected Resource referenceTarget;
15714
15715    /**
15716     * If true or a reference, indicates the resource is an example instance. If a
15717     * reference is present, indicates that the example is an example of the
15718     * specified profile.
15719     */
15720    @Child(name = "example", type = { BooleanType.class,
15721        CanonicalType.class }, order = 2, min = 0, max = 1, modifier = false, summary = false)
15722    @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.")
15723    protected Type example;
15724
15725    /**
15726     * The relative path for primary page for this resource within the IG.
15727     */
15728    @Child(name = "relativePath", type = {
15729        UrlType.class }, order = 3, min = 0, max = 1, modifier = false, summary = false)
15730    @Description(shortDefinition = "Relative path for page in IG", formalDefinition = "The relative path for primary page for this resource within the IG.")
15731    protected UrlType relativePath;
15732
15733    private static final long serialVersionUID = 1150095716L;
15734
15735    /**
15736     * Constructor
15737     */
15738    public ManifestResourceComponent() {
15739      super();
15740    }
15741
15742    /**
15743     * Constructor
15744     */
15745    public ManifestResourceComponent(Reference reference) {
15746      super();
15747      this.reference = reference;
15748    }
15749
15750    /**
15751     * @return {@link #reference} (Where this resource is found.)
15752     */
15753    public Reference getReference() {
15754      if (this.reference == null)
15755        if (Configuration.errorOnAutoCreate())
15756          throw new Error("Attempt to auto-create ManifestResourceComponent.reference");
15757        else if (Configuration.doAutoCreate())
15758          this.reference = new Reference(); // cc
15759      return this.reference;
15760    }
15761
15762    public boolean hasReference() {
15763      return this.reference != null && !this.reference.isEmpty();
15764    }
15765
15766    /**
15767     * @param value {@link #reference} (Where this resource is found.)
15768     */
15769    public ManifestResourceComponent setReference(Reference value) {
15770      this.reference = value;
15771      return this;
15772    }
15773
15774    /**
15775     * @return {@link #reference} The actual object that is the target of the
15776     *         reference. The reference library doesn't populate this, but you can
15777     *         use it to hold the resource if you resolve it. (Where this resource
15778     *         is found.)
15779     */
15780    public Resource getReferenceTarget() {
15781      return this.referenceTarget;
15782    }
15783
15784    /**
15785     * @param value {@link #reference} The actual object that is the target of the
15786     *              reference. The reference library doesn't use these, but you can
15787     *              use it to hold the resource if you resolve it. (Where this
15788     *              resource is found.)
15789     */
15790    public ManifestResourceComponent setReferenceTarget(Resource value) {
15791      this.referenceTarget = value;
15792      return this;
15793    }
15794
15795    /**
15796     * @return {@link #example} (If true or a reference, indicates the resource is
15797     *         an example instance. If a reference is present, indicates that the
15798     *         example is an example of the specified profile.)
15799     */
15800    public Type getExample() {
15801      return this.example;
15802    }
15803
15804    /**
15805     * @return {@link #example} (If true or a reference, indicates the resource is
15806     *         an example instance. If a reference is present, indicates that the
15807     *         example is an example of the specified profile.)
15808     */
15809    public BooleanType getExampleBooleanType() throws FHIRException {
15810      if (this.example == null)
15811        this.example = new BooleanType();
15812      if (!(this.example instanceof BooleanType))
15813        throw new FHIRException("Type mismatch: the type BooleanType was expected, but "
15814            + this.example.getClass().getName() + " was encountered");
15815      return (BooleanType) this.example;
15816    }
15817
15818    public boolean hasExampleBooleanType() {
15819      return this != null && this.example instanceof BooleanType;
15820    }
15821
15822    /**
15823     * @return {@link #example} (If true or a reference, indicates the resource is
15824     *         an example instance. If a reference is present, indicates that the
15825     *         example is an example of the specified profile.)
15826     */
15827    public CanonicalType getExampleCanonicalType() throws FHIRException {
15828      if (this.example == null)
15829        this.example = new CanonicalType();
15830      if (!(this.example instanceof CanonicalType))
15831        throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "
15832            + this.example.getClass().getName() + " was encountered");
15833      return (CanonicalType) this.example;
15834    }
15835
15836    public boolean hasExampleCanonicalType() {
15837      return this != null && this.example instanceof CanonicalType;
15838    }
15839
15840    public boolean hasExample() {
15841      return this.example != null && !this.example.isEmpty();
15842    }
15843
15844    /**
15845     * @param value {@link #example} (If true or a reference, indicates the resource
15846     *              is an example instance. If a reference is present, indicates
15847     *              that the example is an example of the specified profile.)
15848     */
15849    public ManifestResourceComponent setExample(Type value) {
15850      if (value != null && !(value instanceof BooleanType || value instanceof CanonicalType))
15851        throw new Error("Not the right type for ImplementationGuide.manifest.resource.example[x]: " + value.fhirType());
15852      this.example = value;
15853      return this;
15854    }
15855
15856    /**
15857     * @return {@link #relativePath} (The relative path for primary page for this
15858     *         resource within the IG.). This is the underlying object with id,
15859     *         value and extensions. The accessor "getRelativePath" gives direct
15860     *         access to the value
15861     */
15862    public UrlType getRelativePathElement() {
15863      if (this.relativePath == null)
15864        if (Configuration.errorOnAutoCreate())
15865          throw new Error("Attempt to auto-create ManifestResourceComponent.relativePath");
15866        else if (Configuration.doAutoCreate())
15867          this.relativePath = new UrlType(); // bb
15868      return this.relativePath;
15869    }
15870
15871    public boolean hasRelativePathElement() {
15872      return this.relativePath != null && !this.relativePath.isEmpty();
15873    }
15874
15875    public boolean hasRelativePath() {
15876      return this.relativePath != null && !this.relativePath.isEmpty();
15877    }
15878
15879    /**
15880     * @param value {@link #relativePath} (The relative path for primary page for
15881     *              this resource within the IG.). This is the underlying object
15882     *              with id, value and extensions. The accessor "getRelativePath"
15883     *              gives direct access to the value
15884     */
15885    public ManifestResourceComponent setRelativePathElement(UrlType value) {
15886      this.relativePath = value;
15887      return this;
15888    }
15889
15890    /**
15891     * @return The relative path for primary page for this resource within the IG.
15892     */
15893    public String getRelativePath() {
15894      return this.relativePath == null ? null : this.relativePath.getValue();
15895    }
15896
15897    /**
15898     * @param value The relative path for primary page for this resource within the
15899     *              IG.
15900     */
15901    public ManifestResourceComponent setRelativePath(String value) {
15902      if (Utilities.noString(value))
15903        this.relativePath = null;
15904      else {
15905        if (this.relativePath == null)
15906          this.relativePath = new UrlType();
15907        this.relativePath.setValue(value);
15908      }
15909      return this;
15910    }
15911
15912    protected void listChildren(List<Property> children) {
15913      super.listChildren(children);
15914      children.add(new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference));
15915      children.add(new Property("example[x]", "boolean|canonical(StructureDefinition)",
15916          "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.",
15917          0, 1, example));
15918      children.add(new Property("relativePath", "url",
15919          "The relative path for primary page for this resource within the IG.", 0, 1, relativePath));
15920    }
15921
15922    @Override
15923    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
15924      switch (_hash) {
15925      case -925155509:
15926        /* reference */ return new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1,
15927            reference);
15928      case -2002328874:
15929        /* example[x] */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
15930            "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.",
15931            0, 1, example);
15932      case -1322970774:
15933        /* example */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
15934            "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.",
15935            0, 1, example);
15936      case 159803230:
15937        /* exampleBoolean */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
15938            "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.",
15939            0, 1, example);
15940      case 2016979626:
15941        /* exampleCanonical */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
15942            "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.",
15943            0, 1, example);
15944      case -70808303:
15945        /* relativePath */ return new Property("relativePath", "url",
15946            "The relative path for primary page for this resource within the IG.", 0, 1, relativePath);
15947      default:
15948        return super.getNamedProperty(_hash, _name, _checkValid);
15949      }
15950
15951    }
15952
15953    @Override
15954    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
15955      switch (hash) {
15956      case -925155509:
15957        /* reference */ return this.reference == null ? new Base[0] : new Base[] { this.reference }; // Reference
15958      case -1322970774:
15959        /* example */ return this.example == null ? new Base[0] : new Base[] { this.example }; // Type
15960      case -70808303:
15961        /* relativePath */ return this.relativePath == null ? new Base[0] : new Base[] { this.relativePath }; // UrlType
15962      default:
15963        return super.getProperty(hash, name, checkValid);
15964      }
15965
15966    }
15967
15968    @Override
15969    public Base setProperty(int hash, String name, Base value) throws FHIRException {
15970      switch (hash) {
15971      case -925155509: // reference
15972        this.reference = castToReference(value); // Reference
15973        return value;
15974      case -1322970774: // example
15975        this.example = castToType(value); // Type
15976        return value;
15977      case -70808303: // relativePath
15978        this.relativePath = castToUrl(value); // UrlType
15979        return value;
15980      default:
15981        return super.setProperty(hash, name, value);
15982      }
15983
15984    }
15985
15986    @Override
15987    public Base setProperty(String name, Base value) throws FHIRException {
15988      if (name.equals("reference")) {
15989        this.reference = castToReference(value); // Reference
15990      } else if (name.equals("example[x]")) {
15991        this.example = castToType(value); // Type
15992      } else if (name.equals("relativePath")) {
15993        this.relativePath = castToUrl(value); // UrlType
15994      } else
15995        return super.setProperty(name, value);
15996      return value;
15997    }
15998
15999    @Override
16000    public Base makeProperty(int hash, String name) throws FHIRException {
16001      switch (hash) {
16002      case -925155509:
16003        return getReference();
16004      case -2002328874:
16005        return getExample();
16006      case -1322970774:
16007        return getExample();
16008      case -70808303:
16009        return getRelativePathElement();
16010      default:
16011        return super.makeProperty(hash, name);
16012      }
16013
16014    }
16015
16016    @Override
16017    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
16018      switch (hash) {
16019      case -925155509:
16020        /* reference */ return new String[] { "Reference" };
16021      case -1322970774:
16022        /* example */ return new String[] { "boolean", "canonical" };
16023      case -70808303:
16024        /* relativePath */ return new String[] { "url" };
16025      default:
16026        return super.getTypesForProperty(hash, name);
16027      }
16028
16029    }
16030
16031    @Override
16032    public Base addChild(String name) throws FHIRException {
16033      if (name.equals("reference")) {
16034        this.reference = new Reference();
16035        return this.reference;
16036      } else if (name.equals("exampleBoolean")) {
16037        this.example = new BooleanType();
16038        return this.example;
16039      } else if (name.equals("exampleCanonical")) {
16040        this.example = new CanonicalType();
16041        return this.example;
16042      } else if (name.equals("relativePath")) {
16043        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.relativePath");
16044      } else
16045        return super.addChild(name);
16046    }
16047
16048    public ManifestResourceComponent copy() {
16049      ManifestResourceComponent dst = new ManifestResourceComponent();
16050      copyValues(dst);
16051      return dst;
16052    }
16053
16054    public void copyValues(ManifestResourceComponent dst) {
16055      super.copyValues(dst);
16056      dst.reference = reference == null ? null : reference.copy();
16057      dst.example = example == null ? null : example.copy();
16058      dst.relativePath = relativePath == null ? null : relativePath.copy();
16059    }
16060
16061    @Override
16062    public boolean equalsDeep(Base other_) {
16063      if (!super.equalsDeep(other_))
16064        return false;
16065      if (!(other_ instanceof ManifestResourceComponent))
16066        return false;
16067      ManifestResourceComponent o = (ManifestResourceComponent) other_;
16068      return compareDeep(reference, o.reference, true) && compareDeep(example, o.example, true)
16069          && compareDeep(relativePath, o.relativePath, true);
16070    }
16071
16072    @Override
16073    public boolean equalsShallow(Base other_) {
16074      if (!super.equalsShallow(other_))
16075        return false;
16076      if (!(other_ instanceof ManifestResourceComponent))
16077        return false;
16078      ManifestResourceComponent o = (ManifestResourceComponent) other_;
16079      return compareValues(relativePath, o.relativePath, true);
16080    }
16081
16082    public boolean isEmpty() {
16083      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, example, relativePath);
16084    }
16085
16086    public String fhirType() {
16087      return "ImplementationGuide.manifest.resource";
16088
16089    }
16090
16091  }
16092
16093  @Block()
16094  public static class ManifestPageComponent extends BackboneElement implements IBaseBackboneElement {
16095    /**
16096     * Relative path to the page.
16097     */
16098    @Child(name = "name", type = { StringType.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
16099    @Description(shortDefinition = "HTML page name", formalDefinition = "Relative path to the page.")
16100    protected StringType name;
16101
16102    /**
16103     * Label for the page intended for human display.
16104     */
16105    @Child(name = "title", type = { StringType.class }, order = 2, min = 0, max = 1, modifier = false, summary = false)
16106    @Description(shortDefinition = "Title of the page, for references", formalDefinition = "Label for the page intended for human display.")
16107    protected StringType title;
16108
16109    /**
16110     * The name of an anchor available on the page.
16111     */
16112    @Child(name = "anchor", type = {
16113        StringType.class }, order = 3, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
16114    @Description(shortDefinition = "Anchor available on the page", formalDefinition = "The name of an anchor available on the page.")
16115    protected List<StringType> anchor;
16116
16117    private static final long serialVersionUID = 1920576611L;
16118
16119    /**
16120     * Constructor
16121     */
16122    public ManifestPageComponent() {
16123      super();
16124    }
16125
16126    /**
16127     * Constructor
16128     */
16129    public ManifestPageComponent(StringType name) {
16130      super();
16131      this.name = name;
16132    }
16133
16134    /**
16135     * @return {@link #name} (Relative path to the page.). This is the underlying
16136     *         object with id, value and extensions. The accessor "getName" gives
16137     *         direct access to the value
16138     */
16139    public StringType getNameElement() {
16140      if (this.name == null)
16141        if (Configuration.errorOnAutoCreate())
16142          throw new Error("Attempt to auto-create ManifestPageComponent.name");
16143        else if (Configuration.doAutoCreate())
16144          this.name = new StringType(); // bb
16145      return this.name;
16146    }
16147
16148    public boolean hasNameElement() {
16149      return this.name != null && !this.name.isEmpty();
16150    }
16151
16152    public boolean hasName() {
16153      return this.name != null && !this.name.isEmpty();
16154    }
16155
16156    /**
16157     * @param value {@link #name} (Relative path to the page.). This is the
16158     *              underlying object with id, value and extensions. The accessor
16159     *              "getName" gives direct access to the value
16160     */
16161    public ManifestPageComponent setNameElement(StringType value) {
16162      this.name = value;
16163      return this;
16164    }
16165
16166    /**
16167     * @return Relative path to the page.
16168     */
16169    public String getName() {
16170      return this.name == null ? null : this.name.getValue();
16171    }
16172
16173    /**
16174     * @param value Relative path to the page.
16175     */
16176    public ManifestPageComponent setName(String value) {
16177      if (this.name == null)
16178        this.name = new StringType();
16179      this.name.setValue(value);
16180      return this;
16181    }
16182
16183    /**
16184     * @return {@link #title} (Label for the page intended for human display.). This
16185     *         is the underlying object with id, value and extensions. The accessor
16186     *         "getTitle" gives direct access to the value
16187     */
16188    public StringType getTitleElement() {
16189      if (this.title == null)
16190        if (Configuration.errorOnAutoCreate())
16191          throw new Error("Attempt to auto-create ManifestPageComponent.title");
16192        else if (Configuration.doAutoCreate())
16193          this.title = new StringType(); // bb
16194      return this.title;
16195    }
16196
16197    public boolean hasTitleElement() {
16198      return this.title != null && !this.title.isEmpty();
16199    }
16200
16201    public boolean hasTitle() {
16202      return this.title != null && !this.title.isEmpty();
16203    }
16204
16205    /**
16206     * @param value {@link #title} (Label for the page intended for human display.).
16207     *              This is the underlying object with id, value and extensions. The
16208     *              accessor "getTitle" gives direct access to the value
16209     */
16210    public ManifestPageComponent setTitleElement(StringType value) {
16211      this.title = value;
16212      return this;
16213    }
16214
16215    /**
16216     * @return Label for the page intended for human display.
16217     */
16218    public String getTitle() {
16219      return this.title == null ? null : this.title.getValue();
16220    }
16221
16222    /**
16223     * @param value Label for the page intended for human display.
16224     */
16225    public ManifestPageComponent setTitle(String value) {
16226      if (Utilities.noString(value))
16227        this.title = null;
16228      else {
16229        if (this.title == null)
16230          this.title = new StringType();
16231        this.title.setValue(value);
16232      }
16233      return this;
16234    }
16235
16236    /**
16237     * @return {@link #anchor} (The name of an anchor available on the page.)
16238     */
16239    public List<StringType> getAnchor() {
16240      if (this.anchor == null)
16241        this.anchor = new ArrayList<StringType>();
16242      return this.anchor;
16243    }
16244
16245    /**
16246     * @return Returns a reference to <code>this</code> for easy method chaining
16247     */
16248    public ManifestPageComponent setAnchor(List<StringType> theAnchor) {
16249      this.anchor = theAnchor;
16250      return this;
16251    }
16252
16253    public boolean hasAnchor() {
16254      if (this.anchor == null)
16255        return false;
16256      for (StringType item : this.anchor)
16257        if (!item.isEmpty())
16258          return true;
16259      return false;
16260    }
16261
16262    /**
16263     * @return {@link #anchor} (The name of an anchor available on the page.)
16264     */
16265    public StringType addAnchorElement() {// 2
16266      StringType t = new StringType();
16267      if (this.anchor == null)
16268        this.anchor = new ArrayList<StringType>();
16269      this.anchor.add(t);
16270      return t;
16271    }
16272
16273    /**
16274     * @param value {@link #anchor} (The name of an anchor available on the page.)
16275     */
16276    public ManifestPageComponent addAnchor(String value) { // 1
16277      StringType t = new StringType();
16278      t.setValue(value);
16279      if (this.anchor == null)
16280        this.anchor = new ArrayList<StringType>();
16281      this.anchor.add(t);
16282      return this;
16283    }
16284
16285    /**
16286     * @param value {@link #anchor} (The name of an anchor available on the page.)
16287     */
16288    public boolean hasAnchor(String value) {
16289      if (this.anchor == null)
16290        return false;
16291      for (StringType v : this.anchor)
16292        if (v.getValue().equals(value)) // string
16293          return true;
16294      return false;
16295    }
16296
16297    protected void listChildren(List<Property> children) {
16298      super.listChildren(children);
16299      children.add(new Property("name", "string", "Relative path to the page.", 0, 1, name));
16300      children.add(new Property("title", "string", "Label for the page intended for human display.", 0, 1, title));
16301      children.add(new Property("anchor", "string", "The name of an anchor available on the page.", 0,
16302          java.lang.Integer.MAX_VALUE, anchor));
16303    }
16304
16305    @Override
16306    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
16307      switch (_hash) {
16308      case 3373707:
16309        /* name */ return new Property("name", "string", "Relative path to the page.", 0, 1, name);
16310      case 110371416:
16311        /* title */ return new Property("title", "string", "Label for the page intended for human display.", 0, 1,
16312            title);
16313      case -1413299531:
16314        /* anchor */ return new Property("anchor", "string", "The name of an anchor available on the page.", 0,
16315            java.lang.Integer.MAX_VALUE, anchor);
16316      default:
16317        return super.getNamedProperty(_hash, _name, _checkValid);
16318      }
16319
16320    }
16321
16322    @Override
16323    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
16324      switch (hash) {
16325      case 3373707:
16326        /* name */ return this.name == null ? new Base[0] : new Base[] { this.name }; // StringType
16327      case 110371416:
16328        /* title */ return this.title == null ? new Base[0] : new Base[] { this.title }; // StringType
16329      case -1413299531:
16330        /* anchor */ return this.anchor == null ? new Base[0] : this.anchor.toArray(new Base[this.anchor.size()]); // StringType
16331      default:
16332        return super.getProperty(hash, name, checkValid);
16333      }
16334
16335    }
16336
16337    @Override
16338    public Base setProperty(int hash, String name, Base value) throws FHIRException {
16339      switch (hash) {
16340      case 3373707: // name
16341        this.name = castToString(value); // StringType
16342        return value;
16343      case 110371416: // title
16344        this.title = castToString(value); // StringType
16345        return value;
16346      case -1413299531: // anchor
16347        this.getAnchor().add(castToString(value)); // StringType
16348        return value;
16349      default:
16350        return super.setProperty(hash, name, value);
16351      }
16352
16353    }
16354
16355    @Override
16356    public Base setProperty(String name, Base value) throws FHIRException {
16357      if (name.equals("name")) {
16358        this.name = castToString(value); // StringType
16359      } else if (name.equals("title")) {
16360        this.title = castToString(value); // StringType
16361      } else if (name.equals("anchor")) {
16362        this.getAnchor().add(castToString(value));
16363      } else
16364        return super.setProperty(name, value);
16365      return value;
16366    }
16367
16368    @Override
16369    public Base makeProperty(int hash, String name) throws FHIRException {
16370      switch (hash) {
16371      case 3373707:
16372        return getNameElement();
16373      case 110371416:
16374        return getTitleElement();
16375      case -1413299531:
16376        return addAnchorElement();
16377      default:
16378        return super.makeProperty(hash, name);
16379      }
16380
16381    }
16382
16383    @Override
16384    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
16385      switch (hash) {
16386      case 3373707:
16387        /* name */ return new String[] { "string" };
16388      case 110371416:
16389        /* title */ return new String[] { "string" };
16390      case -1413299531:
16391        /* anchor */ return new String[] { "string" };
16392      default:
16393        return super.getTypesForProperty(hash, name);
16394      }
16395
16396    }
16397
16398    @Override
16399    public Base addChild(String name) throws FHIRException {
16400      if (name.equals("name")) {
16401        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.name");
16402      } else if (name.equals("title")) {
16403        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.title");
16404      } else if (name.equals("anchor")) {
16405        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.anchor");
16406      } else
16407        return super.addChild(name);
16408    }
16409
16410    public ManifestPageComponent copy() {
16411      ManifestPageComponent dst = new ManifestPageComponent();
16412      copyValues(dst);
16413      return dst;
16414    }
16415
16416    public void copyValues(ManifestPageComponent dst) {
16417      super.copyValues(dst);
16418      dst.name = name == null ? null : name.copy();
16419      dst.title = title == null ? null : title.copy();
16420      if (anchor != null) {
16421        dst.anchor = new ArrayList<StringType>();
16422        for (StringType i : anchor)
16423          dst.anchor.add(i.copy());
16424      }
16425      ;
16426    }
16427
16428    @Override
16429    public boolean equalsDeep(Base other_) {
16430      if (!super.equalsDeep(other_))
16431        return false;
16432      if (!(other_ instanceof ManifestPageComponent))
16433        return false;
16434      ManifestPageComponent o = (ManifestPageComponent) other_;
16435      return compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
16436          && compareDeep(anchor, o.anchor, true);
16437    }
16438
16439    @Override
16440    public boolean equalsShallow(Base other_) {
16441      if (!super.equalsShallow(other_))
16442        return false;
16443      if (!(other_ instanceof ManifestPageComponent))
16444        return false;
16445      ManifestPageComponent o = (ManifestPageComponent) other_;
16446      return compareValues(name, o.name, true) && compareValues(title, o.title, true)
16447          && compareValues(anchor, o.anchor, true);
16448    }
16449
16450    public boolean isEmpty() {
16451      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, title, anchor);
16452    }
16453
16454    public String fhirType() {
16455      return "ImplementationGuide.manifest.page";
16456
16457    }
16458
16459  }
16460
16461  /**
16462   * A copyright statement relating to the implementation guide and/or its
16463   * contents. Copyright statements are generally legal restrictions on the use
16464   * and publishing of the implementation guide.
16465   */
16466  @Child(name = "copyright", type = {
16467      MarkdownType.class }, order = 0, min = 0, max = 1, modifier = false, summary = false)
16468  @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.")
16469  protected MarkdownType copyright;
16470
16471  /**
16472   * The NPM package name for this Implementation Guide, used in the NPM package
16473   * distribution, which is the primary mechanism by which FHIR based tooling
16474   * manages IG dependencies. This value must be globally unique, and should be
16475   * assigned with care.
16476   */
16477  @Child(name = "packageId", type = { IdType.class }, order = 1, min = 1, max = 1, modifier = false, summary = true)
16478  @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.")
16479  protected IdType packageId;
16480
16481  /**
16482   * The license that applies to this Implementation Guide, using an SPDX license
16483   * code, or 'not-open-source'.
16484   */
16485  @Child(name = "license", type = { CodeType.class }, order = 2, min = 0, max = 1, modifier = false, summary = true)
16486  @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'.")
16487  @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/spdx-license")
16488  protected Enumeration<SPDXLicense> license;
16489
16490  /**
16491   * The version(s) of the FHIR specification that this ImplementationGuide
16492   * targets - e.g. describes how to use. The value of this element is the formal
16493   * version of the specification, without the revision number, e.g.
16494   * [publication].[major].[minor], which is 4.0.1. for this version.
16495   */
16496  @Child(name = "fhirVersion", type = {
16497      CodeType.class }, order = 3, min = 1, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
16498  @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.")
16499  @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/FHIR-version")
16500  protected List<Enumeration<FHIRVersion>> fhirVersion;
16501
16502  /**
16503   * Another implementation guide that this implementation depends on. Typically,
16504   * an implementation guide uses value sets, profiles etc.defined in other
16505   * implementation guides.
16506   */
16507  @Child(name = "dependsOn", type = {}, order = 4, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
16508  @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.")
16509  protected List<ImplementationGuideDependsOnComponent> dependsOn;
16510
16511  /**
16512   * A set of profiles that all resources covered by this implementation guide
16513   * must conform to.
16514   */
16515  @Child(name = "global", type = {}, order = 5, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
16516  @Description(shortDefinition = "Profiles that apply globally", formalDefinition = "A set of profiles that all resources covered by this implementation guide must conform to.")
16517  protected List<ImplementationGuideGlobalComponent> global;
16518
16519  /**
16520   * The information needed by an IG publisher tool to publish the whole
16521   * implementation guide.
16522   */
16523  @Child(name = "definition", type = {}, order = 6, min = 0, max = 1, modifier = false, summary = false)
16524  @Description(shortDefinition = "Information needed to build the IG", formalDefinition = "The information needed by an IG publisher tool to publish the whole implementation guide.")
16525  protected ImplementationGuideDefinitionComponent definition;
16526
16527  /**
16528   * Information about an assembled implementation guide, created by the
16529   * publication tooling.
16530   */
16531  @Child(name = "manifest", type = {}, order = 7, min = 0, max = 1, modifier = false, summary = false)
16532  @Description(shortDefinition = "Information about an assembled IG", formalDefinition = "Information about an assembled implementation guide, created by the publication tooling.")
16533  protected ImplementationGuideManifestComponent manifest;
16534
16535  private static final long serialVersionUID = 415193005L;
16536
16537  /**
16538   * Constructor
16539   */
16540  public ImplementationGuide() {
16541    super();
16542  }
16543
16544  /**
16545   * Constructor
16546   */
16547  public ImplementationGuide(UriType url, StringType name, Enumeration<PublicationStatus> status, IdType packageId) {
16548    super();
16549    this.url = url;
16550    this.name = name;
16551    this.status = status;
16552    this.packageId = packageId;
16553  }
16554
16555  /**
16556   * @return {@link #url} (An absolute URI that is used to identify this
16557   *         implementation guide when it is referenced in a specification, model,
16558   *         design or an instance; also called its canonical identifier. This
16559   *         SHOULD be globally unique and SHOULD be a literal address at which at
16560   *         which an authoritative instance of this implementation guide is (or
16561   *         will be) published. This URL can be the target of a canonical
16562   *         reference. It SHALL remain the same when the implementation guide is
16563   *         stored on different servers.). This is the underlying object with id,
16564   *         value and extensions. The accessor "getUrl" gives direct access to
16565   *         the value
16566   */
16567  public UriType getUrlElement() {
16568    if (this.url == null)
16569      if (Configuration.errorOnAutoCreate())
16570        throw new Error("Attempt to auto-create ImplementationGuide.url");
16571      else if (Configuration.doAutoCreate())
16572        this.url = new UriType(); // bb
16573    return this.url;
16574  }
16575
16576  public boolean hasUrlElement() {
16577    return this.url != null && !this.url.isEmpty();
16578  }
16579
16580  public boolean hasUrl() {
16581    return this.url != null && !this.url.isEmpty();
16582  }
16583
16584  /**
16585   * @param value {@link #url} (An absolute URI that is used to identify this
16586   *              implementation guide when it is referenced in a specification,
16587   *              model, design or an instance; also called its canonical
16588   *              identifier. This SHOULD be globally unique and SHOULD be a
16589   *              literal address at which at which an authoritative instance of
16590   *              this implementation guide is (or will be) published. This URL
16591   *              can be the target of a canonical reference. It SHALL remain the
16592   *              same when the implementation guide is stored on different
16593   *              servers.). This is the underlying object with id, value and
16594   *              extensions. The accessor "getUrl" gives direct access to the
16595   *              value
16596   */
16597  public ImplementationGuide setUrlElement(UriType value) {
16598    this.url = value;
16599    return this;
16600  }
16601
16602  /**
16603   * @return An absolute URI that is used to identify this implementation guide
16604   *         when it is referenced in a specification, model, design or an
16605   *         instance; also called its canonical identifier. This SHOULD be
16606   *         globally unique and SHOULD be a literal address at which at which an
16607   *         authoritative instance of this implementation guide is (or will be)
16608   *         published. This URL can be the target of a canonical reference. It
16609   *         SHALL remain the same when the implementation guide is stored on
16610   *         different servers.
16611   */
16612  public String getUrl() {
16613    return this.url == null ? null : this.url.getValue();
16614  }
16615
16616  /**
16617   * @param value An absolute URI that is used to identify this implementation
16618   *              guide when it is referenced in a specification, model, design or
16619   *              an instance; also called its canonical identifier. This SHOULD
16620   *              be globally unique and SHOULD be a literal address at which at
16621   *              which an authoritative instance of this implementation guide is
16622   *              (or will be) published. This URL can be the target of a
16623   *              canonical reference. It SHALL remain the same when the
16624   *              implementation guide is stored on different servers.
16625   */
16626  public ImplementationGuide setUrl(String value) {
16627    if (this.url == null)
16628      this.url = new UriType();
16629    this.url.setValue(value);
16630    return this;
16631  }
16632
16633  /**
16634   * @return {@link #version} (The identifier that is used to identify this
16635   *         version of the implementation guide when it is referenced in a
16636   *         specification, model, design or instance. This is an arbitrary value
16637   *         managed by the implementation guide author and is not expected to be
16638   *         globally unique. For example, it might be a timestamp (e.g. yyyymmdd)
16639   *         if a managed version is not available. There is also no expectation
16640   *         that versions can be placed in a lexicographical sequence.). This is
16641   *         the underlying object with id, value and extensions. The accessor
16642   *         "getVersion" gives direct access to the value
16643   */
16644  public StringType getVersionElement() {
16645    if (this.version == null)
16646      if (Configuration.errorOnAutoCreate())
16647        throw new Error("Attempt to auto-create ImplementationGuide.version");
16648      else if (Configuration.doAutoCreate())
16649        this.version = new StringType(); // bb
16650    return this.version;
16651  }
16652
16653  public boolean hasVersionElement() {
16654    return this.version != null && !this.version.isEmpty();
16655  }
16656
16657  public boolean hasVersion() {
16658    return this.version != null && !this.version.isEmpty();
16659  }
16660
16661  /**
16662   * @param value {@link #version} (The identifier that is used to identify this
16663   *              version of the implementation guide when it is referenced in a
16664   *              specification, model, design or instance. This is an arbitrary
16665   *              value managed by the implementation guide author and is not
16666   *              expected to be globally unique. For example, it might be a
16667   *              timestamp (e.g. yyyymmdd) if a managed version is not available.
16668   *              There is also no expectation that versions can be placed in a
16669   *              lexicographical sequence.). This is the underlying object with
16670   *              id, value and extensions. The accessor "getVersion" gives direct
16671   *              access to the value
16672   */
16673  public ImplementationGuide setVersionElement(StringType value) {
16674    this.version = value;
16675    return this;
16676  }
16677
16678  /**
16679   * @return The identifier that is used to identify this version of the
16680   *         implementation guide when it is referenced in a specification, model,
16681   *         design or instance. This is an arbitrary value managed by the
16682   *         implementation guide author and is not expected to be globally
16683   *         unique. For example, it might be a timestamp (e.g. yyyymmdd) if a
16684   *         managed version is not available. There is also no expectation that
16685   *         versions can be placed in a lexicographical sequence.
16686   */
16687  public String getVersion() {
16688    return this.version == null ? null : this.version.getValue();
16689  }
16690
16691  /**
16692   * @param value The identifier that is used to identify this version of the
16693   *              implementation guide when it is referenced in a specification,
16694   *              model, design or instance. This is an arbitrary value managed by
16695   *              the implementation guide author and is not expected to be
16696   *              globally unique. For example, it might be a timestamp (e.g.
16697   *              yyyymmdd) if a managed version is not available. There is also
16698   *              no expectation that versions can be placed in a lexicographical
16699   *              sequence.
16700   */
16701  public ImplementationGuide setVersion(String value) {
16702    if (Utilities.noString(value))
16703      this.version = null;
16704    else {
16705      if (this.version == null)
16706        this.version = new StringType();
16707      this.version.setValue(value);
16708    }
16709    return this;
16710  }
16711
16712  /**
16713   * @return {@link #name} (A natural language name identifying the implementation
16714   *         guide. This name should be usable as an identifier for the module by
16715   *         machine processing applications such as code generation.). This is
16716   *         the underlying object with id, value and extensions. The accessor
16717   *         "getName" gives direct access to the value
16718   */
16719  public StringType getNameElement() {
16720    if (this.name == null)
16721      if (Configuration.errorOnAutoCreate())
16722        throw new Error("Attempt to auto-create ImplementationGuide.name");
16723      else if (Configuration.doAutoCreate())
16724        this.name = new StringType(); // bb
16725    return this.name;
16726  }
16727
16728  public boolean hasNameElement() {
16729    return this.name != null && !this.name.isEmpty();
16730  }
16731
16732  public boolean hasName() {
16733    return this.name != null && !this.name.isEmpty();
16734  }
16735
16736  /**
16737   * @param value {@link #name} (A natural language name identifying the
16738   *              implementation guide. This name should be usable as an
16739   *              identifier for the module by machine processing applications
16740   *              such as code generation.). This is the underlying object with
16741   *              id, value and extensions. The accessor "getName" gives direct
16742   *              access to the value
16743   */
16744  public ImplementationGuide setNameElement(StringType value) {
16745    this.name = value;
16746    return this;
16747  }
16748
16749  /**
16750   * @return A natural language name identifying the implementation guide. This
16751   *         name should be usable as an identifier for the module by machine
16752   *         processing applications such as code generation.
16753   */
16754  public String getName() {
16755    return this.name == null ? null : this.name.getValue();
16756  }
16757
16758  /**
16759   * @param value A natural language name identifying the implementation guide.
16760   *              This name should be usable as an identifier for the module by
16761   *              machine processing applications such as code generation.
16762   */
16763  public ImplementationGuide setName(String value) {
16764    if (this.name == null)
16765      this.name = new StringType();
16766    this.name.setValue(value);
16767    return this;
16768  }
16769
16770  /**
16771   * @return {@link #title} (A short, descriptive, user-friendly title for the
16772   *         implementation guide.). This is the underlying object with id, value
16773   *         and extensions. The accessor "getTitle" gives direct access to the
16774   *         value
16775   */
16776  public StringType getTitleElement() {
16777    if (this.title == null)
16778      if (Configuration.errorOnAutoCreate())
16779        throw new Error("Attempt to auto-create ImplementationGuide.title");
16780      else if (Configuration.doAutoCreate())
16781        this.title = new StringType(); // bb
16782    return this.title;
16783  }
16784
16785  public boolean hasTitleElement() {
16786    return this.title != null && !this.title.isEmpty();
16787  }
16788
16789  public boolean hasTitle() {
16790    return this.title != null && !this.title.isEmpty();
16791  }
16792
16793  /**
16794   * @param value {@link #title} (A short, descriptive, user-friendly title for
16795   *              the implementation guide.). This is the underlying object with
16796   *              id, value and extensions. The accessor "getTitle" gives direct
16797   *              access to the value
16798   */
16799  public ImplementationGuide setTitleElement(StringType value) {
16800    this.title = value;
16801    return this;
16802  }
16803
16804  /**
16805   * @return A short, descriptive, user-friendly title for the implementation
16806   *         guide.
16807   */
16808  public String getTitle() {
16809    return this.title == null ? null : this.title.getValue();
16810  }
16811
16812  /**
16813   * @param value A short, descriptive, user-friendly title for the implementation
16814   *              guide.
16815   */
16816  public ImplementationGuide setTitle(String value) {
16817    if (Utilities.noString(value))
16818      this.title = null;
16819    else {
16820      if (this.title == null)
16821        this.title = new StringType();
16822      this.title.setValue(value);
16823    }
16824    return this;
16825  }
16826
16827  /**
16828   * @return {@link #status} (The status of this implementation guide. Enables
16829   *         tracking the life-cycle of the content.). This is the underlying
16830   *         object with id, value and extensions. The accessor "getStatus" gives
16831   *         direct access to the value
16832   */
16833  public Enumeration<PublicationStatus> getStatusElement() {
16834    if (this.status == null)
16835      if (Configuration.errorOnAutoCreate())
16836        throw new Error("Attempt to auto-create ImplementationGuide.status");
16837      else if (Configuration.doAutoCreate())
16838        this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
16839    return this.status;
16840  }
16841
16842  public boolean hasStatusElement() {
16843    return this.status != null && !this.status.isEmpty();
16844  }
16845
16846  public boolean hasStatus() {
16847    return this.status != null && !this.status.isEmpty();
16848  }
16849
16850  /**
16851   * @param value {@link #status} (The status of this implementation guide.
16852   *              Enables tracking the life-cycle of the content.). This is the
16853   *              underlying object with id, value and extensions. The accessor
16854   *              "getStatus" gives direct access to the value
16855   */
16856  public ImplementationGuide setStatusElement(Enumeration<PublicationStatus> value) {
16857    this.status = value;
16858    return this;
16859  }
16860
16861  /**
16862   * @return The status of this implementation guide. Enables tracking the
16863   *         life-cycle of the content.
16864   */
16865  public PublicationStatus getStatus() {
16866    return this.status == null ? null : this.status.getValue();
16867  }
16868
16869  /**
16870   * @param value The status of this implementation guide. Enables tracking the
16871   *              life-cycle of the content.
16872   */
16873  public ImplementationGuide setStatus(PublicationStatus value) {
16874    if (this.status == null)
16875      this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
16876    this.status.setValue(value);
16877    return this;
16878  }
16879
16880  /**
16881   * @return {@link #experimental} (A Boolean value to indicate that this
16882   *         implementation guide is authored for testing purposes (or
16883   *         education/evaluation/marketing) and is not intended to be used for
16884   *         genuine usage.). This is the underlying object with id, value and
16885   *         extensions. The accessor "getExperimental" gives direct access to the
16886   *         value
16887   */
16888  public BooleanType getExperimentalElement() {
16889    if (this.experimental == null)
16890      if (Configuration.errorOnAutoCreate())
16891        throw new Error("Attempt to auto-create ImplementationGuide.experimental");
16892      else if (Configuration.doAutoCreate())
16893        this.experimental = new BooleanType(); // bb
16894    return this.experimental;
16895  }
16896
16897  public boolean hasExperimentalElement() {
16898    return this.experimental != null && !this.experimental.isEmpty();
16899  }
16900
16901  public boolean hasExperimental() {
16902    return this.experimental != null && !this.experimental.isEmpty();
16903  }
16904
16905  /**
16906   * @param value {@link #experimental} (A Boolean value to indicate that this
16907   *              implementation guide is authored for testing purposes (or
16908   *              education/evaluation/marketing) and is not intended to be used
16909   *              for genuine usage.). This is the underlying object with id,
16910   *              value and extensions. The accessor "getExperimental" gives
16911   *              direct access to the value
16912   */
16913  public ImplementationGuide setExperimentalElement(BooleanType value) {
16914    this.experimental = value;
16915    return this;
16916  }
16917
16918  /**
16919   * @return A Boolean value to indicate that this implementation guide is
16920   *         authored for testing purposes (or education/evaluation/marketing) and
16921   *         is not intended to be used for genuine usage.
16922   */
16923  public boolean getExperimental() {
16924    return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
16925  }
16926
16927  /**
16928   * @param value A Boolean value to indicate that this implementation guide is
16929   *              authored for testing purposes (or
16930   *              education/evaluation/marketing) and is not intended to be used
16931   *              for genuine usage.
16932   */
16933  public ImplementationGuide setExperimental(boolean value) {
16934    if (this.experimental == null)
16935      this.experimental = new BooleanType();
16936    this.experimental.setValue(value);
16937    return this;
16938  }
16939
16940  /**
16941   * @return {@link #date} (The date (and optionally time) when the implementation
16942   *         guide was published. The date must change when the business version
16943   *         changes and it must change if the status code changes. In addition,
16944   *         it should change when the substantive content of the implementation
16945   *         guide changes.). This is the underlying object with id, value and
16946   *         extensions. The accessor "getDate" gives direct access to the value
16947   */
16948  public DateTimeType getDateElement() {
16949    if (this.date == null)
16950      if (Configuration.errorOnAutoCreate())
16951        throw new Error("Attempt to auto-create ImplementationGuide.date");
16952      else if (Configuration.doAutoCreate())
16953        this.date = new DateTimeType(); // bb
16954    return this.date;
16955  }
16956
16957  public boolean hasDateElement() {
16958    return this.date != null && !this.date.isEmpty();
16959  }
16960
16961  public boolean hasDate() {
16962    return this.date != null && !this.date.isEmpty();
16963  }
16964
16965  /**
16966   * @param value {@link #date} (The date (and optionally time) when the
16967   *              implementation guide was published. The date must change when
16968   *              the business version changes and it must change if the status
16969   *              code changes. In addition, it should change when the substantive
16970   *              content of the implementation guide changes.). This is the
16971   *              underlying object with id, value and extensions. The accessor
16972   *              "getDate" gives direct access to the value
16973   */
16974  public ImplementationGuide setDateElement(DateTimeType value) {
16975    this.date = value;
16976    return this;
16977  }
16978
16979  /**
16980   * @return The date (and optionally time) when the implementation guide was
16981   *         published. The date must change when the business version changes and
16982   *         it must change if the status code changes. In addition, it should
16983   *         change when the substantive content of the implementation guide
16984   *         changes.
16985   */
16986  public Date getDate() {
16987    return this.date == null ? null : this.date.getValue();
16988  }
16989
16990  /**
16991   * @param value The date (and optionally time) when the implementation guide was
16992   *              published. The date must change when the business version
16993   *              changes and it must change if the status code changes. In
16994   *              addition, it should change when the substantive content of the
16995   *              implementation guide changes.
16996   */
16997  public ImplementationGuide setDate(Date value) {
16998    if (value == null)
16999      this.date = null;
17000    else {
17001      if (this.date == null)
17002        this.date = new DateTimeType();
17003      this.date.setValue(value);
17004    }
17005    return this;
17006  }
17007
17008  /**
17009   * @return {@link #publisher} (The name of the organization or individual that
17010   *         published the implementation guide.). This is the underlying object
17011   *         with id, value and extensions. The accessor "getPublisher" gives
17012   *         direct access to the value
17013   */
17014  public StringType getPublisherElement() {
17015    if (this.publisher == null)
17016      if (Configuration.errorOnAutoCreate())
17017        throw new Error("Attempt to auto-create ImplementationGuide.publisher");
17018      else if (Configuration.doAutoCreate())
17019        this.publisher = new StringType(); // bb
17020    return this.publisher;
17021  }
17022
17023  public boolean hasPublisherElement() {
17024    return this.publisher != null && !this.publisher.isEmpty();
17025  }
17026
17027  public boolean hasPublisher() {
17028    return this.publisher != null && !this.publisher.isEmpty();
17029  }
17030
17031  /**
17032   * @param value {@link #publisher} (The name of the organization or individual
17033   *              that published the implementation guide.). This is the
17034   *              underlying object with id, value and extensions. The accessor
17035   *              "getPublisher" gives direct access to the value
17036   */
17037  public ImplementationGuide setPublisherElement(StringType value) {
17038    this.publisher = value;
17039    return this;
17040  }
17041
17042  /**
17043   * @return The name of the organization or individual that published the
17044   *         implementation guide.
17045   */
17046  public String getPublisher() {
17047    return this.publisher == null ? null : this.publisher.getValue();
17048  }
17049
17050  /**
17051   * @param value The name of the organization or individual that published the
17052   *              implementation guide.
17053   */
17054  public ImplementationGuide setPublisher(String value) {
17055    if (Utilities.noString(value))
17056      this.publisher = null;
17057    else {
17058      if (this.publisher == null)
17059        this.publisher = new StringType();
17060      this.publisher.setValue(value);
17061    }
17062    return this;
17063  }
17064
17065  /**
17066   * @return {@link #contact} (Contact details to assist a user in finding and
17067   *         communicating with the publisher.)
17068   */
17069  public List<ContactDetail> getContact() {
17070    if (this.contact == null)
17071      this.contact = new ArrayList<ContactDetail>();
17072    return this.contact;
17073  }
17074
17075  /**
17076   * @return Returns a reference to <code>this</code> for easy method chaining
17077   */
17078  public ImplementationGuide setContact(List<ContactDetail> theContact) {
17079    this.contact = theContact;
17080    return this;
17081  }
17082
17083  public boolean hasContact() {
17084    if (this.contact == null)
17085      return false;
17086    for (ContactDetail item : this.contact)
17087      if (!item.isEmpty())
17088        return true;
17089    return false;
17090  }
17091
17092  public ContactDetail addContact() { // 3
17093    ContactDetail t = new ContactDetail();
17094    if (this.contact == null)
17095      this.contact = new ArrayList<ContactDetail>();
17096    this.contact.add(t);
17097    return t;
17098  }
17099
17100  public ImplementationGuide addContact(ContactDetail t) { // 3
17101    if (t == null)
17102      return this;
17103    if (this.contact == null)
17104      this.contact = new ArrayList<ContactDetail>();
17105    this.contact.add(t);
17106    return this;
17107  }
17108
17109  /**
17110   * @return The first repetition of repeating field {@link #contact}, creating it
17111   *         if it does not already exist
17112   */
17113  public ContactDetail getContactFirstRep() {
17114    if (getContact().isEmpty()) {
17115      addContact();
17116    }
17117    return getContact().get(0);
17118  }
17119
17120  /**
17121   * @return {@link #description} (A free text natural language description of the
17122   *         implementation guide from a consumer's perspective.). This is the
17123   *         underlying object with id, value and extensions. The accessor
17124   *         "getDescription" gives direct access to the value
17125   */
17126  public MarkdownType getDescriptionElement() {
17127    if (this.description == null)
17128      if (Configuration.errorOnAutoCreate())
17129        throw new Error("Attempt to auto-create ImplementationGuide.description");
17130      else if (Configuration.doAutoCreate())
17131        this.description = new MarkdownType(); // bb
17132    return this.description;
17133  }
17134
17135  public boolean hasDescriptionElement() {
17136    return this.description != null && !this.description.isEmpty();
17137  }
17138
17139  public boolean hasDescription() {
17140    return this.description != null && !this.description.isEmpty();
17141  }
17142
17143  /**
17144   * @param value {@link #description} (A free text natural language description
17145   *              of the implementation guide from a consumer's perspective.).
17146   *              This is the underlying object with id, value and extensions. The
17147   *              accessor "getDescription" gives direct access to the value
17148   */
17149  public ImplementationGuide setDescriptionElement(MarkdownType value) {
17150    this.description = value;
17151    return this;
17152  }
17153
17154  /**
17155   * @return A free text natural language description of the implementation guide
17156   *         from a consumer's perspective.
17157   */
17158  public String getDescription() {
17159    return this.description == null ? null : this.description.getValue();
17160  }
17161
17162  /**
17163   * @param value A free text natural language description of the implementation
17164   *              guide from a consumer's perspective.
17165   */
17166  public ImplementationGuide setDescription(String value) {
17167    if (value == null)
17168      this.description = null;
17169    else {
17170      if (this.description == null)
17171        this.description = new MarkdownType();
17172      this.description.setValue(value);
17173    }
17174    return this;
17175  }
17176
17177  /**
17178   * @return {@link #useContext} (The content was developed with a focus and
17179   *         intent of supporting the contexts that are listed. These contexts may
17180   *         be general categories (gender, age, ...) or may be references to
17181   *         specific programs (insurance plans, studies, ...) and may be used to
17182   *         assist with indexing and searching for appropriate implementation
17183   *         guide instances.)
17184   */
17185  public List<UsageContext> getUseContext() {
17186    if (this.useContext == null)
17187      this.useContext = new ArrayList<UsageContext>();
17188    return this.useContext;
17189  }
17190
17191  /**
17192   * @return Returns a reference to <code>this</code> for easy method chaining
17193   */
17194  public ImplementationGuide setUseContext(List<UsageContext> theUseContext) {
17195    this.useContext = theUseContext;
17196    return this;
17197  }
17198
17199  public boolean hasUseContext() {
17200    if (this.useContext == null)
17201      return false;
17202    for (UsageContext item : this.useContext)
17203      if (!item.isEmpty())
17204        return true;
17205    return false;
17206  }
17207
17208  public UsageContext addUseContext() { // 3
17209    UsageContext t = new UsageContext();
17210    if (this.useContext == null)
17211      this.useContext = new ArrayList<UsageContext>();
17212    this.useContext.add(t);
17213    return t;
17214  }
17215
17216  public ImplementationGuide addUseContext(UsageContext t) { // 3
17217    if (t == null)
17218      return this;
17219    if (this.useContext == null)
17220      this.useContext = new ArrayList<UsageContext>();
17221    this.useContext.add(t);
17222    return this;
17223  }
17224
17225  /**
17226   * @return The first repetition of repeating field {@link #useContext}, creating
17227   *         it if it does not already exist
17228   */
17229  public UsageContext getUseContextFirstRep() {
17230    if (getUseContext().isEmpty()) {
17231      addUseContext();
17232    }
17233    return getUseContext().get(0);
17234  }
17235
17236  /**
17237   * @return {@link #jurisdiction} (A legal or geographic region in which the
17238   *         implementation guide is intended to be used.)
17239   */
17240  public List<CodeableConcept> getJurisdiction() {
17241    if (this.jurisdiction == null)
17242      this.jurisdiction = new ArrayList<CodeableConcept>();
17243    return this.jurisdiction;
17244  }
17245
17246  /**
17247   * @return Returns a reference to <code>this</code> for easy method chaining
17248   */
17249  public ImplementationGuide setJurisdiction(List<CodeableConcept> theJurisdiction) {
17250    this.jurisdiction = theJurisdiction;
17251    return this;
17252  }
17253
17254  public boolean hasJurisdiction() {
17255    if (this.jurisdiction == null)
17256      return false;
17257    for (CodeableConcept item : this.jurisdiction)
17258      if (!item.isEmpty())
17259        return true;
17260    return false;
17261  }
17262
17263  public CodeableConcept addJurisdiction() { // 3
17264    CodeableConcept t = new CodeableConcept();
17265    if (this.jurisdiction == null)
17266      this.jurisdiction = new ArrayList<CodeableConcept>();
17267    this.jurisdiction.add(t);
17268    return t;
17269  }
17270
17271  public ImplementationGuide addJurisdiction(CodeableConcept t) { // 3
17272    if (t == null)
17273      return this;
17274    if (this.jurisdiction == null)
17275      this.jurisdiction = new ArrayList<CodeableConcept>();
17276    this.jurisdiction.add(t);
17277    return this;
17278  }
17279
17280  /**
17281   * @return The first repetition of repeating field {@link #jurisdiction},
17282   *         creating it if it does not already exist
17283   */
17284  public CodeableConcept getJurisdictionFirstRep() {
17285    if (getJurisdiction().isEmpty()) {
17286      addJurisdiction();
17287    }
17288    return getJurisdiction().get(0);
17289  }
17290
17291  /**
17292   * @return {@link #copyright} (A copyright statement relating to the
17293   *         implementation guide and/or its contents. Copyright statements are
17294   *         generally legal restrictions on the use and publishing of the
17295   *         implementation guide.). This is the underlying object with id, value
17296   *         and extensions. The accessor "getCopyright" gives direct access to
17297   *         the value
17298   */
17299  public MarkdownType getCopyrightElement() {
17300    if (this.copyright == null)
17301      if (Configuration.errorOnAutoCreate())
17302        throw new Error("Attempt to auto-create ImplementationGuide.copyright");
17303      else if (Configuration.doAutoCreate())
17304        this.copyright = new MarkdownType(); // bb
17305    return this.copyright;
17306  }
17307
17308  public boolean hasCopyrightElement() {
17309    return this.copyright != null && !this.copyright.isEmpty();
17310  }
17311
17312  public boolean hasCopyright() {
17313    return this.copyright != null && !this.copyright.isEmpty();
17314  }
17315
17316  /**
17317   * @param value {@link #copyright} (A copyright statement relating to the
17318   *              implementation guide and/or its contents. Copyright statements
17319   *              are generally legal restrictions on the use and publishing of
17320   *              the implementation guide.). This is the underlying object with
17321   *              id, value and extensions. The accessor "getCopyright" gives
17322   *              direct access to the value
17323   */
17324  public ImplementationGuide setCopyrightElement(MarkdownType value) {
17325    this.copyright = value;
17326    return this;
17327  }
17328
17329  /**
17330   * @return A copyright statement relating to the implementation guide and/or its
17331   *         contents. Copyright statements are generally legal restrictions on
17332   *         the use and publishing of the implementation guide.
17333   */
17334  public String getCopyright() {
17335    return this.copyright == null ? null : this.copyright.getValue();
17336  }
17337
17338  /**
17339   * @param value A copyright statement relating to the implementation guide
17340   *              and/or its contents. Copyright statements are generally legal
17341   *              restrictions on the use and publishing of the implementation
17342   *              guide.
17343   */
17344  public ImplementationGuide setCopyright(String value) {
17345    if (value == null)
17346      this.copyright = null;
17347    else {
17348      if (this.copyright == null)
17349        this.copyright = new MarkdownType();
17350      this.copyright.setValue(value);
17351    }
17352    return this;
17353  }
17354
17355  /**
17356   * @return {@link #packageId} (The NPM package name for this Implementation
17357   *         Guide, used in the NPM package distribution, which is the primary
17358   *         mechanism by which FHIR based tooling manages IG dependencies. This
17359   *         value must be globally unique, and should be assigned with care.).
17360   *         This is the underlying object with id, value and extensions. The
17361   *         accessor "getPackageId" gives direct access to the value
17362   */
17363  public IdType getPackageIdElement() {
17364    if (this.packageId == null)
17365      if (Configuration.errorOnAutoCreate())
17366        throw new Error("Attempt to auto-create ImplementationGuide.packageId");
17367      else if (Configuration.doAutoCreate())
17368        this.packageId = new IdType(); // bb
17369    return this.packageId;
17370  }
17371
17372  public boolean hasPackageIdElement() {
17373    return this.packageId != null && !this.packageId.isEmpty();
17374  }
17375
17376  public boolean hasPackageId() {
17377    return this.packageId != null && !this.packageId.isEmpty();
17378  }
17379
17380  /**
17381   * @param value {@link #packageId} (The NPM package name for this Implementation
17382   *              Guide, used in the NPM package distribution, which is the
17383   *              primary mechanism by which FHIR based tooling manages IG
17384   *              dependencies. This value must be globally unique, and should be
17385   *              assigned with care.). This is the underlying object with id,
17386   *              value and extensions. The accessor "getPackageId" gives direct
17387   *              access to the value
17388   */
17389  public ImplementationGuide setPackageIdElement(IdType value) {
17390    this.packageId = value;
17391    return this;
17392  }
17393
17394  /**
17395   * @return The NPM package name for this Implementation Guide, used in the NPM
17396   *         package distribution, which is the primary mechanism by which FHIR
17397   *         based tooling manages IG dependencies. This value must be globally
17398   *         unique, and should be assigned with care.
17399   */
17400  public String getPackageId() {
17401    return this.packageId == null ? null : this.packageId.getValue();
17402  }
17403
17404  /**
17405   * @param value The NPM package name for this Implementation Guide, used in the
17406   *              NPM package distribution, which is the primary mechanism by
17407   *              which FHIR based tooling manages IG dependencies. This value
17408   *              must be globally unique, and should be assigned with care.
17409   */
17410  public ImplementationGuide setPackageId(String value) {
17411    if (this.packageId == null)
17412      this.packageId = new IdType();
17413    this.packageId.setValue(value);
17414    return this;
17415  }
17416
17417  /**
17418   * @return {@link #license} (The license that applies to this Implementation
17419   *         Guide, using an SPDX license code, or 'not-open-source'.). This is
17420   *         the underlying object with id, value and extensions. The accessor
17421   *         "getLicense" gives direct access to the value
17422   */
17423  public Enumeration<SPDXLicense> getLicenseElement() {
17424    if (this.license == null)
17425      if (Configuration.errorOnAutoCreate())
17426        throw new Error("Attempt to auto-create ImplementationGuide.license");
17427      else if (Configuration.doAutoCreate())
17428        this.license = new Enumeration<SPDXLicense>(new SPDXLicenseEnumFactory()); // bb
17429    return this.license;
17430  }
17431
17432  public boolean hasLicenseElement() {
17433    return this.license != null && !this.license.isEmpty();
17434  }
17435
17436  public boolean hasLicense() {
17437    return this.license != null && !this.license.isEmpty();
17438  }
17439
17440  /**
17441   * @param value {@link #license} (The license that applies to this
17442   *              Implementation Guide, using an SPDX license code, or
17443   *              'not-open-source'.). This is the underlying object with id,
17444   *              value and extensions. The accessor "getLicense" gives direct
17445   *              access to the value
17446   */
17447  public ImplementationGuide setLicenseElement(Enumeration<SPDXLicense> value) {
17448    this.license = value;
17449    return this;
17450  }
17451
17452  /**
17453   * @return The license that applies to this Implementation Guide, using an SPDX
17454   *         license code, or 'not-open-source'.
17455   */
17456  public SPDXLicense getLicense() {
17457    return this.license == null ? null : this.license.getValue();
17458  }
17459
17460  /**
17461   * @param value The license that applies to this Implementation Guide, using an
17462   *              SPDX license code, or 'not-open-source'.
17463   */
17464  public ImplementationGuide setLicense(SPDXLicense value) {
17465    if (value == null)
17466      this.license = null;
17467    else {
17468      if (this.license == null)
17469        this.license = new Enumeration<SPDXLicense>(new SPDXLicenseEnumFactory());
17470      this.license.setValue(value);
17471    }
17472    return this;
17473  }
17474
17475  /**
17476   * @return {@link #fhirVersion} (The version(s) of the FHIR specification that
17477   *         this ImplementationGuide targets - e.g. describes how to use. The
17478   *         value of this element is the formal version of the specification,
17479   *         without the revision number, e.g. [publication].[major].[minor],
17480   *         which is 4.0.1. for this version.)
17481   */
17482  public List<Enumeration<FHIRVersion>> getFhirVersion() {
17483    if (this.fhirVersion == null)
17484      this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
17485    return this.fhirVersion;
17486  }
17487
17488  /**
17489   * @return Returns a reference to <code>this</code> for easy method chaining
17490   */
17491  public ImplementationGuide setFhirVersion(List<Enumeration<FHIRVersion>> theFhirVersion) {
17492    this.fhirVersion = theFhirVersion;
17493    return this;
17494  }
17495
17496  public boolean hasFhirVersion() {
17497    if (this.fhirVersion == null)
17498      return false;
17499    for (Enumeration<FHIRVersion> item : this.fhirVersion)
17500      if (!item.isEmpty())
17501        return true;
17502    return false;
17503  }
17504
17505  /**
17506   * @return {@link #fhirVersion} (The version(s) of the FHIR specification that
17507   *         this ImplementationGuide targets - e.g. describes how to use. The
17508   *         value of this element is the formal version of the specification,
17509   *         without the revision number, e.g. [publication].[major].[minor],
17510   *         which is 4.0.1. for this version.)
17511   */
17512  public Enumeration<FHIRVersion> addFhirVersionElement() {// 2
17513    Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
17514    if (this.fhirVersion == null)
17515      this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
17516    this.fhirVersion.add(t);
17517    return t;
17518  }
17519
17520  /**
17521   * @param value {@link #fhirVersion} (The version(s) of the FHIR specification
17522   *              that this ImplementationGuide targets - e.g. describes how to
17523   *              use. The value of this element is the formal version of the
17524   *              specification, without the revision number, e.g.
17525   *              [publication].[major].[minor], which is 4.0.1. for this
17526   *              version.)
17527   */
17528  public ImplementationGuide addFhirVersion(FHIRVersion value) { // 1
17529    Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
17530    t.setValue(value);
17531    if (this.fhirVersion == null)
17532      this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
17533    this.fhirVersion.add(t);
17534    return this;
17535  }
17536
17537  /**
17538   * @param value {@link #fhirVersion} (The version(s) of the FHIR specification
17539   *              that this ImplementationGuide targets - e.g. describes how to
17540   *              use. The value of this element is the formal version of the
17541   *              specification, without the revision number, e.g.
17542   *              [publication].[major].[minor], which is 4.0.1. for this
17543   *              version.)
17544   */
17545  public boolean hasFhirVersion(FHIRVersion value) {
17546    if (this.fhirVersion == null)
17547      return false;
17548    for (Enumeration<FHIRVersion> v : this.fhirVersion)
17549      if (v.getValue().equals(value)) // code
17550        return true;
17551    return false;
17552  }
17553
17554  /**
17555   * @return {@link #dependsOn} (Another implementation guide that this
17556   *         implementation depends on. Typically, an implementation guide uses
17557   *         value sets, profiles etc.defined in other implementation guides.)
17558   */
17559  public List<ImplementationGuideDependsOnComponent> getDependsOn() {
17560    if (this.dependsOn == null)
17561      this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
17562    return this.dependsOn;
17563  }
17564
17565  /**
17566   * @return Returns a reference to <code>this</code> for easy method chaining
17567   */
17568  public ImplementationGuide setDependsOn(List<ImplementationGuideDependsOnComponent> theDependsOn) {
17569    this.dependsOn = theDependsOn;
17570    return this;
17571  }
17572
17573  public boolean hasDependsOn() {
17574    if (this.dependsOn == null)
17575      return false;
17576    for (ImplementationGuideDependsOnComponent item : this.dependsOn)
17577      if (!item.isEmpty())
17578        return true;
17579    return false;
17580  }
17581
17582  public ImplementationGuideDependsOnComponent addDependsOn() { // 3
17583    ImplementationGuideDependsOnComponent t = new ImplementationGuideDependsOnComponent();
17584    if (this.dependsOn == null)
17585      this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
17586    this.dependsOn.add(t);
17587    return t;
17588  }
17589
17590  public ImplementationGuide addDependsOn(ImplementationGuideDependsOnComponent t) { // 3
17591    if (t == null)
17592      return this;
17593    if (this.dependsOn == null)
17594      this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
17595    this.dependsOn.add(t);
17596    return this;
17597  }
17598
17599  /**
17600   * @return The first repetition of repeating field {@link #dependsOn}, creating
17601   *         it if it does not already exist
17602   */
17603  public ImplementationGuideDependsOnComponent getDependsOnFirstRep() {
17604    if (getDependsOn().isEmpty()) {
17605      addDependsOn();
17606    }
17607    return getDependsOn().get(0);
17608  }
17609
17610  /**
17611   * @return {@link #global} (A set of profiles that all resources covered by this
17612   *         implementation guide must conform to.)
17613   */
17614  public List<ImplementationGuideGlobalComponent> getGlobal() {
17615    if (this.global == null)
17616      this.global = new ArrayList<ImplementationGuideGlobalComponent>();
17617    return this.global;
17618  }
17619
17620  /**
17621   * @return Returns a reference to <code>this</code> for easy method chaining
17622   */
17623  public ImplementationGuide setGlobal(List<ImplementationGuideGlobalComponent> theGlobal) {
17624    this.global = theGlobal;
17625    return this;
17626  }
17627
17628  public boolean hasGlobal() {
17629    if (this.global == null)
17630      return false;
17631    for (ImplementationGuideGlobalComponent item : this.global)
17632      if (!item.isEmpty())
17633        return true;
17634    return false;
17635  }
17636
17637  public ImplementationGuideGlobalComponent addGlobal() { // 3
17638    ImplementationGuideGlobalComponent t = new ImplementationGuideGlobalComponent();
17639    if (this.global == null)
17640      this.global = new ArrayList<ImplementationGuideGlobalComponent>();
17641    this.global.add(t);
17642    return t;
17643  }
17644
17645  public ImplementationGuide addGlobal(ImplementationGuideGlobalComponent t) { // 3
17646    if (t == null)
17647      return this;
17648    if (this.global == null)
17649      this.global = new ArrayList<ImplementationGuideGlobalComponent>();
17650    this.global.add(t);
17651    return this;
17652  }
17653
17654  /**
17655   * @return The first repetition of repeating field {@link #global}, creating it
17656   *         if it does not already exist
17657   */
17658  public ImplementationGuideGlobalComponent getGlobalFirstRep() {
17659    if (getGlobal().isEmpty()) {
17660      addGlobal();
17661    }
17662    return getGlobal().get(0);
17663  }
17664
17665  /**
17666   * @return {@link #definition} (The information needed by an IG publisher tool
17667   *         to publish the whole implementation guide.)
17668   */
17669  public ImplementationGuideDefinitionComponent getDefinition() {
17670    if (this.definition == null)
17671      if (Configuration.errorOnAutoCreate())
17672        throw new Error("Attempt to auto-create ImplementationGuide.definition");
17673      else if (Configuration.doAutoCreate())
17674        this.definition = new ImplementationGuideDefinitionComponent(); // cc
17675    return this.definition;
17676  }
17677
17678  public boolean hasDefinition() {
17679    return this.definition != null && !this.definition.isEmpty();
17680  }
17681
17682  /**
17683   * @param value {@link #definition} (The information needed by an IG publisher
17684   *              tool to publish the whole implementation guide.)
17685   */
17686  public ImplementationGuide setDefinition(ImplementationGuideDefinitionComponent value) {
17687    this.definition = value;
17688    return this;
17689  }
17690
17691  /**
17692   * @return {@link #manifest} (Information about an assembled implementation
17693   *         guide, created by the publication tooling.)
17694   */
17695  public ImplementationGuideManifestComponent getManifest() {
17696    if (this.manifest == null)
17697      if (Configuration.errorOnAutoCreate())
17698        throw new Error("Attempt to auto-create ImplementationGuide.manifest");
17699      else if (Configuration.doAutoCreate())
17700        this.manifest = new ImplementationGuideManifestComponent(); // cc
17701    return this.manifest;
17702  }
17703
17704  public boolean hasManifest() {
17705    return this.manifest != null && !this.manifest.isEmpty();
17706  }
17707
17708  /**
17709   * @param value {@link #manifest} (Information about an assembled implementation
17710   *              guide, created by the publication tooling.)
17711   */
17712  public ImplementationGuide setManifest(ImplementationGuideManifestComponent value) {
17713    this.manifest = value;
17714    return this;
17715  }
17716
17717  protected void listChildren(List<Property> children) {
17718    super.listChildren(children);
17719    children.add(new Property("url", "uri",
17720        "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.",
17721        0, 1, url));
17722    children.add(new Property("version", "string",
17723        "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.",
17724        0, 1, version));
17725    children.add(new Property("name", "string",
17726        "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.",
17727        0, 1, name));
17728    children.add(new Property("title", "string",
17729        "A short, descriptive, user-friendly title for the implementation guide.", 0, 1, title));
17730    children.add(new Property("status", "code",
17731        "The status of this implementation guide. Enables tracking the life-cycle of the content.", 0, 1, status));
17732    children.add(new Property("experimental", "boolean",
17733        "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.",
17734        0, 1, experimental));
17735    children.add(new Property("date", "dateTime",
17736        "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.",
17737        0, 1, date));
17738    children.add(new Property("publisher", "string",
17739        "The name of the organization or individual that published the implementation guide.", 0, 1, publisher));
17740    children.add(new Property("contact", "ContactDetail",
17741        "Contact details to assist a user in finding and communicating with the publisher.", 0,
17742        java.lang.Integer.MAX_VALUE, contact));
17743    children.add(new Property("description", "markdown",
17744        "A free text natural language description of the implementation guide from a consumer's perspective.", 0, 1,
17745        description));
17746    children.add(new Property("useContext", "UsageContext",
17747        "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.",
17748        0, java.lang.Integer.MAX_VALUE, useContext));
17749    children.add(new Property("jurisdiction", "CodeableConcept",
17750        "A legal or geographic region in which the implementation guide is intended to be used.", 0,
17751        java.lang.Integer.MAX_VALUE, jurisdiction));
17752    children.add(new Property("copyright", "markdown",
17753        "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.",
17754        0, 1, copyright));
17755    children.add(new Property("packageId", "id",
17756        "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.",
17757        0, 1, packageId));
17758    children.add(new Property("license", "code",
17759        "The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.", 0,
17760        1, license));
17761    children.add(new Property("fhirVersion", "code",
17762        "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.",
17763        0, java.lang.Integer.MAX_VALUE, fhirVersion));
17764    children.add(new Property("dependsOn", "",
17765        "Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.",
17766        0, java.lang.Integer.MAX_VALUE, dependsOn));
17767    children.add(new Property("global", "",
17768        "A set of profiles that all resources covered by this implementation guide must conform to.", 0,
17769        java.lang.Integer.MAX_VALUE, global));
17770    children.add(new Property("definition", "",
17771        "The information needed by an IG publisher tool to publish the whole implementation guide.", 0, 1, definition));
17772    children.add(new Property("manifest", "",
17773        "Information about an assembled implementation guide, created by the publication tooling.", 0, 1, manifest));
17774  }
17775
17776  @Override
17777  public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
17778    switch (_hash) {
17779    case 116079:
17780      /* url */ return new Property("url", "uri",
17781          "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.",
17782          0, 1, url);
17783    case 351608024:
17784      /* version */ return new Property("version", "string",
17785          "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.",
17786          0, 1, version);
17787    case 3373707:
17788      /* name */ return new Property("name", "string",
17789          "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.",
17790          0, 1, name);
17791    case 110371416:
17792      /* title */ return new Property("title", "string",
17793          "A short, descriptive, user-friendly title for the implementation guide.", 0, 1, title);
17794    case -892481550:
17795      /* status */ return new Property("status", "code",
17796          "The status of this implementation guide. Enables tracking the life-cycle of the content.", 0, 1, status);
17797    case -404562712:
17798      /* experimental */ return new Property("experimental", "boolean",
17799          "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.",
17800          0, 1, experimental);
17801    case 3076014:
17802      /* date */ return new Property("date", "dateTime",
17803          "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.",
17804          0, 1, date);
17805    case 1447404028:
17806      /* publisher */ return new Property("publisher", "string",
17807          "The name of the organization or individual that published the implementation guide.", 0, 1, publisher);
17808    case 951526432:
17809      /* contact */ return new Property("contact", "ContactDetail",
17810          "Contact details to assist a user in finding and communicating with the publisher.", 0,
17811          java.lang.Integer.MAX_VALUE, contact);
17812    case -1724546052:
17813      /* description */ return new Property("description", "markdown",
17814          "A free text natural language description of the implementation guide from a consumer's perspective.", 0, 1,
17815          description);
17816    case -669707736:
17817      /* useContext */ return new Property("useContext", "UsageContext",
17818          "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.",
17819          0, java.lang.Integer.MAX_VALUE, useContext);
17820    case -507075711:
17821      /* jurisdiction */ return new Property("jurisdiction", "CodeableConcept",
17822          "A legal or geographic region in which the implementation guide is intended to be used.", 0,
17823          java.lang.Integer.MAX_VALUE, jurisdiction);
17824    case 1522889671:
17825      /* copyright */ return new Property("copyright", "markdown",
17826          "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.",
17827          0, 1, copyright);
17828    case 1802060801:
17829      /* packageId */ return new Property("packageId", "id",
17830          "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.",
17831          0, 1, packageId);
17832    case 166757441:
17833      /* license */ return new Property("license", "code",
17834          "The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.", 0,
17835          1, license);
17836    case 461006061:
17837      /* fhirVersion */ return new Property("fhirVersion", "code",
17838          "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.",
17839          0, java.lang.Integer.MAX_VALUE, fhirVersion);
17840    case -1109214266:
17841      /* dependsOn */ return new Property("dependsOn", "",
17842          "Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.",
17843          0, java.lang.Integer.MAX_VALUE, dependsOn);
17844    case -1243020381:
17845      /* global */ return new Property("global", "",
17846          "A set of profiles that all resources covered by this implementation guide must conform to.", 0,
17847          java.lang.Integer.MAX_VALUE, global);
17848    case -1014418093:
17849      /* definition */ return new Property("definition", "",
17850          "The information needed by an IG publisher tool to publish the whole implementation guide.", 0, 1,
17851          definition);
17852    case 130625071:
17853      /* manifest */ return new Property("manifest", "",
17854          "Information about an assembled implementation guide, created by the publication tooling.", 0, 1, manifest);
17855    default:
17856      return super.getNamedProperty(_hash, _name, _checkValid);
17857    }
17858
17859  }
17860
17861  @Override
17862  public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
17863    switch (hash) {
17864    case 116079:
17865      /* url */ return this.url == null ? new Base[0] : new Base[] { this.url }; // UriType
17866    case 351608024:
17867      /* version */ return this.version == null ? new Base[0] : new Base[] { this.version }; // StringType
17868    case 3373707:
17869      /* name */ return this.name == null ? new Base[0] : new Base[] { this.name }; // StringType
17870    case 110371416:
17871      /* title */ return this.title == null ? new Base[0] : new Base[] { this.title }; // StringType
17872    case -892481550:
17873      /* status */ return this.status == null ? new Base[0] : new Base[] { this.status }; // Enumeration<PublicationStatus>
17874    case -404562712:
17875      /* experimental */ return this.experimental == null ? new Base[0] : new Base[] { this.experimental }; // BooleanType
17876    case 3076014:
17877      /* date */ return this.date == null ? new Base[0] : new Base[] { this.date }; // DateTimeType
17878    case 1447404028:
17879      /* publisher */ return this.publisher == null ? new Base[0] : new Base[] { this.publisher }; // StringType
17880    case 951526432:
17881      /* contact */ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
17882    case -1724546052:
17883      /* description */ return this.description == null ? new Base[0] : new Base[] { this.description }; // MarkdownType
17884    case -669707736:
17885      /* useContext */ return this.useContext == null ? new Base[0]
17886          : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
17887    case -507075711:
17888      /* jurisdiction */ return this.jurisdiction == null ? new Base[0]
17889          : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
17890    case 1522889671:
17891      /* copyright */ return this.copyright == null ? new Base[0] : new Base[] { this.copyright }; // MarkdownType
17892    case 1802060801:
17893      /* packageId */ return this.packageId == null ? new Base[0] : new Base[] { this.packageId }; // IdType
17894    case 166757441:
17895      /* license */ return this.license == null ? new Base[0] : new Base[] { this.license }; // Enumeration<SPDXLicense>
17896    case 461006061:
17897      /* fhirVersion */ return this.fhirVersion == null ? new Base[0]
17898          : this.fhirVersion.toArray(new Base[this.fhirVersion.size()]); // Enumeration<FHIRVersion>
17899    case -1109214266:
17900      /* dependsOn */ return this.dependsOn == null ? new Base[0]
17901          : this.dependsOn.toArray(new Base[this.dependsOn.size()]); // ImplementationGuideDependsOnComponent
17902    case -1243020381:
17903      /* global */ return this.global == null ? new Base[0] : this.global.toArray(new Base[this.global.size()]); // ImplementationGuideGlobalComponent
17904    case -1014418093:
17905      /* definition */ return this.definition == null ? new Base[0] : new Base[] { this.definition }; // ImplementationGuideDefinitionComponent
17906    case 130625071:
17907      /* manifest */ return this.manifest == null ? new Base[0] : new Base[] { this.manifest }; // ImplementationGuideManifestComponent
17908    default:
17909      return super.getProperty(hash, name, checkValid);
17910    }
17911
17912  }
17913
17914  @Override
17915  public Base setProperty(int hash, String name, Base value) throws FHIRException {
17916    switch (hash) {
17917    case 116079: // url
17918      this.url = castToUri(value); // UriType
17919      return value;
17920    case 351608024: // version
17921      this.version = castToString(value); // StringType
17922      return value;
17923    case 3373707: // name
17924      this.name = castToString(value); // StringType
17925      return value;
17926    case 110371416: // title
17927      this.title = castToString(value); // StringType
17928      return value;
17929    case -892481550: // status
17930      value = new PublicationStatusEnumFactory().fromType(castToCode(value));
17931      this.status = (Enumeration) value; // Enumeration<PublicationStatus>
17932      return value;
17933    case -404562712: // experimental
17934      this.experimental = castToBoolean(value); // BooleanType
17935      return value;
17936    case 3076014: // date
17937      this.date = castToDateTime(value); // DateTimeType
17938      return value;
17939    case 1447404028: // publisher
17940      this.publisher = castToString(value); // StringType
17941      return value;
17942    case 951526432: // contact
17943      this.getContact().add(castToContactDetail(value)); // ContactDetail
17944      return value;
17945    case -1724546052: // description
17946      this.description = castToMarkdown(value); // MarkdownType
17947      return value;
17948    case -669707736: // useContext
17949      this.getUseContext().add(castToUsageContext(value)); // UsageContext
17950      return value;
17951    case -507075711: // jurisdiction
17952      this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept
17953      return value;
17954    case 1522889671: // copyright
17955      this.copyright = castToMarkdown(value); // MarkdownType
17956      return value;
17957    case 1802060801: // packageId
17958      this.packageId = castToId(value); // IdType
17959      return value;
17960    case 166757441: // license
17961      value = new SPDXLicenseEnumFactory().fromType(castToCode(value));
17962      this.license = (Enumeration) value; // Enumeration<SPDXLicense>
17963      return value;
17964    case 461006061: // fhirVersion
17965      value = new FHIRVersionEnumFactory().fromType(castToCode(value));
17966      this.getFhirVersion().add((Enumeration) value); // Enumeration<FHIRVersion>
17967      return value;
17968    case -1109214266: // dependsOn
17969      this.getDependsOn().add((ImplementationGuideDependsOnComponent) value); // ImplementationGuideDependsOnComponent
17970      return value;
17971    case -1243020381: // global
17972      this.getGlobal().add((ImplementationGuideGlobalComponent) value); // ImplementationGuideGlobalComponent
17973      return value;
17974    case -1014418093: // definition
17975      this.definition = (ImplementationGuideDefinitionComponent) value; // ImplementationGuideDefinitionComponent
17976      return value;
17977    case 130625071: // manifest
17978      this.manifest = (ImplementationGuideManifestComponent) value; // ImplementationGuideManifestComponent
17979      return value;
17980    default:
17981      return super.setProperty(hash, name, value);
17982    }
17983
17984  }
17985
17986  @Override
17987  public Base setProperty(String name, Base value) throws FHIRException {
17988    if (name.equals("url")) {
17989      this.url = castToUri(value); // UriType
17990    } else if (name.equals("version")) {
17991      this.version = castToString(value); // StringType
17992    } else if (name.equals("name")) {
17993      this.name = castToString(value); // StringType
17994    } else if (name.equals("title")) {
17995      this.title = castToString(value); // StringType
17996    } else if (name.equals("status")) {
17997      value = new PublicationStatusEnumFactory().fromType(castToCode(value));
17998      this.status = (Enumeration) value; // Enumeration<PublicationStatus>
17999    } else if (name.equals("experimental")) {
18000      this.experimental = castToBoolean(value); // BooleanType
18001    } else if (name.equals("date")) {
18002      this.date = castToDateTime(value); // DateTimeType
18003    } else if (name.equals("publisher")) {
18004      this.publisher = castToString(value); // StringType
18005    } else if (name.equals("contact")) {
18006      this.getContact().add(castToContactDetail(value));
18007    } else if (name.equals("description")) {
18008      this.description = castToMarkdown(value); // MarkdownType
18009    } else if (name.equals("useContext")) {
18010      this.getUseContext().add(castToUsageContext(value));
18011    } else if (name.equals("jurisdiction")) {
18012      this.getJurisdiction().add(castToCodeableConcept(value));
18013    } else if (name.equals("copyright")) {
18014      this.copyright = castToMarkdown(value); // MarkdownType
18015    } else if (name.equals("packageId")) {
18016      this.packageId = castToId(value); // IdType
18017    } else if (name.equals("license")) {
18018      value = new SPDXLicenseEnumFactory().fromType(castToCode(value));
18019      this.license = (Enumeration) value; // Enumeration<SPDXLicense>
18020    } else if (name.equals("fhirVersion")) {
18021      value = new FHIRVersionEnumFactory().fromType(castToCode(value));
18022      this.getFhirVersion().add((Enumeration) value);
18023    } else if (name.equals("dependsOn")) {
18024      this.getDependsOn().add((ImplementationGuideDependsOnComponent) value);
18025    } else if (name.equals("global")) {
18026      this.getGlobal().add((ImplementationGuideGlobalComponent) value);
18027    } else if (name.equals("definition")) {
18028      this.definition = (ImplementationGuideDefinitionComponent) value; // ImplementationGuideDefinitionComponent
18029    } else if (name.equals("manifest")) {
18030      this.manifest = (ImplementationGuideManifestComponent) value; // ImplementationGuideManifestComponent
18031    } else
18032      return super.setProperty(name, value);
18033    return value;
18034  }
18035
18036  @Override
18037  public Base makeProperty(int hash, String name) throws FHIRException {
18038    switch (hash) {
18039    case 116079:
18040      return getUrlElement();
18041    case 351608024:
18042      return getVersionElement();
18043    case 3373707:
18044      return getNameElement();
18045    case 110371416:
18046      return getTitleElement();
18047    case -892481550:
18048      return getStatusElement();
18049    case -404562712:
18050      return getExperimentalElement();
18051    case 3076014:
18052      return getDateElement();
18053    case 1447404028:
18054      return getPublisherElement();
18055    case 951526432:
18056      return addContact();
18057    case -1724546052:
18058      return getDescriptionElement();
18059    case -669707736:
18060      return addUseContext();
18061    case -507075711:
18062      return addJurisdiction();
18063    case 1522889671:
18064      return getCopyrightElement();
18065    case 1802060801:
18066      return getPackageIdElement();
18067    case 166757441:
18068      return getLicenseElement();
18069    case 461006061:
18070      return addFhirVersionElement();
18071    case -1109214266:
18072      return addDependsOn();
18073    case -1243020381:
18074      return addGlobal();
18075    case -1014418093:
18076      return getDefinition();
18077    case 130625071:
18078      return getManifest();
18079    default:
18080      return super.makeProperty(hash, name);
18081    }
18082
18083  }
18084
18085  @Override
18086  public String[] getTypesForProperty(int hash, String name) throws FHIRException {
18087    switch (hash) {
18088    case 116079:
18089      /* url */ return new String[] { "uri" };
18090    case 351608024:
18091      /* version */ return new String[] { "string" };
18092    case 3373707:
18093      /* name */ return new String[] { "string" };
18094    case 110371416:
18095      /* title */ return new String[] { "string" };
18096    case -892481550:
18097      /* status */ return new String[] { "code" };
18098    case -404562712:
18099      /* experimental */ return new String[] { "boolean" };
18100    case 3076014:
18101      /* date */ return new String[] { "dateTime" };
18102    case 1447404028:
18103      /* publisher */ return new String[] { "string" };
18104    case 951526432:
18105      /* contact */ return new String[] { "ContactDetail" };
18106    case -1724546052:
18107      /* description */ return new String[] { "markdown" };
18108    case -669707736:
18109      /* useContext */ return new String[] { "UsageContext" };
18110    case -507075711:
18111      /* jurisdiction */ return new String[] { "CodeableConcept" };
18112    case 1522889671:
18113      /* copyright */ return new String[] { "markdown" };
18114    case 1802060801:
18115      /* packageId */ return new String[] { "id" };
18116    case 166757441:
18117      /* license */ return new String[] { "code" };
18118    case 461006061:
18119      /* fhirVersion */ return new String[] { "code" };
18120    case -1109214266:
18121      /* dependsOn */ return new String[] {};
18122    case -1243020381:
18123      /* global */ return new String[] {};
18124    case -1014418093:
18125      /* definition */ return new String[] {};
18126    case 130625071:
18127      /* manifest */ return new String[] {};
18128    default:
18129      return super.getTypesForProperty(hash, name);
18130    }
18131
18132  }
18133
18134  @Override
18135  public Base addChild(String name) throws FHIRException {
18136    if (name.equals("url")) {
18137      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.url");
18138    } else if (name.equals("version")) {
18139      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.version");
18140    } else if (name.equals("name")) {
18141      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.name");
18142    } else if (name.equals("title")) {
18143      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.title");
18144    } else if (name.equals("status")) {
18145      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.status");
18146    } else if (name.equals("experimental")) {
18147      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.experimental");
18148    } else if (name.equals("date")) {
18149      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.date");
18150    } else if (name.equals("publisher")) {
18151      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.publisher");
18152    } else if (name.equals("contact")) {
18153      return addContact();
18154    } else if (name.equals("description")) {
18155      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.description");
18156    } else if (name.equals("useContext")) {
18157      return addUseContext();
18158    } else if (name.equals("jurisdiction")) {
18159      return addJurisdiction();
18160    } else if (name.equals("copyright")) {
18161      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.copyright");
18162    } else if (name.equals("packageId")) {
18163      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.packageId");
18164    } else if (name.equals("license")) {
18165      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.license");
18166    } else if (name.equals("fhirVersion")) {
18167      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.fhirVersion");
18168    } else if (name.equals("dependsOn")) {
18169      return addDependsOn();
18170    } else if (name.equals("global")) {
18171      return addGlobal();
18172    } else if (name.equals("definition")) {
18173      this.definition = new ImplementationGuideDefinitionComponent();
18174      return this.definition;
18175    } else if (name.equals("manifest")) {
18176      this.manifest = new ImplementationGuideManifestComponent();
18177      return this.manifest;
18178    } else
18179      return super.addChild(name);
18180  }
18181
18182  public String fhirType() {
18183    return "ImplementationGuide";
18184
18185  }
18186
18187  public ImplementationGuide copy() {
18188    ImplementationGuide dst = new ImplementationGuide();
18189    copyValues(dst);
18190    return dst;
18191  }
18192
18193  public void copyValues(ImplementationGuide dst) {
18194    super.copyValues(dst);
18195    dst.url = url == null ? null : url.copy();
18196    dst.version = version == null ? null : version.copy();
18197    dst.name = name == null ? null : name.copy();
18198    dst.title = title == null ? null : title.copy();
18199    dst.status = status == null ? null : status.copy();
18200    dst.experimental = experimental == null ? null : experimental.copy();
18201    dst.date = date == null ? null : date.copy();
18202    dst.publisher = publisher == null ? null : publisher.copy();
18203    if (contact != null) {
18204      dst.contact = new ArrayList<ContactDetail>();
18205      for (ContactDetail i : contact)
18206        dst.contact.add(i.copy());
18207    }
18208    ;
18209    dst.description = description == null ? null : description.copy();
18210    if (useContext != null) {
18211      dst.useContext = new ArrayList<UsageContext>();
18212      for (UsageContext i : useContext)
18213        dst.useContext.add(i.copy());
18214    }
18215    ;
18216    if (jurisdiction != null) {
18217      dst.jurisdiction = new ArrayList<CodeableConcept>();
18218      for (CodeableConcept i : jurisdiction)
18219        dst.jurisdiction.add(i.copy());
18220    }
18221    ;
18222    dst.copyright = copyright == null ? null : copyright.copy();
18223    dst.packageId = packageId == null ? null : packageId.copy();
18224    dst.license = license == null ? null : license.copy();
18225    if (fhirVersion != null) {
18226      dst.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
18227      for (Enumeration<FHIRVersion> i : fhirVersion)
18228        dst.fhirVersion.add(i.copy());
18229    }
18230    ;
18231    if (dependsOn != null) {
18232      dst.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
18233      for (ImplementationGuideDependsOnComponent i : dependsOn)
18234        dst.dependsOn.add(i.copy());
18235    }
18236    ;
18237    if (global != null) {
18238      dst.global = new ArrayList<ImplementationGuideGlobalComponent>();
18239      for (ImplementationGuideGlobalComponent i : global)
18240        dst.global.add(i.copy());
18241    }
18242    ;
18243    dst.definition = definition == null ? null : definition.copy();
18244    dst.manifest = manifest == null ? null : manifest.copy();
18245  }
18246
18247  protected ImplementationGuide typedCopy() {
18248    return copy();
18249  }
18250
18251  @Override
18252  public boolean equalsDeep(Base other_) {
18253    if (!super.equalsDeep(other_))
18254      return false;
18255    if (!(other_ instanceof ImplementationGuide))
18256      return false;
18257    ImplementationGuide o = (ImplementationGuide) other_;
18258    return compareDeep(copyright, o.copyright, true) && compareDeep(packageId, o.packageId, true)
18259        && compareDeep(license, o.license, true) && compareDeep(fhirVersion, o.fhirVersion, true)
18260        && compareDeep(dependsOn, o.dependsOn, true) && compareDeep(global, o.global, true)
18261        && compareDeep(definition, o.definition, true) && compareDeep(manifest, o.manifest, true);
18262  }
18263
18264  @Override
18265  public boolean equalsShallow(Base other_) {
18266    if (!super.equalsShallow(other_))
18267      return false;
18268    if (!(other_ instanceof ImplementationGuide))
18269      return false;
18270    ImplementationGuide o = (ImplementationGuide) other_;
18271    return compareValues(copyright, o.copyright, true) && compareValues(packageId, o.packageId, true)
18272        && compareValues(license, o.license, true) && compareValues(fhirVersion, o.fhirVersion, true);
18273  }
18274
18275  public boolean isEmpty() {
18276    return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(copyright, packageId, license, fhirVersion,
18277        dependsOn, global, definition, manifest);
18278  }
18279
18280  @Override
18281  public ResourceType getResourceType() {
18282    return ResourceType.ImplementationGuide;
18283  }
18284
18285  /**
18286   * Search parameter: <b>date</b>
18287   * <p>
18288   * Description: <b>The implementation guide publication date</b><br>
18289   * Type: <b>date</b><br>
18290   * Path: <b>ImplementationGuide.date</b><br>
18291   * </p>
18292   */
18293  @SearchParamDefinition(name = "date", path = "ImplementationGuide.date", description = "The implementation guide publication date", type = "date")
18294  public static final String SP_DATE = "date";
18295  /**
18296   * <b>Fluent Client</b> search parameter constant for <b>date</b>
18297   * <p>
18298   * Description: <b>The implementation guide publication date</b><br>
18299   * Type: <b>date</b><br>
18300   * Path: <b>ImplementationGuide.date</b><br>
18301   * </p>
18302   */
18303  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(
18304      SP_DATE);
18305
18306  /**
18307   * Search parameter: <b>context-type-value</b>
18308   * <p>
18309   * Description: <b>A use context type and value assigned to the implementation
18310   * guide</b><br>
18311   * Type: <b>composite</b><br>
18312   * Path: <b></b><br>
18313   * </p>
18314   */
18315  @SearchParamDefinition(name = "context-type-value", path = "ImplementationGuide.useContext", description = "A use context type and value assigned to the implementation guide", type = "composite", compositeOf = {
18316      "context-type", "context" })
18317  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
18318  /**
18319   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
18320   * <p>
18321   * Description: <b>A use context type and value assigned to the implementation
18322   * guide</b><br>
18323   * Type: <b>composite</b><br>
18324   * Path: <b></b><br>
18325   * </p>
18326   */
18327  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>(
18328      SP_CONTEXT_TYPE_VALUE);
18329
18330  /**
18331   * Search parameter: <b>resource</b>
18332   * <p>
18333   * Description: <b>Location of the resource</b><br>
18334   * Type: <b>reference</b><br>
18335   * Path: <b>ImplementationGuide.definition.resource.reference</b><br>
18336   * </p>
18337   */
18338  @SearchParamDefinition(name = "resource", path = "ImplementationGuide.definition.resource.reference", description = "Location of the resource", type = "reference")
18339  public static final String SP_RESOURCE = "resource";
18340  /**
18341   * <b>Fluent Client</b> search parameter constant for <b>resource</b>
18342   * <p>
18343   * Description: <b>Location of the resource</b><br>
18344   * Type: <b>reference</b><br>
18345   * Path: <b>ImplementationGuide.definition.resource.reference</b><br>
18346   * </p>
18347   */
18348  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RESOURCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(
18349      SP_RESOURCE);
18350
18351  /**
18352   * Constant for fluent queries to be used to add include statements. Specifies
18353   * the path value of "<b>ImplementationGuide:resource</b>".
18354   */
18355  public static final ca.uhn.fhir.model.api.Include INCLUDE_RESOURCE = new ca.uhn.fhir.model.api.Include(
18356      "ImplementationGuide:resource").toLocked();
18357
18358  /**
18359   * Search parameter: <b>jurisdiction</b>
18360   * <p>
18361   * Description: <b>Intended jurisdiction for the implementation guide</b><br>
18362   * Type: <b>token</b><br>
18363   * Path: <b>ImplementationGuide.jurisdiction</b><br>
18364   * </p>
18365   */
18366  @SearchParamDefinition(name = "jurisdiction", path = "ImplementationGuide.jurisdiction", description = "Intended jurisdiction for the implementation guide", type = "token")
18367  public static final String SP_JURISDICTION = "jurisdiction";
18368  /**
18369   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
18370   * <p>
18371   * Description: <b>Intended jurisdiction for the implementation guide</b><br>
18372   * Type: <b>token</b><br>
18373   * Path: <b>ImplementationGuide.jurisdiction</b><br>
18374   * </p>
18375   */
18376  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(
18377      SP_JURISDICTION);
18378
18379  /**
18380   * Search parameter: <b>description</b>
18381   * <p>
18382   * Description: <b>The description of the implementation guide</b><br>
18383   * Type: <b>string</b><br>
18384   * Path: <b>ImplementationGuide.description</b><br>
18385   * </p>
18386   */
18387  @SearchParamDefinition(name = "description", path = "ImplementationGuide.description", description = "The description of the implementation guide", type = "string")
18388  public static final String SP_DESCRIPTION = "description";
18389  /**
18390   * <b>Fluent Client</b> search parameter constant for <b>description</b>
18391   * <p>
18392   * Description: <b>The description of the implementation guide</b><br>
18393   * Type: <b>string</b><br>
18394   * Path: <b>ImplementationGuide.description</b><br>
18395   * </p>
18396   */
18397  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(
18398      SP_DESCRIPTION);
18399
18400  /**
18401   * Search parameter: <b>context-type</b>
18402   * <p>
18403   * Description: <b>A type of use context assigned to the implementation
18404   * guide</b><br>
18405   * Type: <b>token</b><br>
18406   * Path: <b>ImplementationGuide.useContext.code</b><br>
18407   * </p>
18408   */
18409  @SearchParamDefinition(name = "context-type", path = "ImplementationGuide.useContext.code", description = "A type of use context assigned to the implementation guide", type = "token")
18410  public static final String SP_CONTEXT_TYPE = "context-type";
18411  /**
18412   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
18413   * <p>
18414   * Description: <b>A type of use context assigned to the implementation
18415   * guide</b><br>
18416   * Type: <b>token</b><br>
18417   * Path: <b>ImplementationGuide.useContext.code</b><br>
18418   * </p>
18419   */
18420  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(
18421      SP_CONTEXT_TYPE);
18422
18423  /**
18424   * Search parameter: <b>experimental</b>
18425   * <p>
18426   * Description: <b>For testing purposes, not real usage</b><br>
18427   * Type: <b>token</b><br>
18428   * Path: <b>ImplementationGuide.experimental</b><br>
18429   * </p>
18430   */
18431  @SearchParamDefinition(name = "experimental", path = "ImplementationGuide.experimental", description = "For testing purposes, not real usage", type = "token")
18432  public static final String SP_EXPERIMENTAL = "experimental";
18433  /**
18434   * <b>Fluent Client</b> search parameter constant for <b>experimental</b>
18435   * <p>
18436   * Description: <b>For testing purposes, not real usage</b><br>
18437   * Type: <b>token</b><br>
18438   * Path: <b>ImplementationGuide.experimental</b><br>
18439   * </p>
18440   */
18441  public static final ca.uhn.fhir.rest.gclient.TokenClientParam EXPERIMENTAL = new ca.uhn.fhir.rest.gclient.TokenClientParam(
18442      SP_EXPERIMENTAL);
18443
18444  /**
18445   * Search parameter: <b>global</b>
18446   * <p>
18447   * Description: <b>Profile that all resources must conform to</b><br>
18448   * Type: <b>reference</b><br>
18449   * Path: <b>ImplementationGuide.global.profile</b><br>
18450   * </p>
18451   */
18452  @SearchParamDefinition(name = "global", path = "ImplementationGuide.global.profile", description = "Profile that all resources must conform to", type = "reference", target = {
18453      StructureDefinition.class })
18454  public static final String SP_GLOBAL = "global";
18455  /**
18456   * <b>Fluent Client</b> search parameter constant for <b>global</b>
18457   * <p>
18458   * Description: <b>Profile that all resources must conform to</b><br>
18459   * Type: <b>reference</b><br>
18460   * Path: <b>ImplementationGuide.global.profile</b><br>
18461   * </p>
18462   */
18463  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam GLOBAL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(
18464      SP_GLOBAL);
18465
18466  /**
18467   * Constant for fluent queries to be used to add include statements. Specifies
18468   * the path value of "<b>ImplementationGuide:global</b>".
18469   */
18470  public static final ca.uhn.fhir.model.api.Include INCLUDE_GLOBAL = new ca.uhn.fhir.model.api.Include(
18471      "ImplementationGuide:global").toLocked();
18472
18473  /**
18474   * Search parameter: <b>title</b>
18475   * <p>
18476   * Description: <b>The human-friendly name of the implementation guide</b><br>
18477   * Type: <b>string</b><br>
18478   * Path: <b>ImplementationGuide.title</b><br>
18479   * </p>
18480   */
18481  @SearchParamDefinition(name = "title", path = "ImplementationGuide.title", description = "The human-friendly name of the implementation guide", type = "string")
18482  public static final String SP_TITLE = "title";
18483  /**
18484   * <b>Fluent Client</b> search parameter constant for <b>title</b>
18485   * <p>
18486   * Description: <b>The human-friendly name of the implementation guide</b><br>
18487   * Type: <b>string</b><br>
18488   * Path: <b>ImplementationGuide.title</b><br>
18489   * </p>
18490   */
18491  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(
18492      SP_TITLE);
18493
18494  /**
18495   * Search parameter: <b>version</b>
18496   * <p>
18497   * Description: <b>The business version of the implementation guide</b><br>
18498   * Type: <b>token</b><br>
18499   * Path: <b>ImplementationGuide.version</b><br>
18500   * </p>
18501   */
18502  @SearchParamDefinition(name = "version", path = "ImplementationGuide.version", description = "The business version of the implementation guide", type = "token")
18503  public static final String SP_VERSION = "version";
18504  /**
18505   * <b>Fluent Client</b> search parameter constant for <b>version</b>
18506   * <p>
18507   * Description: <b>The business version of the implementation guide</b><br>
18508   * Type: <b>token</b><br>
18509   * Path: <b>ImplementationGuide.version</b><br>
18510   * </p>
18511   */
18512  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(
18513      SP_VERSION);
18514
18515  /**
18516   * Search parameter: <b>url</b>
18517   * <p>
18518   * Description: <b>The uri that identifies the implementation guide</b><br>
18519   * Type: <b>uri</b><br>
18520   * Path: <b>ImplementationGuide.url</b><br>
18521   * </p>
18522   */
18523  @SearchParamDefinition(name = "url", path = "ImplementationGuide.url", description = "The uri that identifies the implementation guide", type = "uri")
18524  public static final String SP_URL = "url";
18525  /**
18526   * <b>Fluent Client</b> search parameter constant for <b>url</b>
18527   * <p>
18528   * Description: <b>The uri that identifies the implementation guide</b><br>
18529   * Type: <b>uri</b><br>
18530   * Path: <b>ImplementationGuide.url</b><br>
18531   * </p>
18532   */
18533  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
18534
18535  /**
18536   * Search parameter: <b>context-quantity</b>
18537   * <p>
18538   * Description: <b>A quantity- or range-valued use context assigned to the
18539   * implementation guide</b><br>
18540   * Type: <b>quantity</b><br>
18541   * Path: <b>ImplementationGuide.useContext.valueQuantity,
18542   * ImplementationGuide.useContext.valueRange</b><br>
18543   * </p>
18544   */
18545  @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")
18546  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
18547  /**
18548   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
18549   * <p>
18550   * Description: <b>A quantity- or range-valued use context assigned to the
18551   * implementation guide</b><br>
18552   * Type: <b>quantity</b><br>
18553   * Path: <b>ImplementationGuide.useContext.valueQuantity,
18554   * ImplementationGuide.useContext.valueRange</b><br>
18555   * </p>
18556   */
18557  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(
18558      SP_CONTEXT_QUANTITY);
18559
18560  /**
18561   * Search parameter: <b>depends-on</b>
18562   * <p>
18563   * Description: <b>Identity of the IG that this depends on</b><br>
18564   * Type: <b>reference</b><br>
18565   * Path: <b>ImplementationGuide.dependsOn.uri</b><br>
18566   * </p>
18567   */
18568  @SearchParamDefinition(name = "depends-on", path = "ImplementationGuide.dependsOn.uri", description = "Identity of the IG that this depends on", type = "reference", target = {
18569      ImplementationGuide.class })
18570  public static final String SP_DEPENDS_ON = "depends-on";
18571  /**
18572   * <b>Fluent Client</b> search parameter constant for <b>depends-on</b>
18573   * <p>
18574   * Description: <b>Identity of the IG that this depends on</b><br>
18575   * Type: <b>reference</b><br>
18576   * Path: <b>ImplementationGuide.dependsOn.uri</b><br>
18577   * </p>
18578   */
18579  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEPENDS_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(
18580      SP_DEPENDS_ON);
18581
18582  /**
18583   * Constant for fluent queries to be used to add include statements. Specifies
18584   * the path value of "<b>ImplementationGuide:depends-on</b>".
18585   */
18586  public static final ca.uhn.fhir.model.api.Include INCLUDE_DEPENDS_ON = new ca.uhn.fhir.model.api.Include(
18587      "ImplementationGuide:depends-on").toLocked();
18588
18589  /**
18590   * Search parameter: <b>name</b>
18591   * <p>
18592   * Description: <b>Computationally friendly name of the implementation
18593   * guide</b><br>
18594   * Type: <b>string</b><br>
18595   * Path: <b>ImplementationGuide.name</b><br>
18596   * </p>
18597   */
18598  @SearchParamDefinition(name = "name", path = "ImplementationGuide.name", description = "Computationally friendly name of the implementation guide", type = "string")
18599  public static final String SP_NAME = "name";
18600  /**
18601   * <b>Fluent Client</b> search parameter constant for <b>name</b>
18602   * <p>
18603   * Description: <b>Computationally friendly name of the implementation
18604   * guide</b><br>
18605   * Type: <b>string</b><br>
18606   * Path: <b>ImplementationGuide.name</b><br>
18607   * </p>
18608   */
18609  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(
18610      SP_NAME);
18611
18612  /**
18613   * Search parameter: <b>context</b>
18614   * <p>
18615   * Description: <b>A use context assigned to the implementation guide</b><br>
18616   * Type: <b>token</b><br>
18617   * Path: <b>ImplementationGuide.useContext.valueCodeableConcept</b><br>
18618   * </p>
18619   */
18620  @SearchParamDefinition(name = "context", path = "(ImplementationGuide.useContext.value as CodeableConcept)", description = "A use context assigned to the implementation guide", type = "token")
18621  public static final String SP_CONTEXT = "context";
18622  /**
18623   * <b>Fluent Client</b> search parameter constant for <b>context</b>
18624   * <p>
18625   * Description: <b>A use context assigned to the implementation guide</b><br>
18626   * Type: <b>token</b><br>
18627   * Path: <b>ImplementationGuide.useContext.valueCodeableConcept</b><br>
18628   * </p>
18629   */
18630  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(
18631      SP_CONTEXT);
18632
18633  /**
18634   * Search parameter: <b>publisher</b>
18635   * <p>
18636   * Description: <b>Name of the publisher of the implementation guide</b><br>
18637   * Type: <b>string</b><br>
18638   * Path: <b>ImplementationGuide.publisher</b><br>
18639   * </p>
18640   */
18641  @SearchParamDefinition(name = "publisher", path = "ImplementationGuide.publisher", description = "Name of the publisher of the implementation guide", type = "string")
18642  public static final String SP_PUBLISHER = "publisher";
18643  /**
18644   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
18645   * <p>
18646   * Description: <b>Name of the publisher of the implementation guide</b><br>
18647   * Type: <b>string</b><br>
18648   * Path: <b>ImplementationGuide.publisher</b><br>
18649   * </p>
18650   */
18651  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(
18652      SP_PUBLISHER);
18653
18654  /**
18655   * Search parameter: <b>context-type-quantity</b>
18656   * <p>
18657   * Description: <b>A use context type and quantity- or range-based value
18658   * assigned to the implementation guide</b><br>
18659   * Type: <b>composite</b><br>
18660   * Path: <b></b><br>
18661   * </p>
18662   */
18663  @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 = {
18664      "context-type", "context-quantity" })
18665  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
18666  /**
18667   * <b>Fluent Client</b> search parameter constant for
18668   * <b>context-type-quantity</b>
18669   * <p>
18670   * Description: <b>A use context type and quantity- or range-based value
18671   * assigned to the implementation guide</b><br>
18672   * Type: <b>composite</b><br>
18673   * Path: <b></b><br>
18674   * </p>
18675   */
18676  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>(
18677      SP_CONTEXT_TYPE_QUANTITY);
18678
18679  /**
18680   * Search parameter: <b>status</b>
18681   * <p>
18682   * Description: <b>The current status of the implementation guide</b><br>
18683   * Type: <b>token</b><br>
18684   * Path: <b>ImplementationGuide.status</b><br>
18685   * </p>
18686   */
18687  @SearchParamDefinition(name = "status", path = "ImplementationGuide.status", description = "The current status of the implementation guide", type = "token")
18688  public static final String SP_STATUS = "status";
18689  /**
18690   * <b>Fluent Client</b> search parameter constant for <b>status</b>
18691   * <p>
18692   * Description: <b>The current status of the implementation guide</b><br>
18693   * Type: <b>token</b><br>
18694   * Path: <b>ImplementationGuide.status</b><br>
18695   * </p>
18696   */
18697  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(
18698      SP_STATUS);
18699
18700}