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 void removeChild(String name, Base value) throws FHIRException {
12140      if (name.equals("uri")) {
12141        this.uri = null;
12142      } else if (name.equals("packageId")) {
12143        this.packageId = null;
12144      } else if (name.equals("version")) {
12145        this.version = null;
12146      } else
12147        super.removeChild(name, value);
12148      
12149    }
12150
12151    @Override
12152    public Base makeProperty(int hash, String name) throws FHIRException {
12153      switch (hash) {
12154      case 116076:
12155        return getUriElement();
12156      case 1802060801:
12157        return getPackageIdElement();
12158      case 351608024:
12159        return getVersionElement();
12160      default:
12161        return super.makeProperty(hash, name);
12162      }
12163
12164    }
12165
12166    @Override
12167    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
12168      switch (hash) {
12169      case 116076:
12170        /* uri */ return new String[] { "canonical" };
12171      case 1802060801:
12172        /* packageId */ return new String[] { "id" };
12173      case 351608024:
12174        /* version */ return new String[] { "string" };
12175      default:
12176        return super.getTypesForProperty(hash, name);
12177      }
12178
12179    }
12180
12181    @Override
12182    public Base addChild(String name) throws FHIRException {
12183      if (name.equals("uri")) {
12184        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.uri");
12185      } else if (name.equals("packageId")) {
12186        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.packageId");
12187      } else if (name.equals("version")) {
12188        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.version");
12189      } else
12190        return super.addChild(name);
12191    }
12192
12193    public ImplementationGuideDependsOnComponent copy() {
12194      ImplementationGuideDependsOnComponent dst = new ImplementationGuideDependsOnComponent();
12195      copyValues(dst);
12196      return dst;
12197    }
12198
12199    public void copyValues(ImplementationGuideDependsOnComponent dst) {
12200      super.copyValues(dst);
12201      dst.uri = uri == null ? null : uri.copy();
12202      dst.packageId = packageId == null ? null : packageId.copy();
12203      dst.version = version == null ? null : version.copy();
12204    }
12205
12206    @Override
12207    public boolean equalsDeep(Base other_) {
12208      if (!super.equalsDeep(other_))
12209        return false;
12210      if (!(other_ instanceof ImplementationGuideDependsOnComponent))
12211        return false;
12212      ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
12213      return compareDeep(uri, o.uri, true) && compareDeep(packageId, o.packageId, true)
12214          && compareDeep(version, o.version, true);
12215    }
12216
12217    @Override
12218    public boolean equalsShallow(Base other_) {
12219      if (!super.equalsShallow(other_))
12220        return false;
12221      if (!(other_ instanceof ImplementationGuideDependsOnComponent))
12222        return false;
12223      ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
12224      return compareValues(packageId, o.packageId, true) && compareValues(version, o.version, true);
12225    }
12226
12227    public boolean isEmpty() {
12228      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(uri, packageId, version);
12229    }
12230
12231    public String fhirType() {
12232      return "ImplementationGuide.dependsOn";
12233
12234    }
12235
12236  }
12237
12238  @Block()
12239  public static class ImplementationGuideGlobalComponent extends BackboneElement implements IBaseBackboneElement {
12240    /**
12241     * The type of resource that all instances must conform to.
12242     */
12243    @Child(name = "type", type = { CodeType.class }, order = 1, min = 1, max = 1, modifier = false, summary = true)
12244    @Description(shortDefinition = "Type this profile applies to", formalDefinition = "The type of resource that all instances must conform to.")
12245    @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/resource-types")
12246    protected CodeType type;
12247
12248    /**
12249     * A reference to the profile that all instances must conform to.
12250     */
12251    @Child(name = "profile", type = {
12252        CanonicalType.class }, order = 2, min = 1, max = 1, modifier = false, summary = true)
12253    @Description(shortDefinition = "Profile that all resources must conform to", formalDefinition = "A reference to the profile that all instances must conform to.")
12254    protected CanonicalType profile;
12255
12256    private static final long serialVersionUID = 33894666L;
12257
12258    /**
12259     * Constructor
12260     */
12261    public ImplementationGuideGlobalComponent() {
12262      super();
12263    }
12264
12265    /**
12266     * Constructor
12267     */
12268    public ImplementationGuideGlobalComponent(CodeType type, CanonicalType profile) {
12269      super();
12270      this.type = type;
12271      this.profile = profile;
12272    }
12273
12274    /**
12275     * @return {@link #type} (The type of resource that all instances must conform
12276     *         to.). This is the underlying object with id, value and extensions.
12277     *         The accessor "getType" gives direct access to the value
12278     */
12279    public CodeType getTypeElement() {
12280      if (this.type == null)
12281        if (Configuration.errorOnAutoCreate())
12282          throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.type");
12283        else if (Configuration.doAutoCreate())
12284          this.type = new CodeType(); // bb
12285      return this.type;
12286    }
12287
12288    public boolean hasTypeElement() {
12289      return this.type != null && !this.type.isEmpty();
12290    }
12291
12292    public boolean hasType() {
12293      return this.type != null && !this.type.isEmpty();
12294    }
12295
12296    /**
12297     * @param value {@link #type} (The type of resource that all instances must
12298     *              conform to.). This is the underlying object with id, value and
12299     *              extensions. The accessor "getType" gives direct access to the
12300     *              value
12301     */
12302    public ImplementationGuideGlobalComponent setTypeElement(CodeType value) {
12303      this.type = value;
12304      return this;
12305    }
12306
12307    /**
12308     * @return The type of resource that all instances must conform to.
12309     */
12310    public String getType() {
12311      return this.type == null ? null : this.type.getValue();
12312    }
12313
12314    /**
12315     * @param value The type of resource that all instances must conform to.
12316     */
12317    public ImplementationGuideGlobalComponent setType(String value) {
12318      if (this.type == null)
12319        this.type = new CodeType();
12320      this.type.setValue(value);
12321      return this;
12322    }
12323
12324    /**
12325     * @return {@link #profile} (A reference to the profile that all instances must
12326     *         conform to.). This is the underlying object with id, value and
12327     *         extensions. The accessor "getProfile" gives direct access to the
12328     *         value
12329     */
12330    public CanonicalType getProfileElement() {
12331      if (this.profile == null)
12332        if (Configuration.errorOnAutoCreate())
12333          throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.profile");
12334        else if (Configuration.doAutoCreate())
12335          this.profile = new CanonicalType(); // bb
12336      return this.profile;
12337    }
12338
12339    public boolean hasProfileElement() {
12340      return this.profile != null && !this.profile.isEmpty();
12341    }
12342
12343    public boolean hasProfile() {
12344      return this.profile != null && !this.profile.isEmpty();
12345    }
12346
12347    /**
12348     * @param value {@link #profile} (A reference to the profile that all instances
12349     *              must conform to.). This is the underlying object with id, value
12350     *              and extensions. The accessor "getProfile" gives direct access to
12351     *              the value
12352     */
12353    public ImplementationGuideGlobalComponent setProfileElement(CanonicalType value) {
12354      this.profile = value;
12355      return this;
12356    }
12357
12358    /**
12359     * @return A reference to the profile that all instances must conform to.
12360     */
12361    public String getProfile() {
12362      return this.profile == null ? null : this.profile.getValue();
12363    }
12364
12365    /**
12366     * @param value A reference to the profile that all instances must conform to.
12367     */
12368    public ImplementationGuideGlobalComponent setProfile(String value) {
12369      if (this.profile == null)
12370        this.profile = new CanonicalType();
12371      this.profile.setValue(value);
12372      return this;
12373    }
12374
12375    protected void listChildren(List<Property> children) {
12376      super.listChildren(children);
12377      children
12378          .add(new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1, type));
12379      children.add(new Property("profile", "canonical(StructureDefinition)",
12380          "A reference to the profile that all instances must conform to.", 0, 1, profile));
12381    }
12382
12383    @Override
12384    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
12385      switch (_hash) {
12386      case 3575610:
12387        /* type */ return new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1,
12388            type);
12389      case -309425751:
12390        /* profile */ return new Property("profile", "canonical(StructureDefinition)",
12391            "A reference to the profile that all instances must conform to.", 0, 1, profile);
12392      default:
12393        return super.getNamedProperty(_hash, _name, _checkValid);
12394      }
12395
12396    }
12397
12398    @Override
12399    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
12400      switch (hash) {
12401      case 3575610:
12402        /* type */ return this.type == null ? new Base[0] : new Base[] { this.type }; // CodeType
12403      case -309425751:
12404        /* profile */ return this.profile == null ? new Base[0] : new Base[] { this.profile }; // CanonicalType
12405      default:
12406        return super.getProperty(hash, name, checkValid);
12407      }
12408
12409    }
12410
12411    @Override
12412    public Base setProperty(int hash, String name, Base value) throws FHIRException {
12413      switch (hash) {
12414      case 3575610: // type
12415        this.type = castToCode(value); // CodeType
12416        return value;
12417      case -309425751: // profile
12418        this.profile = castToCanonical(value); // CanonicalType
12419        return value;
12420      default:
12421        return super.setProperty(hash, name, value);
12422      }
12423
12424    }
12425
12426    @Override
12427    public Base setProperty(String name, Base value) throws FHIRException {
12428      if (name.equals("type")) {
12429        this.type = castToCode(value); // CodeType
12430      } else if (name.equals("profile")) {
12431        this.profile = castToCanonical(value); // CanonicalType
12432      } else
12433        return super.setProperty(name, value);
12434      return value;
12435    }
12436
12437  @Override
12438  public void removeChild(String name, Base value) throws FHIRException {
12439      if (name.equals("type")) {
12440        this.type = null;
12441      } else if (name.equals("profile")) {
12442        this.profile = null;
12443      } else
12444        super.removeChild(name, value);
12445      
12446    }
12447
12448    @Override
12449    public Base makeProperty(int hash, String name) throws FHIRException {
12450      switch (hash) {
12451      case 3575610:
12452        return getTypeElement();
12453      case -309425751:
12454        return getProfileElement();
12455      default:
12456        return super.makeProperty(hash, name);
12457      }
12458
12459    }
12460
12461    @Override
12462    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
12463      switch (hash) {
12464      case 3575610:
12465        /* type */ return new String[] { "code" };
12466      case -309425751:
12467        /* profile */ return new String[] { "canonical" };
12468      default:
12469        return super.getTypesForProperty(hash, name);
12470      }
12471
12472    }
12473
12474    @Override
12475    public Base addChild(String name) throws FHIRException {
12476      if (name.equals("type")) {
12477        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.type");
12478      } else if (name.equals("profile")) {
12479        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.profile");
12480      } else
12481        return super.addChild(name);
12482    }
12483
12484    public ImplementationGuideGlobalComponent copy() {
12485      ImplementationGuideGlobalComponent dst = new ImplementationGuideGlobalComponent();
12486      copyValues(dst);
12487      return dst;
12488    }
12489
12490    public void copyValues(ImplementationGuideGlobalComponent dst) {
12491      super.copyValues(dst);
12492      dst.type = type == null ? null : type.copy();
12493      dst.profile = profile == null ? null : profile.copy();
12494    }
12495
12496    @Override
12497    public boolean equalsDeep(Base other_) {
12498      if (!super.equalsDeep(other_))
12499        return false;
12500      if (!(other_ instanceof ImplementationGuideGlobalComponent))
12501        return false;
12502      ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
12503      return compareDeep(type, o.type, true) && compareDeep(profile, o.profile, true);
12504    }
12505
12506    @Override
12507    public boolean equalsShallow(Base other_) {
12508      if (!super.equalsShallow(other_))
12509        return false;
12510      if (!(other_ instanceof ImplementationGuideGlobalComponent))
12511        return false;
12512      ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
12513      return compareValues(type, o.type, true);
12514    }
12515
12516    public boolean isEmpty() {
12517      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, profile);
12518    }
12519
12520    public String fhirType() {
12521      return "ImplementationGuide.global";
12522
12523    }
12524
12525  }
12526
12527  @Block()
12528  public static class ImplementationGuideDefinitionComponent extends BackboneElement implements IBaseBackboneElement {
12529    /**
12530     * A logical group of resources. Logical groups can be used when building pages.
12531     */
12532    @Child(name = "grouping", type = {}, order = 1, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
12533    @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.")
12534    protected List<ImplementationGuideDefinitionGroupingComponent> grouping;
12535
12536    /**
12537     * A resource that is part of the implementation guide. Conformance resources
12538     * (value set, structure definition, capability statements etc.) are obvious
12539     * candidates for inclusion, but any kind of resource can be included as an
12540     * example resource.
12541     */
12542    @Child(name = "resource", type = {}, order = 2, min = 1, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
12543    @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.")
12544    protected List<ImplementationGuideDefinitionResourceComponent> resource;
12545
12546    /**
12547     * A page / section in the implementation guide. The root page is the
12548     * implementation guide home page.
12549     */
12550    @Child(name = "page", type = {}, order = 3, min = 0, max = 1, modifier = false, summary = false)
12551    @Description(shortDefinition = "Page/Section in the Guide", formalDefinition = "A page / section in the implementation guide. The root page is the implementation guide home page.")
12552    protected ImplementationGuideDefinitionPageComponent page;
12553
12554    /**
12555     * Defines how IG is built by tools.
12556     */
12557    @Child(name = "parameter", type = {}, order = 4, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
12558    @Description(shortDefinition = "Defines how IG is built by tools", formalDefinition = "Defines how IG is built by tools.")
12559    protected List<ImplementationGuideDefinitionParameterComponent> parameter;
12560
12561    /**
12562     * A template for building resources.
12563     */
12564    @Child(name = "template", type = {}, order = 5, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
12565    @Description(shortDefinition = "A template for building resources", formalDefinition = "A template for building resources.")
12566    protected List<ImplementationGuideDefinitionTemplateComponent> template;
12567
12568    private static final long serialVersionUID = 179051968L;
12569
12570    /**
12571     * Constructor
12572     */
12573    public ImplementationGuideDefinitionComponent() {
12574      super();
12575    }
12576
12577    /**
12578     * @return {@link #grouping} (A logical group of resources. Logical groups can
12579     *         be used when building pages.)
12580     */
12581    public List<ImplementationGuideDefinitionGroupingComponent> getGrouping() {
12582      if (this.grouping == null)
12583        this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
12584      return this.grouping;
12585    }
12586
12587    /**
12588     * @return Returns a reference to <code>this</code> for easy method chaining
12589     */
12590    public ImplementationGuideDefinitionComponent setGrouping(
12591        List<ImplementationGuideDefinitionGroupingComponent> theGrouping) {
12592      this.grouping = theGrouping;
12593      return this;
12594    }
12595
12596    public boolean hasGrouping() {
12597      if (this.grouping == null)
12598        return false;
12599      for (ImplementationGuideDefinitionGroupingComponent item : this.grouping)
12600        if (!item.isEmpty())
12601          return true;
12602      return false;
12603    }
12604
12605    public ImplementationGuideDefinitionGroupingComponent addGrouping() { // 3
12606      ImplementationGuideDefinitionGroupingComponent t = new ImplementationGuideDefinitionGroupingComponent();
12607      if (this.grouping == null)
12608        this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
12609      this.grouping.add(t);
12610      return t;
12611    }
12612
12613    public ImplementationGuideDefinitionComponent addGrouping(ImplementationGuideDefinitionGroupingComponent t) { // 3
12614      if (t == null)
12615        return this;
12616      if (this.grouping == null)
12617        this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
12618      this.grouping.add(t);
12619      return this;
12620    }
12621
12622    /**
12623     * @return The first repetition of repeating field {@link #grouping}, creating
12624     *         it if it does not already exist
12625     */
12626    public ImplementationGuideDefinitionGroupingComponent getGroupingFirstRep() {
12627      if (getGrouping().isEmpty()) {
12628        addGrouping();
12629      }
12630      return getGrouping().get(0);
12631    }
12632
12633    /**
12634     * @return {@link #resource} (A resource that is part of the implementation
12635     *         guide. Conformance resources (value set, structure definition,
12636     *         capability statements etc.) are obvious candidates for inclusion, but
12637     *         any kind of resource can be included as an example resource.)
12638     */
12639    public List<ImplementationGuideDefinitionResourceComponent> getResource() {
12640      if (this.resource == null)
12641        this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
12642      return this.resource;
12643    }
12644
12645    /**
12646     * @return Returns a reference to <code>this</code> for easy method chaining
12647     */
12648    public ImplementationGuideDefinitionComponent setResource(
12649        List<ImplementationGuideDefinitionResourceComponent> theResource) {
12650      this.resource = theResource;
12651      return this;
12652    }
12653
12654    public boolean hasResource() {
12655      if (this.resource == null)
12656        return false;
12657      for (ImplementationGuideDefinitionResourceComponent item : this.resource)
12658        if (!item.isEmpty())
12659          return true;
12660      return false;
12661    }
12662
12663    public ImplementationGuideDefinitionResourceComponent addResource() { // 3
12664      ImplementationGuideDefinitionResourceComponent t = new ImplementationGuideDefinitionResourceComponent();
12665      if (this.resource == null)
12666        this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
12667      this.resource.add(t);
12668      return t;
12669    }
12670
12671    public ImplementationGuideDefinitionComponent addResource(ImplementationGuideDefinitionResourceComponent t) { // 3
12672      if (t == null)
12673        return this;
12674      if (this.resource == null)
12675        this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
12676      this.resource.add(t);
12677      return this;
12678    }
12679
12680    /**
12681     * @return The first repetition of repeating field {@link #resource}, creating
12682     *         it if it does not already exist
12683     */
12684    public ImplementationGuideDefinitionResourceComponent getResourceFirstRep() {
12685      if (getResource().isEmpty()) {
12686        addResource();
12687      }
12688      return getResource().get(0);
12689    }
12690
12691    /**
12692     * @return {@link #page} (A page / section in the implementation guide. The root
12693     *         page is the implementation guide home page.)
12694     */
12695    public ImplementationGuideDefinitionPageComponent getPage() {
12696      if (this.page == null)
12697        if (Configuration.errorOnAutoCreate())
12698          throw new Error("Attempt to auto-create ImplementationGuideDefinitionComponent.page");
12699        else if (Configuration.doAutoCreate())
12700          this.page = new ImplementationGuideDefinitionPageComponent(); // cc
12701      return this.page;
12702    }
12703
12704    public boolean hasPage() {
12705      return this.page != null && !this.page.isEmpty();
12706    }
12707
12708    /**
12709     * @param value {@link #page} (A page / section in the implementation guide. The
12710     *              root page is the implementation guide home page.)
12711     */
12712    public ImplementationGuideDefinitionComponent setPage(ImplementationGuideDefinitionPageComponent value) {
12713      this.page = value;
12714      return this;
12715    }
12716
12717    /**
12718     * @return {@link #parameter} (Defines how IG is built by tools.)
12719     */
12720    public List<ImplementationGuideDefinitionParameterComponent> getParameter() {
12721      if (this.parameter == null)
12722        this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
12723      return this.parameter;
12724    }
12725
12726    /**
12727     * @return Returns a reference to <code>this</code> for easy method chaining
12728     */
12729    public ImplementationGuideDefinitionComponent setParameter(
12730        List<ImplementationGuideDefinitionParameterComponent> theParameter) {
12731      this.parameter = theParameter;
12732      return this;
12733    }
12734
12735    public boolean hasParameter() {
12736      if (this.parameter == null)
12737        return false;
12738      for (ImplementationGuideDefinitionParameterComponent item : this.parameter)
12739        if (!item.isEmpty())
12740          return true;
12741      return false;
12742    }
12743
12744    public ImplementationGuideDefinitionParameterComponent addParameter() { // 3
12745      ImplementationGuideDefinitionParameterComponent t = new ImplementationGuideDefinitionParameterComponent();
12746      if (this.parameter == null)
12747        this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
12748      this.parameter.add(t);
12749      return t;
12750    }
12751
12752    public ImplementationGuideDefinitionComponent addParameter(ImplementationGuideDefinitionParameterComponent t) { // 3
12753      if (t == null)
12754        return this;
12755      if (this.parameter == null)
12756        this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
12757      this.parameter.add(t);
12758      return this;
12759    }
12760
12761    /**
12762     * @return The first repetition of repeating field {@link #parameter}, creating
12763     *         it if it does not already exist
12764     */
12765    public ImplementationGuideDefinitionParameterComponent getParameterFirstRep() {
12766      if (getParameter().isEmpty()) {
12767        addParameter();
12768      }
12769      return getParameter().get(0);
12770    }
12771
12772    /**
12773     * @return {@link #template} (A template for building resources.)
12774     */
12775    public List<ImplementationGuideDefinitionTemplateComponent> getTemplate() {
12776      if (this.template == null)
12777        this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
12778      return this.template;
12779    }
12780
12781    /**
12782     * @return Returns a reference to <code>this</code> for easy method chaining
12783     */
12784    public ImplementationGuideDefinitionComponent setTemplate(
12785        List<ImplementationGuideDefinitionTemplateComponent> theTemplate) {
12786      this.template = theTemplate;
12787      return this;
12788    }
12789
12790    public boolean hasTemplate() {
12791      if (this.template == null)
12792        return false;
12793      for (ImplementationGuideDefinitionTemplateComponent item : this.template)
12794        if (!item.isEmpty())
12795          return true;
12796      return false;
12797    }
12798
12799    public ImplementationGuideDefinitionTemplateComponent addTemplate() { // 3
12800      ImplementationGuideDefinitionTemplateComponent t = new ImplementationGuideDefinitionTemplateComponent();
12801      if (this.template == null)
12802        this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
12803      this.template.add(t);
12804      return t;
12805    }
12806
12807    public ImplementationGuideDefinitionComponent addTemplate(ImplementationGuideDefinitionTemplateComponent t) { // 3
12808      if (t == null)
12809        return this;
12810      if (this.template == null)
12811        this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
12812      this.template.add(t);
12813      return this;
12814    }
12815
12816    /**
12817     * @return The first repetition of repeating field {@link #template}, creating
12818     *         it if it does not already exist
12819     */
12820    public ImplementationGuideDefinitionTemplateComponent getTemplateFirstRep() {
12821      if (getTemplate().isEmpty()) {
12822        addTemplate();
12823      }
12824      return getTemplate().get(0);
12825    }
12826
12827    protected void listChildren(List<Property> children) {
12828      super.listChildren(children);
12829      children.add(
12830          new Property("grouping", "", "A logical group of resources. Logical groups can be used when building pages.",
12831              0, java.lang.Integer.MAX_VALUE, grouping));
12832      children.add(new Property("resource", "",
12833          "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.",
12834          0, java.lang.Integer.MAX_VALUE, resource));
12835      children.add(new Property("page", "",
12836          "A page / section in the implementation guide. The root page is the implementation guide home page.", 0, 1,
12837          page));
12838      children.add(new Property("parameter", "", "Defines how IG is built by tools.", 0, java.lang.Integer.MAX_VALUE,
12839          parameter));
12840      children.add(
12841          new Property("template", "", "A template for building resources.", 0, java.lang.Integer.MAX_VALUE, template));
12842    }
12843
12844    @Override
12845    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
12846      switch (_hash) {
12847      case 506371331:
12848        /* grouping */ return new Property("grouping", "",
12849            "A logical group of resources. Logical groups can be used when building pages.", 0,
12850            java.lang.Integer.MAX_VALUE, grouping);
12851      case -341064690:
12852        /* resource */ return new Property("resource", "",
12853            "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.",
12854            0, java.lang.Integer.MAX_VALUE, resource);
12855      case 3433103:
12856        /* page */ return new Property("page", "",
12857            "A page / section in the implementation guide. The root page is the implementation guide home page.", 0, 1,
12858            page);
12859      case 1954460585:
12860        /* parameter */ return new Property("parameter", "", "Defines how IG is built by tools.", 0,
12861            java.lang.Integer.MAX_VALUE, parameter);
12862      case -1321546630:
12863        /* template */ return new Property("template", "", "A template for building resources.", 0,
12864            java.lang.Integer.MAX_VALUE, template);
12865      default:
12866        return super.getNamedProperty(_hash, _name, _checkValid);
12867      }
12868
12869    }
12870
12871    @Override
12872    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
12873      switch (hash) {
12874      case 506371331:
12875        /* grouping */ return this.grouping == null ? new Base[0]
12876            : this.grouping.toArray(new Base[this.grouping.size()]); // ImplementationGuideDefinitionGroupingComponent
12877      case -341064690:
12878        /* resource */ return this.resource == null ? new Base[0]
12879            : this.resource.toArray(new Base[this.resource.size()]); // ImplementationGuideDefinitionResourceComponent
12880      case 3433103:
12881        /* page */ return this.page == null ? new Base[0] : new Base[] { this.page }; // ImplementationGuideDefinitionPageComponent
12882      case 1954460585:
12883        /* parameter */ return this.parameter == null ? new Base[0]
12884            : this.parameter.toArray(new Base[this.parameter.size()]); // ImplementationGuideDefinitionParameterComponent
12885      case -1321546630:
12886        /* template */ return this.template == null ? new Base[0]
12887            : this.template.toArray(new Base[this.template.size()]); // ImplementationGuideDefinitionTemplateComponent
12888      default:
12889        return super.getProperty(hash, name, checkValid);
12890      }
12891
12892    }
12893
12894    @Override
12895    public Base setProperty(int hash, String name, Base value) throws FHIRException {
12896      switch (hash) {
12897      case 506371331: // grouping
12898        this.getGrouping().add((ImplementationGuideDefinitionGroupingComponent) value); // ImplementationGuideDefinitionGroupingComponent
12899        return value;
12900      case -341064690: // resource
12901        this.getResource().add((ImplementationGuideDefinitionResourceComponent) value); // ImplementationGuideDefinitionResourceComponent
12902        return value;
12903      case 3433103: // page
12904        this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
12905        return value;
12906      case 1954460585: // parameter
12907        this.getParameter().add((ImplementationGuideDefinitionParameterComponent) value); // ImplementationGuideDefinitionParameterComponent
12908        return value;
12909      case -1321546630: // template
12910        this.getTemplate().add((ImplementationGuideDefinitionTemplateComponent) value); // ImplementationGuideDefinitionTemplateComponent
12911        return value;
12912      default:
12913        return super.setProperty(hash, name, value);
12914      }
12915
12916    }
12917
12918    @Override
12919    public Base setProperty(String name, Base value) throws FHIRException {
12920      if (name.equals("grouping")) {
12921        this.getGrouping().add((ImplementationGuideDefinitionGroupingComponent) value);
12922      } else if (name.equals("resource")) {
12923        this.getResource().add((ImplementationGuideDefinitionResourceComponent) value);
12924      } else if (name.equals("page")) {
12925        this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
12926      } else if (name.equals("parameter")) {
12927        this.getParameter().add((ImplementationGuideDefinitionParameterComponent) value);
12928      } else if (name.equals("template")) {
12929        this.getTemplate().add((ImplementationGuideDefinitionTemplateComponent) value);
12930      } else
12931        return super.setProperty(name, value);
12932      return value;
12933    }
12934
12935  @Override
12936  public void removeChild(String name, Base value) throws FHIRException {
12937      if (name.equals("grouping")) {
12938        this.getGrouping().remove((ImplementationGuideDefinitionGroupingComponent) value);
12939      } else if (name.equals("resource")) {
12940        this.getResource().remove((ImplementationGuideDefinitionResourceComponent) value);
12941      } else if (name.equals("page")) {
12942        this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
12943      } else if (name.equals("parameter")) {
12944        this.getParameter().remove((ImplementationGuideDefinitionParameterComponent) value);
12945      } else if (name.equals("template")) {
12946        this.getTemplate().remove((ImplementationGuideDefinitionTemplateComponent) value);
12947      } else
12948        super.removeChild(name, value);
12949      
12950    }
12951
12952    @Override
12953    public Base makeProperty(int hash, String name) throws FHIRException {
12954      switch (hash) {
12955      case 506371331:
12956        return addGrouping();
12957      case -341064690:
12958        return addResource();
12959      case 3433103:
12960        return getPage();
12961      case 1954460585:
12962        return addParameter();
12963      case -1321546630:
12964        return addTemplate();
12965      default:
12966        return super.makeProperty(hash, name);
12967      }
12968
12969    }
12970
12971    @Override
12972    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
12973      switch (hash) {
12974      case 506371331:
12975        /* grouping */ return new String[] {};
12976      case -341064690:
12977        /* resource */ return new String[] {};
12978      case 3433103:
12979        /* page */ return new String[] {};
12980      case 1954460585:
12981        /* parameter */ return new String[] {};
12982      case -1321546630:
12983        /* template */ return new String[] {};
12984      default:
12985        return super.getTypesForProperty(hash, name);
12986      }
12987
12988    }
12989
12990    @Override
12991    public Base addChild(String name) throws FHIRException {
12992      if (name.equals("grouping")) {
12993        return addGrouping();
12994      } else if (name.equals("resource")) {
12995        return addResource();
12996      } else if (name.equals("page")) {
12997        this.page = new ImplementationGuideDefinitionPageComponent();
12998        return this.page;
12999      } else if (name.equals("parameter")) {
13000        return addParameter();
13001      } else if (name.equals("template")) {
13002        return addTemplate();
13003      } else
13004        return super.addChild(name);
13005    }
13006
13007    public ImplementationGuideDefinitionComponent copy() {
13008      ImplementationGuideDefinitionComponent dst = new ImplementationGuideDefinitionComponent();
13009      copyValues(dst);
13010      return dst;
13011    }
13012
13013    public void copyValues(ImplementationGuideDefinitionComponent dst) {
13014      super.copyValues(dst);
13015      if (grouping != null) {
13016        dst.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
13017        for (ImplementationGuideDefinitionGroupingComponent i : grouping)
13018          dst.grouping.add(i.copy());
13019      }
13020      ;
13021      if (resource != null) {
13022        dst.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
13023        for (ImplementationGuideDefinitionResourceComponent i : resource)
13024          dst.resource.add(i.copy());
13025      }
13026      ;
13027      dst.page = page == null ? null : page.copy();
13028      if (parameter != null) {
13029        dst.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
13030        for (ImplementationGuideDefinitionParameterComponent i : parameter)
13031          dst.parameter.add(i.copy());
13032      }
13033      ;
13034      if (template != null) {
13035        dst.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
13036        for (ImplementationGuideDefinitionTemplateComponent i : template)
13037          dst.template.add(i.copy());
13038      }
13039      ;
13040    }
13041
13042    @Override
13043    public boolean equalsDeep(Base other_) {
13044      if (!super.equalsDeep(other_))
13045        return false;
13046      if (!(other_ instanceof ImplementationGuideDefinitionComponent))
13047        return false;
13048      ImplementationGuideDefinitionComponent o = (ImplementationGuideDefinitionComponent) other_;
13049      return compareDeep(grouping, o.grouping, true) && compareDeep(resource, o.resource, true)
13050          && compareDeep(page, o.page, true) && compareDeep(parameter, o.parameter, true)
13051          && compareDeep(template, o.template, true);
13052    }
13053
13054    @Override
13055    public boolean equalsShallow(Base other_) {
13056      if (!super.equalsShallow(other_))
13057        return false;
13058      if (!(other_ instanceof ImplementationGuideDefinitionComponent))
13059        return false;
13060      ImplementationGuideDefinitionComponent o = (ImplementationGuideDefinitionComponent) other_;
13061      return true;
13062    }
13063
13064    public boolean isEmpty() {
13065      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(grouping, resource, page, parameter, template);
13066    }
13067
13068    public String fhirType() {
13069      return "ImplementationGuide.definition";
13070
13071    }
13072
13073  }
13074
13075  @Block()
13076  public static class ImplementationGuideDefinitionGroupingComponent extends BackboneElement
13077      implements IBaseBackboneElement {
13078    /**
13079     * The human-readable title to display for the package of resources when
13080     * rendering the implementation guide.
13081     */
13082    @Child(name = "name", type = { StringType.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
13083    @Description(shortDefinition = "Descriptive name for the package", formalDefinition = "The human-readable title to display for the package of resources when rendering the implementation guide.")
13084    protected StringType name;
13085
13086    /**
13087     * Human readable text describing the package.
13088     */
13089    @Child(name = "description", type = {
13090        StringType.class }, order = 2, min = 0, max = 1, modifier = false, summary = false)
13091    @Description(shortDefinition = "Human readable text describing the package", formalDefinition = "Human readable text describing the package.")
13092    protected StringType description;
13093
13094    private static final long serialVersionUID = -1105523499L;
13095
13096    /**
13097     * Constructor
13098     */
13099    public ImplementationGuideDefinitionGroupingComponent() {
13100      super();
13101    }
13102
13103    /**
13104     * Constructor
13105     */
13106    public ImplementationGuideDefinitionGroupingComponent(StringType name) {
13107      super();
13108      this.name = name;
13109    }
13110
13111    /**
13112     * @return {@link #name} (The human-readable title to display for the package of
13113     *         resources when rendering the implementation guide.). This is the
13114     *         underlying object with id, value and extensions. The accessor
13115     *         "getName" gives direct access to the value
13116     */
13117    public StringType getNameElement() {
13118      if (this.name == null)
13119        if (Configuration.errorOnAutoCreate())
13120          throw new Error("Attempt to auto-create ImplementationGuideDefinitionGroupingComponent.name");
13121        else if (Configuration.doAutoCreate())
13122          this.name = new StringType(); // bb
13123      return this.name;
13124    }
13125
13126    public boolean hasNameElement() {
13127      return this.name != null && !this.name.isEmpty();
13128    }
13129
13130    public boolean hasName() {
13131      return this.name != null && !this.name.isEmpty();
13132    }
13133
13134    /**
13135     * @param value {@link #name} (The human-readable title to display for the
13136     *              package of resources when rendering the implementation guide.).
13137     *              This is the underlying object with id, value and extensions. The
13138     *              accessor "getName" gives direct access to the value
13139     */
13140    public ImplementationGuideDefinitionGroupingComponent setNameElement(StringType value) {
13141      this.name = value;
13142      return this;
13143    }
13144
13145    /**
13146     * @return The human-readable title to display for the package of resources when
13147     *         rendering the implementation guide.
13148     */
13149    public String getName() {
13150      return this.name == null ? null : this.name.getValue();
13151    }
13152
13153    /**
13154     * @param value The human-readable title to display for the package of resources
13155     *              when rendering the implementation guide.
13156     */
13157    public ImplementationGuideDefinitionGroupingComponent setName(String value) {
13158      if (this.name == null)
13159        this.name = new StringType();
13160      this.name.setValue(value);
13161      return this;
13162    }
13163
13164    /**
13165     * @return {@link #description} (Human readable text describing the package.).
13166     *         This is the underlying object with id, value and extensions. The
13167     *         accessor "getDescription" gives direct access to the value
13168     */
13169    public StringType getDescriptionElement() {
13170      if (this.description == null)
13171        if (Configuration.errorOnAutoCreate())
13172          throw new Error("Attempt to auto-create ImplementationGuideDefinitionGroupingComponent.description");
13173        else if (Configuration.doAutoCreate())
13174          this.description = new StringType(); // bb
13175      return this.description;
13176    }
13177
13178    public boolean hasDescriptionElement() {
13179      return this.description != null && !this.description.isEmpty();
13180    }
13181
13182    public boolean hasDescription() {
13183      return this.description != null && !this.description.isEmpty();
13184    }
13185
13186    /**
13187     * @param value {@link #description} (Human readable text describing the
13188     *              package.). This is the underlying object with id, value and
13189     *              extensions. The accessor "getDescription" gives direct access to
13190     *              the value
13191     */
13192    public ImplementationGuideDefinitionGroupingComponent setDescriptionElement(StringType value) {
13193      this.description = value;
13194      return this;
13195    }
13196
13197    /**
13198     * @return Human readable text describing the package.
13199     */
13200    public String getDescription() {
13201      return this.description == null ? null : this.description.getValue();
13202    }
13203
13204    /**
13205     * @param value Human readable text describing the package.
13206     */
13207    public ImplementationGuideDefinitionGroupingComponent setDescription(String value) {
13208      if (Utilities.noString(value))
13209        this.description = null;
13210      else {
13211        if (this.description == null)
13212          this.description = new StringType();
13213        this.description.setValue(value);
13214      }
13215      return this;
13216    }
13217
13218    protected void listChildren(List<Property> children) {
13219      super.listChildren(children);
13220      children.add(new Property("name", "string",
13221          "The human-readable title to display for the package of resources when rendering the implementation guide.",
13222          0, 1, name));
13223      children
13224          .add(new Property("description", "string", "Human readable text describing the package.", 0, 1, description));
13225    }
13226
13227    @Override
13228    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
13229      switch (_hash) {
13230      case 3373707:
13231        /* name */ return new Property("name", "string",
13232            "The human-readable title to display for the package of resources when rendering the implementation guide.",
13233            0, 1, name);
13234      case -1724546052:
13235        /* description */ return new Property("description", "string", "Human readable text describing the package.", 0,
13236            1, description);
13237      default:
13238        return super.getNamedProperty(_hash, _name, _checkValid);
13239      }
13240
13241    }
13242
13243    @Override
13244    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
13245      switch (hash) {
13246      case 3373707:
13247        /* name */ return this.name == null ? new Base[0] : new Base[] { this.name }; // StringType
13248      case -1724546052:
13249        /* description */ return this.description == null ? new Base[0] : new Base[] { this.description }; // StringType
13250      default:
13251        return super.getProperty(hash, name, checkValid);
13252      }
13253
13254    }
13255
13256    @Override
13257    public Base setProperty(int hash, String name, Base value) throws FHIRException {
13258      switch (hash) {
13259      case 3373707: // name
13260        this.name = castToString(value); // StringType
13261        return value;
13262      case -1724546052: // description
13263        this.description = castToString(value); // StringType
13264        return value;
13265      default:
13266        return super.setProperty(hash, name, value);
13267      }
13268
13269    }
13270
13271    @Override
13272    public Base setProperty(String name, Base value) throws FHIRException {
13273      if (name.equals("name")) {
13274        this.name = castToString(value); // StringType
13275      } else if (name.equals("description")) {
13276        this.description = castToString(value); // StringType
13277      } else
13278        return super.setProperty(name, value);
13279      return value;
13280    }
13281
13282  @Override
13283  public void removeChild(String name, Base value) throws FHIRException {
13284      if (name.equals("name")) {
13285        this.name = null;
13286      } else if (name.equals("description")) {
13287        this.description = null;
13288      } else
13289        super.removeChild(name, value);
13290      
13291    }
13292
13293    @Override
13294    public Base makeProperty(int hash, String name) throws FHIRException {
13295      switch (hash) {
13296      case 3373707:
13297        return getNameElement();
13298      case -1724546052:
13299        return getDescriptionElement();
13300      default:
13301        return super.makeProperty(hash, name);
13302      }
13303
13304    }
13305
13306    @Override
13307    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
13308      switch (hash) {
13309      case 3373707:
13310        /* name */ return new String[] { "string" };
13311      case -1724546052:
13312        /* description */ return new String[] { "string" };
13313      default:
13314        return super.getTypesForProperty(hash, name);
13315      }
13316
13317    }
13318
13319    @Override
13320    public Base addChild(String name) throws FHIRException {
13321      if (name.equals("name")) {
13322        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.name");
13323      } else if (name.equals("description")) {
13324        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.description");
13325      } else
13326        return super.addChild(name);
13327    }
13328
13329    public ImplementationGuideDefinitionGroupingComponent copy() {
13330      ImplementationGuideDefinitionGroupingComponent dst = new ImplementationGuideDefinitionGroupingComponent();
13331      copyValues(dst);
13332      return dst;
13333    }
13334
13335    public void copyValues(ImplementationGuideDefinitionGroupingComponent dst) {
13336      super.copyValues(dst);
13337      dst.name = name == null ? null : name.copy();
13338      dst.description = description == null ? null : description.copy();
13339    }
13340
13341    @Override
13342    public boolean equalsDeep(Base other_) {
13343      if (!super.equalsDeep(other_))
13344        return false;
13345      if (!(other_ instanceof ImplementationGuideDefinitionGroupingComponent))
13346        return false;
13347      ImplementationGuideDefinitionGroupingComponent o = (ImplementationGuideDefinitionGroupingComponent) other_;
13348      return compareDeep(name, o.name, true) && compareDeep(description, o.description, true);
13349    }
13350
13351    @Override
13352    public boolean equalsShallow(Base other_) {
13353      if (!super.equalsShallow(other_))
13354        return false;
13355      if (!(other_ instanceof ImplementationGuideDefinitionGroupingComponent))
13356        return false;
13357      ImplementationGuideDefinitionGroupingComponent o = (ImplementationGuideDefinitionGroupingComponent) other_;
13358      return compareValues(name, o.name, true) && compareValues(description, o.description, true);
13359    }
13360
13361    public boolean isEmpty() {
13362      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, description);
13363    }
13364
13365    public String fhirType() {
13366      return "ImplementationGuide.definition.grouping";
13367
13368    }
13369
13370  }
13371
13372  @Block()
13373  public static class ImplementationGuideDefinitionResourceComponent extends BackboneElement
13374      implements IBaseBackboneElement {
13375    /**
13376     * Where this resource is found.
13377     */
13378    @Child(name = "reference", type = {
13379        Reference.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
13380    @Description(shortDefinition = "Location of the resource", formalDefinition = "Where this resource is found.")
13381    protected Reference reference;
13382
13383    /**
13384     * The actual object that is the target of the reference (Where this resource is
13385     * found.)
13386     */
13387    protected Resource referenceTarget;
13388
13389    /**
13390     * Indicates the FHIR Version(s) this artifact is intended to apply to. If no
13391     * versions are specified, the resource is assumed to apply to all the versions
13392     * stated in ImplementationGuide.fhirVersion.
13393     */
13394    @Child(name = "fhirVersion", type = {
13395        CodeType.class }, order = 2, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
13396    @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.")
13397    @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/FHIR-version")
13398    protected List<Enumeration<FHIRVersion>> fhirVersion;
13399
13400    /**
13401     * A human assigned name for the resource. All resources SHOULD have a name, but
13402     * the name may be extracted from the resource (e.g. ValueSet.name).
13403     */
13404    @Child(name = "name", type = { StringType.class }, order = 3, min = 0, max = 1, modifier = false, summary = false)
13405    @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).")
13406    protected StringType name;
13407
13408    /**
13409     * A description of the reason that a resource has been included in the
13410     * implementation guide.
13411     */
13412    @Child(name = "description", type = {
13413        StringType.class }, order = 4, min = 0, max = 1, modifier = false, summary = false)
13414    @Description(shortDefinition = "Reason why included in guide", formalDefinition = "A description of the reason that a resource has been included in the implementation guide.")
13415    protected StringType description;
13416
13417    /**
13418     * If true or a reference, indicates the resource is an example instance. If a
13419     * reference is present, indicates that the example is an example of the
13420     * specified profile.
13421     */
13422    @Child(name = "example", type = { BooleanType.class,
13423        CanonicalType.class }, order = 5, min = 0, max = 1, modifier = false, summary = false)
13424    @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.")
13425    protected Type example;
13426
13427    /**
13428     * Reference to the id of the grouping this resource appears in.
13429     */
13430    @Child(name = "groupingId", type = { IdType.class }, order = 6, min = 0, max = 1, modifier = false, summary = false)
13431    @Description(shortDefinition = "Grouping this is part of", formalDefinition = "Reference to the id of the grouping this resource appears in.")
13432    protected IdType groupingId;
13433
13434    private static final long serialVersionUID = 1840689093L;
13435
13436    /**
13437     * Constructor
13438     */
13439    public ImplementationGuideDefinitionResourceComponent() {
13440      super();
13441    }
13442
13443    /**
13444     * Constructor
13445     */
13446    public ImplementationGuideDefinitionResourceComponent(Reference reference) {
13447      super();
13448      this.reference = reference;
13449    }
13450
13451    /**
13452     * @return {@link #reference} (Where this resource is found.)
13453     */
13454    public Reference getReference() {
13455      if (this.reference == null)
13456        if (Configuration.errorOnAutoCreate())
13457          throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.reference");
13458        else if (Configuration.doAutoCreate())
13459          this.reference = new Reference(); // cc
13460      return this.reference;
13461    }
13462
13463    public boolean hasReference() {
13464      return this.reference != null && !this.reference.isEmpty();
13465    }
13466
13467    /**
13468     * @param value {@link #reference} (Where this resource is found.)
13469     */
13470    public ImplementationGuideDefinitionResourceComponent setReference(Reference value) {
13471      this.reference = value;
13472      return this;
13473    }
13474
13475    /**
13476     * @return {@link #reference} The actual object that is the target of the
13477     *         reference. The reference library doesn't populate this, but you can
13478     *         use it to hold the resource if you resolve it. (Where this resource
13479     *         is found.)
13480     */
13481    public Resource getReferenceTarget() {
13482      return this.referenceTarget;
13483    }
13484
13485    /**
13486     * @param value {@link #reference} The actual object that is the target of the
13487     *              reference. The reference library doesn't use these, but you can
13488     *              use it to hold the resource if you resolve it. (Where this
13489     *              resource is found.)
13490     */
13491    public ImplementationGuideDefinitionResourceComponent setReferenceTarget(Resource value) {
13492      this.referenceTarget = value;
13493      return this;
13494    }
13495
13496    /**
13497     * @return {@link #fhirVersion} (Indicates the FHIR Version(s) this artifact is
13498     *         intended to apply to. If no versions are specified, the resource is
13499     *         assumed to apply to all the versions stated in
13500     *         ImplementationGuide.fhirVersion.)
13501     */
13502    public List<Enumeration<FHIRVersion>> getFhirVersion() {
13503      if (this.fhirVersion == null)
13504        this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
13505      return this.fhirVersion;
13506    }
13507
13508    /**
13509     * @return Returns a reference to <code>this</code> for easy method chaining
13510     */
13511    public ImplementationGuideDefinitionResourceComponent setFhirVersion(
13512        List<Enumeration<FHIRVersion>> theFhirVersion) {
13513      this.fhirVersion = theFhirVersion;
13514      return this;
13515    }
13516
13517    public boolean hasFhirVersion() {
13518      if (this.fhirVersion == null)
13519        return false;
13520      for (Enumeration<FHIRVersion> item : this.fhirVersion)
13521        if (!item.isEmpty())
13522          return true;
13523      return false;
13524    }
13525
13526    /**
13527     * @return {@link #fhirVersion} (Indicates the FHIR Version(s) this artifact is
13528     *         intended to apply to. If no versions are specified, the resource is
13529     *         assumed to apply to all the versions stated in
13530     *         ImplementationGuide.fhirVersion.)
13531     */
13532    public Enumeration<FHIRVersion> addFhirVersionElement() {// 2
13533      Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
13534      if (this.fhirVersion == null)
13535        this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
13536      this.fhirVersion.add(t);
13537      return t;
13538    }
13539
13540    /**
13541     * @param value {@link #fhirVersion} (Indicates the FHIR Version(s) this
13542     *              artifact is intended to apply to. If no versions are specified,
13543     *              the resource is assumed to apply to all the versions stated in
13544     *              ImplementationGuide.fhirVersion.)
13545     */
13546    public ImplementationGuideDefinitionResourceComponent addFhirVersion(FHIRVersion value) { // 1
13547      Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
13548      t.setValue(value);
13549      if (this.fhirVersion == null)
13550        this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
13551      this.fhirVersion.add(t);
13552      return this;
13553    }
13554
13555    /**
13556     * @param value {@link #fhirVersion} (Indicates the FHIR Version(s) this
13557     *              artifact is intended to apply to. If no versions are specified,
13558     *              the resource is assumed to apply to all the versions stated in
13559     *              ImplementationGuide.fhirVersion.)
13560     */
13561    public boolean hasFhirVersion(FHIRVersion value) {
13562      if (this.fhirVersion == null)
13563        return false;
13564      for (Enumeration<FHIRVersion> v : this.fhirVersion)
13565        if (v.getValue().equals(value)) // code
13566          return true;
13567      return false;
13568    }
13569
13570    /**
13571     * @return {@link #name} (A human assigned name for the resource. All resources
13572     *         SHOULD have a name, but the name may be extracted from the resource
13573     *         (e.g. ValueSet.name).). This is the underlying object with id, value
13574     *         and extensions. The accessor "getName" gives direct access to the
13575     *         value
13576     */
13577    public StringType getNameElement() {
13578      if (this.name == null)
13579        if (Configuration.errorOnAutoCreate())
13580          throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.name");
13581        else if (Configuration.doAutoCreate())
13582          this.name = new StringType(); // bb
13583      return this.name;
13584    }
13585
13586    public boolean hasNameElement() {
13587      return this.name != null && !this.name.isEmpty();
13588    }
13589
13590    public boolean hasName() {
13591      return this.name != null && !this.name.isEmpty();
13592    }
13593
13594    /**
13595     * @param value {@link #name} (A human assigned name for the resource. All
13596     *              resources SHOULD have a name, but the name may be extracted from
13597     *              the resource (e.g. ValueSet.name).). This is the underlying
13598     *              object with id, value and extensions. The accessor "getName"
13599     *              gives direct access to the value
13600     */
13601    public ImplementationGuideDefinitionResourceComponent setNameElement(StringType value) {
13602      this.name = value;
13603      return this;
13604    }
13605
13606    /**
13607     * @return A human assigned name for the resource. All resources SHOULD have a
13608     *         name, but the name may be extracted from the resource (e.g.
13609     *         ValueSet.name).
13610     */
13611    public String getName() {
13612      return this.name == null ? null : this.name.getValue();
13613    }
13614
13615    /**
13616     * @param value A human assigned name for the resource. All resources SHOULD
13617     *              have a name, but the name may be extracted from the resource
13618     *              (e.g. ValueSet.name).
13619     */
13620    public ImplementationGuideDefinitionResourceComponent setName(String value) {
13621      if (Utilities.noString(value))
13622        this.name = null;
13623      else {
13624        if (this.name == null)
13625          this.name = new StringType();
13626        this.name.setValue(value);
13627      }
13628      return this;
13629    }
13630
13631    /**
13632     * @return {@link #description} (A description of the reason that a resource has
13633     *         been included in the implementation guide.). This is the underlying
13634     *         object with id, value and extensions. The accessor "getDescription"
13635     *         gives direct access to the value
13636     */
13637    public StringType getDescriptionElement() {
13638      if (this.description == null)
13639        if (Configuration.errorOnAutoCreate())
13640          throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.description");
13641        else if (Configuration.doAutoCreate())
13642          this.description = new StringType(); // bb
13643      return this.description;
13644    }
13645
13646    public boolean hasDescriptionElement() {
13647      return this.description != null && !this.description.isEmpty();
13648    }
13649
13650    public boolean hasDescription() {
13651      return this.description != null && !this.description.isEmpty();
13652    }
13653
13654    /**
13655     * @param value {@link #description} (A description of the reason that a
13656     *              resource has been included in the implementation guide.). This
13657     *              is the underlying object with id, value and extensions. The
13658     *              accessor "getDescription" gives direct access to the value
13659     */
13660    public ImplementationGuideDefinitionResourceComponent setDescriptionElement(StringType value) {
13661      this.description = value;
13662      return this;
13663    }
13664
13665    /**
13666     * @return A description of the reason that a resource has been included in the
13667     *         implementation guide.
13668     */
13669    public String getDescription() {
13670      return this.description == null ? null : this.description.getValue();
13671    }
13672
13673    /**
13674     * @param value A description of the reason that a resource has been included in
13675     *              the implementation guide.
13676     */
13677    public ImplementationGuideDefinitionResourceComponent setDescription(String value) {
13678      if (Utilities.noString(value))
13679        this.description = null;
13680      else {
13681        if (this.description == null)
13682          this.description = new StringType();
13683        this.description.setValue(value);
13684      }
13685      return this;
13686    }
13687
13688    /**
13689     * @return {@link #example} (If true or a reference, indicates the resource is
13690     *         an example instance. If a reference is present, indicates that the
13691     *         example is an example of the specified profile.)
13692     */
13693    public Type getExample() {
13694      return this.example;
13695    }
13696
13697    /**
13698     * @return {@link #example} (If true or a reference, indicates the resource is
13699     *         an example instance. If a reference is present, indicates that the
13700     *         example is an example of the specified profile.)
13701     */
13702    public BooleanType getExampleBooleanType() throws FHIRException {
13703      if (this.example == null)
13704        this.example = new BooleanType();
13705      if (!(this.example instanceof BooleanType))
13706        throw new FHIRException("Type mismatch: the type BooleanType was expected, but "
13707            + this.example.getClass().getName() + " was encountered");
13708      return (BooleanType) this.example;
13709    }
13710
13711    public boolean hasExampleBooleanType() {
13712      return this != null && this.example instanceof BooleanType;
13713    }
13714
13715    /**
13716     * @return {@link #example} (If true or a reference, indicates the resource is
13717     *         an example instance. If a reference is present, indicates that the
13718     *         example is an example of the specified profile.)
13719     */
13720    public CanonicalType getExampleCanonicalType() throws FHIRException {
13721      if (this.example == null)
13722        this.example = new CanonicalType();
13723      if (!(this.example instanceof CanonicalType))
13724        throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "
13725            + this.example.getClass().getName() + " was encountered");
13726      return (CanonicalType) this.example;
13727    }
13728
13729    public boolean hasExampleCanonicalType() {
13730      return this != null && this.example instanceof CanonicalType;
13731    }
13732
13733    public boolean hasExample() {
13734      return this.example != null && !this.example.isEmpty();
13735    }
13736
13737    /**
13738     * @param value {@link #example} (If true or a reference, indicates the resource
13739     *              is an example instance. If a reference is present, indicates
13740     *              that the example is an example of the specified profile.)
13741     */
13742    public ImplementationGuideDefinitionResourceComponent setExample(Type value) {
13743      if (value != null && !(value instanceof BooleanType || value instanceof CanonicalType))
13744        throw new Error(
13745            "Not the right type for ImplementationGuide.definition.resource.example[x]: " + value.fhirType());
13746      this.example = value;
13747      return this;
13748    }
13749
13750    /**
13751     * @return {@link #groupingId} (Reference to the id of the grouping this
13752     *         resource appears in.). This is the underlying object with id, value
13753     *         and extensions. The accessor "getGroupingId" gives direct access to
13754     *         the value
13755     */
13756    public IdType getGroupingIdElement() {
13757      if (this.groupingId == null)
13758        if (Configuration.errorOnAutoCreate())
13759          throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.groupingId");
13760        else if (Configuration.doAutoCreate())
13761          this.groupingId = new IdType(); // bb
13762      return this.groupingId;
13763    }
13764
13765    public boolean hasGroupingIdElement() {
13766      return this.groupingId != null && !this.groupingId.isEmpty();
13767    }
13768
13769    public boolean hasGroupingId() {
13770      return this.groupingId != null && !this.groupingId.isEmpty();
13771    }
13772
13773    /**
13774     * @param value {@link #groupingId} (Reference to the id of the grouping this
13775     *              resource appears in.). This is the underlying object with id,
13776     *              value and extensions. The accessor "getGroupingId" gives direct
13777     *              access to the value
13778     */
13779    public ImplementationGuideDefinitionResourceComponent setGroupingIdElement(IdType value) {
13780      this.groupingId = value;
13781      return this;
13782    }
13783
13784    /**
13785     * @return Reference to the id of the grouping this resource appears in.
13786     */
13787    public String getGroupingId() {
13788      return this.groupingId == null ? null : this.groupingId.getValue();
13789    }
13790
13791    /**
13792     * @param value Reference to the id of the grouping this resource appears in.
13793     */
13794    public ImplementationGuideDefinitionResourceComponent setGroupingId(String value) {
13795      if (Utilities.noString(value))
13796        this.groupingId = null;
13797      else {
13798        if (this.groupingId == null)
13799          this.groupingId = new IdType();
13800        this.groupingId.setValue(value);
13801      }
13802      return this;
13803    }
13804
13805    protected void listChildren(List<Property> children) {
13806      super.listChildren(children);
13807      children.add(new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference));
13808      children.add(new Property("fhirVersion", "code",
13809          "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.",
13810          0, java.lang.Integer.MAX_VALUE, fhirVersion));
13811      children.add(new Property("name", "string",
13812          "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).",
13813          0, 1, name));
13814      children.add(new Property("description", "string",
13815          "A description of the reason that a resource has been included in the implementation guide.", 0, 1,
13816          description));
13817      children.add(new Property("example[x]", "boolean|canonical(StructureDefinition)",
13818          "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.",
13819          0, 1, example));
13820      children.add(new Property("groupingId", "id", "Reference to the id of the grouping this resource appears in.", 0,
13821          1, groupingId));
13822    }
13823
13824    @Override
13825    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
13826      switch (_hash) {
13827      case -925155509:
13828        /* reference */ return new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1,
13829            reference);
13830      case 461006061:
13831        /* fhirVersion */ return new Property("fhirVersion", "code",
13832            "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.",
13833            0, java.lang.Integer.MAX_VALUE, fhirVersion);
13834      case 3373707:
13835        /* name */ return new Property("name", "string",
13836            "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).",
13837            0, 1, name);
13838      case -1724546052:
13839        /* description */ return new Property("description", "string",
13840            "A description of the reason that a resource has been included in the implementation guide.", 0, 1,
13841            description);
13842      case -2002328874:
13843        /* example[x] */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
13844            "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.",
13845            0, 1, example);
13846      case -1322970774:
13847        /* example */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
13848            "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.",
13849            0, 1, example);
13850      case 159803230:
13851        /* exampleBoolean */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
13852            "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.",
13853            0, 1, example);
13854      case 2016979626:
13855        /* exampleCanonical */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
13856            "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.",
13857            0, 1, example);
13858      case 1291547006:
13859        /* groupingId */ return new Property("groupingId", "id",
13860            "Reference to the id of the grouping this resource appears in.", 0, 1, groupingId);
13861      default:
13862        return super.getNamedProperty(_hash, _name, _checkValid);
13863      }
13864
13865    }
13866
13867    @Override
13868    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
13869      switch (hash) {
13870      case -925155509:
13871        /* reference */ return this.reference == null ? new Base[0] : new Base[] { this.reference }; // Reference
13872      case 461006061:
13873        /* fhirVersion */ return this.fhirVersion == null ? new Base[0]
13874            : this.fhirVersion.toArray(new Base[this.fhirVersion.size()]); // Enumeration<FHIRVersion>
13875      case 3373707:
13876        /* name */ return this.name == null ? new Base[0] : new Base[] { this.name }; // StringType
13877      case -1724546052:
13878        /* description */ return this.description == null ? new Base[0] : new Base[] { this.description }; // StringType
13879      case -1322970774:
13880        /* example */ return this.example == null ? new Base[0] : new Base[] { this.example }; // Type
13881      case 1291547006:
13882        /* groupingId */ return this.groupingId == null ? new Base[0] : new Base[] { this.groupingId }; // IdType
13883      default:
13884        return super.getProperty(hash, name, checkValid);
13885      }
13886
13887    }
13888
13889    @Override
13890    public Base setProperty(int hash, String name, Base value) throws FHIRException {
13891      switch (hash) {
13892      case -925155509: // reference
13893        this.reference = castToReference(value); // Reference
13894        return value;
13895      case 461006061: // fhirVersion
13896        value = new FHIRVersionEnumFactory().fromType(castToCode(value));
13897        this.getFhirVersion().add((Enumeration) value); // Enumeration<FHIRVersion>
13898        return value;
13899      case 3373707: // name
13900        this.name = castToString(value); // StringType
13901        return value;
13902      case -1724546052: // description
13903        this.description = castToString(value); // StringType
13904        return value;
13905      case -1322970774: // example
13906        this.example = castToType(value); // Type
13907        return value;
13908      case 1291547006: // groupingId
13909        this.groupingId = castToId(value); // IdType
13910        return value;
13911      default:
13912        return super.setProperty(hash, name, value);
13913      }
13914
13915    }
13916
13917    @Override
13918    public Base setProperty(String name, Base value) throws FHIRException {
13919      if (name.equals("reference")) {
13920        this.reference = castToReference(value); // Reference
13921      } else if (name.equals("fhirVersion")) {
13922        value = new FHIRVersionEnumFactory().fromType(castToCode(value));
13923        this.getFhirVersion().add((Enumeration) value);
13924      } else if (name.equals("name")) {
13925        this.name = castToString(value); // StringType
13926      } else if (name.equals("description")) {
13927        this.description = castToString(value); // StringType
13928      } else if (name.equals("example[x]")) {
13929        this.example = castToType(value); // Type
13930      } else if (name.equals("groupingId")) {
13931        this.groupingId = castToId(value); // IdType
13932      } else
13933        return super.setProperty(name, value);
13934      return value;
13935    }
13936
13937  @Override
13938  public void removeChild(String name, Base value) throws FHIRException {
13939      if (name.equals("reference")) {
13940        this.reference = null;
13941      } else if (name.equals("fhirVersion")) {
13942        this.getFhirVersion().remove((Enumeration) value);
13943      } else if (name.equals("name")) {
13944        this.name = null;
13945      } else if (name.equals("description")) {
13946        this.description = null;
13947      } else if (name.equals("example[x]")) {
13948        this.example = null;
13949      } else if (name.equals("groupingId")) {
13950        this.groupingId = null;
13951      } else
13952        super.removeChild(name, value);
13953      
13954    }
13955
13956    @Override
13957    public Base makeProperty(int hash, String name) throws FHIRException {
13958      switch (hash) {
13959      case -925155509:
13960        return getReference();
13961      case 461006061:
13962        return addFhirVersionElement();
13963      case 3373707:
13964        return getNameElement();
13965      case -1724546052:
13966        return getDescriptionElement();
13967      case -2002328874:
13968        return getExample();
13969      case -1322970774:
13970        return getExample();
13971      case 1291547006:
13972        return getGroupingIdElement();
13973      default:
13974        return super.makeProperty(hash, name);
13975      }
13976
13977    }
13978
13979    @Override
13980    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
13981      switch (hash) {
13982      case -925155509:
13983        /* reference */ return new String[] { "Reference" };
13984      case 461006061:
13985        /* fhirVersion */ return new String[] { "code" };
13986      case 3373707:
13987        /* name */ return new String[] { "string" };
13988      case -1724546052:
13989        /* description */ return new String[] { "string" };
13990      case -1322970774:
13991        /* example */ return new String[] { "boolean", "canonical" };
13992      case 1291547006:
13993        /* groupingId */ return new String[] { "id" };
13994      default:
13995        return super.getTypesForProperty(hash, name);
13996      }
13997
13998    }
13999
14000    @Override
14001    public Base addChild(String name) throws FHIRException {
14002      if (name.equals("reference")) {
14003        this.reference = new Reference();
14004        return this.reference;
14005      } else if (name.equals("fhirVersion")) {
14006        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.fhirVersion");
14007      } else if (name.equals("name")) {
14008        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.name");
14009      } else if (name.equals("description")) {
14010        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.description");
14011      } else if (name.equals("exampleBoolean")) {
14012        this.example = new BooleanType();
14013        return this.example;
14014      } else if (name.equals("exampleCanonical")) {
14015        this.example = new CanonicalType();
14016        return this.example;
14017      } else if (name.equals("groupingId")) {
14018        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.groupingId");
14019      } else
14020        return super.addChild(name);
14021    }
14022
14023    public ImplementationGuideDefinitionResourceComponent copy() {
14024      ImplementationGuideDefinitionResourceComponent dst = new ImplementationGuideDefinitionResourceComponent();
14025      copyValues(dst);
14026      return dst;
14027    }
14028
14029    public void copyValues(ImplementationGuideDefinitionResourceComponent dst) {
14030      super.copyValues(dst);
14031      dst.reference = reference == null ? null : reference.copy();
14032      if (fhirVersion != null) {
14033        dst.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
14034        for (Enumeration<FHIRVersion> i : fhirVersion)
14035          dst.fhirVersion.add(i.copy());
14036      }
14037      ;
14038      dst.name = name == null ? null : name.copy();
14039      dst.description = description == null ? null : description.copy();
14040      dst.example = example == null ? null : example.copy();
14041      dst.groupingId = groupingId == null ? null : groupingId.copy();
14042    }
14043
14044    @Override
14045    public boolean equalsDeep(Base other_) {
14046      if (!super.equalsDeep(other_))
14047        return false;
14048      if (!(other_ instanceof ImplementationGuideDefinitionResourceComponent))
14049        return false;
14050      ImplementationGuideDefinitionResourceComponent o = (ImplementationGuideDefinitionResourceComponent) other_;
14051      return compareDeep(reference, o.reference, true) && compareDeep(fhirVersion, o.fhirVersion, true)
14052          && compareDeep(name, o.name, true) && compareDeep(description, o.description, true)
14053          && compareDeep(example, o.example, true) && compareDeep(groupingId, o.groupingId, true);
14054    }
14055
14056    @Override
14057    public boolean equalsShallow(Base other_) {
14058      if (!super.equalsShallow(other_))
14059        return false;
14060      if (!(other_ instanceof ImplementationGuideDefinitionResourceComponent))
14061        return false;
14062      ImplementationGuideDefinitionResourceComponent o = (ImplementationGuideDefinitionResourceComponent) other_;
14063      return compareValues(fhirVersion, o.fhirVersion, true) && compareValues(name, o.name, true)
14064          && compareValues(description, o.description, true) && compareValues(groupingId, o.groupingId, true);
14065    }
14066
14067    public boolean isEmpty() {
14068      return super.isEmpty()
14069          && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, fhirVersion, name, description, example, groupingId);
14070    }
14071
14072    public String fhirType() {
14073      return "ImplementationGuide.definition.resource";
14074
14075    }
14076
14077  }
14078
14079  @Block()
14080  public static class ImplementationGuideDefinitionPageComponent extends BackboneElement
14081      implements IBaseBackboneElement {
14082    /**
14083     * The source address for the page.
14084     */
14085    @Child(name = "name", type = { UrlType.class,
14086        Binary.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
14087    @Description(shortDefinition = "Where to find that page", formalDefinition = "The source address for the page.")
14088    protected Type name;
14089
14090    /**
14091     * A short title used to represent this page in navigational structures such as
14092     * table of contents, bread crumbs, etc.
14093     */
14094    @Child(name = "title", type = { StringType.class }, order = 2, min = 1, max = 1, modifier = false, summary = false)
14095    @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.")
14096    protected StringType title;
14097
14098    /**
14099     * A code that indicates how the page is generated.
14100     */
14101    @Child(name = "generation", type = {
14102        CodeType.class }, order = 3, min = 1, max = 1, modifier = false, summary = false)
14103    @Description(shortDefinition = "html | markdown | xml | generated", formalDefinition = "A code that indicates how the page is generated.")
14104    @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/guide-page-generation")
14105    protected Enumeration<GuidePageGeneration> generation;
14106
14107    /**
14108     * Nested Pages/Sections under this page.
14109     */
14110    @Child(name = "page", type = {
14111        ImplementationGuideDefinitionPageComponent.class }, order = 4, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
14112    @Description(shortDefinition = "Nested Pages / Sections", formalDefinition = "Nested Pages/Sections under this page.")
14113    protected List<ImplementationGuideDefinitionPageComponent> page;
14114
14115    private static final long serialVersionUID = -365655658L;
14116
14117    /**
14118     * Constructor
14119     */
14120    public ImplementationGuideDefinitionPageComponent() {
14121      super();
14122    }
14123
14124    /**
14125     * Constructor
14126     */
14127    public ImplementationGuideDefinitionPageComponent(Type name, StringType title,
14128        Enumeration<GuidePageGeneration> generation) {
14129      super();
14130      this.name = name;
14131      this.title = title;
14132      this.generation = generation;
14133    }
14134
14135    /**
14136     * @return {@link #name} (The source address for the page.)
14137     */
14138    public Type getName() {
14139      return this.name;
14140    }
14141
14142    /**
14143     * @return {@link #name} (The source address for the page.)
14144     */
14145    public UrlType getNameUrlType() throws FHIRException {
14146      if (this.name == null)
14147        this.name = new UrlType();
14148      if (!(this.name instanceof UrlType))
14149        throw new FHIRException(
14150            "Type mismatch: the type UrlType was expected, but " + this.name.getClass().getName() + " was encountered");
14151      return (UrlType) this.name;
14152    }
14153
14154    public boolean hasNameUrlType() {
14155      return this != null && this.name instanceof UrlType;
14156    }
14157
14158    /**
14159     * @return {@link #name} (The source address for the page.)
14160     */
14161    public Reference getNameReference() throws FHIRException {
14162      if (this.name == null)
14163        this.name = new Reference();
14164      if (!(this.name instanceof Reference))
14165        throw new FHIRException("Type mismatch: the type Reference was expected, but " + this.name.getClass().getName()
14166            + " was encountered");
14167      return (Reference) this.name;
14168    }
14169
14170    public boolean hasNameReference() {
14171      return this != null && this.name instanceof Reference;
14172    }
14173
14174    public boolean hasName() {
14175      return this.name != null && !this.name.isEmpty();
14176    }
14177
14178    /**
14179     * @param value {@link #name} (The source address for the page.)
14180     */
14181    public ImplementationGuideDefinitionPageComponent setName(Type value) {
14182      if (value != null && !(value instanceof UrlType || value instanceof Reference))
14183        throw new Error("Not the right type for ImplementationGuide.definition.page.name[x]: " + value.fhirType());
14184      this.name = value;
14185      return this;
14186    }
14187
14188    /**
14189     * @return {@link #title} (A short title used to represent this page in
14190     *         navigational structures such as table of contents, bread crumbs,
14191     *         etc.). This is the underlying object with id, value and extensions.
14192     *         The accessor "getTitle" gives direct access to the value
14193     */
14194    public StringType getTitleElement() {
14195      if (this.title == null)
14196        if (Configuration.errorOnAutoCreate())
14197          throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.title");
14198        else if (Configuration.doAutoCreate())
14199          this.title = new StringType(); // bb
14200      return this.title;
14201    }
14202
14203    public boolean hasTitleElement() {
14204      return this.title != null && !this.title.isEmpty();
14205    }
14206
14207    public boolean hasTitle() {
14208      return this.title != null && !this.title.isEmpty();
14209    }
14210
14211    /**
14212     * @param value {@link #title} (A short title used to represent this page in
14213     *              navigational structures such as table of contents, bread crumbs,
14214     *              etc.). This is the underlying object with id, value and
14215     *              extensions. The accessor "getTitle" gives direct access to the
14216     *              value
14217     */
14218    public ImplementationGuideDefinitionPageComponent setTitleElement(StringType value) {
14219      this.title = value;
14220      return this;
14221    }
14222
14223    /**
14224     * @return A short title used to represent this page in navigational structures
14225     *         such as table of contents, bread crumbs, etc.
14226     */
14227    public String getTitle() {
14228      return this.title == null ? null : this.title.getValue();
14229    }
14230
14231    /**
14232     * @param value A short title used to represent this page in navigational
14233     *              structures such as table of contents, bread crumbs, etc.
14234     */
14235    public ImplementationGuideDefinitionPageComponent setTitle(String value) {
14236      if (this.title == null)
14237        this.title = new StringType();
14238      this.title.setValue(value);
14239      return this;
14240    }
14241
14242    /**
14243     * @return {@link #generation} (A code that indicates how the page is
14244     *         generated.). This is the underlying object with id, value and
14245     *         extensions. The accessor "getGeneration" gives direct access to the
14246     *         value
14247     */
14248    public Enumeration<GuidePageGeneration> getGenerationElement() {
14249      if (this.generation == null)
14250        if (Configuration.errorOnAutoCreate())
14251          throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.generation");
14252        else if (Configuration.doAutoCreate())
14253          this.generation = new Enumeration<GuidePageGeneration>(new GuidePageGenerationEnumFactory()); // bb
14254      return this.generation;
14255    }
14256
14257    public boolean hasGenerationElement() {
14258      return this.generation != null && !this.generation.isEmpty();
14259    }
14260
14261    public boolean hasGeneration() {
14262      return this.generation != null && !this.generation.isEmpty();
14263    }
14264
14265    /**
14266     * @param value {@link #generation} (A code that indicates how the page is
14267     *              generated.). This is the underlying object with id, value and
14268     *              extensions. The accessor "getGeneration" gives direct access to
14269     *              the value
14270     */
14271    public ImplementationGuideDefinitionPageComponent setGenerationElement(Enumeration<GuidePageGeneration> value) {
14272      this.generation = value;
14273      return this;
14274    }
14275
14276    /**
14277     * @return A code that indicates how the page is generated.
14278     */
14279    public GuidePageGeneration getGeneration() {
14280      return this.generation == null ? null : this.generation.getValue();
14281    }
14282
14283    /**
14284     * @param value A code that indicates how the page is generated.
14285     */
14286    public ImplementationGuideDefinitionPageComponent setGeneration(GuidePageGeneration value) {
14287      if (this.generation == null)
14288        this.generation = new Enumeration<GuidePageGeneration>(new GuidePageGenerationEnumFactory());
14289      this.generation.setValue(value);
14290      return this;
14291    }
14292
14293    /**
14294     * @return {@link #page} (Nested Pages/Sections under this page.)
14295     */
14296    public List<ImplementationGuideDefinitionPageComponent> getPage() {
14297      if (this.page == null)
14298        this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
14299      return this.page;
14300    }
14301
14302    /**
14303     * @return Returns a reference to <code>this</code> for easy method chaining
14304     */
14305    public ImplementationGuideDefinitionPageComponent setPage(
14306        List<ImplementationGuideDefinitionPageComponent> thePage) {
14307      this.page = thePage;
14308      return this;
14309    }
14310
14311    public boolean hasPage() {
14312      if (this.page == null)
14313        return false;
14314      for (ImplementationGuideDefinitionPageComponent item : this.page)
14315        if (!item.isEmpty())
14316          return true;
14317      return false;
14318    }
14319
14320    public ImplementationGuideDefinitionPageComponent addPage() { // 3
14321      ImplementationGuideDefinitionPageComponent t = new ImplementationGuideDefinitionPageComponent();
14322      if (this.page == null)
14323        this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
14324      this.page.add(t);
14325      return t;
14326    }
14327
14328    public ImplementationGuideDefinitionPageComponent addPage(ImplementationGuideDefinitionPageComponent t) { // 3
14329      if (t == null)
14330        return this;
14331      if (this.page == null)
14332        this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
14333      this.page.add(t);
14334      return this;
14335    }
14336
14337    /**
14338     * @return The first repetition of repeating field {@link #page}, creating it if
14339     *         it does not already exist
14340     */
14341    public ImplementationGuideDefinitionPageComponent getPageFirstRep() {
14342      if (getPage().isEmpty()) {
14343        addPage();
14344      }
14345      return getPage().get(0);
14346    }
14347
14348    protected void listChildren(List<Property> children) {
14349      super.listChildren(children);
14350      children.add(new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name));
14351      children.add(new Property("title", "string",
14352          "A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.",
14353          0, 1, title));
14354      children.add(
14355          new Property("generation", "code", "A code that indicates how the page is generated.", 0, 1, generation));
14356      children.add(new Property("page", "@ImplementationGuide.definition.page",
14357          "Nested Pages/Sections under this page.", 0, java.lang.Integer.MAX_VALUE, page));
14358    }
14359
14360    @Override
14361    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
14362      switch (_hash) {
14363      case 1721948693:
14364        /* name[x] */ return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1,
14365            name);
14366      case 3373707:
14367        /* name */ return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1,
14368            name);
14369      case 1721942756:
14370        /* nameUrl */ return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1,
14371            name);
14372      case 1833144576:
14373        /* nameReference */ return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.",
14374            0, 1, name);
14375      case 110371416:
14376        /* title */ return new Property("title", "string",
14377            "A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.",
14378            0, 1, title);
14379      case 305703192:
14380        /* generation */ return new Property("generation", "code", "A code that indicates how the page is generated.",
14381            0, 1, generation);
14382      case 3433103:
14383        /* page */ return new Property("page", "@ImplementationGuide.definition.page",
14384            "Nested Pages/Sections under this page.", 0, java.lang.Integer.MAX_VALUE, page);
14385      default:
14386        return super.getNamedProperty(_hash, _name, _checkValid);
14387      }
14388
14389    }
14390
14391    @Override
14392    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
14393      switch (hash) {
14394      case 3373707:
14395        /* name */ return this.name == null ? new Base[0] : new Base[] { this.name }; // Type
14396      case 110371416:
14397        /* title */ return this.title == null ? new Base[0] : new Base[] { this.title }; // StringType
14398      case 305703192:
14399        /* generation */ return this.generation == null ? new Base[0] : new Base[] { this.generation }; // Enumeration<GuidePageGeneration>
14400      case 3433103:
14401        /* page */ return this.page == null ? new Base[0] : this.page.toArray(new Base[this.page.size()]); // ImplementationGuideDefinitionPageComponent
14402      default:
14403        return super.getProperty(hash, name, checkValid);
14404      }
14405
14406    }
14407
14408    @Override
14409    public Base setProperty(int hash, String name, Base value) throws FHIRException {
14410      switch (hash) {
14411      case 3373707: // name
14412        this.name = castToType(value); // Type
14413        return value;
14414      case 110371416: // title
14415        this.title = castToString(value); // StringType
14416        return value;
14417      case 305703192: // generation
14418        value = new GuidePageGenerationEnumFactory().fromType(castToCode(value));
14419        this.generation = (Enumeration) value; // Enumeration<GuidePageGeneration>
14420        return value;
14421      case 3433103: // page
14422        this.getPage().add((ImplementationGuideDefinitionPageComponent) value); // ImplementationGuideDefinitionPageComponent
14423        return value;
14424      default:
14425        return super.setProperty(hash, name, value);
14426      }
14427
14428    }
14429
14430    @Override
14431    public Base setProperty(String name, Base value) throws FHIRException {
14432      if (name.equals("name[x]")) {
14433        this.name = castToType(value); // Type
14434      } else if (name.equals("title")) {
14435        this.title = castToString(value); // StringType
14436      } else if (name.equals("generation")) {
14437        value = new GuidePageGenerationEnumFactory().fromType(castToCode(value));
14438        this.generation = (Enumeration) value; // Enumeration<GuidePageGeneration>
14439      } else if (name.equals("page")) {
14440        this.getPage().add((ImplementationGuideDefinitionPageComponent) value);
14441      } else
14442        return super.setProperty(name, value);
14443      return value;
14444    }
14445
14446  @Override
14447  public void removeChild(String name, Base value) throws FHIRException {
14448      if (name.equals("name[x]")) {
14449        this.name = null;
14450      } else if (name.equals("title")) {
14451        this.title = null;
14452      } else if (name.equals("generation")) {
14453        this.generation = null;
14454      } else if (name.equals("page")) {
14455        this.getPage().remove((ImplementationGuideDefinitionPageComponent) value);
14456      } else
14457        super.removeChild(name, value);
14458      
14459    }
14460
14461    @Override
14462    public Base makeProperty(int hash, String name) throws FHIRException {
14463      switch (hash) {
14464      case 1721948693:
14465        return getName();
14466      case 3373707:
14467        return getName();
14468      case 110371416:
14469        return getTitleElement();
14470      case 305703192:
14471        return getGenerationElement();
14472      case 3433103:
14473        return addPage();
14474      default:
14475        return super.makeProperty(hash, name);
14476      }
14477
14478    }
14479
14480    @Override
14481    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
14482      switch (hash) {
14483      case 3373707:
14484        /* name */ return new String[] { "url", "Reference" };
14485      case 110371416:
14486        /* title */ return new String[] { "string" };
14487      case 305703192:
14488        /* generation */ return new String[] { "code" };
14489      case 3433103:
14490        /* page */ return new String[] { "@ImplementationGuide.definition.page" };
14491      default:
14492        return super.getTypesForProperty(hash, name);
14493      }
14494
14495    }
14496
14497    @Override
14498    public Base addChild(String name) throws FHIRException {
14499      if (name.equals("nameUrl")) {
14500        this.name = new UrlType();
14501        return this.name;
14502      } else if (name.equals("nameReference")) {
14503        this.name = new Reference();
14504        return this.name;
14505      } else if (name.equals("title")) {
14506        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.title");
14507      } else if (name.equals("generation")) {
14508        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.generation");
14509      } else if (name.equals("page")) {
14510        return addPage();
14511      } else
14512        return super.addChild(name);
14513    }
14514
14515    public ImplementationGuideDefinitionPageComponent copy() {
14516      ImplementationGuideDefinitionPageComponent dst = new ImplementationGuideDefinitionPageComponent();
14517      copyValues(dst);
14518      return dst;
14519    }
14520
14521    public void copyValues(ImplementationGuideDefinitionPageComponent dst) {
14522      super.copyValues(dst);
14523      dst.name = name == null ? null : name.copy();
14524      dst.title = title == null ? null : title.copy();
14525      dst.generation = generation == null ? null : generation.copy();
14526      if (page != null) {
14527        dst.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
14528        for (ImplementationGuideDefinitionPageComponent i : page)
14529          dst.page.add(i.copy());
14530      }
14531      ;
14532    }
14533
14534    @Override
14535    public boolean equalsDeep(Base other_) {
14536      if (!super.equalsDeep(other_))
14537        return false;
14538      if (!(other_ instanceof ImplementationGuideDefinitionPageComponent))
14539        return false;
14540      ImplementationGuideDefinitionPageComponent o = (ImplementationGuideDefinitionPageComponent) other_;
14541      return compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
14542          && compareDeep(generation, o.generation, true) && compareDeep(page, o.page, true);
14543    }
14544
14545    @Override
14546    public boolean equalsShallow(Base other_) {
14547      if (!super.equalsShallow(other_))
14548        return false;
14549      if (!(other_ instanceof ImplementationGuideDefinitionPageComponent))
14550        return false;
14551      ImplementationGuideDefinitionPageComponent o = (ImplementationGuideDefinitionPageComponent) other_;
14552      return compareValues(title, o.title, true) && compareValues(generation, o.generation, true);
14553    }
14554
14555    public boolean isEmpty() {
14556      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, title, generation, page);
14557    }
14558
14559    public String fhirType() {
14560      return "ImplementationGuide.definition.page";
14561
14562    }
14563
14564  }
14565
14566  @Block()
14567  public static class ImplementationGuideDefinitionParameterComponent extends BackboneElement
14568      implements IBaseBackboneElement {
14569    /**
14570     * apply | path-resource | path-pages | path-tx-cache | expansion-parameter |
14571     * rule-broken-links | generate-xml | generate-json | generate-turtle |
14572     * html-template.
14573     */
14574    @Child(name = "code", type = { StringType.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
14575    @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.")
14576    protected StringType code;
14577
14578    /**
14579     * Value for named type.
14580     */
14581    @Child(name = "value", type = { StringType.class }, order = 2, min = 1, max = 1, modifier = false, summary = false)
14582    @Description(shortDefinition = "Value for named type", formalDefinition = "Value for named type.")
14583    protected StringType value;
14584
14585    private static final long serialVersionUID = 1188999138L;
14586
14587    /**
14588     * Constructor
14589     */
14590    public ImplementationGuideDefinitionParameterComponent() {
14591      super();
14592    }
14593
14594    /**
14595     * Constructor
14596     */
14597    public ImplementationGuideDefinitionParameterComponent(StringType code, StringType value) {
14598      super();
14599      this.code = code;
14600      this.value = value;
14601    }
14602
14603    /**
14604     * @return {@link #code} (apply | path-resource | path-pages | path-tx-cache |
14605     *         expansion-parameter | rule-broken-links | generate-xml |
14606     *         generate-json | generate-turtle | html-template.). This is the
14607     *         underlying object with id, value and extensions. The accessor
14608     *         "getCode" gives direct access to the value
14609     */
14610    public StringType getCodeElement() {
14611      if (this.code == null)
14612        if (Configuration.errorOnAutoCreate())
14613          throw new Error("Attempt to auto-create ImplementationGuideDefinitionParameterComponent.code");
14614        else if (Configuration.doAutoCreate())
14615          this.code = new StringType(); // bb
14616      return this.code;
14617    }
14618
14619    public boolean hasCodeElement() {
14620      return this.code != null && !this.code.isEmpty();
14621    }
14622
14623    public boolean hasCode() {
14624      return this.code != null && !this.code.isEmpty();
14625    }
14626
14627    /**
14628     * @param value {@link #code} (apply | path-resource | path-pages |
14629     *              path-tx-cache | expansion-parameter | rule-broken-links |
14630     *              generate-xml | generate-json | generate-turtle |
14631     *              html-template.). This is the underlying object with id, value
14632     *              and extensions. The accessor "getCode" gives direct access to
14633     *              the value
14634     */
14635    public ImplementationGuideDefinitionParameterComponent setCodeElement(StringType value) {
14636      this.code = value;
14637      return this;
14638    }
14639
14640    /**
14641     * @return apply | path-resource | path-pages | path-tx-cache |
14642     *         expansion-parameter | rule-broken-links | generate-xml |
14643     *         generate-json | generate-turtle | html-template.
14644     */
14645    public String getCode() {
14646      return this.code == null ? null : this.code.getValue();
14647    }
14648
14649    /**
14650     * @param value apply | path-resource | path-pages | path-tx-cache |
14651     *              expansion-parameter | rule-broken-links | generate-xml |
14652     *              generate-json | generate-turtle | html-template.
14653     */
14654    public ImplementationGuideDefinitionParameterComponent setCode(String value) {
14655      if (this.code == null)
14656        this.code = new StringType();
14657      this.code.setValue(value);
14658      return this;
14659    }
14660
14661    /**
14662     * @return {@link #value} (Value for named type.). This is the underlying object
14663     *         with id, value and extensions. The accessor "getValue" gives direct
14664     *         access to the value
14665     */
14666    public StringType getValueElement() {
14667      if (this.value == null)
14668        if (Configuration.errorOnAutoCreate())
14669          throw new Error("Attempt to auto-create ImplementationGuideDefinitionParameterComponent.value");
14670        else if (Configuration.doAutoCreate())
14671          this.value = new StringType(); // bb
14672      return this.value;
14673    }
14674
14675    public boolean hasValueElement() {
14676      return this.value != null && !this.value.isEmpty();
14677    }
14678
14679    public boolean hasValue() {
14680      return this.value != null && !this.value.isEmpty();
14681    }
14682
14683    /**
14684     * @param value {@link #value} (Value for named type.). This is the underlying
14685     *              object with id, value and extensions. The accessor "getValue"
14686     *              gives direct access to the value
14687     */
14688    public ImplementationGuideDefinitionParameterComponent setValueElement(StringType value) {
14689      this.value = value;
14690      return this;
14691    }
14692
14693    /**
14694     * @return Value for named type.
14695     */
14696    public String getValue() {
14697      return this.value == null ? null : this.value.getValue();
14698    }
14699
14700    /**
14701     * @param value Value for named type.
14702     */
14703    public ImplementationGuideDefinitionParameterComponent setValue(String value) {
14704      if (this.value == null)
14705        this.value = new StringType();
14706      this.value.setValue(value);
14707      return this;
14708    }
14709
14710    protected void listChildren(List<Property> children) {
14711      super.listChildren(children);
14712      children.add(new Property("code", "string",
14713          "apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.",
14714          0, 1, code));
14715      children.add(new Property("value", "string", "Value for named type.", 0, 1, value));
14716    }
14717
14718    @Override
14719    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
14720      switch (_hash) {
14721      case 3059181:
14722        /* code */ return new Property("code", "string",
14723            "apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.",
14724            0, 1, code);
14725      case 111972721:
14726        /* value */ return new Property("value", "string", "Value for named type.", 0, 1, value);
14727      default:
14728        return super.getNamedProperty(_hash, _name, _checkValid);
14729      }
14730
14731    }
14732
14733    @Override
14734    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
14735      switch (hash) {
14736      case 3059181:
14737        /* code */ return this.code == null ? new Base[0] : new Base[] { this.code }; // StringType
14738      case 111972721:
14739        /* value */ return this.value == null ? new Base[0] : new Base[] { this.value }; // StringType
14740      default:
14741        return super.getProperty(hash, name, checkValid);
14742      }
14743
14744    }
14745
14746    @Override
14747    public Base setProperty(int hash, String name, Base value) throws FHIRException {
14748      switch (hash) {
14749      case 3059181: // code
14750        this.code = castToString(value); // StringType
14751        return value;
14752      case 111972721: // value
14753        this.value = castToString(value); // StringType
14754        return value;
14755      default:
14756        return super.setProperty(hash, name, value);
14757      }
14758
14759    }
14760
14761    @Override
14762    public Base setProperty(String name, Base value) throws FHIRException {
14763      if (name.equals("code")) {
14764        this.code = castToString(value); // StringType
14765      } else if (name.equals("value")) {
14766        this.value = castToString(value); // StringType
14767      } else
14768        return super.setProperty(name, value);
14769      return value;
14770    }
14771
14772  @Override
14773  public void removeChild(String name, Base value) throws FHIRException {
14774      if (name.equals("code")) {
14775        this.code = null;
14776      } else if (name.equals("value")) {
14777        this.value = null;
14778      } else
14779        super.removeChild(name, value);
14780      
14781    }
14782
14783    @Override
14784    public Base makeProperty(int hash, String name) throws FHIRException {
14785      switch (hash) {
14786      case 3059181:
14787        return getCodeElement();
14788      case 111972721:
14789        return getValueElement();
14790      default:
14791        return super.makeProperty(hash, name);
14792      }
14793
14794    }
14795
14796    @Override
14797    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
14798      switch (hash) {
14799      case 3059181:
14800        /* code */ return new String[] { "string" };
14801      case 111972721:
14802        /* value */ return new String[] { "string" };
14803      default:
14804        return super.getTypesForProperty(hash, name);
14805      }
14806
14807    }
14808
14809    @Override
14810    public Base addChild(String name) throws FHIRException {
14811      if (name.equals("code")) {
14812        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.code");
14813      } else if (name.equals("value")) {
14814        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.value");
14815      } else
14816        return super.addChild(name);
14817    }
14818
14819    public ImplementationGuideDefinitionParameterComponent copy() {
14820      ImplementationGuideDefinitionParameterComponent dst = new ImplementationGuideDefinitionParameterComponent();
14821      copyValues(dst);
14822      return dst;
14823    }
14824
14825    public void copyValues(ImplementationGuideDefinitionParameterComponent dst) {
14826      super.copyValues(dst);
14827      dst.code = code == null ? null : code.copy();
14828      dst.value = value == null ? null : value.copy();
14829    }
14830
14831    @Override
14832    public boolean equalsDeep(Base other_) {
14833      if (!super.equalsDeep(other_))
14834        return false;
14835      if (!(other_ instanceof ImplementationGuideDefinitionParameterComponent))
14836        return false;
14837      ImplementationGuideDefinitionParameterComponent o = (ImplementationGuideDefinitionParameterComponent) other_;
14838      return compareDeep(code, o.code, true) && compareDeep(value, o.value, true);
14839    }
14840
14841    @Override
14842    public boolean equalsShallow(Base other_) {
14843      if (!super.equalsShallow(other_))
14844        return false;
14845      if (!(other_ instanceof ImplementationGuideDefinitionParameterComponent))
14846        return false;
14847      ImplementationGuideDefinitionParameterComponent o = (ImplementationGuideDefinitionParameterComponent) other_;
14848      return compareValues(code, o.code, true) && compareValues(value, o.value, true);
14849    }
14850
14851    public boolean isEmpty() {
14852      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, value);
14853    }
14854
14855    public String fhirType() {
14856      return "ImplementationGuide.definition.parameter";
14857
14858    }
14859
14860  }
14861
14862  @Block()
14863  public static class ImplementationGuideDefinitionTemplateComponent extends BackboneElement
14864      implements IBaseBackboneElement {
14865    /**
14866     * Type of template specified.
14867     */
14868    @Child(name = "code", type = { CodeType.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
14869    @Description(shortDefinition = "Type of template specified", formalDefinition = "Type of template specified.")
14870    protected CodeType code;
14871
14872    /**
14873     * The source location for the template.
14874     */
14875    @Child(name = "source", type = { StringType.class }, order = 2, min = 1, max = 1, modifier = false, summary = false)
14876    @Description(shortDefinition = "The source location for the template", formalDefinition = "The source location for the template.")
14877    protected StringType source;
14878
14879    /**
14880     * The scope in which the template applies.
14881     */
14882    @Child(name = "scope", type = { StringType.class }, order = 3, min = 0, max = 1, modifier = false, summary = false)
14883    @Description(shortDefinition = "The scope in which the template applies", formalDefinition = "The scope in which the template applies.")
14884    protected StringType scope;
14885
14886    private static final long serialVersionUID = 923832457L;
14887
14888    /**
14889     * Constructor
14890     */
14891    public ImplementationGuideDefinitionTemplateComponent() {
14892      super();
14893    }
14894
14895    /**
14896     * Constructor
14897     */
14898    public ImplementationGuideDefinitionTemplateComponent(CodeType code, StringType source) {
14899      super();
14900      this.code = code;
14901      this.source = source;
14902    }
14903
14904    /**
14905     * @return {@link #code} (Type of template specified.). This is the underlying
14906     *         object with id, value and extensions. The accessor "getCode" gives
14907     *         direct access to the value
14908     */
14909    public CodeType getCodeElement() {
14910      if (this.code == null)
14911        if (Configuration.errorOnAutoCreate())
14912          throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.code");
14913        else if (Configuration.doAutoCreate())
14914          this.code = new CodeType(); // bb
14915      return this.code;
14916    }
14917
14918    public boolean hasCodeElement() {
14919      return this.code != null && !this.code.isEmpty();
14920    }
14921
14922    public boolean hasCode() {
14923      return this.code != null && !this.code.isEmpty();
14924    }
14925
14926    /**
14927     * @param value {@link #code} (Type of template specified.). This is the
14928     *              underlying object with id, value and extensions. The accessor
14929     *              "getCode" gives direct access to the value
14930     */
14931    public ImplementationGuideDefinitionTemplateComponent setCodeElement(CodeType value) {
14932      this.code = value;
14933      return this;
14934    }
14935
14936    /**
14937     * @return Type of template specified.
14938     */
14939    public String getCode() {
14940      return this.code == null ? null : this.code.getValue();
14941    }
14942
14943    /**
14944     * @param value Type of template specified.
14945     */
14946    public ImplementationGuideDefinitionTemplateComponent setCode(String value) {
14947      if (this.code == null)
14948        this.code = new CodeType();
14949      this.code.setValue(value);
14950      return this;
14951    }
14952
14953    /**
14954     * @return {@link #source} (The source location for the template.). This is the
14955     *         underlying object with id, value and extensions. The accessor
14956     *         "getSource" gives direct access to the value
14957     */
14958    public StringType getSourceElement() {
14959      if (this.source == null)
14960        if (Configuration.errorOnAutoCreate())
14961          throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.source");
14962        else if (Configuration.doAutoCreate())
14963          this.source = new StringType(); // bb
14964      return this.source;
14965    }
14966
14967    public boolean hasSourceElement() {
14968      return this.source != null && !this.source.isEmpty();
14969    }
14970
14971    public boolean hasSource() {
14972      return this.source != null && !this.source.isEmpty();
14973    }
14974
14975    /**
14976     * @param value {@link #source} (The source location for the template.). This is
14977     *              the underlying object with id, value and extensions. The
14978     *              accessor "getSource" gives direct access to the value
14979     */
14980    public ImplementationGuideDefinitionTemplateComponent setSourceElement(StringType value) {
14981      this.source = value;
14982      return this;
14983    }
14984
14985    /**
14986     * @return The source location for the template.
14987     */
14988    public String getSource() {
14989      return this.source == null ? null : this.source.getValue();
14990    }
14991
14992    /**
14993     * @param value The source location for the template.
14994     */
14995    public ImplementationGuideDefinitionTemplateComponent setSource(String value) {
14996      if (this.source == null)
14997        this.source = new StringType();
14998      this.source.setValue(value);
14999      return this;
15000    }
15001
15002    /**
15003     * @return {@link #scope} (The scope in which the template applies.). This is
15004     *         the underlying object with id, value and extensions. The accessor
15005     *         "getScope" gives direct access to the value
15006     */
15007    public StringType getScopeElement() {
15008      if (this.scope == null)
15009        if (Configuration.errorOnAutoCreate())
15010          throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.scope");
15011        else if (Configuration.doAutoCreate())
15012          this.scope = new StringType(); // bb
15013      return this.scope;
15014    }
15015
15016    public boolean hasScopeElement() {
15017      return this.scope != null && !this.scope.isEmpty();
15018    }
15019
15020    public boolean hasScope() {
15021      return this.scope != null && !this.scope.isEmpty();
15022    }
15023
15024    /**
15025     * @param value {@link #scope} (The scope in which the template applies.). This
15026     *              is the underlying object with id, value and extensions. The
15027     *              accessor "getScope" gives direct access to the value
15028     */
15029    public ImplementationGuideDefinitionTemplateComponent setScopeElement(StringType value) {
15030      this.scope = value;
15031      return this;
15032    }
15033
15034    /**
15035     * @return The scope in which the template applies.
15036     */
15037    public String getScope() {
15038      return this.scope == null ? null : this.scope.getValue();
15039    }
15040
15041    /**
15042     * @param value The scope in which the template applies.
15043     */
15044    public ImplementationGuideDefinitionTemplateComponent setScope(String value) {
15045      if (Utilities.noString(value))
15046        this.scope = null;
15047      else {
15048        if (this.scope == null)
15049          this.scope = new StringType();
15050        this.scope.setValue(value);
15051      }
15052      return this;
15053    }
15054
15055    protected void listChildren(List<Property> children) {
15056      super.listChildren(children);
15057      children.add(new Property("code", "code", "Type of template specified.", 0, 1, code));
15058      children.add(new Property("source", "string", "The source location for the template.", 0, 1, source));
15059      children.add(new Property("scope", "string", "The scope in which the template applies.", 0, 1, scope));
15060    }
15061
15062    @Override
15063    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
15064      switch (_hash) {
15065      case 3059181:
15066        /* code */ return new Property("code", "code", "Type of template specified.", 0, 1, code);
15067      case -896505829:
15068        /* source */ return new Property("source", "string", "The source location for the template.", 0, 1, source);
15069      case 109264468:
15070        /* scope */ return new Property("scope", "string", "The scope in which the template applies.", 0, 1, scope);
15071      default:
15072        return super.getNamedProperty(_hash, _name, _checkValid);
15073      }
15074
15075    }
15076
15077    @Override
15078    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
15079      switch (hash) {
15080      case 3059181:
15081        /* code */ return this.code == null ? new Base[0] : new Base[] { this.code }; // CodeType
15082      case -896505829:
15083        /* source */ return this.source == null ? new Base[0] : new Base[] { this.source }; // StringType
15084      case 109264468:
15085        /* scope */ return this.scope == null ? new Base[0] : new Base[] { this.scope }; // StringType
15086      default:
15087        return super.getProperty(hash, name, checkValid);
15088      }
15089
15090    }
15091
15092    @Override
15093    public Base setProperty(int hash, String name, Base value) throws FHIRException {
15094      switch (hash) {
15095      case 3059181: // code
15096        this.code = castToCode(value); // CodeType
15097        return value;
15098      case -896505829: // source
15099        this.source = castToString(value); // StringType
15100        return value;
15101      case 109264468: // scope
15102        this.scope = castToString(value); // StringType
15103        return value;
15104      default:
15105        return super.setProperty(hash, name, value);
15106      }
15107
15108    }
15109
15110    @Override
15111    public Base setProperty(String name, Base value) throws FHIRException {
15112      if (name.equals("code")) {
15113        this.code = castToCode(value); // CodeType
15114      } else if (name.equals("source")) {
15115        this.source = castToString(value); // StringType
15116      } else if (name.equals("scope")) {
15117        this.scope = castToString(value); // StringType
15118      } else
15119        return super.setProperty(name, value);
15120      return value;
15121    }
15122
15123  @Override
15124  public void removeChild(String name, Base value) throws FHIRException {
15125      if (name.equals("code")) {
15126        this.code = null;
15127      } else if (name.equals("source")) {
15128        this.source = null;
15129      } else if (name.equals("scope")) {
15130        this.scope = null;
15131      } else
15132        super.removeChild(name, value);
15133      
15134    }
15135
15136    @Override
15137    public Base makeProperty(int hash, String name) throws FHIRException {
15138      switch (hash) {
15139      case 3059181:
15140        return getCodeElement();
15141      case -896505829:
15142        return getSourceElement();
15143      case 109264468:
15144        return getScopeElement();
15145      default:
15146        return super.makeProperty(hash, name);
15147      }
15148
15149    }
15150
15151    @Override
15152    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
15153      switch (hash) {
15154      case 3059181:
15155        /* code */ return new String[] { "code" };
15156      case -896505829:
15157        /* source */ return new String[] { "string" };
15158      case 109264468:
15159        /* scope */ return new String[] { "string" };
15160      default:
15161        return super.getTypesForProperty(hash, name);
15162      }
15163
15164    }
15165
15166    @Override
15167    public Base addChild(String name) throws FHIRException {
15168      if (name.equals("code")) {
15169        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.code");
15170      } else if (name.equals("source")) {
15171        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.source");
15172      } else if (name.equals("scope")) {
15173        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.scope");
15174      } else
15175        return super.addChild(name);
15176    }
15177
15178    public ImplementationGuideDefinitionTemplateComponent copy() {
15179      ImplementationGuideDefinitionTemplateComponent dst = new ImplementationGuideDefinitionTemplateComponent();
15180      copyValues(dst);
15181      return dst;
15182    }
15183
15184    public void copyValues(ImplementationGuideDefinitionTemplateComponent dst) {
15185      super.copyValues(dst);
15186      dst.code = code == null ? null : code.copy();
15187      dst.source = source == null ? null : source.copy();
15188      dst.scope = scope == null ? null : scope.copy();
15189    }
15190
15191    @Override
15192    public boolean equalsDeep(Base other_) {
15193      if (!super.equalsDeep(other_))
15194        return false;
15195      if (!(other_ instanceof ImplementationGuideDefinitionTemplateComponent))
15196        return false;
15197      ImplementationGuideDefinitionTemplateComponent o = (ImplementationGuideDefinitionTemplateComponent) other_;
15198      return compareDeep(code, o.code, true) && compareDeep(source, o.source, true)
15199          && compareDeep(scope, o.scope, true);
15200    }
15201
15202    @Override
15203    public boolean equalsShallow(Base other_) {
15204      if (!super.equalsShallow(other_))
15205        return false;
15206      if (!(other_ instanceof ImplementationGuideDefinitionTemplateComponent))
15207        return false;
15208      ImplementationGuideDefinitionTemplateComponent o = (ImplementationGuideDefinitionTemplateComponent) other_;
15209      return compareValues(code, o.code, true) && compareValues(source, o.source, true)
15210          && compareValues(scope, o.scope, true);
15211    }
15212
15213    public boolean isEmpty() {
15214      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, source, scope);
15215    }
15216
15217    public String fhirType() {
15218      return "ImplementationGuide.definition.template";
15219
15220    }
15221
15222  }
15223
15224  @Block()
15225  public static class ImplementationGuideManifestComponent extends BackboneElement implements IBaseBackboneElement {
15226    /**
15227     * A pointer to official web page, PDF or other rendering of the implementation
15228     * guide.
15229     */
15230    @Child(name = "rendering", type = { UrlType.class }, order = 1, min = 0, max = 1, modifier = false, summary = true)
15231    @Description(shortDefinition = "Location of rendered implementation guide", formalDefinition = "A pointer to official web page, PDF or other rendering of the implementation guide.")
15232    protected UrlType rendering;
15233
15234    /**
15235     * A resource that is part of the implementation guide. Conformance resources
15236     * (value set, structure definition, capability statements etc.) are obvious
15237     * candidates for inclusion, but any kind of resource can be included as an
15238     * example resource.
15239     */
15240    @Child(name = "resource", type = {}, order = 2, min = 1, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
15241    @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.")
15242    protected List<ManifestResourceComponent> resource;
15243
15244    /**
15245     * Information about a page within the IG.
15246     */
15247    @Child(name = "page", type = {}, order = 3, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
15248    @Description(shortDefinition = "HTML page within the parent IG", formalDefinition = "Information about a page within the IG.")
15249    protected List<ManifestPageComponent> page;
15250
15251    /**
15252     * Indicates a relative path to an image that exists within the IG.
15253     */
15254    @Child(name = "image", type = {
15255        StringType.class }, order = 4, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
15256    @Description(shortDefinition = "Image within the IG", formalDefinition = "Indicates a relative path to an image that exists within the IG.")
15257    protected List<StringType> image;
15258
15259    /**
15260     * Indicates the relative path of an additional non-page, non-image file that is
15261     * part of the IG - e.g. zip, jar and similar files that could be the target of
15262     * a hyperlink in a derived IG.
15263     */
15264    @Child(name = "other", type = {
15265        StringType.class }, order = 5, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
15266    @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.")
15267    protected List<StringType> other;
15268
15269    private static final long serialVersionUID = 1881327712L;
15270
15271    /**
15272     * Constructor
15273     */
15274    public ImplementationGuideManifestComponent() {
15275      super();
15276    }
15277
15278    /**
15279     * @return {@link #rendering} (A pointer to official web page, PDF or other
15280     *         rendering of the implementation guide.). This is the underlying
15281     *         object with id, value and extensions. The accessor "getRendering"
15282     *         gives direct access to the value
15283     */
15284    public UrlType getRenderingElement() {
15285      if (this.rendering == null)
15286        if (Configuration.errorOnAutoCreate())
15287          throw new Error("Attempt to auto-create ImplementationGuideManifestComponent.rendering");
15288        else if (Configuration.doAutoCreate())
15289          this.rendering = new UrlType(); // bb
15290      return this.rendering;
15291    }
15292
15293    public boolean hasRenderingElement() {
15294      return this.rendering != null && !this.rendering.isEmpty();
15295    }
15296
15297    public boolean hasRendering() {
15298      return this.rendering != null && !this.rendering.isEmpty();
15299    }
15300
15301    /**
15302     * @param value {@link #rendering} (A pointer to official web page, PDF or other
15303     *              rendering of the implementation guide.). This is the underlying
15304     *              object with id, value and extensions. The accessor
15305     *              "getRendering" gives direct access to the value
15306     */
15307    public ImplementationGuideManifestComponent setRenderingElement(UrlType value) {
15308      this.rendering = value;
15309      return this;
15310    }
15311
15312    /**
15313     * @return A pointer to official web page, PDF or other rendering of the
15314     *         implementation guide.
15315     */
15316    public String getRendering() {
15317      return this.rendering == null ? null : this.rendering.getValue();
15318    }
15319
15320    /**
15321     * @param value A pointer to official web page, PDF or other rendering of the
15322     *              implementation guide.
15323     */
15324    public ImplementationGuideManifestComponent setRendering(String value) {
15325      if (Utilities.noString(value))
15326        this.rendering = null;
15327      else {
15328        if (this.rendering == null)
15329          this.rendering = new UrlType();
15330        this.rendering.setValue(value);
15331      }
15332      return this;
15333    }
15334
15335    /**
15336     * @return {@link #resource} (A resource that is part of the implementation
15337     *         guide. Conformance resources (value set, structure definition,
15338     *         capability statements etc.) are obvious candidates for inclusion, but
15339     *         any kind of resource can be included as an example resource.)
15340     */
15341    public List<ManifestResourceComponent> getResource() {
15342      if (this.resource == null)
15343        this.resource = new ArrayList<ManifestResourceComponent>();
15344      return this.resource;
15345    }
15346
15347    /**
15348     * @return Returns a reference to <code>this</code> for easy method chaining
15349     */
15350    public ImplementationGuideManifestComponent setResource(List<ManifestResourceComponent> theResource) {
15351      this.resource = theResource;
15352      return this;
15353    }
15354
15355    public boolean hasResource() {
15356      if (this.resource == null)
15357        return false;
15358      for (ManifestResourceComponent item : this.resource)
15359        if (!item.isEmpty())
15360          return true;
15361      return false;
15362    }
15363
15364    public ManifestResourceComponent addResource() { // 3
15365      ManifestResourceComponent t = new ManifestResourceComponent();
15366      if (this.resource == null)
15367        this.resource = new ArrayList<ManifestResourceComponent>();
15368      this.resource.add(t);
15369      return t;
15370    }
15371
15372    public ImplementationGuideManifestComponent addResource(ManifestResourceComponent t) { // 3
15373      if (t == null)
15374        return this;
15375      if (this.resource == null)
15376        this.resource = new ArrayList<ManifestResourceComponent>();
15377      this.resource.add(t);
15378      return this;
15379    }
15380
15381    /**
15382     * @return The first repetition of repeating field {@link #resource}, creating
15383     *         it if it does not already exist
15384     */
15385    public ManifestResourceComponent getResourceFirstRep() {
15386      if (getResource().isEmpty()) {
15387        addResource();
15388      }
15389      return getResource().get(0);
15390    }
15391
15392    /**
15393     * @return {@link #page} (Information about a page within the IG.)
15394     */
15395    public List<ManifestPageComponent> getPage() {
15396      if (this.page == null)
15397        this.page = new ArrayList<ManifestPageComponent>();
15398      return this.page;
15399    }
15400
15401    /**
15402     * @return Returns a reference to <code>this</code> for easy method chaining
15403     */
15404    public ImplementationGuideManifestComponent setPage(List<ManifestPageComponent> thePage) {
15405      this.page = thePage;
15406      return this;
15407    }
15408
15409    public boolean hasPage() {
15410      if (this.page == null)
15411        return false;
15412      for (ManifestPageComponent item : this.page)
15413        if (!item.isEmpty())
15414          return true;
15415      return false;
15416    }
15417
15418    public ManifestPageComponent addPage() { // 3
15419      ManifestPageComponent t = new ManifestPageComponent();
15420      if (this.page == null)
15421        this.page = new ArrayList<ManifestPageComponent>();
15422      this.page.add(t);
15423      return t;
15424    }
15425
15426    public ImplementationGuideManifestComponent addPage(ManifestPageComponent t) { // 3
15427      if (t == null)
15428        return this;
15429      if (this.page == null)
15430        this.page = new ArrayList<ManifestPageComponent>();
15431      this.page.add(t);
15432      return this;
15433    }
15434
15435    /**
15436     * @return The first repetition of repeating field {@link #page}, creating it if
15437     *         it does not already exist
15438     */
15439    public ManifestPageComponent getPageFirstRep() {
15440      if (getPage().isEmpty()) {
15441        addPage();
15442      }
15443      return getPage().get(0);
15444    }
15445
15446    /**
15447     * @return {@link #image} (Indicates a relative path to an image that exists
15448     *         within the IG.)
15449     */
15450    public List<StringType> getImage() {
15451      if (this.image == null)
15452        this.image = new ArrayList<StringType>();
15453      return this.image;
15454    }
15455
15456    /**
15457     * @return Returns a reference to <code>this</code> for easy method chaining
15458     */
15459    public ImplementationGuideManifestComponent setImage(List<StringType> theImage) {
15460      this.image = theImage;
15461      return this;
15462    }
15463
15464    public boolean hasImage() {
15465      if (this.image == null)
15466        return false;
15467      for (StringType item : this.image)
15468        if (!item.isEmpty())
15469          return true;
15470      return false;
15471    }
15472
15473    /**
15474     * @return {@link #image} (Indicates a relative path to an image that exists
15475     *         within the IG.)
15476     */
15477    public StringType addImageElement() {// 2
15478      StringType t = new StringType();
15479      if (this.image == null)
15480        this.image = new ArrayList<StringType>();
15481      this.image.add(t);
15482      return t;
15483    }
15484
15485    /**
15486     * @param value {@link #image} (Indicates a relative path to an image that
15487     *              exists within the IG.)
15488     */
15489    public ImplementationGuideManifestComponent addImage(String value) { // 1
15490      StringType t = new StringType();
15491      t.setValue(value);
15492      if (this.image == null)
15493        this.image = new ArrayList<StringType>();
15494      this.image.add(t);
15495      return this;
15496    }
15497
15498    /**
15499     * @param value {@link #image} (Indicates a relative path to an image that
15500     *              exists within the IG.)
15501     */
15502    public boolean hasImage(String value) {
15503      if (this.image == null)
15504        return false;
15505      for (StringType v : this.image)
15506        if (v.getValue().equals(value)) // string
15507          return true;
15508      return false;
15509    }
15510
15511    /**
15512     * @return {@link #other} (Indicates the relative path of an additional
15513     *         non-page, non-image file that is part of the IG - e.g. zip, jar and
15514     *         similar files that could be the target of a hyperlink in a derived
15515     *         IG.)
15516     */
15517    public List<StringType> getOther() {
15518      if (this.other == null)
15519        this.other = new ArrayList<StringType>();
15520      return this.other;
15521    }
15522
15523    /**
15524     * @return Returns a reference to <code>this</code> for easy method chaining
15525     */
15526    public ImplementationGuideManifestComponent setOther(List<StringType> theOther) {
15527      this.other = theOther;
15528      return this;
15529    }
15530
15531    public boolean hasOther() {
15532      if (this.other == null)
15533        return false;
15534      for (StringType item : this.other)
15535        if (!item.isEmpty())
15536          return true;
15537      return false;
15538    }
15539
15540    /**
15541     * @return {@link #other} (Indicates the relative path of an additional
15542     *         non-page, non-image file that is part of the IG - e.g. zip, jar and
15543     *         similar files that could be the target of a hyperlink in a derived
15544     *         IG.)
15545     */
15546    public StringType addOtherElement() {// 2
15547      StringType t = new StringType();
15548      if (this.other == null)
15549        this.other = new ArrayList<StringType>();
15550      this.other.add(t);
15551      return t;
15552    }
15553
15554    /**
15555     * @param value {@link #other} (Indicates the relative path of an additional
15556     *              non-page, non-image file that is part of the IG - e.g. zip, jar
15557     *              and similar files that could be the target of a hyperlink in a
15558     *              derived IG.)
15559     */
15560    public ImplementationGuideManifestComponent addOther(String value) { // 1
15561      StringType t = new StringType();
15562      t.setValue(value);
15563      if (this.other == null)
15564        this.other = new ArrayList<StringType>();
15565      this.other.add(t);
15566      return this;
15567    }
15568
15569    /**
15570     * @param value {@link #other} (Indicates the relative path of an additional
15571     *              non-page, non-image file that is part of the IG - e.g. zip, jar
15572     *              and similar files that could be the target of a hyperlink in a
15573     *              derived IG.)
15574     */
15575    public boolean hasOther(String value) {
15576      if (this.other == null)
15577        return false;
15578      for (StringType v : this.other)
15579        if (v.getValue().equals(value)) // string
15580          return true;
15581      return false;
15582    }
15583
15584    protected void listChildren(List<Property> children) {
15585      super.listChildren(children);
15586      children.add(new Property("rendering", "url",
15587          "A pointer to official web page, PDF or other rendering of the implementation guide.", 0, 1, rendering));
15588      children.add(new Property("resource", "",
15589          "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.",
15590          0, java.lang.Integer.MAX_VALUE, resource));
15591      children.add(
15592          new Property("page", "", "Information about a page within the IG.", 0, java.lang.Integer.MAX_VALUE, page));
15593      children.add(new Property("image", "string", "Indicates a relative path to an image that exists within the IG.",
15594          0, java.lang.Integer.MAX_VALUE, image));
15595      children.add(new Property("other", "string",
15596          "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.",
15597          0, java.lang.Integer.MAX_VALUE, other));
15598    }
15599
15600    @Override
15601    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
15602      switch (_hash) {
15603      case 1839654540:
15604        /* rendering */ return new Property("rendering", "url",
15605            "A pointer to official web page, PDF or other rendering of the implementation guide.", 0, 1, rendering);
15606      case -341064690:
15607        /* resource */ return new Property("resource", "",
15608            "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.",
15609            0, java.lang.Integer.MAX_VALUE, resource);
15610      case 3433103:
15611        /* page */ return new Property("page", "", "Information about a page within the IG.", 0,
15612            java.lang.Integer.MAX_VALUE, page);
15613      case 100313435:
15614        /* image */ return new Property("image", "string",
15615            "Indicates a relative path to an image that exists within the IG.", 0, java.lang.Integer.MAX_VALUE, image);
15616      case 106069776:
15617        /* other */ return new Property("other", "string",
15618            "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.",
15619            0, java.lang.Integer.MAX_VALUE, other);
15620      default:
15621        return super.getNamedProperty(_hash, _name, _checkValid);
15622      }
15623
15624    }
15625
15626    @Override
15627    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
15628      switch (hash) {
15629      case 1839654540:
15630        /* rendering */ return this.rendering == null ? new Base[0] : new Base[] { this.rendering }; // UrlType
15631      case -341064690:
15632        /* resource */ return this.resource == null ? new Base[0]
15633            : this.resource.toArray(new Base[this.resource.size()]); // ManifestResourceComponent
15634      case 3433103:
15635        /* page */ return this.page == null ? new Base[0] : this.page.toArray(new Base[this.page.size()]); // ManifestPageComponent
15636      case 100313435:
15637        /* image */ return this.image == null ? new Base[0] : this.image.toArray(new Base[this.image.size()]); // StringType
15638      case 106069776:
15639        /* other */ return this.other == null ? new Base[0] : this.other.toArray(new Base[this.other.size()]); // StringType
15640      default:
15641        return super.getProperty(hash, name, checkValid);
15642      }
15643
15644    }
15645
15646    @Override
15647    public Base setProperty(int hash, String name, Base value) throws FHIRException {
15648      switch (hash) {
15649      case 1839654540: // rendering
15650        this.rendering = castToUrl(value); // UrlType
15651        return value;
15652      case -341064690: // resource
15653        this.getResource().add((ManifestResourceComponent) value); // ManifestResourceComponent
15654        return value;
15655      case 3433103: // page
15656        this.getPage().add((ManifestPageComponent) value); // ManifestPageComponent
15657        return value;
15658      case 100313435: // image
15659        this.getImage().add(castToString(value)); // StringType
15660        return value;
15661      case 106069776: // other
15662        this.getOther().add(castToString(value)); // StringType
15663        return value;
15664      default:
15665        return super.setProperty(hash, name, value);
15666      }
15667
15668    }
15669
15670    @Override
15671    public Base setProperty(String name, Base value) throws FHIRException {
15672      if (name.equals("rendering")) {
15673        this.rendering = castToUrl(value); // UrlType
15674      } else if (name.equals("resource")) {
15675        this.getResource().add((ManifestResourceComponent) value);
15676      } else if (name.equals("page")) {
15677        this.getPage().add((ManifestPageComponent) value);
15678      } else if (name.equals("image")) {
15679        this.getImage().add(castToString(value));
15680      } else if (name.equals("other")) {
15681        this.getOther().add(castToString(value));
15682      } else
15683        return super.setProperty(name, value);
15684      return value;
15685    }
15686
15687  @Override
15688  public void removeChild(String name, Base value) throws FHIRException {
15689      if (name.equals("rendering")) {
15690        this.rendering = null;
15691      } else if (name.equals("resource")) {
15692        this.getResource().remove((ManifestResourceComponent) value);
15693      } else if (name.equals("page")) {
15694        this.getPage().remove((ManifestPageComponent) value);
15695      } else if (name.equals("image")) {
15696        this.getImage().remove(castToString(value));
15697      } else if (name.equals("other")) {
15698        this.getOther().remove(castToString(value));
15699      } else
15700        super.removeChild(name, value);
15701      
15702    }
15703
15704    @Override
15705    public Base makeProperty(int hash, String name) throws FHIRException {
15706      switch (hash) {
15707      case 1839654540:
15708        return getRenderingElement();
15709      case -341064690:
15710        return addResource();
15711      case 3433103:
15712        return addPage();
15713      case 100313435:
15714        return addImageElement();
15715      case 106069776:
15716        return addOtherElement();
15717      default:
15718        return super.makeProperty(hash, name);
15719      }
15720
15721    }
15722
15723    @Override
15724    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
15725      switch (hash) {
15726      case 1839654540:
15727        /* rendering */ return new String[] { "url" };
15728      case -341064690:
15729        /* resource */ return new String[] {};
15730      case 3433103:
15731        /* page */ return new String[] {};
15732      case 100313435:
15733        /* image */ return new String[] { "string" };
15734      case 106069776:
15735        /* other */ return new String[] { "string" };
15736      default:
15737        return super.getTypesForProperty(hash, name);
15738      }
15739
15740    }
15741
15742    @Override
15743    public Base addChild(String name) throws FHIRException {
15744      if (name.equals("rendering")) {
15745        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.rendering");
15746      } else if (name.equals("resource")) {
15747        return addResource();
15748      } else if (name.equals("page")) {
15749        return addPage();
15750      } else if (name.equals("image")) {
15751        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.image");
15752      } else if (name.equals("other")) {
15753        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.other");
15754      } else
15755        return super.addChild(name);
15756    }
15757
15758    public ImplementationGuideManifestComponent copy() {
15759      ImplementationGuideManifestComponent dst = new ImplementationGuideManifestComponent();
15760      copyValues(dst);
15761      return dst;
15762    }
15763
15764    public void copyValues(ImplementationGuideManifestComponent dst) {
15765      super.copyValues(dst);
15766      dst.rendering = rendering == null ? null : rendering.copy();
15767      if (resource != null) {
15768        dst.resource = new ArrayList<ManifestResourceComponent>();
15769        for (ManifestResourceComponent i : resource)
15770          dst.resource.add(i.copy());
15771      }
15772      ;
15773      if (page != null) {
15774        dst.page = new ArrayList<ManifestPageComponent>();
15775        for (ManifestPageComponent i : page)
15776          dst.page.add(i.copy());
15777      }
15778      ;
15779      if (image != null) {
15780        dst.image = new ArrayList<StringType>();
15781        for (StringType i : image)
15782          dst.image.add(i.copy());
15783      }
15784      ;
15785      if (other != null) {
15786        dst.other = new ArrayList<StringType>();
15787        for (StringType i : other)
15788          dst.other.add(i.copy());
15789      }
15790      ;
15791    }
15792
15793    @Override
15794    public boolean equalsDeep(Base other_) {
15795      if (!super.equalsDeep(other_))
15796        return false;
15797      if (!(other_ instanceof ImplementationGuideManifestComponent))
15798        return false;
15799      ImplementationGuideManifestComponent o = (ImplementationGuideManifestComponent) other_;
15800      return compareDeep(rendering, o.rendering, true) && compareDeep(resource, o.resource, true)
15801          && compareDeep(page, o.page, true) && compareDeep(image, o.image, true) && compareDeep(other, o.other, true);
15802    }
15803
15804    @Override
15805    public boolean equalsShallow(Base other_) {
15806      if (!super.equalsShallow(other_))
15807        return false;
15808      if (!(other_ instanceof ImplementationGuideManifestComponent))
15809        return false;
15810      ImplementationGuideManifestComponent o = (ImplementationGuideManifestComponent) other_;
15811      return compareValues(rendering, o.rendering, true) && compareValues(image, o.image, true)
15812          && compareValues(other, o.other, true);
15813    }
15814
15815    public boolean isEmpty() {
15816      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(rendering, resource, page, image, other);
15817    }
15818
15819    public String fhirType() {
15820      return "ImplementationGuide.manifest";
15821
15822    }
15823
15824  }
15825
15826  @Block()
15827  public static class ManifestResourceComponent extends BackboneElement implements IBaseBackboneElement {
15828    /**
15829     * Where this resource is found.
15830     */
15831    @Child(name = "reference", type = {
15832        Reference.class }, order = 1, min = 1, max = 1, modifier = false, summary = true)
15833    @Description(shortDefinition = "Location of the resource", formalDefinition = "Where this resource is found.")
15834    protected Reference reference;
15835
15836    /**
15837     * The actual object that is the target of the reference (Where this resource is
15838     * found.)
15839     */
15840    protected Resource referenceTarget;
15841
15842    /**
15843     * If true or a reference, indicates the resource is an example instance. If a
15844     * reference is present, indicates that the example is an example of the
15845     * specified profile.
15846     */
15847    @Child(name = "example", type = { BooleanType.class,
15848        CanonicalType.class }, order = 2, min = 0, max = 1, modifier = false, summary = false)
15849    @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.")
15850    protected Type example;
15851
15852    /**
15853     * The relative path for primary page for this resource within the IG.
15854     */
15855    @Child(name = "relativePath", type = {
15856        UrlType.class }, order = 3, min = 0, max = 1, modifier = false, summary = false)
15857    @Description(shortDefinition = "Relative path for page in IG", formalDefinition = "The relative path for primary page for this resource within the IG.")
15858    protected UrlType relativePath;
15859
15860    private static final long serialVersionUID = 1150095716L;
15861
15862    /**
15863     * Constructor
15864     */
15865    public ManifestResourceComponent() {
15866      super();
15867    }
15868
15869    /**
15870     * Constructor
15871     */
15872    public ManifestResourceComponent(Reference reference) {
15873      super();
15874      this.reference = reference;
15875    }
15876
15877    /**
15878     * @return {@link #reference} (Where this resource is found.)
15879     */
15880    public Reference getReference() {
15881      if (this.reference == null)
15882        if (Configuration.errorOnAutoCreate())
15883          throw new Error("Attempt to auto-create ManifestResourceComponent.reference");
15884        else if (Configuration.doAutoCreate())
15885          this.reference = new Reference(); // cc
15886      return this.reference;
15887    }
15888
15889    public boolean hasReference() {
15890      return this.reference != null && !this.reference.isEmpty();
15891    }
15892
15893    /**
15894     * @param value {@link #reference} (Where this resource is found.)
15895     */
15896    public ManifestResourceComponent setReference(Reference value) {
15897      this.reference = value;
15898      return this;
15899    }
15900
15901    /**
15902     * @return {@link #reference} The actual object that is the target of the
15903     *         reference. The reference library doesn't populate this, but you can
15904     *         use it to hold the resource if you resolve it. (Where this resource
15905     *         is found.)
15906     */
15907    public Resource getReferenceTarget() {
15908      return this.referenceTarget;
15909    }
15910
15911    /**
15912     * @param value {@link #reference} The actual object that is the target of the
15913     *              reference. The reference library doesn't use these, but you can
15914     *              use it to hold the resource if you resolve it. (Where this
15915     *              resource is found.)
15916     */
15917    public ManifestResourceComponent setReferenceTarget(Resource value) {
15918      this.referenceTarget = value;
15919      return this;
15920    }
15921
15922    /**
15923     * @return {@link #example} (If true or a reference, indicates the resource is
15924     *         an example instance. If a reference is present, indicates that the
15925     *         example is an example of the specified profile.)
15926     */
15927    public Type getExample() {
15928      return this.example;
15929    }
15930
15931    /**
15932     * @return {@link #example} (If true or a reference, indicates the resource is
15933     *         an example instance. If a reference is present, indicates that the
15934     *         example is an example of the specified profile.)
15935     */
15936    public BooleanType getExampleBooleanType() throws FHIRException {
15937      if (this.example == null)
15938        this.example = new BooleanType();
15939      if (!(this.example instanceof BooleanType))
15940        throw new FHIRException("Type mismatch: the type BooleanType was expected, but "
15941            + this.example.getClass().getName() + " was encountered");
15942      return (BooleanType) this.example;
15943    }
15944
15945    public boolean hasExampleBooleanType() {
15946      return this != null && this.example instanceof BooleanType;
15947    }
15948
15949    /**
15950     * @return {@link #example} (If true or a reference, indicates the resource is
15951     *         an example instance. If a reference is present, indicates that the
15952     *         example is an example of the specified profile.)
15953     */
15954    public CanonicalType getExampleCanonicalType() throws FHIRException {
15955      if (this.example == null)
15956        this.example = new CanonicalType();
15957      if (!(this.example instanceof CanonicalType))
15958        throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "
15959            + this.example.getClass().getName() + " was encountered");
15960      return (CanonicalType) this.example;
15961    }
15962
15963    public boolean hasExampleCanonicalType() {
15964      return this != null && this.example instanceof CanonicalType;
15965    }
15966
15967    public boolean hasExample() {
15968      return this.example != null && !this.example.isEmpty();
15969    }
15970
15971    /**
15972     * @param value {@link #example} (If true or a reference, indicates the resource
15973     *              is an example instance. If a reference is present, indicates
15974     *              that the example is an example of the specified profile.)
15975     */
15976    public ManifestResourceComponent setExample(Type value) {
15977      if (value != null && !(value instanceof BooleanType || value instanceof CanonicalType))
15978        throw new Error("Not the right type for ImplementationGuide.manifest.resource.example[x]: " + value.fhirType());
15979      this.example = value;
15980      return this;
15981    }
15982
15983    /**
15984     * @return {@link #relativePath} (The relative path for primary page for this
15985     *         resource within the IG.). This is the underlying object with id,
15986     *         value and extensions. The accessor "getRelativePath" gives direct
15987     *         access to the value
15988     */
15989    public UrlType getRelativePathElement() {
15990      if (this.relativePath == null)
15991        if (Configuration.errorOnAutoCreate())
15992          throw new Error("Attempt to auto-create ManifestResourceComponent.relativePath");
15993        else if (Configuration.doAutoCreate())
15994          this.relativePath = new UrlType(); // bb
15995      return this.relativePath;
15996    }
15997
15998    public boolean hasRelativePathElement() {
15999      return this.relativePath != null && !this.relativePath.isEmpty();
16000    }
16001
16002    public boolean hasRelativePath() {
16003      return this.relativePath != null && !this.relativePath.isEmpty();
16004    }
16005
16006    /**
16007     * @param value {@link #relativePath} (The relative path for primary page for
16008     *              this resource within the IG.). This is the underlying object
16009     *              with id, value and extensions. The accessor "getRelativePath"
16010     *              gives direct access to the value
16011     */
16012    public ManifestResourceComponent setRelativePathElement(UrlType value) {
16013      this.relativePath = value;
16014      return this;
16015    }
16016
16017    /**
16018     * @return The relative path for primary page for this resource within the IG.
16019     */
16020    public String getRelativePath() {
16021      return this.relativePath == null ? null : this.relativePath.getValue();
16022    }
16023
16024    /**
16025     * @param value The relative path for primary page for this resource within the
16026     *              IG.
16027     */
16028    public ManifestResourceComponent setRelativePath(String value) {
16029      if (Utilities.noString(value))
16030        this.relativePath = null;
16031      else {
16032        if (this.relativePath == null)
16033          this.relativePath = new UrlType();
16034        this.relativePath.setValue(value);
16035      }
16036      return this;
16037    }
16038
16039    protected void listChildren(List<Property> children) {
16040      super.listChildren(children);
16041      children.add(new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference));
16042      children.add(new Property("example[x]", "boolean|canonical(StructureDefinition)",
16043          "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.",
16044          0, 1, example));
16045      children.add(new Property("relativePath", "url",
16046          "The relative path for primary page for this resource within the IG.", 0, 1, relativePath));
16047    }
16048
16049    @Override
16050    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
16051      switch (_hash) {
16052      case -925155509:
16053        /* reference */ return new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1,
16054            reference);
16055      case -2002328874:
16056        /* example[x] */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
16057            "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.",
16058            0, 1, example);
16059      case -1322970774:
16060        /* example */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
16061            "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.",
16062            0, 1, example);
16063      case 159803230:
16064        /* exampleBoolean */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
16065            "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.",
16066            0, 1, example);
16067      case 2016979626:
16068        /* exampleCanonical */ return new Property("example[x]", "boolean|canonical(StructureDefinition)",
16069            "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.",
16070            0, 1, example);
16071      case -70808303:
16072        /* relativePath */ return new Property("relativePath", "url",
16073            "The relative path for primary page for this resource within the IG.", 0, 1, relativePath);
16074      default:
16075        return super.getNamedProperty(_hash, _name, _checkValid);
16076      }
16077
16078    }
16079
16080    @Override
16081    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
16082      switch (hash) {
16083      case -925155509:
16084        /* reference */ return this.reference == null ? new Base[0] : new Base[] { this.reference }; // Reference
16085      case -1322970774:
16086        /* example */ return this.example == null ? new Base[0] : new Base[] { this.example }; // Type
16087      case -70808303:
16088        /* relativePath */ return this.relativePath == null ? new Base[0] : new Base[] { this.relativePath }; // UrlType
16089      default:
16090        return super.getProperty(hash, name, checkValid);
16091      }
16092
16093    }
16094
16095    @Override
16096    public Base setProperty(int hash, String name, Base value) throws FHIRException {
16097      switch (hash) {
16098      case -925155509: // reference
16099        this.reference = castToReference(value); // Reference
16100        return value;
16101      case -1322970774: // example
16102        this.example = castToType(value); // Type
16103        return value;
16104      case -70808303: // relativePath
16105        this.relativePath = castToUrl(value); // UrlType
16106        return value;
16107      default:
16108        return super.setProperty(hash, name, value);
16109      }
16110
16111    }
16112
16113    @Override
16114    public Base setProperty(String name, Base value) throws FHIRException {
16115      if (name.equals("reference")) {
16116        this.reference = castToReference(value); // Reference
16117      } else if (name.equals("example[x]")) {
16118        this.example = castToType(value); // Type
16119      } else if (name.equals("relativePath")) {
16120        this.relativePath = castToUrl(value); // UrlType
16121      } else
16122        return super.setProperty(name, value);
16123      return value;
16124    }
16125
16126  @Override
16127  public void removeChild(String name, Base value) throws FHIRException {
16128      if (name.equals("reference")) {
16129        this.reference = null;
16130      } else if (name.equals("example[x]")) {
16131        this.example = null;
16132      } else if (name.equals("relativePath")) {
16133        this.relativePath = null;
16134      } else
16135        super.removeChild(name, value);
16136      
16137    }
16138
16139    @Override
16140    public Base makeProperty(int hash, String name) throws FHIRException {
16141      switch (hash) {
16142      case -925155509:
16143        return getReference();
16144      case -2002328874:
16145        return getExample();
16146      case -1322970774:
16147        return getExample();
16148      case -70808303:
16149        return getRelativePathElement();
16150      default:
16151        return super.makeProperty(hash, name);
16152      }
16153
16154    }
16155
16156    @Override
16157    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
16158      switch (hash) {
16159      case -925155509:
16160        /* reference */ return new String[] { "Reference" };
16161      case -1322970774:
16162        /* example */ return new String[] { "boolean", "canonical" };
16163      case -70808303:
16164        /* relativePath */ return new String[] { "url" };
16165      default:
16166        return super.getTypesForProperty(hash, name);
16167      }
16168
16169    }
16170
16171    @Override
16172    public Base addChild(String name) throws FHIRException {
16173      if (name.equals("reference")) {
16174        this.reference = new Reference();
16175        return this.reference;
16176      } else if (name.equals("exampleBoolean")) {
16177        this.example = new BooleanType();
16178        return this.example;
16179      } else if (name.equals("exampleCanonical")) {
16180        this.example = new CanonicalType();
16181        return this.example;
16182      } else if (name.equals("relativePath")) {
16183        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.relativePath");
16184      } else
16185        return super.addChild(name);
16186    }
16187
16188    public ManifestResourceComponent copy() {
16189      ManifestResourceComponent dst = new ManifestResourceComponent();
16190      copyValues(dst);
16191      return dst;
16192    }
16193
16194    public void copyValues(ManifestResourceComponent dst) {
16195      super.copyValues(dst);
16196      dst.reference = reference == null ? null : reference.copy();
16197      dst.example = example == null ? null : example.copy();
16198      dst.relativePath = relativePath == null ? null : relativePath.copy();
16199    }
16200
16201    @Override
16202    public boolean equalsDeep(Base other_) {
16203      if (!super.equalsDeep(other_))
16204        return false;
16205      if (!(other_ instanceof ManifestResourceComponent))
16206        return false;
16207      ManifestResourceComponent o = (ManifestResourceComponent) other_;
16208      return compareDeep(reference, o.reference, true) && compareDeep(example, o.example, true)
16209          && compareDeep(relativePath, o.relativePath, true);
16210    }
16211
16212    @Override
16213    public boolean equalsShallow(Base other_) {
16214      if (!super.equalsShallow(other_))
16215        return false;
16216      if (!(other_ instanceof ManifestResourceComponent))
16217        return false;
16218      ManifestResourceComponent o = (ManifestResourceComponent) other_;
16219      return compareValues(relativePath, o.relativePath, true);
16220    }
16221
16222    public boolean isEmpty() {
16223      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, example, relativePath);
16224    }
16225
16226    public String fhirType() {
16227      return "ImplementationGuide.manifest.resource";
16228
16229    }
16230
16231  }
16232
16233  @Block()
16234  public static class ManifestPageComponent extends BackboneElement implements IBaseBackboneElement {
16235    /**
16236     * Relative path to the page.
16237     */
16238    @Child(name = "name", type = { StringType.class }, order = 1, min = 1, max = 1, modifier = false, summary = false)
16239    @Description(shortDefinition = "HTML page name", formalDefinition = "Relative path to the page.")
16240    protected StringType name;
16241
16242    /**
16243     * Label for the page intended for human display.
16244     */
16245    @Child(name = "title", type = { StringType.class }, order = 2, min = 0, max = 1, modifier = false, summary = false)
16246    @Description(shortDefinition = "Title of the page, for references", formalDefinition = "Label for the page intended for human display.")
16247    protected StringType title;
16248
16249    /**
16250     * The name of an anchor available on the page.
16251     */
16252    @Child(name = "anchor", type = {
16253        StringType.class }, order = 3, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false)
16254    @Description(shortDefinition = "Anchor available on the page", formalDefinition = "The name of an anchor available on the page.")
16255    protected List<StringType> anchor;
16256
16257    private static final long serialVersionUID = 1920576611L;
16258
16259    /**
16260     * Constructor
16261     */
16262    public ManifestPageComponent() {
16263      super();
16264    }
16265
16266    /**
16267     * Constructor
16268     */
16269    public ManifestPageComponent(StringType name) {
16270      super();
16271      this.name = name;
16272    }
16273
16274    /**
16275     * @return {@link #name} (Relative path to the page.). This is the underlying
16276     *         object with id, value and extensions. The accessor "getName" gives
16277     *         direct access to the value
16278     */
16279    public StringType getNameElement() {
16280      if (this.name == null)
16281        if (Configuration.errorOnAutoCreate())
16282          throw new Error("Attempt to auto-create ManifestPageComponent.name");
16283        else if (Configuration.doAutoCreate())
16284          this.name = new StringType(); // bb
16285      return this.name;
16286    }
16287
16288    public boolean hasNameElement() {
16289      return this.name != null && !this.name.isEmpty();
16290    }
16291
16292    public boolean hasName() {
16293      return this.name != null && !this.name.isEmpty();
16294    }
16295
16296    /**
16297     * @param value {@link #name} (Relative path to the page.). This is the
16298     *              underlying object with id, value and extensions. The accessor
16299     *              "getName" gives direct access to the value
16300     */
16301    public ManifestPageComponent setNameElement(StringType value) {
16302      this.name = value;
16303      return this;
16304    }
16305
16306    /**
16307     * @return Relative path to the page.
16308     */
16309    public String getName() {
16310      return this.name == null ? null : this.name.getValue();
16311    }
16312
16313    /**
16314     * @param value Relative path to the page.
16315     */
16316    public ManifestPageComponent setName(String value) {
16317      if (this.name == null)
16318        this.name = new StringType();
16319      this.name.setValue(value);
16320      return this;
16321    }
16322
16323    /**
16324     * @return {@link #title} (Label for the page intended for human display.). This
16325     *         is the underlying object with id, value and extensions. The accessor
16326     *         "getTitle" gives direct access to the value
16327     */
16328    public StringType getTitleElement() {
16329      if (this.title == null)
16330        if (Configuration.errorOnAutoCreate())
16331          throw new Error("Attempt to auto-create ManifestPageComponent.title");
16332        else if (Configuration.doAutoCreate())
16333          this.title = new StringType(); // bb
16334      return this.title;
16335    }
16336
16337    public boolean hasTitleElement() {
16338      return this.title != null && !this.title.isEmpty();
16339    }
16340
16341    public boolean hasTitle() {
16342      return this.title != null && !this.title.isEmpty();
16343    }
16344
16345    /**
16346     * @param value {@link #title} (Label for the page intended for human display.).
16347     *              This is the underlying object with id, value and extensions. The
16348     *              accessor "getTitle" gives direct access to the value
16349     */
16350    public ManifestPageComponent setTitleElement(StringType value) {
16351      this.title = value;
16352      return this;
16353    }
16354
16355    /**
16356     * @return Label for the page intended for human display.
16357     */
16358    public String getTitle() {
16359      return this.title == null ? null : this.title.getValue();
16360    }
16361
16362    /**
16363     * @param value Label for the page intended for human display.
16364     */
16365    public ManifestPageComponent setTitle(String value) {
16366      if (Utilities.noString(value))
16367        this.title = null;
16368      else {
16369        if (this.title == null)
16370          this.title = new StringType();
16371        this.title.setValue(value);
16372      }
16373      return this;
16374    }
16375
16376    /**
16377     * @return {@link #anchor} (The name of an anchor available on the page.)
16378     */
16379    public List<StringType> getAnchor() {
16380      if (this.anchor == null)
16381        this.anchor = new ArrayList<StringType>();
16382      return this.anchor;
16383    }
16384
16385    /**
16386     * @return Returns a reference to <code>this</code> for easy method chaining
16387     */
16388    public ManifestPageComponent setAnchor(List<StringType> theAnchor) {
16389      this.anchor = theAnchor;
16390      return this;
16391    }
16392
16393    public boolean hasAnchor() {
16394      if (this.anchor == null)
16395        return false;
16396      for (StringType item : this.anchor)
16397        if (!item.isEmpty())
16398          return true;
16399      return false;
16400    }
16401
16402    /**
16403     * @return {@link #anchor} (The name of an anchor available on the page.)
16404     */
16405    public StringType addAnchorElement() {// 2
16406      StringType t = new StringType();
16407      if (this.anchor == null)
16408        this.anchor = new ArrayList<StringType>();
16409      this.anchor.add(t);
16410      return t;
16411    }
16412
16413    /**
16414     * @param value {@link #anchor} (The name of an anchor available on the page.)
16415     */
16416    public ManifestPageComponent addAnchor(String value) { // 1
16417      StringType t = new StringType();
16418      t.setValue(value);
16419      if (this.anchor == null)
16420        this.anchor = new ArrayList<StringType>();
16421      this.anchor.add(t);
16422      return this;
16423    }
16424
16425    /**
16426     * @param value {@link #anchor} (The name of an anchor available on the page.)
16427     */
16428    public boolean hasAnchor(String value) {
16429      if (this.anchor == null)
16430        return false;
16431      for (StringType v : this.anchor)
16432        if (v.getValue().equals(value)) // string
16433          return true;
16434      return false;
16435    }
16436
16437    protected void listChildren(List<Property> children) {
16438      super.listChildren(children);
16439      children.add(new Property("name", "string", "Relative path to the page.", 0, 1, name));
16440      children.add(new Property("title", "string", "Label for the page intended for human display.", 0, 1, title));
16441      children.add(new Property("anchor", "string", "The name of an anchor available on the page.", 0,
16442          java.lang.Integer.MAX_VALUE, anchor));
16443    }
16444
16445    @Override
16446    public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
16447      switch (_hash) {
16448      case 3373707:
16449        /* name */ return new Property("name", "string", "Relative path to the page.", 0, 1, name);
16450      case 110371416:
16451        /* title */ return new Property("title", "string", "Label for the page intended for human display.", 0, 1,
16452            title);
16453      case -1413299531:
16454        /* anchor */ return new Property("anchor", "string", "The name of an anchor available on the page.", 0,
16455            java.lang.Integer.MAX_VALUE, anchor);
16456      default:
16457        return super.getNamedProperty(_hash, _name, _checkValid);
16458      }
16459
16460    }
16461
16462    @Override
16463    public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
16464      switch (hash) {
16465      case 3373707:
16466        /* name */ return this.name == null ? new Base[0] : new Base[] { this.name }; // StringType
16467      case 110371416:
16468        /* title */ return this.title == null ? new Base[0] : new Base[] { this.title }; // StringType
16469      case -1413299531:
16470        /* anchor */ return this.anchor == null ? new Base[0] : this.anchor.toArray(new Base[this.anchor.size()]); // StringType
16471      default:
16472        return super.getProperty(hash, name, checkValid);
16473      }
16474
16475    }
16476
16477    @Override
16478    public Base setProperty(int hash, String name, Base value) throws FHIRException {
16479      switch (hash) {
16480      case 3373707: // name
16481        this.name = castToString(value); // StringType
16482        return value;
16483      case 110371416: // title
16484        this.title = castToString(value); // StringType
16485        return value;
16486      case -1413299531: // anchor
16487        this.getAnchor().add(castToString(value)); // StringType
16488        return value;
16489      default:
16490        return super.setProperty(hash, name, value);
16491      }
16492
16493    }
16494
16495    @Override
16496    public Base setProperty(String name, Base value) throws FHIRException {
16497      if (name.equals("name")) {
16498        this.name = castToString(value); // StringType
16499      } else if (name.equals("title")) {
16500        this.title = castToString(value); // StringType
16501      } else if (name.equals("anchor")) {
16502        this.getAnchor().add(castToString(value));
16503      } else
16504        return super.setProperty(name, value);
16505      return value;
16506    }
16507
16508  @Override
16509  public void removeChild(String name, Base value) throws FHIRException {
16510      if (name.equals("name")) {
16511        this.name = null;
16512      } else if (name.equals("title")) {
16513        this.title = null;
16514      } else if (name.equals("anchor")) {
16515        this.getAnchor().remove(castToString(value));
16516      } else
16517        super.removeChild(name, value);
16518      
16519    }
16520
16521    @Override
16522    public Base makeProperty(int hash, String name) throws FHIRException {
16523      switch (hash) {
16524      case 3373707:
16525        return getNameElement();
16526      case 110371416:
16527        return getTitleElement();
16528      case -1413299531:
16529        return addAnchorElement();
16530      default:
16531        return super.makeProperty(hash, name);
16532      }
16533
16534    }
16535
16536    @Override
16537    public String[] getTypesForProperty(int hash, String name) throws FHIRException {
16538      switch (hash) {
16539      case 3373707:
16540        /* name */ return new String[] { "string" };
16541      case 110371416:
16542        /* title */ return new String[] { "string" };
16543      case -1413299531:
16544        /* anchor */ return new String[] { "string" };
16545      default:
16546        return super.getTypesForProperty(hash, name);
16547      }
16548
16549    }
16550
16551    @Override
16552    public Base addChild(String name) throws FHIRException {
16553      if (name.equals("name")) {
16554        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.name");
16555      } else if (name.equals("title")) {
16556        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.title");
16557      } else if (name.equals("anchor")) {
16558        throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.anchor");
16559      } else
16560        return super.addChild(name);
16561    }
16562
16563    public ManifestPageComponent copy() {
16564      ManifestPageComponent dst = new ManifestPageComponent();
16565      copyValues(dst);
16566      return dst;
16567    }
16568
16569    public void copyValues(ManifestPageComponent dst) {
16570      super.copyValues(dst);
16571      dst.name = name == null ? null : name.copy();
16572      dst.title = title == null ? null : title.copy();
16573      if (anchor != null) {
16574        dst.anchor = new ArrayList<StringType>();
16575        for (StringType i : anchor)
16576          dst.anchor.add(i.copy());
16577      }
16578      ;
16579    }
16580
16581    @Override
16582    public boolean equalsDeep(Base other_) {
16583      if (!super.equalsDeep(other_))
16584        return false;
16585      if (!(other_ instanceof ManifestPageComponent))
16586        return false;
16587      ManifestPageComponent o = (ManifestPageComponent) other_;
16588      return compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
16589          && compareDeep(anchor, o.anchor, true);
16590    }
16591
16592    @Override
16593    public boolean equalsShallow(Base other_) {
16594      if (!super.equalsShallow(other_))
16595        return false;
16596      if (!(other_ instanceof ManifestPageComponent))
16597        return false;
16598      ManifestPageComponent o = (ManifestPageComponent) other_;
16599      return compareValues(name, o.name, true) && compareValues(title, o.title, true)
16600          && compareValues(anchor, o.anchor, true);
16601    }
16602
16603    public boolean isEmpty() {
16604      return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, title, anchor);
16605    }
16606
16607    public String fhirType() {
16608      return "ImplementationGuide.manifest.page";
16609
16610    }
16611
16612  }
16613
16614  /**
16615   * A copyright statement relating to the implementation guide and/or its
16616   * contents. Copyright statements are generally legal restrictions on the use
16617   * and publishing of the implementation guide.
16618   */
16619  @Child(name = "copyright", type = {
16620      MarkdownType.class }, order = 0, min = 0, max = 1, modifier = false, summary = false)
16621  @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.")
16622  protected MarkdownType copyright;
16623
16624  /**
16625   * The NPM package name for this Implementation Guide, used in the NPM package
16626   * distribution, which is the primary mechanism by which FHIR based tooling
16627   * manages IG dependencies. This value must be globally unique, and should be
16628   * assigned with care.
16629   */
16630  @Child(name = "packageId", type = { IdType.class }, order = 1, min = 1, max = 1, modifier = false, summary = true)
16631  @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.")
16632  protected IdType packageId;
16633
16634  /**
16635   * The license that applies to this Implementation Guide, using an SPDX license
16636   * code, or 'not-open-source'.
16637   */
16638  @Child(name = "license", type = { CodeType.class }, order = 2, min = 0, max = 1, modifier = false, summary = true)
16639  @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'.")
16640  @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/spdx-license")
16641  protected Enumeration<SPDXLicense> license;
16642
16643  /**
16644   * The version(s) of the FHIR specification that this ImplementationGuide
16645   * targets - e.g. describes how to use. The value of this element is the formal
16646   * version of the specification, without the revision number, e.g.
16647   * [publication].[major].[minor], which is 4.0.1. for this version.
16648   */
16649  @Child(name = "fhirVersion", type = {
16650      CodeType.class }, order = 3, min = 1, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
16651  @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.")
16652  @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/FHIR-version")
16653  protected List<Enumeration<FHIRVersion>> fhirVersion;
16654
16655  /**
16656   * Another implementation guide that this implementation depends on. Typically,
16657   * an implementation guide uses value sets, profiles etc.defined in other
16658   * implementation guides.
16659   */
16660  @Child(name = "dependsOn", type = {}, order = 4, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
16661  @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.")
16662  protected List<ImplementationGuideDependsOnComponent> dependsOn;
16663
16664  /**
16665   * A set of profiles that all resources covered by this implementation guide
16666   * must conform to.
16667   */
16668  @Child(name = "global", type = {}, order = 5, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true)
16669  @Description(shortDefinition = "Profiles that apply globally", formalDefinition = "A set of profiles that all resources covered by this implementation guide must conform to.")
16670  protected List<ImplementationGuideGlobalComponent> global;
16671
16672  /**
16673   * The information needed by an IG publisher tool to publish the whole
16674   * implementation guide.
16675   */
16676  @Child(name = "definition", type = {}, order = 6, min = 0, max = 1, modifier = false, summary = false)
16677  @Description(shortDefinition = "Information needed to build the IG", formalDefinition = "The information needed by an IG publisher tool to publish the whole implementation guide.")
16678  protected ImplementationGuideDefinitionComponent definition;
16679
16680  /**
16681   * Information about an assembled implementation guide, created by the
16682   * publication tooling.
16683   */
16684  @Child(name = "manifest", type = {}, order = 7, min = 0, max = 1, modifier = false, summary = false)
16685  @Description(shortDefinition = "Information about an assembled IG", formalDefinition = "Information about an assembled implementation guide, created by the publication tooling.")
16686  protected ImplementationGuideManifestComponent manifest;
16687
16688  private static final long serialVersionUID = 415193005L;
16689
16690  /**
16691   * Constructor
16692   */
16693  public ImplementationGuide() {
16694    super();
16695  }
16696
16697  /**
16698   * Constructor
16699   */
16700  public ImplementationGuide(UriType url, StringType name, Enumeration<PublicationStatus> status, IdType packageId) {
16701    super();
16702    this.url = url;
16703    this.name = name;
16704    this.status = status;
16705    this.packageId = packageId;
16706  }
16707
16708  /**
16709   * @return {@link #url} (An absolute URI that is used to identify this
16710   *         implementation guide when it is referenced in a specification, model,
16711   *         design or an instance; also called its canonical identifier. This
16712   *         SHOULD be globally unique and SHOULD be a literal address at which at
16713   *         which an authoritative instance of this implementation guide is (or
16714   *         will be) published. This URL can be the target of a canonical
16715   *         reference. It SHALL remain the same when the implementation guide is
16716   *         stored on different servers.). This is the underlying object with id,
16717   *         value and extensions. The accessor "getUrl" gives direct access to
16718   *         the value
16719   */
16720  public UriType getUrlElement() {
16721    if (this.url == null)
16722      if (Configuration.errorOnAutoCreate())
16723        throw new Error("Attempt to auto-create ImplementationGuide.url");
16724      else if (Configuration.doAutoCreate())
16725        this.url = new UriType(); // bb
16726    return this.url;
16727  }
16728
16729  public boolean hasUrlElement() {
16730    return this.url != null && !this.url.isEmpty();
16731  }
16732
16733  public boolean hasUrl() {
16734    return this.url != null && !this.url.isEmpty();
16735  }
16736
16737  /**
16738   * @param value {@link #url} (An absolute URI that is used to identify this
16739   *              implementation guide when it is referenced in a specification,
16740   *              model, design or an instance; also called its canonical
16741   *              identifier. This SHOULD be globally unique and SHOULD be a
16742   *              literal address at which at which an authoritative instance of
16743   *              this implementation guide is (or will be) published. This URL
16744   *              can be the target of a canonical reference. It SHALL remain the
16745   *              same when the implementation guide is stored on different
16746   *              servers.). This is the underlying object with id, value and
16747   *              extensions. The accessor "getUrl" gives direct access to the
16748   *              value
16749   */
16750  public ImplementationGuide setUrlElement(UriType value) {
16751    this.url = value;
16752    return this;
16753  }
16754
16755  /**
16756   * @return An absolute URI that is used to identify this implementation guide
16757   *         when it is referenced in a specification, model, design or an
16758   *         instance; also called its canonical identifier. This SHOULD be
16759   *         globally unique and SHOULD be a literal address at which at which an
16760   *         authoritative instance of this implementation guide is (or will be)
16761   *         published. This URL can be the target of a canonical reference. It
16762   *         SHALL remain the same when the implementation guide is stored on
16763   *         different servers.
16764   */
16765  public String getUrl() {
16766    return this.url == null ? null : this.url.getValue();
16767  }
16768
16769  /**
16770   * @param value An absolute URI that is used to identify this implementation
16771   *              guide when it is referenced in a specification, model, design or
16772   *              an instance; also called its canonical identifier. This SHOULD
16773   *              be globally unique and SHOULD be a literal address at which at
16774   *              which an authoritative instance of this implementation guide is
16775   *              (or will be) published. This URL can be the target of a
16776   *              canonical reference. It SHALL remain the same when the
16777   *              implementation guide is stored on different servers.
16778   */
16779  public ImplementationGuide setUrl(String value) {
16780    if (this.url == null)
16781      this.url = new UriType();
16782    this.url.setValue(value);
16783    return this;
16784  }
16785
16786  /**
16787   * @return {@link #version} (The identifier that is used to identify this
16788   *         version of the implementation guide when it is referenced in a
16789   *         specification, model, design or instance. This is an arbitrary value
16790   *         managed by the implementation guide author and is not expected to be
16791   *         globally unique. For example, it might be a timestamp (e.g. yyyymmdd)
16792   *         if a managed version is not available. There is also no expectation
16793   *         that versions can be placed in a lexicographical sequence.). This is
16794   *         the underlying object with id, value and extensions. The accessor
16795   *         "getVersion" gives direct access to the value
16796   */
16797  public StringType getVersionElement() {
16798    if (this.version == null)
16799      if (Configuration.errorOnAutoCreate())
16800        throw new Error("Attempt to auto-create ImplementationGuide.version");
16801      else if (Configuration.doAutoCreate())
16802        this.version = new StringType(); // bb
16803    return this.version;
16804  }
16805
16806  public boolean hasVersionElement() {
16807    return this.version != null && !this.version.isEmpty();
16808  }
16809
16810  public boolean hasVersion() {
16811    return this.version != null && !this.version.isEmpty();
16812  }
16813
16814  /**
16815   * @param value {@link #version} (The identifier that is used to identify this
16816   *              version of the implementation guide when it is referenced in a
16817   *              specification, model, design or instance. This is an arbitrary
16818   *              value managed by the implementation guide author and is not
16819   *              expected to be globally unique. For example, it might be a
16820   *              timestamp (e.g. yyyymmdd) if a managed version is not available.
16821   *              There is also no expectation that versions can be placed in a
16822   *              lexicographical sequence.). This is the underlying object with
16823   *              id, value and extensions. The accessor "getVersion" gives direct
16824   *              access to the value
16825   */
16826  public ImplementationGuide setVersionElement(StringType value) {
16827    this.version = value;
16828    return this;
16829  }
16830
16831  /**
16832   * @return The identifier that is used to identify this version of the
16833   *         implementation guide when it is referenced in a specification, model,
16834   *         design or instance. This is an arbitrary value managed by the
16835   *         implementation guide author and is not expected to be globally
16836   *         unique. For example, it might be a timestamp (e.g. yyyymmdd) if a
16837   *         managed version is not available. There is also no expectation that
16838   *         versions can be placed in a lexicographical sequence.
16839   */
16840  public String getVersion() {
16841    return this.version == null ? null : this.version.getValue();
16842  }
16843
16844  /**
16845   * @param value The identifier that is used to identify this version of the
16846   *              implementation guide when it is referenced in a specification,
16847   *              model, design or instance. This is an arbitrary value managed by
16848   *              the implementation guide author and is not expected to be
16849   *              globally unique. For example, it might be a timestamp (e.g.
16850   *              yyyymmdd) if a managed version is not available. There is also
16851   *              no expectation that versions can be placed in a lexicographical
16852   *              sequence.
16853   */
16854  public ImplementationGuide setVersion(String value) {
16855    if (Utilities.noString(value))
16856      this.version = null;
16857    else {
16858      if (this.version == null)
16859        this.version = new StringType();
16860      this.version.setValue(value);
16861    }
16862    return this;
16863  }
16864
16865  /**
16866   * @return {@link #name} (A natural language name identifying the implementation
16867   *         guide. This name should be usable as an identifier for the module by
16868   *         machine processing applications such as code generation.). This is
16869   *         the underlying object with id, value and extensions. The accessor
16870   *         "getName" gives direct access to the value
16871   */
16872  public StringType getNameElement() {
16873    if (this.name == null)
16874      if (Configuration.errorOnAutoCreate())
16875        throw new Error("Attempt to auto-create ImplementationGuide.name");
16876      else if (Configuration.doAutoCreate())
16877        this.name = new StringType(); // bb
16878    return this.name;
16879  }
16880
16881  public boolean hasNameElement() {
16882    return this.name != null && !this.name.isEmpty();
16883  }
16884
16885  public boolean hasName() {
16886    return this.name != null && !this.name.isEmpty();
16887  }
16888
16889  /**
16890   * @param value {@link #name} (A natural language name identifying the
16891   *              implementation guide. This name should be usable as an
16892   *              identifier for the module by machine processing applications
16893   *              such as code generation.). This is the underlying object with
16894   *              id, value and extensions. The accessor "getName" gives direct
16895   *              access to the value
16896   */
16897  public ImplementationGuide setNameElement(StringType value) {
16898    this.name = value;
16899    return this;
16900  }
16901
16902  /**
16903   * @return A natural language name identifying the implementation guide. This
16904   *         name should be usable as an identifier for the module by machine
16905   *         processing applications such as code generation.
16906   */
16907  public String getName() {
16908    return this.name == null ? null : this.name.getValue();
16909  }
16910
16911  /**
16912   * @param value A natural language name identifying the implementation guide.
16913   *              This name should be usable as an identifier for the module by
16914   *              machine processing applications such as code generation.
16915   */
16916  public ImplementationGuide setName(String value) {
16917    if (this.name == null)
16918      this.name = new StringType();
16919    this.name.setValue(value);
16920    return this;
16921  }
16922
16923  /**
16924   * @return {@link #title} (A short, descriptive, user-friendly title for the
16925   *         implementation guide.). This is the underlying object with id, value
16926   *         and extensions. The accessor "getTitle" gives direct access to the
16927   *         value
16928   */
16929  public StringType getTitleElement() {
16930    if (this.title == null)
16931      if (Configuration.errorOnAutoCreate())
16932        throw new Error("Attempt to auto-create ImplementationGuide.title");
16933      else if (Configuration.doAutoCreate())
16934        this.title = new StringType(); // bb
16935    return this.title;
16936  }
16937
16938  public boolean hasTitleElement() {
16939    return this.title != null && !this.title.isEmpty();
16940  }
16941
16942  public boolean hasTitle() {
16943    return this.title != null && !this.title.isEmpty();
16944  }
16945
16946  /**
16947   * @param value {@link #title} (A short, descriptive, user-friendly title for
16948   *              the implementation guide.). This is the underlying object with
16949   *              id, value and extensions. The accessor "getTitle" gives direct
16950   *              access to the value
16951   */
16952  public ImplementationGuide setTitleElement(StringType value) {
16953    this.title = value;
16954    return this;
16955  }
16956
16957  /**
16958   * @return A short, descriptive, user-friendly title for the implementation
16959   *         guide.
16960   */
16961  public String getTitle() {
16962    return this.title == null ? null : this.title.getValue();
16963  }
16964
16965  /**
16966   * @param value A short, descriptive, user-friendly title for the implementation
16967   *              guide.
16968   */
16969  public ImplementationGuide setTitle(String value) {
16970    if (Utilities.noString(value))
16971      this.title = null;
16972    else {
16973      if (this.title == null)
16974        this.title = new StringType();
16975      this.title.setValue(value);
16976    }
16977    return this;
16978  }
16979
16980  /**
16981   * @return {@link #status} (The status of this implementation guide. Enables
16982   *         tracking the life-cycle of the content.). This is the underlying
16983   *         object with id, value and extensions. The accessor "getStatus" gives
16984   *         direct access to the value
16985   */
16986  public Enumeration<PublicationStatus> getStatusElement() {
16987    if (this.status == null)
16988      if (Configuration.errorOnAutoCreate())
16989        throw new Error("Attempt to auto-create ImplementationGuide.status");
16990      else if (Configuration.doAutoCreate())
16991        this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
16992    return this.status;
16993  }
16994
16995  public boolean hasStatusElement() {
16996    return this.status != null && !this.status.isEmpty();
16997  }
16998
16999  public boolean hasStatus() {
17000    return this.status != null && !this.status.isEmpty();
17001  }
17002
17003  /**
17004   * @param value {@link #status} (The status of this implementation guide.
17005   *              Enables tracking the life-cycle of the content.). This is the
17006   *              underlying object with id, value and extensions. The accessor
17007   *              "getStatus" gives direct access to the value
17008   */
17009  public ImplementationGuide setStatusElement(Enumeration<PublicationStatus> value) {
17010    this.status = value;
17011    return this;
17012  }
17013
17014  /**
17015   * @return The status of this implementation guide. Enables tracking the
17016   *         life-cycle of the content.
17017   */
17018  public PublicationStatus getStatus() {
17019    return this.status == null ? null : this.status.getValue();
17020  }
17021
17022  /**
17023   * @param value The status of this implementation guide. Enables tracking the
17024   *              life-cycle of the content.
17025   */
17026  public ImplementationGuide setStatus(PublicationStatus value) {
17027    if (this.status == null)
17028      this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
17029    this.status.setValue(value);
17030    return this;
17031  }
17032
17033  /**
17034   * @return {@link #experimental} (A Boolean value to indicate that this
17035   *         implementation guide is authored for testing purposes (or
17036   *         education/evaluation/marketing) and is not intended to be used for
17037   *         genuine usage.). This is the underlying object with id, value and
17038   *         extensions. The accessor "getExperimental" gives direct access to the
17039   *         value
17040   */
17041  public BooleanType getExperimentalElement() {
17042    if (this.experimental == null)
17043      if (Configuration.errorOnAutoCreate())
17044        throw new Error("Attempt to auto-create ImplementationGuide.experimental");
17045      else if (Configuration.doAutoCreate())
17046        this.experimental = new BooleanType(); // bb
17047    return this.experimental;
17048  }
17049
17050  public boolean hasExperimentalElement() {
17051    return this.experimental != null && !this.experimental.isEmpty();
17052  }
17053
17054  public boolean hasExperimental() {
17055    return this.experimental != null && !this.experimental.isEmpty();
17056  }
17057
17058  /**
17059   * @param value {@link #experimental} (A Boolean value to indicate that this
17060   *              implementation guide is authored for testing purposes (or
17061   *              education/evaluation/marketing) and is not intended to be used
17062   *              for genuine usage.). This is the underlying object with id,
17063   *              value and extensions. The accessor "getExperimental" gives
17064   *              direct access to the value
17065   */
17066  public ImplementationGuide setExperimentalElement(BooleanType value) {
17067    this.experimental = value;
17068    return this;
17069  }
17070
17071  /**
17072   * @return A Boolean value to indicate that this implementation guide is
17073   *         authored for testing purposes (or education/evaluation/marketing) and
17074   *         is not intended to be used for genuine usage.
17075   */
17076  public boolean getExperimental() {
17077    return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
17078  }
17079
17080  /**
17081   * @param value A Boolean value to indicate that this implementation guide is
17082   *              authored for testing purposes (or
17083   *              education/evaluation/marketing) and is not intended to be used
17084   *              for genuine usage.
17085   */
17086  public ImplementationGuide setExperimental(boolean value) {
17087    if (this.experimental == null)
17088      this.experimental = new BooleanType();
17089    this.experimental.setValue(value);
17090    return this;
17091  }
17092
17093  /**
17094   * @return {@link #date} (The date (and optionally time) when the implementation
17095   *         guide was published. The date must change when the business version
17096   *         changes and it must change if the status code changes. In addition,
17097   *         it should change when the substantive content of the implementation
17098   *         guide changes.). This is the underlying object with id, value and
17099   *         extensions. The accessor "getDate" gives direct access to the value
17100   */
17101  public DateTimeType getDateElement() {
17102    if (this.date == null)
17103      if (Configuration.errorOnAutoCreate())
17104        throw new Error("Attempt to auto-create ImplementationGuide.date");
17105      else if (Configuration.doAutoCreate())
17106        this.date = new DateTimeType(); // bb
17107    return this.date;
17108  }
17109
17110  public boolean hasDateElement() {
17111    return this.date != null && !this.date.isEmpty();
17112  }
17113
17114  public boolean hasDate() {
17115    return this.date != null && !this.date.isEmpty();
17116  }
17117
17118  /**
17119   * @param value {@link #date} (The date (and optionally time) when the
17120   *              implementation guide was published. The date must change when
17121   *              the business version changes and it must change if the status
17122   *              code changes. In addition, it should change when the substantive
17123   *              content of the implementation guide changes.). This is the
17124   *              underlying object with id, value and extensions. The accessor
17125   *              "getDate" gives direct access to the value
17126   */
17127  public ImplementationGuide setDateElement(DateTimeType value) {
17128    this.date = value;
17129    return this;
17130  }
17131
17132  /**
17133   * @return The date (and optionally time) when the implementation guide was
17134   *         published. The date must change when the business version changes and
17135   *         it must change if the status code changes. In addition, it should
17136   *         change when the substantive content of the implementation guide
17137   *         changes.
17138   */
17139  public Date getDate() {
17140    return this.date == null ? null : this.date.getValue();
17141  }
17142
17143  /**
17144   * @param value The date (and optionally time) when the implementation guide was
17145   *              published. The date must change when the business version
17146   *              changes and it must change if the status code changes. In
17147   *              addition, it should change when the substantive content of the
17148   *              implementation guide changes.
17149   */
17150  public ImplementationGuide setDate(Date value) {
17151    if (value == null)
17152      this.date = null;
17153    else {
17154      if (this.date == null)
17155        this.date = new DateTimeType();
17156      this.date.setValue(value);
17157    }
17158    return this;
17159  }
17160
17161  /**
17162   * @return {@link #publisher} (The name of the organization or individual that
17163   *         published the implementation guide.). This is the underlying object
17164   *         with id, value and extensions. The accessor "getPublisher" gives
17165   *         direct access to the value
17166   */
17167  public StringType getPublisherElement() {
17168    if (this.publisher == null)
17169      if (Configuration.errorOnAutoCreate())
17170        throw new Error("Attempt to auto-create ImplementationGuide.publisher");
17171      else if (Configuration.doAutoCreate())
17172        this.publisher = new StringType(); // bb
17173    return this.publisher;
17174  }
17175
17176  public boolean hasPublisherElement() {
17177    return this.publisher != null && !this.publisher.isEmpty();
17178  }
17179
17180  public boolean hasPublisher() {
17181    return this.publisher != null && !this.publisher.isEmpty();
17182  }
17183
17184  /**
17185   * @param value {@link #publisher} (The name of the organization or individual
17186   *              that published the implementation guide.). This is the
17187   *              underlying object with id, value and extensions. The accessor
17188   *              "getPublisher" gives direct access to the value
17189   */
17190  public ImplementationGuide setPublisherElement(StringType value) {
17191    this.publisher = value;
17192    return this;
17193  }
17194
17195  /**
17196   * @return The name of the organization or individual that published the
17197   *         implementation guide.
17198   */
17199  public String getPublisher() {
17200    return this.publisher == null ? null : this.publisher.getValue();
17201  }
17202
17203  /**
17204   * @param value The name of the organization or individual that published the
17205   *              implementation guide.
17206   */
17207  public ImplementationGuide setPublisher(String value) {
17208    if (Utilities.noString(value))
17209      this.publisher = null;
17210    else {
17211      if (this.publisher == null)
17212        this.publisher = new StringType();
17213      this.publisher.setValue(value);
17214    }
17215    return this;
17216  }
17217
17218  /**
17219   * @return {@link #contact} (Contact details to assist a user in finding and
17220   *         communicating with the publisher.)
17221   */
17222  public List<ContactDetail> getContact() {
17223    if (this.contact == null)
17224      this.contact = new ArrayList<ContactDetail>();
17225    return this.contact;
17226  }
17227
17228  /**
17229   * @return Returns a reference to <code>this</code> for easy method chaining
17230   */
17231  public ImplementationGuide setContact(List<ContactDetail> theContact) {
17232    this.contact = theContact;
17233    return this;
17234  }
17235
17236  public boolean hasContact() {
17237    if (this.contact == null)
17238      return false;
17239    for (ContactDetail item : this.contact)
17240      if (!item.isEmpty())
17241        return true;
17242    return false;
17243  }
17244
17245  public ContactDetail addContact() { // 3
17246    ContactDetail t = new ContactDetail();
17247    if (this.contact == null)
17248      this.contact = new ArrayList<ContactDetail>();
17249    this.contact.add(t);
17250    return t;
17251  }
17252
17253  public ImplementationGuide addContact(ContactDetail t) { // 3
17254    if (t == null)
17255      return this;
17256    if (this.contact == null)
17257      this.contact = new ArrayList<ContactDetail>();
17258    this.contact.add(t);
17259    return this;
17260  }
17261
17262  /**
17263   * @return The first repetition of repeating field {@link #contact}, creating it
17264   *         if it does not already exist
17265   */
17266  public ContactDetail getContactFirstRep() {
17267    if (getContact().isEmpty()) {
17268      addContact();
17269    }
17270    return getContact().get(0);
17271  }
17272
17273  /**
17274   * @return {@link #description} (A free text natural language description of the
17275   *         implementation guide from a consumer's perspective.). This is the
17276   *         underlying object with id, value and extensions. The accessor
17277   *         "getDescription" gives direct access to the value
17278   */
17279  public MarkdownType getDescriptionElement() {
17280    if (this.description == null)
17281      if (Configuration.errorOnAutoCreate())
17282        throw new Error("Attempt to auto-create ImplementationGuide.description");
17283      else if (Configuration.doAutoCreate())
17284        this.description = new MarkdownType(); // bb
17285    return this.description;
17286  }
17287
17288  public boolean hasDescriptionElement() {
17289    return this.description != null && !this.description.isEmpty();
17290  }
17291
17292  public boolean hasDescription() {
17293    return this.description != null && !this.description.isEmpty();
17294  }
17295
17296  /**
17297   * @param value {@link #description} (A free text natural language description
17298   *              of the implementation guide from a consumer's perspective.).
17299   *              This is the underlying object with id, value and extensions. The
17300   *              accessor "getDescription" gives direct access to the value
17301   */
17302  public ImplementationGuide setDescriptionElement(MarkdownType value) {
17303    this.description = value;
17304    return this;
17305  }
17306
17307  /**
17308   * @return A free text natural language description of the implementation guide
17309   *         from a consumer's perspective.
17310   */
17311  public String getDescription() {
17312    return this.description == null ? null : this.description.getValue();
17313  }
17314
17315  /**
17316   * @param value A free text natural language description of the implementation
17317   *              guide from a consumer's perspective.
17318   */
17319  public ImplementationGuide setDescription(String value) {
17320    if (value == null)
17321      this.description = null;
17322    else {
17323      if (this.description == null)
17324        this.description = new MarkdownType();
17325      this.description.setValue(value);
17326    }
17327    return this;
17328  }
17329
17330  /**
17331   * @return {@link #useContext} (The content was developed with a focus and
17332   *         intent of supporting the contexts that are listed. These contexts may
17333   *         be general categories (gender, age, ...) or may be references to
17334   *         specific programs (insurance plans, studies, ...) and may be used to
17335   *         assist with indexing and searching for appropriate implementation
17336   *         guide instances.)
17337   */
17338  public List<UsageContext> getUseContext() {
17339    if (this.useContext == null)
17340      this.useContext = new ArrayList<UsageContext>();
17341    return this.useContext;
17342  }
17343
17344  /**
17345   * @return Returns a reference to <code>this</code> for easy method chaining
17346   */
17347  public ImplementationGuide setUseContext(List<UsageContext> theUseContext) {
17348    this.useContext = theUseContext;
17349    return this;
17350  }
17351
17352  public boolean hasUseContext() {
17353    if (this.useContext == null)
17354      return false;
17355    for (UsageContext item : this.useContext)
17356      if (!item.isEmpty())
17357        return true;
17358    return false;
17359  }
17360
17361  public UsageContext addUseContext() { // 3
17362    UsageContext t = new UsageContext();
17363    if (this.useContext == null)
17364      this.useContext = new ArrayList<UsageContext>();
17365    this.useContext.add(t);
17366    return t;
17367  }
17368
17369  public ImplementationGuide addUseContext(UsageContext t) { // 3
17370    if (t == null)
17371      return this;
17372    if (this.useContext == null)
17373      this.useContext = new ArrayList<UsageContext>();
17374    this.useContext.add(t);
17375    return this;
17376  }
17377
17378  /**
17379   * @return The first repetition of repeating field {@link #useContext}, creating
17380   *         it if it does not already exist
17381   */
17382  public UsageContext getUseContextFirstRep() {
17383    if (getUseContext().isEmpty()) {
17384      addUseContext();
17385    }
17386    return getUseContext().get(0);
17387  }
17388
17389  /**
17390   * @return {@link #jurisdiction} (A legal or geographic region in which the
17391   *         implementation guide is intended to be used.)
17392   */
17393  public List<CodeableConcept> getJurisdiction() {
17394    if (this.jurisdiction == null)
17395      this.jurisdiction = new ArrayList<CodeableConcept>();
17396    return this.jurisdiction;
17397  }
17398
17399  /**
17400   * @return Returns a reference to <code>this</code> for easy method chaining
17401   */
17402  public ImplementationGuide setJurisdiction(List<CodeableConcept> theJurisdiction) {
17403    this.jurisdiction = theJurisdiction;
17404    return this;
17405  }
17406
17407  public boolean hasJurisdiction() {
17408    if (this.jurisdiction == null)
17409      return false;
17410    for (CodeableConcept item : this.jurisdiction)
17411      if (!item.isEmpty())
17412        return true;
17413    return false;
17414  }
17415
17416  public CodeableConcept addJurisdiction() { // 3
17417    CodeableConcept t = new CodeableConcept();
17418    if (this.jurisdiction == null)
17419      this.jurisdiction = new ArrayList<CodeableConcept>();
17420    this.jurisdiction.add(t);
17421    return t;
17422  }
17423
17424  public ImplementationGuide addJurisdiction(CodeableConcept t) { // 3
17425    if (t == null)
17426      return this;
17427    if (this.jurisdiction == null)
17428      this.jurisdiction = new ArrayList<CodeableConcept>();
17429    this.jurisdiction.add(t);
17430    return this;
17431  }
17432
17433  /**
17434   * @return The first repetition of repeating field {@link #jurisdiction},
17435   *         creating it if it does not already exist
17436   */
17437  public CodeableConcept getJurisdictionFirstRep() {
17438    if (getJurisdiction().isEmpty()) {
17439      addJurisdiction();
17440    }
17441    return getJurisdiction().get(0);
17442  }
17443
17444  /**
17445   * @return {@link #copyright} (A copyright statement relating to the
17446   *         implementation guide and/or its contents. Copyright statements are
17447   *         generally legal restrictions on the use and publishing of the
17448   *         implementation guide.). This is the underlying object with id, value
17449   *         and extensions. The accessor "getCopyright" gives direct access to
17450   *         the value
17451   */
17452  public MarkdownType getCopyrightElement() {
17453    if (this.copyright == null)
17454      if (Configuration.errorOnAutoCreate())
17455        throw new Error("Attempt to auto-create ImplementationGuide.copyright");
17456      else if (Configuration.doAutoCreate())
17457        this.copyright = new MarkdownType(); // bb
17458    return this.copyright;
17459  }
17460
17461  public boolean hasCopyrightElement() {
17462    return this.copyright != null && !this.copyright.isEmpty();
17463  }
17464
17465  public boolean hasCopyright() {
17466    return this.copyright != null && !this.copyright.isEmpty();
17467  }
17468
17469  /**
17470   * @param value {@link #copyright} (A copyright statement relating to the
17471   *              implementation guide and/or its contents. Copyright statements
17472   *              are generally legal restrictions on the use and publishing of
17473   *              the implementation guide.). This is the underlying object with
17474   *              id, value and extensions. The accessor "getCopyright" gives
17475   *              direct access to the value
17476   */
17477  public ImplementationGuide setCopyrightElement(MarkdownType value) {
17478    this.copyright = value;
17479    return this;
17480  }
17481
17482  /**
17483   * @return A copyright statement relating to the implementation guide and/or its
17484   *         contents. Copyright statements are generally legal restrictions on
17485   *         the use and publishing of the implementation guide.
17486   */
17487  public String getCopyright() {
17488    return this.copyright == null ? null : this.copyright.getValue();
17489  }
17490
17491  /**
17492   * @param value A copyright statement relating to the implementation guide
17493   *              and/or its contents. Copyright statements are generally legal
17494   *              restrictions on the use and publishing of the implementation
17495   *              guide.
17496   */
17497  public ImplementationGuide setCopyright(String value) {
17498    if (value == null)
17499      this.copyright = null;
17500    else {
17501      if (this.copyright == null)
17502        this.copyright = new MarkdownType();
17503      this.copyright.setValue(value);
17504    }
17505    return this;
17506  }
17507
17508  /**
17509   * @return {@link #packageId} (The NPM package name for this Implementation
17510   *         Guide, used in the NPM package distribution, which is the primary
17511   *         mechanism by which FHIR based tooling manages IG dependencies. This
17512   *         value must be globally unique, and should be assigned with care.).
17513   *         This is the underlying object with id, value and extensions. The
17514   *         accessor "getPackageId" gives direct access to the value
17515   */
17516  public IdType getPackageIdElement() {
17517    if (this.packageId == null)
17518      if (Configuration.errorOnAutoCreate())
17519        throw new Error("Attempt to auto-create ImplementationGuide.packageId");
17520      else if (Configuration.doAutoCreate())
17521        this.packageId = new IdType(); // bb
17522    return this.packageId;
17523  }
17524
17525  public boolean hasPackageIdElement() {
17526    return this.packageId != null && !this.packageId.isEmpty();
17527  }
17528
17529  public boolean hasPackageId() {
17530    return this.packageId != null && !this.packageId.isEmpty();
17531  }
17532
17533  /**
17534   * @param value {@link #packageId} (The NPM package name for this Implementation
17535   *              Guide, used in the NPM package distribution, which is the
17536   *              primary mechanism by which FHIR based tooling manages IG
17537   *              dependencies. This value must be globally unique, and should be
17538   *              assigned with care.). This is the underlying object with id,
17539   *              value and extensions. The accessor "getPackageId" gives direct
17540   *              access to the value
17541   */
17542  public ImplementationGuide setPackageIdElement(IdType value) {
17543    this.packageId = value;
17544    return this;
17545  }
17546
17547  /**
17548   * @return The NPM package name for this Implementation Guide, used in the NPM
17549   *         package distribution, which is the primary mechanism by which FHIR
17550   *         based tooling manages IG dependencies. This value must be globally
17551   *         unique, and should be assigned with care.
17552   */
17553  public String getPackageId() {
17554    return this.packageId == null ? null : this.packageId.getValue();
17555  }
17556
17557  /**
17558   * @param value The NPM package name for this Implementation Guide, used in the
17559   *              NPM package distribution, which is the primary mechanism by
17560   *              which FHIR based tooling manages IG dependencies. This value
17561   *              must be globally unique, and should be assigned with care.
17562   */
17563  public ImplementationGuide setPackageId(String value) {
17564    if (this.packageId == null)
17565      this.packageId = new IdType();
17566    this.packageId.setValue(value);
17567    return this;
17568  }
17569
17570  /**
17571   * @return {@link #license} (The license that applies to this Implementation
17572   *         Guide, using an SPDX license code, or 'not-open-source'.). This is
17573   *         the underlying object with id, value and extensions. The accessor
17574   *         "getLicense" gives direct access to the value
17575   */
17576  public Enumeration<SPDXLicense> getLicenseElement() {
17577    if (this.license == null)
17578      if (Configuration.errorOnAutoCreate())
17579        throw new Error("Attempt to auto-create ImplementationGuide.license");
17580      else if (Configuration.doAutoCreate())
17581        this.license = new Enumeration<SPDXLicense>(new SPDXLicenseEnumFactory()); // bb
17582    return this.license;
17583  }
17584
17585  public boolean hasLicenseElement() {
17586    return this.license != null && !this.license.isEmpty();
17587  }
17588
17589  public boolean hasLicense() {
17590    return this.license != null && !this.license.isEmpty();
17591  }
17592
17593  /**
17594   * @param value {@link #license} (The license that applies to this
17595   *              Implementation Guide, using an SPDX license code, or
17596   *              'not-open-source'.). This is the underlying object with id,
17597   *              value and extensions. The accessor "getLicense" gives direct
17598   *              access to the value
17599   */
17600  public ImplementationGuide setLicenseElement(Enumeration<SPDXLicense> value) {
17601    this.license = value;
17602    return this;
17603  }
17604
17605  /**
17606   * @return The license that applies to this Implementation Guide, using an SPDX
17607   *         license code, or 'not-open-source'.
17608   */
17609  public SPDXLicense getLicense() {
17610    return this.license == null ? null : this.license.getValue();
17611  }
17612
17613  /**
17614   * @param value The license that applies to this Implementation Guide, using an
17615   *              SPDX license code, or 'not-open-source'.
17616   */
17617  public ImplementationGuide setLicense(SPDXLicense value) {
17618    if (value == null)
17619      this.license = null;
17620    else {
17621      if (this.license == null)
17622        this.license = new Enumeration<SPDXLicense>(new SPDXLicenseEnumFactory());
17623      this.license.setValue(value);
17624    }
17625    return this;
17626  }
17627
17628  /**
17629   * @return {@link #fhirVersion} (The version(s) of the FHIR specification that
17630   *         this ImplementationGuide targets - e.g. describes how to use. The
17631   *         value of this element is the formal version of the specification,
17632   *         without the revision number, e.g. [publication].[major].[minor],
17633   *         which is 4.0.1. for this version.)
17634   */
17635  public List<Enumeration<FHIRVersion>> getFhirVersion() {
17636    if (this.fhirVersion == null)
17637      this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
17638    return this.fhirVersion;
17639  }
17640
17641  /**
17642   * @return Returns a reference to <code>this</code> for easy method chaining
17643   */
17644  public ImplementationGuide setFhirVersion(List<Enumeration<FHIRVersion>> theFhirVersion) {
17645    this.fhirVersion = theFhirVersion;
17646    return this;
17647  }
17648
17649  public boolean hasFhirVersion() {
17650    if (this.fhirVersion == null)
17651      return false;
17652    for (Enumeration<FHIRVersion> item : this.fhirVersion)
17653      if (!item.isEmpty())
17654        return true;
17655    return false;
17656  }
17657
17658  /**
17659   * @return {@link #fhirVersion} (The version(s) of the FHIR specification that
17660   *         this ImplementationGuide targets - e.g. describes how to use. The
17661   *         value of this element is the formal version of the specification,
17662   *         without the revision number, e.g. [publication].[major].[minor],
17663   *         which is 4.0.1. for this version.)
17664   */
17665  public Enumeration<FHIRVersion> addFhirVersionElement() {// 2
17666    Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
17667    if (this.fhirVersion == null)
17668      this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
17669    this.fhirVersion.add(t);
17670    return t;
17671  }
17672
17673  /**
17674   * @param value {@link #fhirVersion} (The version(s) of the FHIR specification
17675   *              that this ImplementationGuide targets - e.g. describes how to
17676   *              use. The value of this element is the formal version of the
17677   *              specification, without the revision number, e.g.
17678   *              [publication].[major].[minor], which is 4.0.1. for this
17679   *              version.)
17680   */
17681  public ImplementationGuide addFhirVersion(FHIRVersion value) { // 1
17682    Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
17683    t.setValue(value);
17684    if (this.fhirVersion == null)
17685      this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
17686    this.fhirVersion.add(t);
17687    return this;
17688  }
17689
17690  /**
17691   * @param value {@link #fhirVersion} (The version(s) of the FHIR specification
17692   *              that this ImplementationGuide targets - e.g. describes how to
17693   *              use. The value of this element is the formal version of the
17694   *              specification, without the revision number, e.g.
17695   *              [publication].[major].[minor], which is 4.0.1. for this
17696   *              version.)
17697   */
17698  public boolean hasFhirVersion(FHIRVersion value) {
17699    if (this.fhirVersion == null)
17700      return false;
17701    for (Enumeration<FHIRVersion> v : this.fhirVersion)
17702      if (v.getValue().equals(value)) // code
17703        return true;
17704    return false;
17705  }
17706
17707  /**
17708   * @return {@link #dependsOn} (Another implementation guide that this
17709   *         implementation depends on. Typically, an implementation guide uses
17710   *         value sets, profiles etc.defined in other implementation guides.)
17711   */
17712  public List<ImplementationGuideDependsOnComponent> getDependsOn() {
17713    if (this.dependsOn == null)
17714      this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
17715    return this.dependsOn;
17716  }
17717
17718  /**
17719   * @return Returns a reference to <code>this</code> for easy method chaining
17720   */
17721  public ImplementationGuide setDependsOn(List<ImplementationGuideDependsOnComponent> theDependsOn) {
17722    this.dependsOn = theDependsOn;
17723    return this;
17724  }
17725
17726  public boolean hasDependsOn() {
17727    if (this.dependsOn == null)
17728      return false;
17729    for (ImplementationGuideDependsOnComponent item : this.dependsOn)
17730      if (!item.isEmpty())
17731        return true;
17732    return false;
17733  }
17734
17735  public ImplementationGuideDependsOnComponent addDependsOn() { // 3
17736    ImplementationGuideDependsOnComponent t = new ImplementationGuideDependsOnComponent();
17737    if (this.dependsOn == null)
17738      this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
17739    this.dependsOn.add(t);
17740    return t;
17741  }
17742
17743  public ImplementationGuide addDependsOn(ImplementationGuideDependsOnComponent t) { // 3
17744    if (t == null)
17745      return this;
17746    if (this.dependsOn == null)
17747      this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
17748    this.dependsOn.add(t);
17749    return this;
17750  }
17751
17752  /**
17753   * @return The first repetition of repeating field {@link #dependsOn}, creating
17754   *         it if it does not already exist
17755   */
17756  public ImplementationGuideDependsOnComponent getDependsOnFirstRep() {
17757    if (getDependsOn().isEmpty()) {
17758      addDependsOn();
17759    }
17760    return getDependsOn().get(0);
17761  }
17762
17763  /**
17764   * @return {@link #global} (A set of profiles that all resources covered by this
17765   *         implementation guide must conform to.)
17766   */
17767  public List<ImplementationGuideGlobalComponent> getGlobal() {
17768    if (this.global == null)
17769      this.global = new ArrayList<ImplementationGuideGlobalComponent>();
17770    return this.global;
17771  }
17772
17773  /**
17774   * @return Returns a reference to <code>this</code> for easy method chaining
17775   */
17776  public ImplementationGuide setGlobal(List<ImplementationGuideGlobalComponent> theGlobal) {
17777    this.global = theGlobal;
17778    return this;
17779  }
17780
17781  public boolean hasGlobal() {
17782    if (this.global == null)
17783      return false;
17784    for (ImplementationGuideGlobalComponent item : this.global)
17785      if (!item.isEmpty())
17786        return true;
17787    return false;
17788  }
17789
17790  public ImplementationGuideGlobalComponent addGlobal() { // 3
17791    ImplementationGuideGlobalComponent t = new ImplementationGuideGlobalComponent();
17792    if (this.global == null)
17793      this.global = new ArrayList<ImplementationGuideGlobalComponent>();
17794    this.global.add(t);
17795    return t;
17796  }
17797
17798  public ImplementationGuide addGlobal(ImplementationGuideGlobalComponent t) { // 3
17799    if (t == null)
17800      return this;
17801    if (this.global == null)
17802      this.global = new ArrayList<ImplementationGuideGlobalComponent>();
17803    this.global.add(t);
17804    return this;
17805  }
17806
17807  /**
17808   * @return The first repetition of repeating field {@link #global}, creating it
17809   *         if it does not already exist
17810   */
17811  public ImplementationGuideGlobalComponent getGlobalFirstRep() {
17812    if (getGlobal().isEmpty()) {
17813      addGlobal();
17814    }
17815    return getGlobal().get(0);
17816  }
17817
17818  /**
17819   * @return {@link #definition} (The information needed by an IG publisher tool
17820   *         to publish the whole implementation guide.)
17821   */
17822  public ImplementationGuideDefinitionComponent getDefinition() {
17823    if (this.definition == null)
17824      if (Configuration.errorOnAutoCreate())
17825        throw new Error("Attempt to auto-create ImplementationGuide.definition");
17826      else if (Configuration.doAutoCreate())
17827        this.definition = new ImplementationGuideDefinitionComponent(); // cc
17828    return this.definition;
17829  }
17830
17831  public boolean hasDefinition() {
17832    return this.definition != null && !this.definition.isEmpty();
17833  }
17834
17835  /**
17836   * @param value {@link #definition} (The information needed by an IG publisher
17837   *              tool to publish the whole implementation guide.)
17838   */
17839  public ImplementationGuide setDefinition(ImplementationGuideDefinitionComponent value) {
17840    this.definition = value;
17841    return this;
17842  }
17843
17844  /**
17845   * @return {@link #manifest} (Information about an assembled implementation
17846   *         guide, created by the publication tooling.)
17847   */
17848  public ImplementationGuideManifestComponent getManifest() {
17849    if (this.manifest == null)
17850      if (Configuration.errorOnAutoCreate())
17851        throw new Error("Attempt to auto-create ImplementationGuide.manifest");
17852      else if (Configuration.doAutoCreate())
17853        this.manifest = new ImplementationGuideManifestComponent(); // cc
17854    return this.manifest;
17855  }
17856
17857  public boolean hasManifest() {
17858    return this.manifest != null && !this.manifest.isEmpty();
17859  }
17860
17861  /**
17862   * @param value {@link #manifest} (Information about an assembled implementation
17863   *              guide, created by the publication tooling.)
17864   */
17865  public ImplementationGuide setManifest(ImplementationGuideManifestComponent value) {
17866    this.manifest = value;
17867    return this;
17868  }
17869
17870  protected void listChildren(List<Property> children) {
17871    super.listChildren(children);
17872    children.add(new Property("url", "uri",
17873        "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.",
17874        0, 1, url));
17875    children.add(new Property("version", "string",
17876        "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.",
17877        0, 1, version));
17878    children.add(new Property("name", "string",
17879        "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.",
17880        0, 1, name));
17881    children.add(new Property("title", "string",
17882        "A short, descriptive, user-friendly title for the implementation guide.", 0, 1, title));
17883    children.add(new Property("status", "code",
17884        "The status of this implementation guide. Enables tracking the life-cycle of the content.", 0, 1, status));
17885    children.add(new Property("experimental", "boolean",
17886        "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.",
17887        0, 1, experimental));
17888    children.add(new Property("date", "dateTime",
17889        "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.",
17890        0, 1, date));
17891    children.add(new Property("publisher", "string",
17892        "The name of the organization or individual that published the implementation guide.", 0, 1, publisher));
17893    children.add(new Property("contact", "ContactDetail",
17894        "Contact details to assist a user in finding and communicating with the publisher.", 0,
17895        java.lang.Integer.MAX_VALUE, contact));
17896    children.add(new Property("description", "markdown",
17897        "A free text natural language description of the implementation guide from a consumer's perspective.", 0, 1,
17898        description));
17899    children.add(new Property("useContext", "UsageContext",
17900        "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.",
17901        0, java.lang.Integer.MAX_VALUE, useContext));
17902    children.add(new Property("jurisdiction", "CodeableConcept",
17903        "A legal or geographic region in which the implementation guide is intended to be used.", 0,
17904        java.lang.Integer.MAX_VALUE, jurisdiction));
17905    children.add(new Property("copyright", "markdown",
17906        "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.",
17907        0, 1, copyright));
17908    children.add(new Property("packageId", "id",
17909        "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.",
17910        0, 1, packageId));
17911    children.add(new Property("license", "code",
17912        "The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.", 0,
17913        1, license));
17914    children.add(new Property("fhirVersion", "code",
17915        "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.",
17916        0, java.lang.Integer.MAX_VALUE, fhirVersion));
17917    children.add(new Property("dependsOn", "",
17918        "Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.",
17919        0, java.lang.Integer.MAX_VALUE, dependsOn));
17920    children.add(new Property("global", "",
17921        "A set of profiles that all resources covered by this implementation guide must conform to.", 0,
17922        java.lang.Integer.MAX_VALUE, global));
17923    children.add(new Property("definition", "",
17924        "The information needed by an IG publisher tool to publish the whole implementation guide.", 0, 1, definition));
17925    children.add(new Property("manifest", "",
17926        "Information about an assembled implementation guide, created by the publication tooling.", 0, 1, manifest));
17927  }
17928
17929  @Override
17930  public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
17931    switch (_hash) {
17932    case 116079:
17933      /* url */ return new Property("url", "uri",
17934          "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.",
17935          0, 1, url);
17936    case 351608024:
17937      /* version */ return new Property("version", "string",
17938          "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.",
17939          0, 1, version);
17940    case 3373707:
17941      /* name */ return new Property("name", "string",
17942          "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.",
17943          0, 1, name);
17944    case 110371416:
17945      /* title */ return new Property("title", "string",
17946          "A short, descriptive, user-friendly title for the implementation guide.", 0, 1, title);
17947    case -892481550:
17948      /* status */ return new Property("status", "code",
17949          "The status of this implementation guide. Enables tracking the life-cycle of the content.", 0, 1, status);
17950    case -404562712:
17951      /* experimental */ return new Property("experimental", "boolean",
17952          "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.",
17953          0, 1, experimental);
17954    case 3076014:
17955      /* date */ return new Property("date", "dateTime",
17956          "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.",
17957          0, 1, date);
17958    case 1447404028:
17959      /* publisher */ return new Property("publisher", "string",
17960          "The name of the organization or individual that published the implementation guide.", 0, 1, publisher);
17961    case 951526432:
17962      /* contact */ return new Property("contact", "ContactDetail",
17963          "Contact details to assist a user in finding and communicating with the publisher.", 0,
17964          java.lang.Integer.MAX_VALUE, contact);
17965    case -1724546052:
17966      /* description */ return new Property("description", "markdown",
17967          "A free text natural language description of the implementation guide from a consumer's perspective.", 0, 1,
17968          description);
17969    case -669707736:
17970      /* useContext */ return new Property("useContext", "UsageContext",
17971          "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.",
17972          0, java.lang.Integer.MAX_VALUE, useContext);
17973    case -507075711:
17974      /* jurisdiction */ return new Property("jurisdiction", "CodeableConcept",
17975          "A legal or geographic region in which the implementation guide is intended to be used.", 0,
17976          java.lang.Integer.MAX_VALUE, jurisdiction);
17977    case 1522889671:
17978      /* copyright */ return new Property("copyright", "markdown",
17979          "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.",
17980          0, 1, copyright);
17981    case 1802060801:
17982      /* packageId */ return new Property("packageId", "id",
17983          "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.",
17984          0, 1, packageId);
17985    case 166757441:
17986      /* license */ return new Property("license", "code",
17987          "The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.", 0,
17988          1, license);
17989    case 461006061:
17990      /* fhirVersion */ return new Property("fhirVersion", "code",
17991          "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.",
17992          0, java.lang.Integer.MAX_VALUE, fhirVersion);
17993    case -1109214266:
17994      /* dependsOn */ return new Property("dependsOn", "",
17995          "Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.",
17996          0, java.lang.Integer.MAX_VALUE, dependsOn);
17997    case -1243020381:
17998      /* global */ return new Property("global", "",
17999          "A set of profiles that all resources covered by this implementation guide must conform to.", 0,
18000          java.lang.Integer.MAX_VALUE, global);
18001    case -1014418093:
18002      /* definition */ return new Property("definition", "",
18003          "The information needed by an IG publisher tool to publish the whole implementation guide.", 0, 1,
18004          definition);
18005    case 130625071:
18006      /* manifest */ return new Property("manifest", "",
18007          "Information about an assembled implementation guide, created by the publication tooling.", 0, 1, manifest);
18008    default:
18009      return super.getNamedProperty(_hash, _name, _checkValid);
18010    }
18011
18012  }
18013
18014  @Override
18015  public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
18016    switch (hash) {
18017    case 116079:
18018      /* url */ return this.url == null ? new Base[0] : new Base[] { this.url }; // UriType
18019    case 351608024:
18020      /* version */ return this.version == null ? new Base[0] : new Base[] { this.version }; // StringType
18021    case 3373707:
18022      /* name */ return this.name == null ? new Base[0] : new Base[] { this.name }; // StringType
18023    case 110371416:
18024      /* title */ return this.title == null ? new Base[0] : new Base[] { this.title }; // StringType
18025    case -892481550:
18026      /* status */ return this.status == null ? new Base[0] : new Base[] { this.status }; // Enumeration<PublicationStatus>
18027    case -404562712:
18028      /* experimental */ return this.experimental == null ? new Base[0] : new Base[] { this.experimental }; // BooleanType
18029    case 3076014:
18030      /* date */ return this.date == null ? new Base[0] : new Base[] { this.date }; // DateTimeType
18031    case 1447404028:
18032      /* publisher */ return this.publisher == null ? new Base[0] : new Base[] { this.publisher }; // StringType
18033    case 951526432:
18034      /* contact */ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
18035    case -1724546052:
18036      /* description */ return this.description == null ? new Base[0] : new Base[] { this.description }; // MarkdownType
18037    case -669707736:
18038      /* useContext */ return this.useContext == null ? new Base[0]
18039          : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
18040    case -507075711:
18041      /* jurisdiction */ return this.jurisdiction == null ? new Base[0]
18042          : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
18043    case 1522889671:
18044      /* copyright */ return this.copyright == null ? new Base[0] : new Base[] { this.copyright }; // MarkdownType
18045    case 1802060801:
18046      /* packageId */ return this.packageId == null ? new Base[0] : new Base[] { this.packageId }; // IdType
18047    case 166757441:
18048      /* license */ return this.license == null ? new Base[0] : new Base[] { this.license }; // Enumeration<SPDXLicense>
18049    case 461006061:
18050      /* fhirVersion */ return this.fhirVersion == null ? new Base[0]
18051          : this.fhirVersion.toArray(new Base[this.fhirVersion.size()]); // Enumeration<FHIRVersion>
18052    case -1109214266:
18053      /* dependsOn */ return this.dependsOn == null ? new Base[0]
18054          : this.dependsOn.toArray(new Base[this.dependsOn.size()]); // ImplementationGuideDependsOnComponent
18055    case -1243020381:
18056      /* global */ return this.global == null ? new Base[0] : this.global.toArray(new Base[this.global.size()]); // ImplementationGuideGlobalComponent
18057    case -1014418093:
18058      /* definition */ return this.definition == null ? new Base[0] : new Base[] { this.definition }; // ImplementationGuideDefinitionComponent
18059    case 130625071:
18060      /* manifest */ return this.manifest == null ? new Base[0] : new Base[] { this.manifest }; // ImplementationGuideManifestComponent
18061    default:
18062      return super.getProperty(hash, name, checkValid);
18063    }
18064
18065  }
18066
18067  @Override
18068  public Base setProperty(int hash, String name, Base value) throws FHIRException {
18069    switch (hash) {
18070    case 116079: // url
18071      this.url = castToUri(value); // UriType
18072      return value;
18073    case 351608024: // version
18074      this.version = castToString(value); // StringType
18075      return value;
18076    case 3373707: // name
18077      this.name = castToString(value); // StringType
18078      return value;
18079    case 110371416: // title
18080      this.title = castToString(value); // StringType
18081      return value;
18082    case -892481550: // status
18083      value = new PublicationStatusEnumFactory().fromType(castToCode(value));
18084      this.status = (Enumeration) value; // Enumeration<PublicationStatus>
18085      return value;
18086    case -404562712: // experimental
18087      this.experimental = castToBoolean(value); // BooleanType
18088      return value;
18089    case 3076014: // date
18090      this.date = castToDateTime(value); // DateTimeType
18091      return value;
18092    case 1447404028: // publisher
18093      this.publisher = castToString(value); // StringType
18094      return value;
18095    case 951526432: // contact
18096      this.getContact().add(castToContactDetail(value)); // ContactDetail
18097      return value;
18098    case -1724546052: // description
18099      this.description = castToMarkdown(value); // MarkdownType
18100      return value;
18101    case -669707736: // useContext
18102      this.getUseContext().add(castToUsageContext(value)); // UsageContext
18103      return value;
18104    case -507075711: // jurisdiction
18105      this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept
18106      return value;
18107    case 1522889671: // copyright
18108      this.copyright = castToMarkdown(value); // MarkdownType
18109      return value;
18110    case 1802060801: // packageId
18111      this.packageId = castToId(value); // IdType
18112      return value;
18113    case 166757441: // license
18114      value = new SPDXLicenseEnumFactory().fromType(castToCode(value));
18115      this.license = (Enumeration) value; // Enumeration<SPDXLicense>
18116      return value;
18117    case 461006061: // fhirVersion
18118      value = new FHIRVersionEnumFactory().fromType(castToCode(value));
18119      this.getFhirVersion().add((Enumeration) value); // Enumeration<FHIRVersion>
18120      return value;
18121    case -1109214266: // dependsOn
18122      this.getDependsOn().add((ImplementationGuideDependsOnComponent) value); // ImplementationGuideDependsOnComponent
18123      return value;
18124    case -1243020381: // global
18125      this.getGlobal().add((ImplementationGuideGlobalComponent) value); // ImplementationGuideGlobalComponent
18126      return value;
18127    case -1014418093: // definition
18128      this.definition = (ImplementationGuideDefinitionComponent) value; // ImplementationGuideDefinitionComponent
18129      return value;
18130    case 130625071: // manifest
18131      this.manifest = (ImplementationGuideManifestComponent) value; // ImplementationGuideManifestComponent
18132      return value;
18133    default:
18134      return super.setProperty(hash, name, value);
18135    }
18136
18137  }
18138
18139  @Override
18140  public Base setProperty(String name, Base value) throws FHIRException {
18141    if (name.equals("url")) {
18142      this.url = castToUri(value); // UriType
18143    } else if (name.equals("version")) {
18144      this.version = castToString(value); // StringType
18145    } else if (name.equals("name")) {
18146      this.name = castToString(value); // StringType
18147    } else if (name.equals("title")) {
18148      this.title = castToString(value); // StringType
18149    } else if (name.equals("status")) {
18150      value = new PublicationStatusEnumFactory().fromType(castToCode(value));
18151      this.status = (Enumeration) value; // Enumeration<PublicationStatus>
18152    } else if (name.equals("experimental")) {
18153      this.experimental = castToBoolean(value); // BooleanType
18154    } else if (name.equals("date")) {
18155      this.date = castToDateTime(value); // DateTimeType
18156    } else if (name.equals("publisher")) {
18157      this.publisher = castToString(value); // StringType
18158    } else if (name.equals("contact")) {
18159      this.getContact().add(castToContactDetail(value));
18160    } else if (name.equals("description")) {
18161      this.description = castToMarkdown(value); // MarkdownType
18162    } else if (name.equals("useContext")) {
18163      this.getUseContext().add(castToUsageContext(value));
18164    } else if (name.equals("jurisdiction")) {
18165      this.getJurisdiction().add(castToCodeableConcept(value));
18166    } else if (name.equals("copyright")) {
18167      this.copyright = castToMarkdown(value); // MarkdownType
18168    } else if (name.equals("packageId")) {
18169      this.packageId = castToId(value); // IdType
18170    } else if (name.equals("license")) {
18171      value = new SPDXLicenseEnumFactory().fromType(castToCode(value));
18172      this.license = (Enumeration) value; // Enumeration<SPDXLicense>
18173    } else if (name.equals("fhirVersion")) {
18174      value = new FHIRVersionEnumFactory().fromType(castToCode(value));
18175      this.getFhirVersion().add((Enumeration) value);
18176    } else if (name.equals("dependsOn")) {
18177      this.getDependsOn().add((ImplementationGuideDependsOnComponent) value);
18178    } else if (name.equals("global")) {
18179      this.getGlobal().add((ImplementationGuideGlobalComponent) value);
18180    } else if (name.equals("definition")) {
18181      this.definition = (ImplementationGuideDefinitionComponent) value; // ImplementationGuideDefinitionComponent
18182    } else if (name.equals("manifest")) {
18183      this.manifest = (ImplementationGuideManifestComponent) value; // ImplementationGuideManifestComponent
18184    } else
18185      return super.setProperty(name, value);
18186    return value;
18187  }
18188
18189  @Override
18190  public void removeChild(String name, Base value) throws FHIRException {
18191    if (name.equals("url")) {
18192      this.url = null;
18193    } else if (name.equals("version")) {
18194      this.version = null;
18195    } else if (name.equals("name")) {
18196      this.name = null;
18197    } else if (name.equals("title")) {
18198      this.title = null;
18199    } else if (name.equals("status")) {
18200      this.status = null;
18201    } else if (name.equals("experimental")) {
18202      this.experimental = null;
18203    } else if (name.equals("date")) {
18204      this.date = null;
18205    } else if (name.equals("publisher")) {
18206      this.publisher = null;
18207    } else if (name.equals("contact")) {
18208      this.getContact().remove(castToContactDetail(value));
18209    } else if (name.equals("description")) {
18210      this.description = null;
18211    } else if (name.equals("useContext")) {
18212      this.getUseContext().remove(castToUsageContext(value));
18213    } else if (name.equals("jurisdiction")) {
18214      this.getJurisdiction().remove(castToCodeableConcept(value));
18215    } else if (name.equals("copyright")) {
18216      this.copyright = null;
18217    } else if (name.equals("packageId")) {
18218      this.packageId = null;
18219    } else if (name.equals("license")) {
18220      this.license = null;
18221    } else if (name.equals("fhirVersion")) {
18222      this.getFhirVersion().remove((Enumeration) value);
18223    } else if (name.equals("dependsOn")) {
18224      this.getDependsOn().remove((ImplementationGuideDependsOnComponent) value);
18225    } else if (name.equals("global")) {
18226      this.getGlobal().remove((ImplementationGuideGlobalComponent) value);
18227    } else if (name.equals("definition")) {
18228      this.definition = null;
18229    } else if (name.equals("manifest")) {
18230      this.manifest = (ImplementationGuideManifestComponent) value; // ImplementationGuideManifestComponent
18231    } else
18232      super.removeChild(name, value);
18233    
18234  }
18235
18236  @Override
18237  public Base makeProperty(int hash, String name) throws FHIRException {
18238    switch (hash) {
18239    case 116079:
18240      return getUrlElement();
18241    case 351608024:
18242      return getVersionElement();
18243    case 3373707:
18244      return getNameElement();
18245    case 110371416:
18246      return getTitleElement();
18247    case -892481550:
18248      return getStatusElement();
18249    case -404562712:
18250      return getExperimentalElement();
18251    case 3076014:
18252      return getDateElement();
18253    case 1447404028:
18254      return getPublisherElement();
18255    case 951526432:
18256      return addContact();
18257    case -1724546052:
18258      return getDescriptionElement();
18259    case -669707736:
18260      return addUseContext();
18261    case -507075711:
18262      return addJurisdiction();
18263    case 1522889671:
18264      return getCopyrightElement();
18265    case 1802060801:
18266      return getPackageIdElement();
18267    case 166757441:
18268      return getLicenseElement();
18269    case 461006061:
18270      return addFhirVersionElement();
18271    case -1109214266:
18272      return addDependsOn();
18273    case -1243020381:
18274      return addGlobal();
18275    case -1014418093:
18276      return getDefinition();
18277    case 130625071:
18278      return getManifest();
18279    default:
18280      return super.makeProperty(hash, name);
18281    }
18282
18283  }
18284
18285  @Override
18286  public String[] getTypesForProperty(int hash, String name) throws FHIRException {
18287    switch (hash) {
18288    case 116079:
18289      /* url */ return new String[] { "uri" };
18290    case 351608024:
18291      /* version */ return new String[] { "string" };
18292    case 3373707:
18293      /* name */ return new String[] { "string" };
18294    case 110371416:
18295      /* title */ return new String[] { "string" };
18296    case -892481550:
18297      /* status */ return new String[] { "code" };
18298    case -404562712:
18299      /* experimental */ return new String[] { "boolean" };
18300    case 3076014:
18301      /* date */ return new String[] { "dateTime" };
18302    case 1447404028:
18303      /* publisher */ return new String[] { "string" };
18304    case 951526432:
18305      /* contact */ return new String[] { "ContactDetail" };
18306    case -1724546052:
18307      /* description */ return new String[] { "markdown" };
18308    case -669707736:
18309      /* useContext */ return new String[] { "UsageContext" };
18310    case -507075711:
18311      /* jurisdiction */ return new String[] { "CodeableConcept" };
18312    case 1522889671:
18313      /* copyright */ return new String[] { "markdown" };
18314    case 1802060801:
18315      /* packageId */ return new String[] { "id" };
18316    case 166757441:
18317      /* license */ return new String[] { "code" };
18318    case 461006061:
18319      /* fhirVersion */ return new String[] { "code" };
18320    case -1109214266:
18321      /* dependsOn */ return new String[] {};
18322    case -1243020381:
18323      /* global */ return new String[] {};
18324    case -1014418093:
18325      /* definition */ return new String[] {};
18326    case 130625071:
18327      /* manifest */ return new String[] {};
18328    default:
18329      return super.getTypesForProperty(hash, name);
18330    }
18331
18332  }
18333
18334  @Override
18335  public Base addChild(String name) throws FHIRException {
18336    if (name.equals("url")) {
18337      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.url");
18338    } else if (name.equals("version")) {
18339      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.version");
18340    } else if (name.equals("name")) {
18341      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.name");
18342    } else if (name.equals("title")) {
18343      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.title");
18344    } else if (name.equals("status")) {
18345      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.status");
18346    } else if (name.equals("experimental")) {
18347      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.experimental");
18348    } else if (name.equals("date")) {
18349      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.date");
18350    } else if (name.equals("publisher")) {
18351      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.publisher");
18352    } else if (name.equals("contact")) {
18353      return addContact();
18354    } else if (name.equals("description")) {
18355      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.description");
18356    } else if (name.equals("useContext")) {
18357      return addUseContext();
18358    } else if (name.equals("jurisdiction")) {
18359      return addJurisdiction();
18360    } else if (name.equals("copyright")) {
18361      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.copyright");
18362    } else if (name.equals("packageId")) {
18363      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.packageId");
18364    } else if (name.equals("license")) {
18365      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.license");
18366    } else if (name.equals("fhirVersion")) {
18367      throw new FHIRException("Cannot call addChild on a singleton property ImplementationGuide.fhirVersion");
18368    } else if (name.equals("dependsOn")) {
18369      return addDependsOn();
18370    } else if (name.equals("global")) {
18371      return addGlobal();
18372    } else if (name.equals("definition")) {
18373      this.definition = new ImplementationGuideDefinitionComponent();
18374      return this.definition;
18375    } else if (name.equals("manifest")) {
18376      this.manifest = new ImplementationGuideManifestComponent();
18377      return this.manifest;
18378    } else
18379      return super.addChild(name);
18380  }
18381
18382  public String fhirType() {
18383    return "ImplementationGuide";
18384
18385  }
18386
18387  public ImplementationGuide copy() {
18388    ImplementationGuide dst = new ImplementationGuide();
18389    copyValues(dst);
18390    return dst;
18391  }
18392
18393  public void copyValues(ImplementationGuide dst) {
18394    super.copyValues(dst);
18395    dst.url = url == null ? null : url.copy();
18396    dst.version = version == null ? null : version.copy();
18397    dst.name = name == null ? null : name.copy();
18398    dst.title = title == null ? null : title.copy();
18399    dst.status = status == null ? null : status.copy();
18400    dst.experimental = experimental == null ? null : experimental.copy();
18401    dst.date = date == null ? null : date.copy();
18402    dst.publisher = publisher == null ? null : publisher.copy();
18403    if (contact != null) {
18404      dst.contact = new ArrayList<ContactDetail>();
18405      for (ContactDetail i : contact)
18406        dst.contact.add(i.copy());
18407    }
18408    ;
18409    dst.description = description == null ? null : description.copy();
18410    if (useContext != null) {
18411      dst.useContext = new ArrayList<UsageContext>();
18412      for (UsageContext i : useContext)
18413        dst.useContext.add(i.copy());
18414    }
18415    ;
18416    if (jurisdiction != null) {
18417      dst.jurisdiction = new ArrayList<CodeableConcept>();
18418      for (CodeableConcept i : jurisdiction)
18419        dst.jurisdiction.add(i.copy());
18420    }
18421    ;
18422    dst.copyright = copyright == null ? null : copyright.copy();
18423    dst.packageId = packageId == null ? null : packageId.copy();
18424    dst.license = license == null ? null : license.copy();
18425    if (fhirVersion != null) {
18426      dst.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
18427      for (Enumeration<FHIRVersion> i : fhirVersion)
18428        dst.fhirVersion.add(i.copy());
18429    }
18430    ;
18431    if (dependsOn != null) {
18432      dst.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
18433      for (ImplementationGuideDependsOnComponent i : dependsOn)
18434        dst.dependsOn.add(i.copy());
18435    }
18436    ;
18437    if (global != null) {
18438      dst.global = new ArrayList<ImplementationGuideGlobalComponent>();
18439      for (ImplementationGuideGlobalComponent i : global)
18440        dst.global.add(i.copy());
18441    }
18442    ;
18443    dst.definition = definition == null ? null : definition.copy();
18444    dst.manifest = manifest == null ? null : manifest.copy();
18445  }
18446
18447  protected ImplementationGuide typedCopy() {
18448    return copy();
18449  }
18450
18451  @Override
18452  public boolean equalsDeep(Base other_) {
18453    if (!super.equalsDeep(other_))
18454      return false;
18455    if (!(other_ instanceof ImplementationGuide))
18456      return false;
18457    ImplementationGuide o = (ImplementationGuide) other_;
18458    return compareDeep(copyright, o.copyright, true) && compareDeep(packageId, o.packageId, true)
18459        && compareDeep(license, o.license, true) && compareDeep(fhirVersion, o.fhirVersion, true)
18460        && compareDeep(dependsOn, o.dependsOn, true) && compareDeep(global, o.global, true)
18461        && compareDeep(definition, o.definition, true) && compareDeep(manifest, o.manifest, true);
18462  }
18463
18464  @Override
18465  public boolean equalsShallow(Base other_) {
18466    if (!super.equalsShallow(other_))
18467      return false;
18468    if (!(other_ instanceof ImplementationGuide))
18469      return false;
18470    ImplementationGuide o = (ImplementationGuide) other_;
18471    return compareValues(copyright, o.copyright, true) && compareValues(packageId, o.packageId, true)
18472        && compareValues(license, o.license, true) && compareValues(fhirVersion, o.fhirVersion, true);
18473  }
18474
18475  public boolean isEmpty() {
18476    return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(copyright, packageId, license, fhirVersion,
18477        dependsOn, global, definition, manifest);
18478  }
18479
18480  @Override
18481  public ResourceType getResourceType() {
18482    return ResourceType.ImplementationGuide;
18483  }
18484
18485  /**
18486   * Search parameter: <b>date</b>
18487   * <p>
18488   * Description: <b>The implementation guide publication date</b><br>
18489   * Type: <b>date</b><br>
18490   * Path: <b>ImplementationGuide.date</b><br>
18491   * </p>
18492   */
18493  @SearchParamDefinition(name = "date", path = "ImplementationGuide.date", description = "The implementation guide publication date", type = "date")
18494  public static final String SP_DATE = "date";
18495  /**
18496   * <b>Fluent Client</b> search parameter constant for <b>date</b>
18497   * <p>
18498   * Description: <b>The implementation guide publication date</b><br>
18499   * Type: <b>date</b><br>
18500   * Path: <b>ImplementationGuide.date</b><br>
18501   * </p>
18502   */
18503  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(
18504      SP_DATE);
18505
18506  /**
18507   * Search parameter: <b>context-type-value</b>
18508   * <p>
18509   * Description: <b>A use context type and value assigned to the implementation
18510   * guide</b><br>
18511   * Type: <b>composite</b><br>
18512   * Path: <b></b><br>
18513   * </p>
18514   */
18515  @SearchParamDefinition(name = "context-type-value", path = "ImplementationGuide.useContext", description = "A use context type and value assigned to the implementation guide", type = "composite", compositeOf = {
18516      "context-type", "context" })
18517  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
18518  /**
18519   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
18520   * <p>
18521   * Description: <b>A use context type and value assigned to the implementation
18522   * guide</b><br>
18523   * Type: <b>composite</b><br>
18524   * Path: <b></b><br>
18525   * </p>
18526   */
18527  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>(
18528      SP_CONTEXT_TYPE_VALUE);
18529
18530  /**
18531   * Search parameter: <b>resource</b>
18532   * <p>
18533   * Description: <b>Location of the resource</b><br>
18534   * Type: <b>reference</b><br>
18535   * Path: <b>ImplementationGuide.definition.resource.reference</b><br>
18536   * </p>
18537   */
18538  @SearchParamDefinition(name = "resource", path = "ImplementationGuide.definition.resource.reference", description = "Location of the resource", type = "reference")
18539  public static final String SP_RESOURCE = "resource";
18540  /**
18541   * <b>Fluent Client</b> search parameter constant for <b>resource</b>
18542   * <p>
18543   * Description: <b>Location of the resource</b><br>
18544   * Type: <b>reference</b><br>
18545   * Path: <b>ImplementationGuide.definition.resource.reference</b><br>
18546   * </p>
18547   */
18548  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RESOURCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(
18549      SP_RESOURCE);
18550
18551  /**
18552   * Constant for fluent queries to be used to add include statements. Specifies
18553   * the path value of "<b>ImplementationGuide:resource</b>".
18554   */
18555  public static final ca.uhn.fhir.model.api.Include INCLUDE_RESOURCE = new ca.uhn.fhir.model.api.Include(
18556      "ImplementationGuide:resource").toLocked();
18557
18558  /**
18559   * Search parameter: <b>jurisdiction</b>
18560   * <p>
18561   * Description: <b>Intended jurisdiction for the implementation guide</b><br>
18562   * Type: <b>token</b><br>
18563   * Path: <b>ImplementationGuide.jurisdiction</b><br>
18564   * </p>
18565   */
18566  @SearchParamDefinition(name = "jurisdiction", path = "ImplementationGuide.jurisdiction", description = "Intended jurisdiction for the implementation guide", type = "token")
18567  public static final String SP_JURISDICTION = "jurisdiction";
18568  /**
18569   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
18570   * <p>
18571   * Description: <b>Intended jurisdiction for the implementation guide</b><br>
18572   * Type: <b>token</b><br>
18573   * Path: <b>ImplementationGuide.jurisdiction</b><br>
18574   * </p>
18575   */
18576  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(
18577      SP_JURISDICTION);
18578
18579  /**
18580   * Search parameter: <b>description</b>
18581   * <p>
18582   * Description: <b>The description of the implementation guide</b><br>
18583   * Type: <b>string</b><br>
18584   * Path: <b>ImplementationGuide.description</b><br>
18585   * </p>
18586   */
18587  @SearchParamDefinition(name = "description", path = "ImplementationGuide.description", description = "The description of the implementation guide", type = "string")
18588  public static final String SP_DESCRIPTION = "description";
18589  /**
18590   * <b>Fluent Client</b> search parameter constant for <b>description</b>
18591   * <p>
18592   * Description: <b>The description of the implementation guide</b><br>
18593   * Type: <b>string</b><br>
18594   * Path: <b>ImplementationGuide.description</b><br>
18595   * </p>
18596   */
18597  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(
18598      SP_DESCRIPTION);
18599
18600  /**
18601   * Search parameter: <b>context-type</b>
18602   * <p>
18603   * Description: <b>A type of use context assigned to the implementation
18604   * guide</b><br>
18605   * Type: <b>token</b><br>
18606   * Path: <b>ImplementationGuide.useContext.code</b><br>
18607   * </p>
18608   */
18609  @SearchParamDefinition(name = "context-type", path = "ImplementationGuide.useContext.code", description = "A type of use context assigned to the implementation guide", type = "token")
18610  public static final String SP_CONTEXT_TYPE = "context-type";
18611  /**
18612   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
18613   * <p>
18614   * Description: <b>A type of use context assigned to the implementation
18615   * guide</b><br>
18616   * Type: <b>token</b><br>
18617   * Path: <b>ImplementationGuide.useContext.code</b><br>
18618   * </p>
18619   */
18620  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(
18621      SP_CONTEXT_TYPE);
18622
18623  /**
18624   * Search parameter: <b>experimental</b>
18625   * <p>
18626   * Description: <b>For testing purposes, not real usage</b><br>
18627   * Type: <b>token</b><br>
18628   * Path: <b>ImplementationGuide.experimental</b><br>
18629   * </p>
18630   */
18631  @SearchParamDefinition(name = "experimental", path = "ImplementationGuide.experimental", description = "For testing purposes, not real usage", type = "token")
18632  public static final String SP_EXPERIMENTAL = "experimental";
18633  /**
18634   * <b>Fluent Client</b> search parameter constant for <b>experimental</b>
18635   * <p>
18636   * Description: <b>For testing purposes, not real usage</b><br>
18637   * Type: <b>token</b><br>
18638   * Path: <b>ImplementationGuide.experimental</b><br>
18639   * </p>
18640   */
18641  public static final ca.uhn.fhir.rest.gclient.TokenClientParam EXPERIMENTAL = new ca.uhn.fhir.rest.gclient.TokenClientParam(
18642      SP_EXPERIMENTAL);
18643
18644  /**
18645   * Search parameter: <b>global</b>
18646   * <p>
18647   * Description: <b>Profile that all resources must conform to</b><br>
18648   * Type: <b>reference</b><br>
18649   * Path: <b>ImplementationGuide.global.profile</b><br>
18650   * </p>
18651   */
18652  @SearchParamDefinition(name = "global", path = "ImplementationGuide.global.profile", description = "Profile that all resources must conform to", type = "reference", target = {
18653      StructureDefinition.class })
18654  public static final String SP_GLOBAL = "global";
18655  /**
18656   * <b>Fluent Client</b> search parameter constant for <b>global</b>
18657   * <p>
18658   * Description: <b>Profile that all resources must conform to</b><br>
18659   * Type: <b>reference</b><br>
18660   * Path: <b>ImplementationGuide.global.profile</b><br>
18661   * </p>
18662   */
18663  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam GLOBAL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(
18664      SP_GLOBAL);
18665
18666  /**
18667   * Constant for fluent queries to be used to add include statements. Specifies
18668   * the path value of "<b>ImplementationGuide:global</b>".
18669   */
18670  public static final ca.uhn.fhir.model.api.Include INCLUDE_GLOBAL = new ca.uhn.fhir.model.api.Include(
18671      "ImplementationGuide:global").toLocked();
18672
18673  /**
18674   * Search parameter: <b>title</b>
18675   * <p>
18676   * Description: <b>The human-friendly name of the implementation guide</b><br>
18677   * Type: <b>string</b><br>
18678   * Path: <b>ImplementationGuide.title</b><br>
18679   * </p>
18680   */
18681  @SearchParamDefinition(name = "title", path = "ImplementationGuide.title", description = "The human-friendly name of the implementation guide", type = "string")
18682  public static final String SP_TITLE = "title";
18683  /**
18684   * <b>Fluent Client</b> search parameter constant for <b>title</b>
18685   * <p>
18686   * Description: <b>The human-friendly name of the implementation guide</b><br>
18687   * Type: <b>string</b><br>
18688   * Path: <b>ImplementationGuide.title</b><br>
18689   * </p>
18690   */
18691  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(
18692      SP_TITLE);
18693
18694  /**
18695   * Search parameter: <b>version</b>
18696   * <p>
18697   * Description: <b>The business version of the implementation guide</b><br>
18698   * Type: <b>token</b><br>
18699   * Path: <b>ImplementationGuide.version</b><br>
18700   * </p>
18701   */
18702  @SearchParamDefinition(name = "version", path = "ImplementationGuide.version", description = "The business version of the implementation guide", type = "token")
18703  public static final String SP_VERSION = "version";
18704  /**
18705   * <b>Fluent Client</b> search parameter constant for <b>version</b>
18706   * <p>
18707   * Description: <b>The business version of the implementation guide</b><br>
18708   * Type: <b>token</b><br>
18709   * Path: <b>ImplementationGuide.version</b><br>
18710   * </p>
18711   */
18712  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(
18713      SP_VERSION);
18714
18715  /**
18716   * Search parameter: <b>url</b>
18717   * <p>
18718   * Description: <b>The uri that identifies the implementation guide</b><br>
18719   * Type: <b>uri</b><br>
18720   * Path: <b>ImplementationGuide.url</b><br>
18721   * </p>
18722   */
18723  @SearchParamDefinition(name = "url", path = "ImplementationGuide.url", description = "The uri that identifies the implementation guide", type = "uri")
18724  public static final String SP_URL = "url";
18725  /**
18726   * <b>Fluent Client</b> search parameter constant for <b>url</b>
18727   * <p>
18728   * Description: <b>The uri that identifies the implementation guide</b><br>
18729   * Type: <b>uri</b><br>
18730   * Path: <b>ImplementationGuide.url</b><br>
18731   * </p>
18732   */
18733  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
18734
18735  /**
18736   * Search parameter: <b>context-quantity</b>
18737   * <p>
18738   * Description: <b>A quantity- or range-valued use context assigned to the
18739   * implementation guide</b><br>
18740   * Type: <b>quantity</b><br>
18741   * Path: <b>ImplementationGuide.useContext.valueQuantity,
18742   * ImplementationGuide.useContext.valueRange</b><br>
18743   * </p>
18744   */
18745  @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")
18746  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
18747  /**
18748   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
18749   * <p>
18750   * Description: <b>A quantity- or range-valued use context assigned to the
18751   * implementation guide</b><br>
18752   * Type: <b>quantity</b><br>
18753   * Path: <b>ImplementationGuide.useContext.valueQuantity,
18754   * ImplementationGuide.useContext.valueRange</b><br>
18755   * </p>
18756   */
18757  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(
18758      SP_CONTEXT_QUANTITY);
18759
18760  /**
18761   * Search parameter: <b>depends-on</b>
18762   * <p>
18763   * Description: <b>Identity of the IG that this depends on</b><br>
18764   * Type: <b>reference</b><br>
18765   * Path: <b>ImplementationGuide.dependsOn.uri</b><br>
18766   * </p>
18767   */
18768  @SearchParamDefinition(name = "depends-on", path = "ImplementationGuide.dependsOn.uri", description = "Identity of the IG that this depends on", type = "reference", target = {
18769      ImplementationGuide.class })
18770  public static final String SP_DEPENDS_ON = "depends-on";
18771  /**
18772   * <b>Fluent Client</b> search parameter constant for <b>depends-on</b>
18773   * <p>
18774   * Description: <b>Identity of the IG that this depends on</b><br>
18775   * Type: <b>reference</b><br>
18776   * Path: <b>ImplementationGuide.dependsOn.uri</b><br>
18777   * </p>
18778   */
18779  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEPENDS_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(
18780      SP_DEPENDS_ON);
18781
18782  /**
18783   * Constant for fluent queries to be used to add include statements. Specifies
18784   * the path value of "<b>ImplementationGuide:depends-on</b>".
18785   */
18786  public static final ca.uhn.fhir.model.api.Include INCLUDE_DEPENDS_ON = new ca.uhn.fhir.model.api.Include(
18787      "ImplementationGuide:depends-on").toLocked();
18788
18789  /**
18790   * Search parameter: <b>name</b>
18791   * <p>
18792   * Description: <b>Computationally friendly name of the implementation
18793   * guide</b><br>
18794   * Type: <b>string</b><br>
18795   * Path: <b>ImplementationGuide.name</b><br>
18796   * </p>
18797   */
18798  @SearchParamDefinition(name = "name", path = "ImplementationGuide.name", description = "Computationally friendly name of the implementation guide", type = "string")
18799  public static final String SP_NAME = "name";
18800  /**
18801   * <b>Fluent Client</b> search parameter constant for <b>name</b>
18802   * <p>
18803   * Description: <b>Computationally friendly name of the implementation
18804   * guide</b><br>
18805   * Type: <b>string</b><br>
18806   * Path: <b>ImplementationGuide.name</b><br>
18807   * </p>
18808   */
18809  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(
18810      SP_NAME);
18811
18812  /**
18813   * Search parameter: <b>context</b>
18814   * <p>
18815   * Description: <b>A use context assigned to the implementation guide</b><br>
18816   * Type: <b>token</b><br>
18817   * Path: <b>ImplementationGuide.useContext.valueCodeableConcept</b><br>
18818   * </p>
18819   */
18820  @SearchParamDefinition(name = "context", path = "(ImplementationGuide.useContext.value as CodeableConcept)", description = "A use context assigned to the implementation guide", type = "token")
18821  public static final String SP_CONTEXT = "context";
18822  /**
18823   * <b>Fluent Client</b> search parameter constant for <b>context</b>
18824   * <p>
18825   * Description: <b>A use context assigned to the implementation guide</b><br>
18826   * Type: <b>token</b><br>
18827   * Path: <b>ImplementationGuide.useContext.valueCodeableConcept</b><br>
18828   * </p>
18829   */
18830  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(
18831      SP_CONTEXT);
18832
18833  /**
18834   * Search parameter: <b>publisher</b>
18835   * <p>
18836   * Description: <b>Name of the publisher of the implementation guide</b><br>
18837   * Type: <b>string</b><br>
18838   * Path: <b>ImplementationGuide.publisher</b><br>
18839   * </p>
18840   */
18841  @SearchParamDefinition(name = "publisher", path = "ImplementationGuide.publisher", description = "Name of the publisher of the implementation guide", type = "string")
18842  public static final String SP_PUBLISHER = "publisher";
18843  /**
18844   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
18845   * <p>
18846   * Description: <b>Name of the publisher of the implementation guide</b><br>
18847   * Type: <b>string</b><br>
18848   * Path: <b>ImplementationGuide.publisher</b><br>
18849   * </p>
18850   */
18851  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(
18852      SP_PUBLISHER);
18853
18854  /**
18855   * Search parameter: <b>context-type-quantity</b>
18856   * <p>
18857   * Description: <b>A use context type and quantity- or range-based value
18858   * assigned to the implementation guide</b><br>
18859   * Type: <b>composite</b><br>
18860   * Path: <b></b><br>
18861   * </p>
18862   */
18863  @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 = {
18864      "context-type", "context-quantity" })
18865  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
18866  /**
18867   * <b>Fluent Client</b> search parameter constant for
18868   * <b>context-type-quantity</b>
18869   * <p>
18870   * Description: <b>A use context type and quantity- or range-based value
18871   * assigned to the implementation guide</b><br>
18872   * Type: <b>composite</b><br>
18873   * Path: <b></b><br>
18874   * </p>
18875   */
18876  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>(
18877      SP_CONTEXT_TYPE_QUANTITY);
18878
18879  /**
18880   * Search parameter: <b>status</b>
18881   * <p>
18882   * Description: <b>The current status of the implementation guide</b><br>
18883   * Type: <b>token</b><br>
18884   * Path: <b>ImplementationGuide.status</b><br>
18885   * </p>
18886   */
18887  @SearchParamDefinition(name = "status", path = "ImplementationGuide.status", description = "The current status of the implementation guide", type = "token")
18888  public static final String SP_STATUS = "status";
18889  /**
18890   * <b>Fluent Client</b> search parameter constant for <b>status</b>
18891   * <p>
18892   * Description: <b>The current status of the implementation guide</b><br>
18893   * Type: <b>token</b><br>
18894   * Path: <b>ImplementationGuide.status</b><br>
18895   * </p>
18896   */
18897  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(
18898      SP_STATUS);
18899
18900}