001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * A set of rules of how a particular interoperability or standards problem is solved - typically through the use of FHIR resources. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.
052 */
053@ResourceDef(name="ImplementationGuide", profile="http://hl7.org/fhir/StructureDefinition/ImplementationGuide")
054public class ImplementationGuide extends CanonicalResource {
055
056    public enum GuidePageGeneration {
057        /**
058         * Page is proper xhtml with no templating.  Will be brought across unchanged for standard post-processing.
059         */
060        HTML, 
061        /**
062         * Page is markdown with templating.  Will use the template to create a file that imports the markdown file prior to post-processing.
063         */
064        MARKDOWN, 
065        /**
066         * 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.
067         */
068        XML, 
069        /**
070         * Page will be generated by the publication process - no source to bring across.
071         */
072        GENERATED, 
073        /**
074         * added to help the parsers with the generic types
075         */
076        NULL;
077        public static GuidePageGeneration fromCode(String codeString) throws FHIRException {
078            if (codeString == null || "".equals(codeString))
079                return null;
080        if ("html".equals(codeString))
081          return HTML;
082        if ("markdown".equals(codeString))
083          return MARKDOWN;
084        if ("xml".equals(codeString))
085          return XML;
086        if ("generated".equals(codeString))
087          return GENERATED;
088        if (Configuration.isAcceptInvalidEnums())
089          return null;
090        else
091          throw new FHIRException("Unknown GuidePageGeneration code '"+codeString+"'");
092        }
093        public String toCode() {
094          switch (this) {
095            case HTML: return "html";
096            case MARKDOWN: return "markdown";
097            case XML: return "xml";
098            case GENERATED: return "generated";
099            case NULL: return null;
100            default: return "?";
101          }
102        }
103        public String getSystem() {
104          switch (this) {
105            case HTML: return "http://hl7.org/fhir/guide-page-generation";
106            case MARKDOWN: return "http://hl7.org/fhir/guide-page-generation";
107            case XML: return "http://hl7.org/fhir/guide-page-generation";
108            case GENERATED: return "http://hl7.org/fhir/guide-page-generation";
109            case NULL: return null;
110            default: return "?";
111          }
112        }
113        public String getDefinition() {
114          switch (this) {
115            case HTML: return "Page is proper xhtml with no templating.  Will be brought across unchanged for standard post-processing.";
116            case MARKDOWN: return "Page is markdown with templating.  Will use the template to create a file that imports the markdown file prior to post-processing.";
117            case XML: return "Page is xml with templating.  Will use the template to create a file that imports the source file and run the nominated XSLT transform (see parameters) if present prior to post-processing.";
118            case GENERATED: return "Page will be generated by the publication process - no source to bring across.";
119            case NULL: return null;
120            default: return "?";
121          }
122        }
123        public String getDisplay() {
124          switch (this) {
125            case HTML: return "HTML";
126            case MARKDOWN: return "Markdown";
127            case XML: return "XML";
128            case GENERATED: return "Generated";
129            case NULL: return null;
130            default: return "?";
131          }
132        }
133    }
134
135  public static class GuidePageGenerationEnumFactory implements EnumFactory<GuidePageGeneration> {
136    public GuidePageGeneration fromCode(String codeString) throws IllegalArgumentException {
137      if (codeString == null || "".equals(codeString))
138            if (codeString == null || "".equals(codeString))
139                return null;
140        if ("html".equals(codeString))
141          return GuidePageGeneration.HTML;
142        if ("markdown".equals(codeString))
143          return GuidePageGeneration.MARKDOWN;
144        if ("xml".equals(codeString))
145          return GuidePageGeneration.XML;
146        if ("generated".equals(codeString))
147          return GuidePageGeneration.GENERATED;
148        throw new IllegalArgumentException("Unknown GuidePageGeneration code '"+codeString+"'");
149        }
150        public Enumeration<GuidePageGeneration> fromType(Base code) throws FHIRException {
151          if (code == null)
152            return null;
153          if (code.isEmpty())
154            return new Enumeration<GuidePageGeneration>(this);
155          String codeString = ((PrimitiveType) code).asStringValue();
156          if (codeString == null || "".equals(codeString))
157            return null;
158        if ("html".equals(codeString))
159          return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.HTML);
160        if ("markdown".equals(codeString))
161          return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.MARKDOWN);
162        if ("xml".equals(codeString))
163          return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.XML);
164        if ("generated".equals(codeString))
165          return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.GENERATED);
166        throw new FHIRException("Unknown GuidePageGeneration code '"+codeString+"'");
167        }
168    public String toCode(GuidePageGeneration code) {
169      if (code == GuidePageGeneration.HTML)
170        return "html";
171      if (code == GuidePageGeneration.MARKDOWN)
172        return "markdown";
173      if (code == GuidePageGeneration.XML)
174        return "xml";
175      if (code == GuidePageGeneration.GENERATED)
176        return "generated";
177      return "?";
178      }
179    public String toSystem(GuidePageGeneration code) {
180      return code.getSystem();
181      }
182    }
183
184    public enum SPDXLicense {
185        /**
186         * Not an open source license.
187         */
188        NOTOPENSOURCE, 
189        /**
190         * BSD Zero Clause License.
191         */
192        _0BSD, 
193        /**
194         * Attribution Assurance License.
195         */
196        AAL, 
197        /**
198         * Abstyles License.
199         */
200        ABSTYLES, 
201        /**
202         * Adobe Systems Incorporated Source Code License Agreement.
203         */
204        ADOBE2006, 
205        /**
206         * Adobe Glyph List License.
207         */
208        ADOBEGLYPH, 
209        /**
210         * Amazon Digital Services License.
211         */
212        ADSL, 
213        /**
214         * Academic Free License v1.1.
215         */
216        AFL1_1, 
217        /**
218         * Academic Free License v1.2.
219         */
220        AFL1_2, 
221        /**
222         * Academic Free License v2.0.
223         */
224        AFL2_0, 
225        /**
226         * Academic Free License v2.1.
227         */
228        AFL2_1, 
229        /**
230         * Academic Free License v3.0.
231         */
232        AFL3_0, 
233        /**
234         * Afmparse License.
235         */
236        AFMPARSE, 
237        /**
238         * Affero General Public License v1.0 only.
239         */
240        AGPL1_0ONLY, 
241        /**
242         * Affero General Public License v1.0 or later.
243         */
244        AGPL1_0ORLATER, 
245        /**
246         * GNU Affero General Public License v3.0 only.
247         */
248        AGPL3_0ONLY, 
249        /**
250         * GNU Affero General Public License v3.0 or later.
251         */
252        AGPL3_0ORLATER, 
253        /**
254         * Aladdin Free Public License.
255         */
256        ALADDIN, 
257        /**
258         * AMD's plpa_map.c License.
259         */
260        AMDPLPA, 
261        /**
262         * Apple MIT License.
263         */
264        AML, 
265        /**
266         * Academy of Motion Picture Arts and Sciences BSD.
267         */
268        AMPAS, 
269        /**
270         * ANTLR Software Rights Notice.
271         */
272        ANTLRPD, 
273        /**
274         * Apache License 1.0.
275         */
276        APACHE1_0, 
277        /**
278         * Apache License 1.1.
279         */
280        APACHE1_1, 
281        /**
282         * Apache License 2.0.
283         */
284        APACHE2_0, 
285        /**
286         * Adobe Postscript AFM License.
287         */
288        APAFML, 
289        /**
290         * Adaptive Public License 1.0.
291         */
292        APL1_0, 
293        /**
294         * Apple Public Source License 1.0.
295         */
296        APSL1_0, 
297        /**
298         * Apple Public Source License 1.1.
299         */
300        APSL1_1, 
301        /**
302         * Apple Public Source License 1.2.
303         */
304        APSL1_2, 
305        /**
306         * Apple Public Source License 2.0.
307         */
308        APSL2_0, 
309        /**
310         * Artistic License 1.0 w/clause 8.
311         */
312        ARTISTIC1_0CL8, 
313        /**
314         * Artistic License 1.0 (Perl).
315         */
316        ARTISTIC1_0PERL, 
317        /**
318         * Artistic License 1.0.
319         */
320        ARTISTIC1_0, 
321        /**
322         * Artistic License 2.0.
323         */
324        ARTISTIC2_0, 
325        /**
326         * Bahyph License.
327         */
328        BAHYPH, 
329        /**
330         * Barr License.
331         */
332        BARR, 
333        /**
334         * Beerware License.
335         */
336        BEERWARE, 
337        /**
338         * BitTorrent Open Source License v1.0.
339         */
340        BITTORRENT1_0, 
341        /**
342         * BitTorrent Open Source License v1.1.
343         */
344        BITTORRENT1_1, 
345        /**
346         * Borceux license.
347         */
348        BORCEUX, 
349        /**
350         * BSD 1-Clause License.
351         */
352        BSD1CLAUSE, 
353        /**
354         * BSD 2-Clause FreeBSD License.
355         */
356        BSD2CLAUSEFREEBSD, 
357        /**
358         * BSD 2-Clause NetBSD License.
359         */
360        BSD2CLAUSENETBSD, 
361        /**
362         * BSD-2-Clause Plus Patent License.
363         */
364        BSD2CLAUSEPATENT, 
365        /**
366         * BSD 2-Clause \"Simplified\" License.
367         */
368        BSD2CLAUSE, 
369        /**
370         * BSD with attribution.
371         */
372        BSD3CLAUSEATTRIBUTION, 
373        /**
374         * BSD 3-Clause Clear License.
375         */
376        BSD3CLAUSECLEAR, 
377        /**
378         * Lawrence Berkeley National Labs BSD variant license.
379         */
380        BSD3CLAUSELBNL, 
381        /**
382         * BSD 3-Clause No Nuclear License 2014.
383         */
384        BSD3CLAUSENONUCLEARLICENSE2014, 
385        /**
386         * BSD 3-Clause No Nuclear License.
387         */
388        BSD3CLAUSENONUCLEARLICENSE, 
389        /**
390         * BSD 3-Clause No Nuclear Warranty.
391         */
392        BSD3CLAUSENONUCLEARWARRANTY, 
393        /**
394         * BSD 3-Clause \"New\" or \"Revised\" License.
395         */
396        BSD3CLAUSE, 
397        /**
398         * BSD-4-Clause (University of California-Specific).
399         */
400        BSD4CLAUSEUC, 
401        /**
402         * BSD 4-Clause \"Original\" or \"Old\" License.
403         */
404        BSD4CLAUSE, 
405        /**
406         * BSD Protection License.
407         */
408        BSDPROTECTION, 
409        /**
410         * BSD Source Code Attribution.
411         */
412        BSDSOURCECODE, 
413        /**
414         * Boost Software License 1.0.
415         */
416        BSL1_0, 
417        /**
418         * bzip2 and libbzip2 License v1.0.5.
419         */
420        BZIP21_0_5, 
421        /**
422         * bzip2 and libbzip2 License v1.0.6.
423         */
424        BZIP21_0_6, 
425        /**
426         * Caldera License.
427         */
428        CALDERA, 
429        /**
430         * Computer Associates Trusted Open Source License 1.1.
431         */
432        CATOSL1_1, 
433        /**
434         * Creative Commons Attribution 1.0 Generic.
435         */
436        CCBY1_0, 
437        /**
438         * Creative Commons Attribution 2.0 Generic.
439         */
440        CCBY2_0, 
441        /**
442         * Creative Commons Attribution 2.5 Generic.
443         */
444        CCBY2_5, 
445        /**
446         * Creative Commons Attribution 3.0 Unported.
447         */
448        CCBY3_0, 
449        /**
450         * Creative Commons Attribution 4.0 International.
451         */
452        CCBY4_0, 
453        /**
454         * Creative Commons Attribution Non Commercial 1.0 Generic.
455         */
456        CCBYNC1_0, 
457        /**
458         * Creative Commons Attribution Non Commercial 2.0 Generic.
459         */
460        CCBYNC2_0, 
461        /**
462         * Creative Commons Attribution Non Commercial 2.5 Generic.
463         */
464        CCBYNC2_5, 
465        /**
466         * Creative Commons Attribution Non Commercial 3.0 Unported.
467         */
468        CCBYNC3_0, 
469        /**
470         * Creative Commons Attribution Non Commercial 4.0 International.
471         */
472        CCBYNC4_0, 
473        /**
474         * Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic.
475         */
476        CCBYNCND1_0, 
477        /**
478         * Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic.
479         */
480        CCBYNCND2_0, 
481        /**
482         * Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic.
483         */
484        CCBYNCND2_5, 
485        /**
486         * Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported.
487         */
488        CCBYNCND3_0, 
489        /**
490         * Creative Commons Attribution Non Commercial No Derivatives 4.0 International.
491         */
492        CCBYNCND4_0, 
493        /**
494         * Creative Commons Attribution Non Commercial Share Alike 1.0 Generic.
495         */
496        CCBYNCSA1_0, 
497        /**
498         * Creative Commons Attribution Non Commercial Share Alike 2.0 Generic.
499         */
500        CCBYNCSA2_0, 
501        /**
502         * Creative Commons Attribution Non Commercial Share Alike 2.5 Generic.
503         */
504        CCBYNCSA2_5, 
505        /**
506         * Creative Commons Attribution Non Commercial Share Alike 3.0 Unported.
507         */
508        CCBYNCSA3_0, 
509        /**
510         * Creative Commons Attribution Non Commercial Share Alike 4.0 International.
511         */
512        CCBYNCSA4_0, 
513        /**
514         * Creative Commons Attribution No Derivatives 1.0 Generic.
515         */
516        CCBYND1_0, 
517        /**
518         * Creative Commons Attribution No Derivatives 2.0 Generic.
519         */
520        CCBYND2_0, 
521        /**
522         * Creative Commons Attribution No Derivatives 2.5 Generic.
523         */
524        CCBYND2_5, 
525        /**
526         * Creative Commons Attribution No Derivatives 3.0 Unported.
527         */
528        CCBYND3_0, 
529        /**
530         * Creative Commons Attribution No Derivatives 4.0 International.
531         */
532        CCBYND4_0, 
533        /**
534         * Creative Commons Attribution Share Alike 1.0 Generic.
535         */
536        CCBYSA1_0, 
537        /**
538         * Creative Commons Attribution Share Alike 2.0 Generic.
539         */
540        CCBYSA2_0, 
541        /**
542         * Creative Commons Attribution Share Alike 2.5 Generic.
543         */
544        CCBYSA2_5, 
545        /**
546         * Creative Commons Attribution Share Alike 3.0 Unported.
547         */
548        CCBYSA3_0, 
549        /**
550         * Creative Commons Attribution Share Alike 4.0 International.
551         */
552        CCBYSA4_0, 
553        /**
554         * Creative Commons Zero v1.0 Universal.
555         */
556        CC01_0, 
557        /**
558         * Common Development and Distribution License 1.0.
559         */
560        CDDL1_0, 
561        /**
562         * Common Development and Distribution License 1.1.
563         */
564        CDDL1_1, 
565        /**
566         * Community Data License Agreement Permissive 1.0.
567         */
568        CDLAPERMISSIVE1_0, 
569        /**
570         * Community Data License Agreement Sharing 1.0.
571         */
572        CDLASHARING1_0, 
573        /**
574         * CeCILL Free Software License Agreement v1.0.
575         */
576        CECILL1_0, 
577        /**
578         * CeCILL Free Software License Agreement v1.1.
579         */
580        CECILL1_1, 
581        /**
582         * CeCILL Free Software License Agreement v2.0.
583         */
584        CECILL2_0, 
585        /**
586         * CeCILL Free Software License Agreement v2.1.
587         */
588        CECILL2_1, 
589        /**
590         * CeCILL-B Free Software License Agreement.
591         */
592        CECILLB, 
593        /**
594         * CeCILL-C Free Software License Agreement.
595         */
596        CECILLC, 
597        /**
598         * Clarified Artistic License.
599         */
600        CLARTISTIC, 
601        /**
602         * CNRI Jython License.
603         */
604        CNRIJYTHON, 
605        /**
606         * CNRI Python Open Source GPL Compatible License Agreement.
607         */
608        CNRIPYTHONGPLCOMPATIBLE, 
609        /**
610         * CNRI Python License.
611         */
612        CNRIPYTHON, 
613        /**
614         * Condor Public License v1.1.
615         */
616        CONDOR1_1, 
617        /**
618         * Common Public Attribution License 1.0.
619         */
620        CPAL1_0, 
621        /**
622         * Common Public License 1.0.
623         */
624        CPL1_0, 
625        /**
626         * Code Project Open License 1.02.
627         */
628        CPOL1_02, 
629        /**
630         * Crossword License.
631         */
632        CROSSWORD, 
633        /**
634         * CrystalStacker License.
635         */
636        CRYSTALSTACKER, 
637        /**
638         * CUA Office Public License v1.0.
639         */
640        CUAOPL1_0, 
641        /**
642         * Cube License.
643         */
644        CUBE, 
645        /**
646         * curl License.
647         */
648        CURL, 
649        /**
650         * Deutsche Freie Software Lizenz.
651         */
652        DFSL1_0, 
653        /**
654         * diffmark license.
655         */
656        DIFFMARK, 
657        /**
658         * DOC License.
659         */
660        DOC, 
661        /**
662         * Dotseqn License.
663         */
664        DOTSEQN, 
665        /**
666         * DSDP License.
667         */
668        DSDP, 
669        /**
670         * dvipdfm License.
671         */
672        DVIPDFM, 
673        /**
674         * Educational Community License v1.0.
675         */
676        ECL1_0, 
677        /**
678         * Educational Community License v2.0.
679         */
680        ECL2_0, 
681        /**
682         * Eiffel Forum License v1.0.
683         */
684        EFL1_0, 
685        /**
686         * Eiffel Forum License v2.0.
687         */
688        EFL2_0, 
689        /**
690         * eGenix.com Public License 1.1.0.
691         */
692        EGENIX, 
693        /**
694         * Entessa Public License v1.0.
695         */
696        ENTESSA, 
697        /**
698         * Eclipse Public License 1.0.
699         */
700        EPL1_0, 
701        /**
702         * Eclipse Public License 2.0.
703         */
704        EPL2_0, 
705        /**
706         * Erlang Public License v1.1.
707         */
708        ERLPL1_1, 
709        /**
710         * EU DataGrid Software License.
711         */
712        EUDATAGRID, 
713        /**
714         * European Union Public License 1.0.
715         */
716        EUPL1_0, 
717        /**
718         * European Union Public License 1.1.
719         */
720        EUPL1_1, 
721        /**
722         * European Union Public License 1.2.
723         */
724        EUPL1_2, 
725        /**
726         * Eurosym License.
727         */
728        EUROSYM, 
729        /**
730         * Fair License.
731         */
732        FAIR, 
733        /**
734         * Frameworx Open License 1.0.
735         */
736        FRAMEWORX1_0, 
737        /**
738         * FreeImage Public License v1.0.
739         */
740        FREEIMAGE, 
741        /**
742         * FSF All Permissive License.
743         */
744        FSFAP, 
745        /**
746         * FSF Unlimited License.
747         */
748        FSFUL, 
749        /**
750         * FSF Unlimited License (with License Retention).
751         */
752        FSFULLR, 
753        /**
754         * Freetype Project License.
755         */
756        FTL, 
757        /**
758         * GNU Free Documentation License v1.1 only.
759         */
760        GFDL1_1ONLY, 
761        /**
762         * GNU Free Documentation License v1.1 or later.
763         */
764        GFDL1_1ORLATER, 
765        /**
766         * GNU Free Documentation License v1.2 only.
767         */
768        GFDL1_2ONLY, 
769        /**
770         * GNU Free Documentation License v1.2 or later.
771         */
772        GFDL1_2ORLATER, 
773        /**
774         * GNU Free Documentation License v1.3 only.
775         */
776        GFDL1_3ONLY, 
777        /**
778         * GNU Free Documentation License v1.3 or later.
779         */
780        GFDL1_3ORLATER, 
781        /**
782         * Giftware License.
783         */
784        GIFTWARE, 
785        /**
786         * GL2PS License.
787         */
788        GL2PS, 
789        /**
790         * 3dfx Glide License.
791         */
792        GLIDE, 
793        /**
794         * Glulxe License.
795         */
796        GLULXE, 
797        /**
798         * gnuplot License.
799         */
800        GNUPLOT, 
801        /**
802         * GNU General Public License v1.0 only.
803         */
804        GPL1_0ONLY, 
805        /**
806         * GNU General Public License v1.0 or later.
807         */
808        GPL1_0ORLATER, 
809        /**
810         * GNU General Public License v2.0 only.
811         */
812        GPL2_0ONLY, 
813        /**
814         * GNU General Public License v2.0 or later.
815         */
816        GPL2_0ORLATER, 
817        /**
818         * GNU General Public License v3.0 only.
819         */
820        GPL3_0ONLY, 
821        /**
822         * GNU General Public License v3.0 or later.
823         */
824        GPL3_0ORLATER, 
825        /**
826         * gSOAP Public License v1.3b.
827         */
828        GSOAP1_3B, 
829        /**
830         * Haskell Language Report License.
831         */
832        HASKELLREPORT, 
833        /**
834         * Historical Permission Notice and Disclaimer.
835         */
836        HPND, 
837        /**
838         * IBM PowerPC Initialization and Boot Software.
839         */
840        IBMPIBS, 
841        /**
842         * ICU License.
843         */
844        ICU, 
845        /**
846         * Independent JPEG Group License.
847         */
848        IJG, 
849        /**
850         * ImageMagick License.
851         */
852        IMAGEMAGICK, 
853        /**
854         * iMatix Standard Function Library Agreement.
855         */
856        IMATIX, 
857        /**
858         * Imlib2 License.
859         */
860        IMLIB2, 
861        /**
862         * Info-ZIP License.
863         */
864        INFOZIP, 
865        /**
866         * Intel ACPI Software License Agreement.
867         */
868        INTELACPI, 
869        /**
870         * Intel Open Source License.
871         */
872        INTEL, 
873        /**
874         * Interbase Public License v1.0.
875         */
876        INTERBASE1_0, 
877        /**
878         * IPA Font License.
879         */
880        IPA, 
881        /**
882         * IBM Public License v1.0.
883         */
884        IPL1_0, 
885        /**
886         * ISC License.
887         */
888        ISC, 
889        /**
890         * JasPer License.
891         */
892        JASPER2_0, 
893        /**
894         * JSON License.
895         */
896        JSON, 
897        /**
898         * Licence Art Libre 1.2.
899         */
900        LAL1_2, 
901        /**
902         * Licence Art Libre 1.3.
903         */
904        LAL1_3, 
905        /**
906         * Latex2e License.
907         */
908        LATEX2E, 
909        /**
910         * Leptonica License.
911         */
912        LEPTONICA, 
913        /**
914         * GNU Library General Public License v2 only.
915         */
916        LGPL2_0ONLY, 
917        /**
918         * GNU Library General Public License v2 or later.
919         */
920        LGPL2_0ORLATER, 
921        /**
922         * GNU Lesser General Public License v2.1 only.
923         */
924        LGPL2_1ONLY, 
925        /**
926         * GNU Lesser General Public License v2.1 or later.
927         */
928        LGPL2_1ORLATER, 
929        /**
930         * GNU Lesser General Public License v3.0 only.
931         */
932        LGPL3_0ONLY, 
933        /**
934         * GNU Lesser General Public License v3.0 or later.
935         */
936        LGPL3_0ORLATER, 
937        /**
938         * Lesser General Public License For Linguistic Resources.
939         */
940        LGPLLR, 
941        /**
942         * libpng License.
943         */
944        LIBPNG, 
945        /**
946         * libtiff License.
947         */
948        LIBTIFF, 
949        /**
950         * Licence Libre du Québec ? Permissive version 1.1.
951         */
952        LILIQP1_1, 
953        /**
954         * Licence Libre du Québec ? Réciprocité version 1.1.
955         */
956        LILIQR1_1, 
957        /**
958         * Licence Libre du Québec ? Réciprocité forte version 1.1.
959         */
960        LILIQRPLUS1_1, 
961        /**
962         * Linux Kernel Variant of OpenIB.org license.
963         */
964        LINUXOPENIB, 
965        /**
966         * Lucent Public License Version 1.0.
967         */
968        LPL1_0, 
969        /**
970         * Lucent Public License v1.02.
971         */
972        LPL1_02, 
973        /**
974         * LaTeX Project Public License v1.0.
975         */
976        LPPL1_0, 
977        /**
978         * LaTeX Project Public License v1.1.
979         */
980        LPPL1_1, 
981        /**
982         * LaTeX Project Public License v1.2.
983         */
984        LPPL1_2, 
985        /**
986         * LaTeX Project Public License v1.3a.
987         */
988        LPPL1_3A, 
989        /**
990         * LaTeX Project Public License v1.3c.
991         */
992        LPPL1_3C, 
993        /**
994         * MakeIndex License.
995         */
996        MAKEINDEX, 
997        /**
998         * MirOS License.
999         */
1000        MIROS, 
1001        /**
1002         * MIT No Attribution.
1003         */
1004        MIT0, 
1005        /**
1006         * Enlightenment License (e16).
1007         */
1008        MITADVERTISING, 
1009        /**
1010         * CMU License.
1011         */
1012        MITCMU, 
1013        /**
1014         * enna License.
1015         */
1016        MITENNA, 
1017        /**
1018         * feh License.
1019         */
1020        MITFEH, 
1021        /**
1022         * MIT License.
1023         */
1024        MIT, 
1025        /**
1026         * MIT +no-false-attribs license.
1027         */
1028        MITNFA, 
1029        /**
1030         * Motosoto License.
1031         */
1032        MOTOSOTO, 
1033        /**
1034         * mpich2 License.
1035         */
1036        MPICH2, 
1037        /**
1038         * Mozilla Public License 1.0.
1039         */
1040        MPL1_0, 
1041        /**
1042         * Mozilla Public License 1.1.
1043         */
1044        MPL1_1, 
1045        /**
1046         * Mozilla Public License 2.0 (no copyleft exception).
1047         */
1048        MPL2_0NOCOPYLEFTEXCEPTION, 
1049        /**
1050         * Mozilla Public License 2.0.
1051         */
1052        MPL2_0, 
1053        /**
1054         * Microsoft Public License.
1055         */
1056        MSPL, 
1057        /**
1058         * Microsoft Reciprocal License.
1059         */
1060        MSRL, 
1061        /**
1062         * Matrix Template Library License.
1063         */
1064        MTLL, 
1065        /**
1066         * Multics License.
1067         */
1068        MULTICS, 
1069        /**
1070         * Mup License.
1071         */
1072        MUP, 
1073        /**
1074         * NASA Open Source Agreement 1.3.
1075         */
1076        NASA1_3, 
1077        /**
1078         * Naumen Public License.
1079         */
1080        NAUMEN, 
1081        /**
1082         * Net Boolean Public License v1.
1083         */
1084        NBPL1_0, 
1085        /**
1086         * University of Illinois/NCSA Open Source License.
1087         */
1088        NCSA, 
1089        /**
1090         * Net-SNMP License.
1091         */
1092        NETSNMP, 
1093        /**
1094         * NetCDF license.
1095         */
1096        NETCDF, 
1097        /**
1098         * Newsletr License.
1099         */
1100        NEWSLETR, 
1101        /**
1102         * Nethack General Public License.
1103         */
1104        NGPL, 
1105        /**
1106         * Norwegian Licence for Open Government Data.
1107         */
1108        NLOD1_0, 
1109        /**
1110         * No Limit Public License.
1111         */
1112        NLPL, 
1113        /**
1114         * Nokia Open Source License.
1115         */
1116        NOKIA, 
1117        /**
1118         * Netizen Open Source License.
1119         */
1120        NOSL, 
1121        /**
1122         * Noweb License.
1123         */
1124        NOWEB, 
1125        /**
1126         * Netscape Public License v1.0.
1127         */
1128        NPL1_0, 
1129        /**
1130         * Netscape Public License v1.1.
1131         */
1132        NPL1_1, 
1133        /**
1134         * Non-Profit Open Software License 3.0.
1135         */
1136        NPOSL3_0, 
1137        /**
1138         * NRL License.
1139         */
1140        NRL, 
1141        /**
1142         * NTP License.
1143         */
1144        NTP, 
1145        /**
1146         * Open CASCADE Technology Public License.
1147         */
1148        OCCTPL, 
1149        /**
1150         * OCLC Research Public License 2.0.
1151         */
1152        OCLC2_0, 
1153        /**
1154         * ODC Open Database License v1.0.
1155         */
1156        ODBL1_0, 
1157        /**
1158         * SIL Open Font License 1.0.
1159         */
1160        OFL1_0, 
1161        /**
1162         * SIL Open Font License 1.1.
1163         */
1164        OFL1_1, 
1165        /**
1166         * Open Group Test Suite License.
1167         */
1168        OGTSL, 
1169        /**
1170         * Open LDAP Public License v1.1.
1171         */
1172        OLDAP1_1, 
1173        /**
1174         * Open LDAP Public License v1.2.
1175         */
1176        OLDAP1_2, 
1177        /**
1178         * Open LDAP Public License v1.3.
1179         */
1180        OLDAP1_3, 
1181        /**
1182         * Open LDAP Public License v1.4.
1183         */
1184        OLDAP1_4, 
1185        /**
1186         * Open LDAP Public License v2.0.1.
1187         */
1188        OLDAP2_0_1, 
1189        /**
1190         * Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B).
1191         */
1192        OLDAP2_0, 
1193        /**
1194         * Open LDAP Public License v2.1.
1195         */
1196        OLDAP2_1, 
1197        /**
1198         * Open LDAP Public License v2.2.1.
1199         */
1200        OLDAP2_2_1, 
1201        /**
1202         * Open LDAP Public License 2.2.2.
1203         */
1204        OLDAP2_2_2, 
1205        /**
1206         * Open LDAP Public License v2.2.
1207         */
1208        OLDAP2_2, 
1209        /**
1210         * Open LDAP Public License v2.3.
1211         */
1212        OLDAP2_3, 
1213        /**
1214         * Open LDAP Public License v2.4.
1215         */
1216        OLDAP2_4, 
1217        /**
1218         * Open LDAP Public License v2.5.
1219         */
1220        OLDAP2_5, 
1221        /**
1222         * Open LDAP Public License v2.6.
1223         */
1224        OLDAP2_6, 
1225        /**
1226         * Open LDAP Public License v2.7.
1227         */
1228        OLDAP2_7, 
1229        /**
1230         * Open LDAP Public License v2.8.
1231         */
1232        OLDAP2_8, 
1233        /**
1234         * Open Market License.
1235         */
1236        OML, 
1237        /**
1238         * OpenSSL License.
1239         */
1240        OPENSSL, 
1241        /**
1242         * Open Public License v1.0.
1243         */
1244        OPL1_0, 
1245        /**
1246         * OSET Public License version 2.1.
1247         */
1248        OSETPL2_1, 
1249        /**
1250         * Open Software License 1.0.
1251         */
1252        OSL1_0, 
1253        /**
1254         * Open Software License 1.1.
1255         */
1256        OSL1_1, 
1257        /**
1258         * Open Software License 2.0.
1259         */
1260        OSL2_0, 
1261        /**
1262         * Open Software License 2.1.
1263         */
1264        OSL2_1, 
1265        /**
1266         * Open Software License 3.0.
1267         */
1268        OSL3_0, 
1269        /**
1270         * ODC Public Domain Dedication & License 1.0.
1271         */
1272        PDDL1_0, 
1273        /**
1274         * PHP License v3.0.
1275         */
1276        PHP3_0, 
1277        /**
1278         * PHP License v3.01.
1279         */
1280        PHP3_01, 
1281        /**
1282         * Plexus Classworlds License.
1283         */
1284        PLEXUS, 
1285        /**
1286         * PostgreSQL License.
1287         */
1288        POSTGRESQL, 
1289        /**
1290         * psfrag License.
1291         */
1292        PSFRAG, 
1293        /**
1294         * psutils License.
1295         */
1296        PSUTILS, 
1297        /**
1298         * Python License 2.0.
1299         */
1300        PYTHON2_0, 
1301        /**
1302         * Qhull License.
1303         */
1304        QHULL, 
1305        /**
1306         * Q Public License 1.0.
1307         */
1308        QPL1_0, 
1309        /**
1310         * Rdisc License.
1311         */
1312        RDISC, 
1313        /**
1314         * Red Hat eCos Public License v1.1.
1315         */
1316        RHECOS1_1, 
1317        /**
1318         * Reciprocal Public License 1.1.
1319         */
1320        RPL1_1, 
1321        /**
1322         * Reciprocal Public License 1.5.
1323         */
1324        RPL1_5, 
1325        /**
1326         * RealNetworks Public Source License v1.0.
1327         */
1328        RPSL1_0, 
1329        /**
1330         * RSA Message-Digest License.
1331         */
1332        RSAMD, 
1333        /**
1334         * Ricoh Source Code Public License.
1335         */
1336        RSCPL, 
1337        /**
1338         * Ruby License.
1339         */
1340        RUBY, 
1341        /**
1342         * Sax Public Domain Notice.
1343         */
1344        SAXPD, 
1345        /**
1346         * Saxpath License.
1347         */
1348        SAXPATH, 
1349        /**
1350         * SCEA Shared Source License.
1351         */
1352        SCEA, 
1353        /**
1354         * Sendmail License.
1355         */
1356        SENDMAIL, 
1357        /**
1358         * SGI Free Software License B v1.0.
1359         */
1360        SGIB1_0, 
1361        /**
1362         * SGI Free Software License B v1.1.
1363         */
1364        SGIB1_1, 
1365        /**
1366         * SGI Free Software License B v2.0.
1367         */
1368        SGIB2_0, 
1369        /**
1370         * Simple Public License 2.0.
1371         */
1372        SIMPL2_0, 
1373        /**
1374         * Sun Industry Standards Source License v1.2.
1375         */
1376        SISSL1_2, 
1377        /**
1378         * Sun Industry Standards Source License v1.1.
1379         */
1380        SISSL, 
1381        /**
1382         * Sleepycat License.
1383         */
1384        SLEEPYCAT, 
1385        /**
1386         * Standard ML of New Jersey License.
1387         */
1388        SMLNJ, 
1389        /**
1390         * Secure Messaging Protocol Public License.
1391         */
1392        SMPPL, 
1393        /**
1394         * SNIA Public License 1.1.
1395         */
1396        SNIA, 
1397        /**
1398         * Spencer License 86.
1399         */
1400        SPENCER86, 
1401        /**
1402         * Spencer License 94.
1403         */
1404        SPENCER94, 
1405        /**
1406         * Spencer License 99.
1407         */
1408        SPENCER99, 
1409        /**
1410         * Sun Public License v1.0.
1411         */
1412        SPL1_0, 
1413        /**
1414         * SugarCRM Public License v1.1.3.
1415         */
1416        SUGARCRM1_1_3, 
1417        /**
1418         * Scheme Widget Library (SWL) Software License Agreement.
1419         */
1420        SWL, 
1421        /**
1422         * TCL/TK License.
1423         */
1424        TCL, 
1425        /**
1426         * TCP Wrappers License.
1427         */
1428        TCPWRAPPERS, 
1429        /**
1430         * TMate Open Source License.
1431         */
1432        TMATE, 
1433        /**
1434         * TORQUE v2.5+ Software License v1.1.
1435         */
1436        TORQUE1_1, 
1437        /**
1438         * Trusster Open Source License.
1439         */
1440        TOSL, 
1441        /**
1442         * Unicode License Agreement - Data Files and Software (2015).
1443         */
1444        UNICODEDFS2015, 
1445        /**
1446         * Unicode License Agreement - Data Files and Software (2016).
1447         */
1448        UNICODEDFS2016, 
1449        /**
1450         * Unicode Terms of Use.
1451         */
1452        UNICODETOU, 
1453        /**
1454         * The Unlicense.
1455         */
1456        UNLICENSE, 
1457        /**
1458         * Universal Permissive License v1.0.
1459         */
1460        UPL1_0, 
1461        /**
1462         * Vim License.
1463         */
1464        VIM, 
1465        /**
1466         * VOSTROM Public License for Open Source.
1467         */
1468        VOSTROM, 
1469        /**
1470         * Vovida Software License v1.0.
1471         */
1472        VSL1_0, 
1473        /**
1474         * W3C Software Notice and License (1998-07-20).
1475         */
1476        W3C19980720, 
1477        /**
1478         * W3C Software Notice and Document License (2015-05-13).
1479         */
1480        W3C20150513, 
1481        /**
1482         * W3C Software Notice and License (2002-12-31).
1483         */
1484        W3C, 
1485        /**
1486         * Sybase Open Watcom Public License 1.0.
1487         */
1488        WATCOM1_0, 
1489        /**
1490         * Wsuipa License.
1491         */
1492        WSUIPA, 
1493        /**
1494         * Do What The F*ck You Want To Public License.
1495         */
1496        WTFPL, 
1497        /**
1498         * X11 License.
1499         */
1500        X11, 
1501        /**
1502         * Xerox License.
1503         */
1504        XEROX, 
1505        /**
1506         * XFree86 License 1.1.
1507         */
1508        XFREE861_1, 
1509        /**
1510         * xinetd License.
1511         */
1512        XINETD, 
1513        /**
1514         * X.Net License.
1515         */
1516        XNET, 
1517        /**
1518         * XPP License.
1519         */
1520        XPP, 
1521        /**
1522         * XSkat License.
1523         */
1524        XSKAT, 
1525        /**
1526         * Yahoo! Public License v1.0.
1527         */
1528        YPL1_0, 
1529        /**
1530         * Yahoo! Public License v1.1.
1531         */
1532        YPL1_1, 
1533        /**
1534         * Zed License.
1535         */
1536        ZED, 
1537        /**
1538         * Zend License v2.0.
1539         */
1540        ZEND2_0, 
1541        /**
1542         * Zimbra Public License v1.3.
1543         */
1544        ZIMBRA1_3, 
1545        /**
1546         * Zimbra Public License v1.4.
1547         */
1548        ZIMBRA1_4, 
1549        /**
1550         * zlib/libpng License with Acknowledgement.
1551         */
1552        ZLIBACKNOWLEDGEMENT, 
1553        /**
1554         * zlib License.
1555         */
1556        ZLIB, 
1557        /**
1558         * Zope Public License 1.1.
1559         */
1560        ZPL1_1, 
1561        /**
1562         * Zope Public License 2.0.
1563         */
1564        ZPL2_0, 
1565        /**
1566         * Zope Public License 2.1.
1567         */
1568        ZPL2_1, 
1569        /**
1570         * added to help the parsers with the generic types
1571         */
1572        NULL;
1573        public static SPDXLicense fromCode(String codeString) throws FHIRException {
1574            if (codeString == null || "".equals(codeString))
1575                return null;
1576        if ("not-open-source".equals(codeString))
1577          return NOTOPENSOURCE;
1578        if ("0BSD".equals(codeString))
1579          return _0BSD;
1580        if ("AAL".equals(codeString))
1581          return AAL;
1582        if ("Abstyles".equals(codeString))
1583          return ABSTYLES;
1584        if ("Adobe-2006".equals(codeString))
1585          return ADOBE2006;
1586        if ("Adobe-Glyph".equals(codeString))
1587          return ADOBEGLYPH;
1588        if ("ADSL".equals(codeString))
1589          return ADSL;
1590        if ("AFL-1.1".equals(codeString))
1591          return AFL1_1;
1592        if ("AFL-1.2".equals(codeString))
1593          return AFL1_2;
1594        if ("AFL-2.0".equals(codeString))
1595          return AFL2_0;
1596        if ("AFL-2.1".equals(codeString))
1597          return AFL2_1;
1598        if ("AFL-3.0".equals(codeString))
1599          return AFL3_0;
1600        if ("Afmparse".equals(codeString))
1601          return AFMPARSE;
1602        if ("AGPL-1.0-only".equals(codeString))
1603          return AGPL1_0ONLY;
1604        if ("AGPL-1.0-or-later".equals(codeString))
1605          return AGPL1_0ORLATER;
1606        if ("AGPL-3.0-only".equals(codeString))
1607          return AGPL3_0ONLY;
1608        if ("AGPL-3.0-or-later".equals(codeString))
1609          return AGPL3_0ORLATER;
1610        if ("Aladdin".equals(codeString))
1611          return ALADDIN;
1612        if ("AMDPLPA".equals(codeString))
1613          return AMDPLPA;
1614        if ("AML".equals(codeString))
1615          return AML;
1616        if ("AMPAS".equals(codeString))
1617          return AMPAS;
1618        if ("ANTLR-PD".equals(codeString))
1619          return ANTLRPD;
1620        if ("Apache-1.0".equals(codeString))
1621          return APACHE1_0;
1622        if ("Apache-1.1".equals(codeString))
1623          return APACHE1_1;
1624        if ("Apache-2.0".equals(codeString))
1625          return APACHE2_0;
1626        if ("APAFML".equals(codeString))
1627          return APAFML;
1628        if ("APL-1.0".equals(codeString))
1629          return APL1_0;
1630        if ("APSL-1.0".equals(codeString))
1631          return APSL1_0;
1632        if ("APSL-1.1".equals(codeString))
1633          return APSL1_1;
1634        if ("APSL-1.2".equals(codeString))
1635          return APSL1_2;
1636        if ("APSL-2.0".equals(codeString))
1637          return APSL2_0;
1638        if ("Artistic-1.0-cl8".equals(codeString))
1639          return ARTISTIC1_0CL8;
1640        if ("Artistic-1.0-Perl".equals(codeString))
1641          return ARTISTIC1_0PERL;
1642        if ("Artistic-1.0".equals(codeString))
1643          return ARTISTIC1_0;
1644        if ("Artistic-2.0".equals(codeString))
1645          return ARTISTIC2_0;
1646        if ("Bahyph".equals(codeString))
1647          return BAHYPH;
1648        if ("Barr".equals(codeString))
1649          return BARR;
1650        if ("Beerware".equals(codeString))
1651          return BEERWARE;
1652        if ("BitTorrent-1.0".equals(codeString))
1653          return BITTORRENT1_0;
1654        if ("BitTorrent-1.1".equals(codeString))
1655          return BITTORRENT1_1;
1656        if ("Borceux".equals(codeString))
1657          return BORCEUX;
1658        if ("BSD-1-Clause".equals(codeString))
1659          return BSD1CLAUSE;
1660        if ("BSD-2-Clause-FreeBSD".equals(codeString))
1661          return BSD2CLAUSEFREEBSD;
1662        if ("BSD-2-Clause-NetBSD".equals(codeString))
1663          return BSD2CLAUSENETBSD;
1664        if ("BSD-2-Clause-Patent".equals(codeString))
1665          return BSD2CLAUSEPATENT;
1666        if ("BSD-2-Clause".equals(codeString))
1667          return BSD2CLAUSE;
1668        if ("BSD-3-Clause-Attribution".equals(codeString))
1669          return BSD3CLAUSEATTRIBUTION;
1670        if ("BSD-3-Clause-Clear".equals(codeString))
1671          return BSD3CLAUSECLEAR;
1672        if ("BSD-3-Clause-LBNL".equals(codeString))
1673          return BSD3CLAUSELBNL;
1674        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
1675          return BSD3CLAUSENONUCLEARLICENSE2014;
1676        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
1677          return BSD3CLAUSENONUCLEARLICENSE;
1678        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
1679          return BSD3CLAUSENONUCLEARWARRANTY;
1680        if ("BSD-3-Clause".equals(codeString))
1681          return BSD3CLAUSE;
1682        if ("BSD-4-Clause-UC".equals(codeString))
1683          return BSD4CLAUSEUC;
1684        if ("BSD-4-Clause".equals(codeString))
1685          return BSD4CLAUSE;
1686        if ("BSD-Protection".equals(codeString))
1687          return BSDPROTECTION;
1688        if ("BSD-Source-Code".equals(codeString))
1689          return BSDSOURCECODE;
1690        if ("BSL-1.0".equals(codeString))
1691          return BSL1_0;
1692        if ("bzip2-1.0.5".equals(codeString))
1693          return BZIP21_0_5;
1694        if ("bzip2-1.0.6".equals(codeString))
1695          return BZIP21_0_6;
1696        if ("Caldera".equals(codeString))
1697          return CALDERA;
1698        if ("CATOSL-1.1".equals(codeString))
1699          return CATOSL1_1;
1700        if ("CC-BY-1.0".equals(codeString))
1701          return CCBY1_0;
1702        if ("CC-BY-2.0".equals(codeString))
1703          return CCBY2_0;
1704        if ("CC-BY-2.5".equals(codeString))
1705          return CCBY2_5;
1706        if ("CC-BY-3.0".equals(codeString))
1707          return CCBY3_0;
1708        if ("CC-BY-4.0".equals(codeString))
1709          return CCBY4_0;
1710        if ("CC-BY-NC-1.0".equals(codeString))
1711          return CCBYNC1_0;
1712        if ("CC-BY-NC-2.0".equals(codeString))
1713          return CCBYNC2_0;
1714        if ("CC-BY-NC-2.5".equals(codeString))
1715          return CCBYNC2_5;
1716        if ("CC-BY-NC-3.0".equals(codeString))
1717          return CCBYNC3_0;
1718        if ("CC-BY-NC-4.0".equals(codeString))
1719          return CCBYNC4_0;
1720        if ("CC-BY-NC-ND-1.0".equals(codeString))
1721          return CCBYNCND1_0;
1722        if ("CC-BY-NC-ND-2.0".equals(codeString))
1723          return CCBYNCND2_0;
1724        if ("CC-BY-NC-ND-2.5".equals(codeString))
1725          return CCBYNCND2_5;
1726        if ("CC-BY-NC-ND-3.0".equals(codeString))
1727          return CCBYNCND3_0;
1728        if ("CC-BY-NC-ND-4.0".equals(codeString))
1729          return CCBYNCND4_0;
1730        if ("CC-BY-NC-SA-1.0".equals(codeString))
1731          return CCBYNCSA1_0;
1732        if ("CC-BY-NC-SA-2.0".equals(codeString))
1733          return CCBYNCSA2_0;
1734        if ("CC-BY-NC-SA-2.5".equals(codeString))
1735          return CCBYNCSA2_5;
1736        if ("CC-BY-NC-SA-3.0".equals(codeString))
1737          return CCBYNCSA3_0;
1738        if ("CC-BY-NC-SA-4.0".equals(codeString))
1739          return CCBYNCSA4_0;
1740        if ("CC-BY-ND-1.0".equals(codeString))
1741          return CCBYND1_0;
1742        if ("CC-BY-ND-2.0".equals(codeString))
1743          return CCBYND2_0;
1744        if ("CC-BY-ND-2.5".equals(codeString))
1745          return CCBYND2_5;
1746        if ("CC-BY-ND-3.0".equals(codeString))
1747          return CCBYND3_0;
1748        if ("CC-BY-ND-4.0".equals(codeString))
1749          return CCBYND4_0;
1750        if ("CC-BY-SA-1.0".equals(codeString))
1751          return CCBYSA1_0;
1752        if ("CC-BY-SA-2.0".equals(codeString))
1753          return CCBYSA2_0;
1754        if ("CC-BY-SA-2.5".equals(codeString))
1755          return CCBYSA2_5;
1756        if ("CC-BY-SA-3.0".equals(codeString))
1757          return CCBYSA3_0;
1758        if ("CC-BY-SA-4.0".equals(codeString))
1759          return CCBYSA4_0;
1760        if ("CC0-1.0".equals(codeString))
1761          return CC01_0;
1762        if ("CDDL-1.0".equals(codeString))
1763          return CDDL1_0;
1764        if ("CDDL-1.1".equals(codeString))
1765          return CDDL1_1;
1766        if ("CDLA-Permissive-1.0".equals(codeString))
1767          return CDLAPERMISSIVE1_0;
1768        if ("CDLA-Sharing-1.0".equals(codeString))
1769          return CDLASHARING1_0;
1770        if ("CECILL-1.0".equals(codeString))
1771          return CECILL1_0;
1772        if ("CECILL-1.1".equals(codeString))
1773          return CECILL1_1;
1774        if ("CECILL-2.0".equals(codeString))
1775          return CECILL2_0;
1776        if ("CECILL-2.1".equals(codeString))
1777          return CECILL2_1;
1778        if ("CECILL-B".equals(codeString))
1779          return CECILLB;
1780        if ("CECILL-C".equals(codeString))
1781          return CECILLC;
1782        if ("ClArtistic".equals(codeString))
1783          return CLARTISTIC;
1784        if ("CNRI-Jython".equals(codeString))
1785          return CNRIJYTHON;
1786        if ("CNRI-Python-GPL-Compatible".equals(codeString))
1787          return CNRIPYTHONGPLCOMPATIBLE;
1788        if ("CNRI-Python".equals(codeString))
1789          return CNRIPYTHON;
1790        if ("Condor-1.1".equals(codeString))
1791          return CONDOR1_1;
1792        if ("CPAL-1.0".equals(codeString))
1793          return CPAL1_0;
1794        if ("CPL-1.0".equals(codeString))
1795          return CPL1_0;
1796        if ("CPOL-1.02".equals(codeString))
1797          return CPOL1_02;
1798        if ("Crossword".equals(codeString))
1799          return CROSSWORD;
1800        if ("CrystalStacker".equals(codeString))
1801          return CRYSTALSTACKER;
1802        if ("CUA-OPL-1.0".equals(codeString))
1803          return CUAOPL1_0;
1804        if ("Cube".equals(codeString))
1805          return CUBE;
1806        if ("curl".equals(codeString))
1807          return CURL;
1808        if ("D-FSL-1.0".equals(codeString))
1809          return DFSL1_0;
1810        if ("diffmark".equals(codeString))
1811          return DIFFMARK;
1812        if ("DOC".equals(codeString))
1813          return DOC;
1814        if ("Dotseqn".equals(codeString))
1815          return DOTSEQN;
1816        if ("DSDP".equals(codeString))
1817          return DSDP;
1818        if ("dvipdfm".equals(codeString))
1819          return DVIPDFM;
1820        if ("ECL-1.0".equals(codeString))
1821          return ECL1_0;
1822        if ("ECL-2.0".equals(codeString))
1823          return ECL2_0;
1824        if ("EFL-1.0".equals(codeString))
1825          return EFL1_0;
1826        if ("EFL-2.0".equals(codeString))
1827          return EFL2_0;
1828        if ("eGenix".equals(codeString))
1829          return EGENIX;
1830        if ("Entessa".equals(codeString))
1831          return ENTESSA;
1832        if ("EPL-1.0".equals(codeString))
1833          return EPL1_0;
1834        if ("EPL-2.0".equals(codeString))
1835          return EPL2_0;
1836        if ("ErlPL-1.1".equals(codeString))
1837          return ERLPL1_1;
1838        if ("EUDatagrid".equals(codeString))
1839          return EUDATAGRID;
1840        if ("EUPL-1.0".equals(codeString))
1841          return EUPL1_0;
1842        if ("EUPL-1.1".equals(codeString))
1843          return EUPL1_1;
1844        if ("EUPL-1.2".equals(codeString))
1845          return EUPL1_2;
1846        if ("Eurosym".equals(codeString))
1847          return EUROSYM;
1848        if ("Fair".equals(codeString))
1849          return FAIR;
1850        if ("Frameworx-1.0".equals(codeString))
1851          return FRAMEWORX1_0;
1852        if ("FreeImage".equals(codeString))
1853          return FREEIMAGE;
1854        if ("FSFAP".equals(codeString))
1855          return FSFAP;
1856        if ("FSFUL".equals(codeString))
1857          return FSFUL;
1858        if ("FSFULLR".equals(codeString))
1859          return FSFULLR;
1860        if ("FTL".equals(codeString))
1861          return FTL;
1862        if ("GFDL-1.1-only".equals(codeString))
1863          return GFDL1_1ONLY;
1864        if ("GFDL-1.1-or-later".equals(codeString))
1865          return GFDL1_1ORLATER;
1866        if ("GFDL-1.2-only".equals(codeString))
1867          return GFDL1_2ONLY;
1868        if ("GFDL-1.2-or-later".equals(codeString))
1869          return GFDL1_2ORLATER;
1870        if ("GFDL-1.3-only".equals(codeString))
1871          return GFDL1_3ONLY;
1872        if ("GFDL-1.3-or-later".equals(codeString))
1873          return GFDL1_3ORLATER;
1874        if ("Giftware".equals(codeString))
1875          return GIFTWARE;
1876        if ("GL2PS".equals(codeString))
1877          return GL2PS;
1878        if ("Glide".equals(codeString))
1879          return GLIDE;
1880        if ("Glulxe".equals(codeString))
1881          return GLULXE;
1882        if ("gnuplot".equals(codeString))
1883          return GNUPLOT;
1884        if ("GPL-1.0-only".equals(codeString))
1885          return GPL1_0ONLY;
1886        if ("GPL-1.0-or-later".equals(codeString))
1887          return GPL1_0ORLATER;
1888        if ("GPL-2.0-only".equals(codeString))
1889          return GPL2_0ONLY;
1890        if ("GPL-2.0-or-later".equals(codeString))
1891          return GPL2_0ORLATER;
1892        if ("GPL-3.0-only".equals(codeString))
1893          return GPL3_0ONLY;
1894        if ("GPL-3.0-or-later".equals(codeString))
1895          return GPL3_0ORLATER;
1896        if ("gSOAP-1.3b".equals(codeString))
1897          return GSOAP1_3B;
1898        if ("HaskellReport".equals(codeString))
1899          return HASKELLREPORT;
1900        if ("HPND".equals(codeString))
1901          return HPND;
1902        if ("IBM-pibs".equals(codeString))
1903          return IBMPIBS;
1904        if ("ICU".equals(codeString))
1905          return ICU;
1906        if ("IJG".equals(codeString))
1907          return IJG;
1908        if ("ImageMagick".equals(codeString))
1909          return IMAGEMAGICK;
1910        if ("iMatix".equals(codeString))
1911          return IMATIX;
1912        if ("Imlib2".equals(codeString))
1913          return IMLIB2;
1914        if ("Info-ZIP".equals(codeString))
1915          return INFOZIP;
1916        if ("Intel-ACPI".equals(codeString))
1917          return INTELACPI;
1918        if ("Intel".equals(codeString))
1919          return INTEL;
1920        if ("Interbase-1.0".equals(codeString))
1921          return INTERBASE1_0;
1922        if ("IPA".equals(codeString))
1923          return IPA;
1924        if ("IPL-1.0".equals(codeString))
1925          return IPL1_0;
1926        if ("ISC".equals(codeString))
1927          return ISC;
1928        if ("JasPer-2.0".equals(codeString))
1929          return JASPER2_0;
1930        if ("JSON".equals(codeString))
1931          return JSON;
1932        if ("LAL-1.2".equals(codeString))
1933          return LAL1_2;
1934        if ("LAL-1.3".equals(codeString))
1935          return LAL1_3;
1936        if ("Latex2e".equals(codeString))
1937          return LATEX2E;
1938        if ("Leptonica".equals(codeString))
1939          return LEPTONICA;
1940        if ("LGPL-2.0-only".equals(codeString))
1941          return LGPL2_0ONLY;
1942        if ("LGPL-2.0-or-later".equals(codeString))
1943          return LGPL2_0ORLATER;
1944        if ("LGPL-2.1-only".equals(codeString))
1945          return LGPL2_1ONLY;
1946        if ("LGPL-2.1-or-later".equals(codeString))
1947          return LGPL2_1ORLATER;
1948        if ("LGPL-3.0-only".equals(codeString))
1949          return LGPL3_0ONLY;
1950        if ("LGPL-3.0-or-later".equals(codeString))
1951          return LGPL3_0ORLATER;
1952        if ("LGPLLR".equals(codeString))
1953          return LGPLLR;
1954        if ("Libpng".equals(codeString))
1955          return LIBPNG;
1956        if ("libtiff".equals(codeString))
1957          return LIBTIFF;
1958        if ("LiLiQ-P-1.1".equals(codeString))
1959          return LILIQP1_1;
1960        if ("LiLiQ-R-1.1".equals(codeString))
1961          return LILIQR1_1;
1962        if ("LiLiQ-Rplus-1.1".equals(codeString))
1963          return LILIQRPLUS1_1;
1964        if ("Linux-OpenIB".equals(codeString))
1965          return LINUXOPENIB;
1966        if ("LPL-1.0".equals(codeString))
1967          return LPL1_0;
1968        if ("LPL-1.02".equals(codeString))
1969          return LPL1_02;
1970        if ("LPPL-1.0".equals(codeString))
1971          return LPPL1_0;
1972        if ("LPPL-1.1".equals(codeString))
1973          return LPPL1_1;
1974        if ("LPPL-1.2".equals(codeString))
1975          return LPPL1_2;
1976        if ("LPPL-1.3a".equals(codeString))
1977          return LPPL1_3A;
1978        if ("LPPL-1.3c".equals(codeString))
1979          return LPPL1_3C;
1980        if ("MakeIndex".equals(codeString))
1981          return MAKEINDEX;
1982        if ("MirOS".equals(codeString))
1983          return MIROS;
1984        if ("MIT-0".equals(codeString))
1985          return MIT0;
1986        if ("MIT-advertising".equals(codeString))
1987          return MITADVERTISING;
1988        if ("MIT-CMU".equals(codeString))
1989          return MITCMU;
1990        if ("MIT-enna".equals(codeString))
1991          return MITENNA;
1992        if ("MIT-feh".equals(codeString))
1993          return MITFEH;
1994        if ("MIT".equals(codeString))
1995          return MIT;
1996        if ("MITNFA".equals(codeString))
1997          return MITNFA;
1998        if ("Motosoto".equals(codeString))
1999          return MOTOSOTO;
2000        if ("mpich2".equals(codeString))
2001          return MPICH2;
2002        if ("MPL-1.0".equals(codeString))
2003          return MPL1_0;
2004        if ("MPL-1.1".equals(codeString))
2005          return MPL1_1;
2006        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
2007          return MPL2_0NOCOPYLEFTEXCEPTION;
2008        if ("MPL-2.0".equals(codeString))
2009          return MPL2_0;
2010        if ("MS-PL".equals(codeString))
2011          return MSPL;
2012        if ("MS-RL".equals(codeString))
2013          return MSRL;
2014        if ("MTLL".equals(codeString))
2015          return MTLL;
2016        if ("Multics".equals(codeString))
2017          return MULTICS;
2018        if ("Mup".equals(codeString))
2019          return MUP;
2020        if ("NASA-1.3".equals(codeString))
2021          return NASA1_3;
2022        if ("Naumen".equals(codeString))
2023          return NAUMEN;
2024        if ("NBPL-1.0".equals(codeString))
2025          return NBPL1_0;
2026        if ("NCSA".equals(codeString))
2027          return NCSA;
2028        if ("Net-SNMP".equals(codeString))
2029          return NETSNMP;
2030        if ("NetCDF".equals(codeString))
2031          return NETCDF;
2032        if ("Newsletr".equals(codeString))
2033          return NEWSLETR;
2034        if ("NGPL".equals(codeString))
2035          return NGPL;
2036        if ("NLOD-1.0".equals(codeString))
2037          return NLOD1_0;
2038        if ("NLPL".equals(codeString))
2039          return NLPL;
2040        if ("Nokia".equals(codeString))
2041          return NOKIA;
2042        if ("NOSL".equals(codeString))
2043          return NOSL;
2044        if ("Noweb".equals(codeString))
2045          return NOWEB;
2046        if ("NPL-1.0".equals(codeString))
2047          return NPL1_0;
2048        if ("NPL-1.1".equals(codeString))
2049          return NPL1_1;
2050        if ("NPOSL-3.0".equals(codeString))
2051          return NPOSL3_0;
2052        if ("NRL".equals(codeString))
2053          return NRL;
2054        if ("NTP".equals(codeString))
2055          return NTP;
2056        if ("OCCT-PL".equals(codeString))
2057          return OCCTPL;
2058        if ("OCLC-2.0".equals(codeString))
2059          return OCLC2_0;
2060        if ("ODbL-1.0".equals(codeString))
2061          return ODBL1_0;
2062        if ("OFL-1.0".equals(codeString))
2063          return OFL1_0;
2064        if ("OFL-1.1".equals(codeString))
2065          return OFL1_1;
2066        if ("OGTSL".equals(codeString))
2067          return OGTSL;
2068        if ("OLDAP-1.1".equals(codeString))
2069          return OLDAP1_1;
2070        if ("OLDAP-1.2".equals(codeString))
2071          return OLDAP1_2;
2072        if ("OLDAP-1.3".equals(codeString))
2073          return OLDAP1_3;
2074        if ("OLDAP-1.4".equals(codeString))
2075          return OLDAP1_4;
2076        if ("OLDAP-2.0.1".equals(codeString))
2077          return OLDAP2_0_1;
2078        if ("OLDAP-2.0".equals(codeString))
2079          return OLDAP2_0;
2080        if ("OLDAP-2.1".equals(codeString))
2081          return OLDAP2_1;
2082        if ("OLDAP-2.2.1".equals(codeString))
2083          return OLDAP2_2_1;
2084        if ("OLDAP-2.2.2".equals(codeString))
2085          return OLDAP2_2_2;
2086        if ("OLDAP-2.2".equals(codeString))
2087          return OLDAP2_2;
2088        if ("OLDAP-2.3".equals(codeString))
2089          return OLDAP2_3;
2090        if ("OLDAP-2.4".equals(codeString))
2091          return OLDAP2_4;
2092        if ("OLDAP-2.5".equals(codeString))
2093          return OLDAP2_5;
2094        if ("OLDAP-2.6".equals(codeString))
2095          return OLDAP2_6;
2096        if ("OLDAP-2.7".equals(codeString))
2097          return OLDAP2_7;
2098        if ("OLDAP-2.8".equals(codeString))
2099          return OLDAP2_8;
2100        if ("OML".equals(codeString))
2101          return OML;
2102        if ("OpenSSL".equals(codeString))
2103          return OPENSSL;
2104        if ("OPL-1.0".equals(codeString))
2105          return OPL1_0;
2106        if ("OSET-PL-2.1".equals(codeString))
2107          return OSETPL2_1;
2108        if ("OSL-1.0".equals(codeString))
2109          return OSL1_0;
2110        if ("OSL-1.1".equals(codeString))
2111          return OSL1_1;
2112        if ("OSL-2.0".equals(codeString))
2113          return OSL2_0;
2114        if ("OSL-2.1".equals(codeString))
2115          return OSL2_1;
2116        if ("OSL-3.0".equals(codeString))
2117          return OSL3_0;
2118        if ("PDDL-1.0".equals(codeString))
2119          return PDDL1_0;
2120        if ("PHP-3.0".equals(codeString))
2121          return PHP3_0;
2122        if ("PHP-3.01".equals(codeString))
2123          return PHP3_01;
2124        if ("Plexus".equals(codeString))
2125          return PLEXUS;
2126        if ("PostgreSQL".equals(codeString))
2127          return POSTGRESQL;
2128        if ("psfrag".equals(codeString))
2129          return PSFRAG;
2130        if ("psutils".equals(codeString))
2131          return PSUTILS;
2132        if ("Python-2.0".equals(codeString))
2133          return PYTHON2_0;
2134        if ("Qhull".equals(codeString))
2135          return QHULL;
2136        if ("QPL-1.0".equals(codeString))
2137          return QPL1_0;
2138        if ("Rdisc".equals(codeString))
2139          return RDISC;
2140        if ("RHeCos-1.1".equals(codeString))
2141          return RHECOS1_1;
2142        if ("RPL-1.1".equals(codeString))
2143          return RPL1_1;
2144        if ("RPL-1.5".equals(codeString))
2145          return RPL1_5;
2146        if ("RPSL-1.0".equals(codeString))
2147          return RPSL1_0;
2148        if ("RSA-MD".equals(codeString))
2149          return RSAMD;
2150        if ("RSCPL".equals(codeString))
2151          return RSCPL;
2152        if ("Ruby".equals(codeString))
2153          return RUBY;
2154        if ("SAX-PD".equals(codeString))
2155          return SAXPD;
2156        if ("Saxpath".equals(codeString))
2157          return SAXPATH;
2158        if ("SCEA".equals(codeString))
2159          return SCEA;
2160        if ("Sendmail".equals(codeString))
2161          return SENDMAIL;
2162        if ("SGI-B-1.0".equals(codeString))
2163          return SGIB1_0;
2164        if ("SGI-B-1.1".equals(codeString))
2165          return SGIB1_1;
2166        if ("SGI-B-2.0".equals(codeString))
2167          return SGIB2_0;
2168        if ("SimPL-2.0".equals(codeString))
2169          return SIMPL2_0;
2170        if ("SISSL-1.2".equals(codeString))
2171          return SISSL1_2;
2172        if ("SISSL".equals(codeString))
2173          return SISSL;
2174        if ("Sleepycat".equals(codeString))
2175          return SLEEPYCAT;
2176        if ("SMLNJ".equals(codeString))
2177          return SMLNJ;
2178        if ("SMPPL".equals(codeString))
2179          return SMPPL;
2180        if ("SNIA".equals(codeString))
2181          return SNIA;
2182        if ("Spencer-86".equals(codeString))
2183          return SPENCER86;
2184        if ("Spencer-94".equals(codeString))
2185          return SPENCER94;
2186        if ("Spencer-99".equals(codeString))
2187          return SPENCER99;
2188        if ("SPL-1.0".equals(codeString))
2189          return SPL1_0;
2190        if ("SugarCRM-1.1.3".equals(codeString))
2191          return SUGARCRM1_1_3;
2192        if ("SWL".equals(codeString))
2193          return SWL;
2194        if ("TCL".equals(codeString))
2195          return TCL;
2196        if ("TCP-wrappers".equals(codeString))
2197          return TCPWRAPPERS;
2198        if ("TMate".equals(codeString))
2199          return TMATE;
2200        if ("TORQUE-1.1".equals(codeString))
2201          return TORQUE1_1;
2202        if ("TOSL".equals(codeString))
2203          return TOSL;
2204        if ("Unicode-DFS-2015".equals(codeString))
2205          return UNICODEDFS2015;
2206        if ("Unicode-DFS-2016".equals(codeString))
2207          return UNICODEDFS2016;
2208        if ("Unicode-TOU".equals(codeString))
2209          return UNICODETOU;
2210        if ("Unlicense".equals(codeString))
2211          return UNLICENSE;
2212        if ("UPL-1.0".equals(codeString))
2213          return UPL1_0;
2214        if ("Vim".equals(codeString))
2215          return VIM;
2216        if ("VOSTROM".equals(codeString))
2217          return VOSTROM;
2218        if ("VSL-1.0".equals(codeString))
2219          return VSL1_0;
2220        if ("W3C-19980720".equals(codeString))
2221          return W3C19980720;
2222        if ("W3C-20150513".equals(codeString))
2223          return W3C20150513;
2224        if ("W3C".equals(codeString))
2225          return W3C;
2226        if ("Watcom-1.0".equals(codeString))
2227          return WATCOM1_0;
2228        if ("Wsuipa".equals(codeString))
2229          return WSUIPA;
2230        if ("WTFPL".equals(codeString))
2231          return WTFPL;
2232        if ("X11".equals(codeString))
2233          return X11;
2234        if ("Xerox".equals(codeString))
2235          return XEROX;
2236        if ("XFree86-1.1".equals(codeString))
2237          return XFREE861_1;
2238        if ("xinetd".equals(codeString))
2239          return XINETD;
2240        if ("Xnet".equals(codeString))
2241          return XNET;
2242        if ("xpp".equals(codeString))
2243          return XPP;
2244        if ("XSkat".equals(codeString))
2245          return XSKAT;
2246        if ("YPL-1.0".equals(codeString))
2247          return YPL1_0;
2248        if ("YPL-1.1".equals(codeString))
2249          return YPL1_1;
2250        if ("Zed".equals(codeString))
2251          return ZED;
2252        if ("Zend-2.0".equals(codeString))
2253          return ZEND2_0;
2254        if ("Zimbra-1.3".equals(codeString))
2255          return ZIMBRA1_3;
2256        if ("Zimbra-1.4".equals(codeString))
2257          return ZIMBRA1_4;
2258        if ("zlib-acknowledgement".equals(codeString))
2259          return ZLIBACKNOWLEDGEMENT;
2260        if ("Zlib".equals(codeString))
2261          return ZLIB;
2262        if ("ZPL-1.1".equals(codeString))
2263          return ZPL1_1;
2264        if ("ZPL-2.0".equals(codeString))
2265          return ZPL2_0;
2266        if ("ZPL-2.1".equals(codeString))
2267          return ZPL2_1;
2268        if (Configuration.isAcceptInvalidEnums())
2269          return null;
2270        else
2271          throw new FHIRException("Unknown SPDXLicense code '"+codeString+"'");
2272        }
2273        public String toCode() {
2274          switch (this) {
2275            case NOTOPENSOURCE: return "not-open-source";
2276            case _0BSD: return "0BSD";
2277            case AAL: return "AAL";
2278            case ABSTYLES: return "Abstyles";
2279            case ADOBE2006: return "Adobe-2006";
2280            case ADOBEGLYPH: return "Adobe-Glyph";
2281            case ADSL: return "ADSL";
2282            case AFL1_1: return "AFL-1.1";
2283            case AFL1_2: return "AFL-1.2";
2284            case AFL2_0: return "AFL-2.0";
2285            case AFL2_1: return "AFL-2.1";
2286            case AFL3_0: return "AFL-3.0";
2287            case AFMPARSE: return "Afmparse";
2288            case AGPL1_0ONLY: return "AGPL-1.0-only";
2289            case AGPL1_0ORLATER: return "AGPL-1.0-or-later";
2290            case AGPL3_0ONLY: return "AGPL-3.0-only";
2291            case AGPL3_0ORLATER: return "AGPL-3.0-or-later";
2292            case ALADDIN: return "Aladdin";
2293            case AMDPLPA: return "AMDPLPA";
2294            case AML: return "AML";
2295            case AMPAS: return "AMPAS";
2296            case ANTLRPD: return "ANTLR-PD";
2297            case APACHE1_0: return "Apache-1.0";
2298            case APACHE1_1: return "Apache-1.1";
2299            case APACHE2_0: return "Apache-2.0";
2300            case APAFML: return "APAFML";
2301            case APL1_0: return "APL-1.0";
2302            case APSL1_0: return "APSL-1.0";
2303            case APSL1_1: return "APSL-1.1";
2304            case APSL1_2: return "APSL-1.2";
2305            case APSL2_0: return "APSL-2.0";
2306            case ARTISTIC1_0CL8: return "Artistic-1.0-cl8";
2307            case ARTISTIC1_0PERL: return "Artistic-1.0-Perl";
2308            case ARTISTIC1_0: return "Artistic-1.0";
2309            case ARTISTIC2_0: return "Artistic-2.0";
2310            case BAHYPH: return "Bahyph";
2311            case BARR: return "Barr";
2312            case BEERWARE: return "Beerware";
2313            case BITTORRENT1_0: return "BitTorrent-1.0";
2314            case BITTORRENT1_1: return "BitTorrent-1.1";
2315            case BORCEUX: return "Borceux";
2316            case BSD1CLAUSE: return "BSD-1-Clause";
2317            case BSD2CLAUSEFREEBSD: return "BSD-2-Clause-FreeBSD";
2318            case BSD2CLAUSENETBSD: return "BSD-2-Clause-NetBSD";
2319            case BSD2CLAUSEPATENT: return "BSD-2-Clause-Patent";
2320            case BSD2CLAUSE: return "BSD-2-Clause";
2321            case BSD3CLAUSEATTRIBUTION: return "BSD-3-Clause-Attribution";
2322            case BSD3CLAUSECLEAR: return "BSD-3-Clause-Clear";
2323            case BSD3CLAUSELBNL: return "BSD-3-Clause-LBNL";
2324            case BSD3CLAUSENONUCLEARLICENSE2014: return "BSD-3-Clause-No-Nuclear-License-2014";
2325            case BSD3CLAUSENONUCLEARLICENSE: return "BSD-3-Clause-No-Nuclear-License";
2326            case BSD3CLAUSENONUCLEARWARRANTY: return "BSD-3-Clause-No-Nuclear-Warranty";
2327            case BSD3CLAUSE: return "BSD-3-Clause";
2328            case BSD4CLAUSEUC: return "BSD-4-Clause-UC";
2329            case BSD4CLAUSE: return "BSD-4-Clause";
2330            case BSDPROTECTION: return "BSD-Protection";
2331            case BSDSOURCECODE: return "BSD-Source-Code";
2332            case BSL1_0: return "BSL-1.0";
2333            case BZIP21_0_5: return "bzip2-1.0.5";
2334            case BZIP21_0_6: return "bzip2-1.0.6";
2335            case CALDERA: return "Caldera";
2336            case CATOSL1_1: return "CATOSL-1.1";
2337            case CCBY1_0: return "CC-BY-1.0";
2338            case CCBY2_0: return "CC-BY-2.0";
2339            case CCBY2_5: return "CC-BY-2.5";
2340            case CCBY3_0: return "CC-BY-3.0";
2341            case CCBY4_0: return "CC-BY-4.0";
2342            case CCBYNC1_0: return "CC-BY-NC-1.0";
2343            case CCBYNC2_0: return "CC-BY-NC-2.0";
2344            case CCBYNC2_5: return "CC-BY-NC-2.5";
2345            case CCBYNC3_0: return "CC-BY-NC-3.0";
2346            case CCBYNC4_0: return "CC-BY-NC-4.0";
2347            case CCBYNCND1_0: return "CC-BY-NC-ND-1.0";
2348            case CCBYNCND2_0: return "CC-BY-NC-ND-2.0";
2349            case CCBYNCND2_5: return "CC-BY-NC-ND-2.5";
2350            case CCBYNCND3_0: return "CC-BY-NC-ND-3.0";
2351            case CCBYNCND4_0: return "CC-BY-NC-ND-4.0";
2352            case CCBYNCSA1_0: return "CC-BY-NC-SA-1.0";
2353            case CCBYNCSA2_0: return "CC-BY-NC-SA-2.0";
2354            case CCBYNCSA2_5: return "CC-BY-NC-SA-2.5";
2355            case CCBYNCSA3_0: return "CC-BY-NC-SA-3.0";
2356            case CCBYNCSA4_0: return "CC-BY-NC-SA-4.0";
2357            case CCBYND1_0: return "CC-BY-ND-1.0";
2358            case CCBYND2_0: return "CC-BY-ND-2.0";
2359            case CCBYND2_5: return "CC-BY-ND-2.5";
2360            case CCBYND3_0: return "CC-BY-ND-3.0";
2361            case CCBYND4_0: return "CC-BY-ND-4.0";
2362            case CCBYSA1_0: return "CC-BY-SA-1.0";
2363            case CCBYSA2_0: return "CC-BY-SA-2.0";
2364            case CCBYSA2_5: return "CC-BY-SA-2.5";
2365            case CCBYSA3_0: return "CC-BY-SA-3.0";
2366            case CCBYSA4_0: return "CC-BY-SA-4.0";
2367            case CC01_0: return "CC0-1.0";
2368            case CDDL1_0: return "CDDL-1.0";
2369            case CDDL1_1: return "CDDL-1.1";
2370            case CDLAPERMISSIVE1_0: return "CDLA-Permissive-1.0";
2371            case CDLASHARING1_0: return "CDLA-Sharing-1.0";
2372            case CECILL1_0: return "CECILL-1.0";
2373            case CECILL1_1: return "CECILL-1.1";
2374            case CECILL2_0: return "CECILL-2.0";
2375            case CECILL2_1: return "CECILL-2.1";
2376            case CECILLB: return "CECILL-B";
2377            case CECILLC: return "CECILL-C";
2378            case CLARTISTIC: return "ClArtistic";
2379            case CNRIJYTHON: return "CNRI-Jython";
2380            case CNRIPYTHONGPLCOMPATIBLE: return "CNRI-Python-GPL-Compatible";
2381            case CNRIPYTHON: return "CNRI-Python";
2382            case CONDOR1_1: return "Condor-1.1";
2383            case CPAL1_0: return "CPAL-1.0";
2384            case CPL1_0: return "CPL-1.0";
2385            case CPOL1_02: return "CPOL-1.02";
2386            case CROSSWORD: return "Crossword";
2387            case CRYSTALSTACKER: return "CrystalStacker";
2388            case CUAOPL1_0: return "CUA-OPL-1.0";
2389            case CUBE: return "Cube";
2390            case CURL: return "curl";
2391            case DFSL1_0: return "D-FSL-1.0";
2392            case DIFFMARK: return "diffmark";
2393            case DOC: return "DOC";
2394            case DOTSEQN: return "Dotseqn";
2395            case DSDP: return "DSDP";
2396            case DVIPDFM: return "dvipdfm";
2397            case ECL1_0: return "ECL-1.0";
2398            case ECL2_0: return "ECL-2.0";
2399            case EFL1_0: return "EFL-1.0";
2400            case EFL2_0: return "EFL-2.0";
2401            case EGENIX: return "eGenix";
2402            case ENTESSA: return "Entessa";
2403            case EPL1_0: return "EPL-1.0";
2404            case EPL2_0: return "EPL-2.0";
2405            case ERLPL1_1: return "ErlPL-1.1";
2406            case EUDATAGRID: return "EUDatagrid";
2407            case EUPL1_0: return "EUPL-1.0";
2408            case EUPL1_1: return "EUPL-1.1";
2409            case EUPL1_2: return "EUPL-1.2";
2410            case EUROSYM: return "Eurosym";
2411            case FAIR: return "Fair";
2412            case FRAMEWORX1_0: return "Frameworx-1.0";
2413            case FREEIMAGE: return "FreeImage";
2414            case FSFAP: return "FSFAP";
2415            case FSFUL: return "FSFUL";
2416            case FSFULLR: return "FSFULLR";
2417            case FTL: return "FTL";
2418            case GFDL1_1ONLY: return "GFDL-1.1-only";
2419            case GFDL1_1ORLATER: return "GFDL-1.1-or-later";
2420            case GFDL1_2ONLY: return "GFDL-1.2-only";
2421            case GFDL1_2ORLATER: return "GFDL-1.2-or-later";
2422            case GFDL1_3ONLY: return "GFDL-1.3-only";
2423            case GFDL1_3ORLATER: return "GFDL-1.3-or-later";
2424            case GIFTWARE: return "Giftware";
2425            case GL2PS: return "GL2PS";
2426            case GLIDE: return "Glide";
2427            case GLULXE: return "Glulxe";
2428            case GNUPLOT: return "gnuplot";
2429            case GPL1_0ONLY: return "GPL-1.0-only";
2430            case GPL1_0ORLATER: return "GPL-1.0-or-later";
2431            case GPL2_0ONLY: return "GPL-2.0-only";
2432            case GPL2_0ORLATER: return "GPL-2.0-or-later";
2433            case GPL3_0ONLY: return "GPL-3.0-only";
2434            case GPL3_0ORLATER: return "GPL-3.0-or-later";
2435            case GSOAP1_3B: return "gSOAP-1.3b";
2436            case HASKELLREPORT: return "HaskellReport";
2437            case HPND: return "HPND";
2438            case IBMPIBS: return "IBM-pibs";
2439            case ICU: return "ICU";
2440            case IJG: return "IJG";
2441            case IMAGEMAGICK: return "ImageMagick";
2442            case IMATIX: return "iMatix";
2443            case IMLIB2: return "Imlib2";
2444            case INFOZIP: return "Info-ZIP";
2445            case INTELACPI: return "Intel-ACPI";
2446            case INTEL: return "Intel";
2447            case INTERBASE1_0: return "Interbase-1.0";
2448            case IPA: return "IPA";
2449            case IPL1_0: return "IPL-1.0";
2450            case ISC: return "ISC";
2451            case JASPER2_0: return "JasPer-2.0";
2452            case JSON: return "JSON";
2453            case LAL1_2: return "LAL-1.2";
2454            case LAL1_3: return "LAL-1.3";
2455            case LATEX2E: return "Latex2e";
2456            case LEPTONICA: return "Leptonica";
2457            case LGPL2_0ONLY: return "LGPL-2.0-only";
2458            case LGPL2_0ORLATER: return "LGPL-2.0-or-later";
2459            case LGPL2_1ONLY: return "LGPL-2.1-only";
2460            case LGPL2_1ORLATER: return "LGPL-2.1-or-later";
2461            case LGPL3_0ONLY: return "LGPL-3.0-only";
2462            case LGPL3_0ORLATER: return "LGPL-3.0-or-later";
2463            case LGPLLR: return "LGPLLR";
2464            case LIBPNG: return "Libpng";
2465            case LIBTIFF: return "libtiff";
2466            case LILIQP1_1: return "LiLiQ-P-1.1";
2467            case LILIQR1_1: return "LiLiQ-R-1.1";
2468            case LILIQRPLUS1_1: return "LiLiQ-Rplus-1.1";
2469            case LINUXOPENIB: return "Linux-OpenIB";
2470            case LPL1_0: return "LPL-1.0";
2471            case LPL1_02: return "LPL-1.02";
2472            case LPPL1_0: return "LPPL-1.0";
2473            case LPPL1_1: return "LPPL-1.1";
2474            case LPPL1_2: return "LPPL-1.2";
2475            case LPPL1_3A: return "LPPL-1.3a";
2476            case LPPL1_3C: return "LPPL-1.3c";
2477            case MAKEINDEX: return "MakeIndex";
2478            case MIROS: return "MirOS";
2479            case MIT0: return "MIT-0";
2480            case MITADVERTISING: return "MIT-advertising";
2481            case MITCMU: return "MIT-CMU";
2482            case MITENNA: return "MIT-enna";
2483            case MITFEH: return "MIT-feh";
2484            case MIT: return "MIT";
2485            case MITNFA: return "MITNFA";
2486            case MOTOSOTO: return "Motosoto";
2487            case MPICH2: return "mpich2";
2488            case MPL1_0: return "MPL-1.0";
2489            case MPL1_1: return "MPL-1.1";
2490            case MPL2_0NOCOPYLEFTEXCEPTION: return "MPL-2.0-no-copyleft-exception";
2491            case MPL2_0: return "MPL-2.0";
2492            case MSPL: return "MS-PL";
2493            case MSRL: return "MS-RL";
2494            case MTLL: return "MTLL";
2495            case MULTICS: return "Multics";
2496            case MUP: return "Mup";
2497            case NASA1_3: return "NASA-1.3";
2498            case NAUMEN: return "Naumen";
2499            case NBPL1_0: return "NBPL-1.0";
2500            case NCSA: return "NCSA";
2501            case NETSNMP: return "Net-SNMP";
2502            case NETCDF: return "NetCDF";
2503            case NEWSLETR: return "Newsletr";
2504            case NGPL: return "NGPL";
2505            case NLOD1_0: return "NLOD-1.0";
2506            case NLPL: return "NLPL";
2507            case NOKIA: return "Nokia";
2508            case NOSL: return "NOSL";
2509            case NOWEB: return "Noweb";
2510            case NPL1_0: return "NPL-1.0";
2511            case NPL1_1: return "NPL-1.1";
2512            case NPOSL3_0: return "NPOSL-3.0";
2513            case NRL: return "NRL";
2514            case NTP: return "NTP";
2515            case OCCTPL: return "OCCT-PL";
2516            case OCLC2_0: return "OCLC-2.0";
2517            case ODBL1_0: return "ODbL-1.0";
2518            case OFL1_0: return "OFL-1.0";
2519            case OFL1_1: return "OFL-1.1";
2520            case OGTSL: return "OGTSL";
2521            case OLDAP1_1: return "OLDAP-1.1";
2522            case OLDAP1_2: return "OLDAP-1.2";
2523            case OLDAP1_3: return "OLDAP-1.3";
2524            case OLDAP1_4: return "OLDAP-1.4";
2525            case OLDAP2_0_1: return "OLDAP-2.0.1";
2526            case OLDAP2_0: return "OLDAP-2.0";
2527            case OLDAP2_1: return "OLDAP-2.1";
2528            case OLDAP2_2_1: return "OLDAP-2.2.1";
2529            case OLDAP2_2_2: return "OLDAP-2.2.2";
2530            case OLDAP2_2: return "OLDAP-2.2";
2531            case OLDAP2_3: return "OLDAP-2.3";
2532            case OLDAP2_4: return "OLDAP-2.4";
2533            case OLDAP2_5: return "OLDAP-2.5";
2534            case OLDAP2_6: return "OLDAP-2.6";
2535            case OLDAP2_7: return "OLDAP-2.7";
2536            case OLDAP2_8: return "OLDAP-2.8";
2537            case OML: return "OML";
2538            case OPENSSL: return "OpenSSL";
2539            case OPL1_0: return "OPL-1.0";
2540            case OSETPL2_1: return "OSET-PL-2.1";
2541            case OSL1_0: return "OSL-1.0";
2542            case OSL1_1: return "OSL-1.1";
2543            case OSL2_0: return "OSL-2.0";
2544            case OSL2_1: return "OSL-2.1";
2545            case OSL3_0: return "OSL-3.0";
2546            case PDDL1_0: return "PDDL-1.0";
2547            case PHP3_0: return "PHP-3.0";
2548            case PHP3_01: return "PHP-3.01";
2549            case PLEXUS: return "Plexus";
2550            case POSTGRESQL: return "PostgreSQL";
2551            case PSFRAG: return "psfrag";
2552            case PSUTILS: return "psutils";
2553            case PYTHON2_0: return "Python-2.0";
2554            case QHULL: return "Qhull";
2555            case QPL1_0: return "QPL-1.0";
2556            case RDISC: return "Rdisc";
2557            case RHECOS1_1: return "RHeCos-1.1";
2558            case RPL1_1: return "RPL-1.1";
2559            case RPL1_5: return "RPL-1.5";
2560            case RPSL1_0: return "RPSL-1.0";
2561            case RSAMD: return "RSA-MD";
2562            case RSCPL: return "RSCPL";
2563            case RUBY: return "Ruby";
2564            case SAXPD: return "SAX-PD";
2565            case SAXPATH: return "Saxpath";
2566            case SCEA: return "SCEA";
2567            case SENDMAIL: return "Sendmail";
2568            case SGIB1_0: return "SGI-B-1.0";
2569            case SGIB1_1: return "SGI-B-1.1";
2570            case SGIB2_0: return "SGI-B-2.0";
2571            case SIMPL2_0: return "SimPL-2.0";
2572            case SISSL1_2: return "SISSL-1.2";
2573            case SISSL: return "SISSL";
2574            case SLEEPYCAT: return "Sleepycat";
2575            case SMLNJ: return "SMLNJ";
2576            case SMPPL: return "SMPPL";
2577            case SNIA: return "SNIA";
2578            case SPENCER86: return "Spencer-86";
2579            case SPENCER94: return "Spencer-94";
2580            case SPENCER99: return "Spencer-99";
2581            case SPL1_0: return "SPL-1.0";
2582            case SUGARCRM1_1_3: return "SugarCRM-1.1.3";
2583            case SWL: return "SWL";
2584            case TCL: return "TCL";
2585            case TCPWRAPPERS: return "TCP-wrappers";
2586            case TMATE: return "TMate";
2587            case TORQUE1_1: return "TORQUE-1.1";
2588            case TOSL: return "TOSL";
2589            case UNICODEDFS2015: return "Unicode-DFS-2015";
2590            case UNICODEDFS2016: return "Unicode-DFS-2016";
2591            case UNICODETOU: return "Unicode-TOU";
2592            case UNLICENSE: return "Unlicense";
2593            case UPL1_0: return "UPL-1.0";
2594            case VIM: return "Vim";
2595            case VOSTROM: return "VOSTROM";
2596            case VSL1_0: return "VSL-1.0";
2597            case W3C19980720: return "W3C-19980720";
2598            case W3C20150513: return "W3C-20150513";
2599            case W3C: return "W3C";
2600            case WATCOM1_0: return "Watcom-1.0";
2601            case WSUIPA: return "Wsuipa";
2602            case WTFPL: return "WTFPL";
2603            case X11: return "X11";
2604            case XEROX: return "Xerox";
2605            case XFREE861_1: return "XFree86-1.1";
2606            case XINETD: return "xinetd";
2607            case XNET: return "Xnet";
2608            case XPP: return "xpp";
2609            case XSKAT: return "XSkat";
2610            case YPL1_0: return "YPL-1.0";
2611            case YPL1_1: return "YPL-1.1";
2612            case ZED: return "Zed";
2613            case ZEND2_0: return "Zend-2.0";
2614            case ZIMBRA1_3: return "Zimbra-1.3";
2615            case ZIMBRA1_4: return "Zimbra-1.4";
2616            case ZLIBACKNOWLEDGEMENT: return "zlib-acknowledgement";
2617            case ZLIB: return "Zlib";
2618            case ZPL1_1: return "ZPL-1.1";
2619            case ZPL2_0: return "ZPL-2.0";
2620            case ZPL2_1: return "ZPL-2.1";
2621            case NULL: return null;
2622            default: return "?";
2623          }
2624        }
2625        public String getSystem() {
2626          switch (this) {
2627            case NOTOPENSOURCE: return "http://hl7.org/fhir/spdx-license";
2628            case _0BSD: return "http://hl7.org/fhir/spdx-license";
2629            case AAL: return "http://hl7.org/fhir/spdx-license";
2630            case ABSTYLES: return "http://hl7.org/fhir/spdx-license";
2631            case ADOBE2006: return "http://hl7.org/fhir/spdx-license";
2632            case ADOBEGLYPH: return "http://hl7.org/fhir/spdx-license";
2633            case ADSL: return "http://hl7.org/fhir/spdx-license";
2634            case AFL1_1: return "http://hl7.org/fhir/spdx-license";
2635            case AFL1_2: return "http://hl7.org/fhir/spdx-license";
2636            case AFL2_0: return "http://hl7.org/fhir/spdx-license";
2637            case AFL2_1: return "http://hl7.org/fhir/spdx-license";
2638            case AFL3_0: return "http://hl7.org/fhir/spdx-license";
2639            case AFMPARSE: return "http://hl7.org/fhir/spdx-license";
2640            case AGPL1_0ONLY: return "http://hl7.org/fhir/spdx-license";
2641            case AGPL1_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2642            case AGPL3_0ONLY: return "http://hl7.org/fhir/spdx-license";
2643            case AGPL3_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2644            case ALADDIN: return "http://hl7.org/fhir/spdx-license";
2645            case AMDPLPA: return "http://hl7.org/fhir/spdx-license";
2646            case AML: return "http://hl7.org/fhir/spdx-license";
2647            case AMPAS: return "http://hl7.org/fhir/spdx-license";
2648            case ANTLRPD: return "http://hl7.org/fhir/spdx-license";
2649            case APACHE1_0: return "http://hl7.org/fhir/spdx-license";
2650            case APACHE1_1: return "http://hl7.org/fhir/spdx-license";
2651            case APACHE2_0: return "http://hl7.org/fhir/spdx-license";
2652            case APAFML: return "http://hl7.org/fhir/spdx-license";
2653            case APL1_0: return "http://hl7.org/fhir/spdx-license";
2654            case APSL1_0: return "http://hl7.org/fhir/spdx-license";
2655            case APSL1_1: return "http://hl7.org/fhir/spdx-license";
2656            case APSL1_2: return "http://hl7.org/fhir/spdx-license";
2657            case APSL2_0: return "http://hl7.org/fhir/spdx-license";
2658            case ARTISTIC1_0CL8: return "http://hl7.org/fhir/spdx-license";
2659            case ARTISTIC1_0PERL: return "http://hl7.org/fhir/spdx-license";
2660            case ARTISTIC1_0: return "http://hl7.org/fhir/spdx-license";
2661            case ARTISTIC2_0: return "http://hl7.org/fhir/spdx-license";
2662            case BAHYPH: return "http://hl7.org/fhir/spdx-license";
2663            case BARR: return "http://hl7.org/fhir/spdx-license";
2664            case BEERWARE: return "http://hl7.org/fhir/spdx-license";
2665            case BITTORRENT1_0: return "http://hl7.org/fhir/spdx-license";
2666            case BITTORRENT1_1: return "http://hl7.org/fhir/spdx-license";
2667            case BORCEUX: return "http://hl7.org/fhir/spdx-license";
2668            case BSD1CLAUSE: return "http://hl7.org/fhir/spdx-license";
2669            case BSD2CLAUSEFREEBSD: return "http://hl7.org/fhir/spdx-license";
2670            case BSD2CLAUSENETBSD: return "http://hl7.org/fhir/spdx-license";
2671            case BSD2CLAUSEPATENT: return "http://hl7.org/fhir/spdx-license";
2672            case BSD2CLAUSE: return "http://hl7.org/fhir/spdx-license";
2673            case BSD3CLAUSEATTRIBUTION: return "http://hl7.org/fhir/spdx-license";
2674            case BSD3CLAUSECLEAR: return "http://hl7.org/fhir/spdx-license";
2675            case BSD3CLAUSELBNL: return "http://hl7.org/fhir/spdx-license";
2676            case BSD3CLAUSENONUCLEARLICENSE2014: return "http://hl7.org/fhir/spdx-license";
2677            case BSD3CLAUSENONUCLEARLICENSE: return "http://hl7.org/fhir/spdx-license";
2678            case BSD3CLAUSENONUCLEARWARRANTY: return "http://hl7.org/fhir/spdx-license";
2679            case BSD3CLAUSE: return "http://hl7.org/fhir/spdx-license";
2680            case BSD4CLAUSEUC: return "http://hl7.org/fhir/spdx-license";
2681            case BSD4CLAUSE: return "http://hl7.org/fhir/spdx-license";
2682            case BSDPROTECTION: return "http://hl7.org/fhir/spdx-license";
2683            case BSDSOURCECODE: return "http://hl7.org/fhir/spdx-license";
2684            case BSL1_0: return "http://hl7.org/fhir/spdx-license";
2685            case BZIP21_0_5: return "http://hl7.org/fhir/spdx-license";
2686            case BZIP21_0_6: return "http://hl7.org/fhir/spdx-license";
2687            case CALDERA: return "http://hl7.org/fhir/spdx-license";
2688            case CATOSL1_1: return "http://hl7.org/fhir/spdx-license";
2689            case CCBY1_0: return "http://hl7.org/fhir/spdx-license";
2690            case CCBY2_0: return "http://hl7.org/fhir/spdx-license";
2691            case CCBY2_5: return "http://hl7.org/fhir/spdx-license";
2692            case CCBY3_0: return "http://hl7.org/fhir/spdx-license";
2693            case CCBY4_0: return "http://hl7.org/fhir/spdx-license";
2694            case CCBYNC1_0: return "http://hl7.org/fhir/spdx-license";
2695            case CCBYNC2_0: return "http://hl7.org/fhir/spdx-license";
2696            case CCBYNC2_5: return "http://hl7.org/fhir/spdx-license";
2697            case CCBYNC3_0: return "http://hl7.org/fhir/spdx-license";
2698            case CCBYNC4_0: return "http://hl7.org/fhir/spdx-license";
2699            case CCBYNCND1_0: return "http://hl7.org/fhir/spdx-license";
2700            case CCBYNCND2_0: return "http://hl7.org/fhir/spdx-license";
2701            case CCBYNCND2_5: return "http://hl7.org/fhir/spdx-license";
2702            case CCBYNCND3_0: return "http://hl7.org/fhir/spdx-license";
2703            case CCBYNCND4_0: return "http://hl7.org/fhir/spdx-license";
2704            case CCBYNCSA1_0: return "http://hl7.org/fhir/spdx-license";
2705            case CCBYNCSA2_0: return "http://hl7.org/fhir/spdx-license";
2706            case CCBYNCSA2_5: return "http://hl7.org/fhir/spdx-license";
2707            case CCBYNCSA3_0: return "http://hl7.org/fhir/spdx-license";
2708            case CCBYNCSA4_0: return "http://hl7.org/fhir/spdx-license";
2709            case CCBYND1_0: return "http://hl7.org/fhir/spdx-license";
2710            case CCBYND2_0: return "http://hl7.org/fhir/spdx-license";
2711            case CCBYND2_5: return "http://hl7.org/fhir/spdx-license";
2712            case CCBYND3_0: return "http://hl7.org/fhir/spdx-license";
2713            case CCBYND4_0: return "http://hl7.org/fhir/spdx-license";
2714            case CCBYSA1_0: return "http://hl7.org/fhir/spdx-license";
2715            case CCBYSA2_0: return "http://hl7.org/fhir/spdx-license";
2716            case CCBYSA2_5: return "http://hl7.org/fhir/spdx-license";
2717            case CCBYSA3_0: return "http://hl7.org/fhir/spdx-license";
2718            case CCBYSA4_0: return "http://hl7.org/fhir/spdx-license";
2719            case CC01_0: return "http://hl7.org/fhir/spdx-license";
2720            case CDDL1_0: return "http://hl7.org/fhir/spdx-license";
2721            case CDDL1_1: return "http://hl7.org/fhir/spdx-license";
2722            case CDLAPERMISSIVE1_0: return "http://hl7.org/fhir/spdx-license";
2723            case CDLASHARING1_0: return "http://hl7.org/fhir/spdx-license";
2724            case CECILL1_0: return "http://hl7.org/fhir/spdx-license";
2725            case CECILL1_1: return "http://hl7.org/fhir/spdx-license";
2726            case CECILL2_0: return "http://hl7.org/fhir/spdx-license";
2727            case CECILL2_1: return "http://hl7.org/fhir/spdx-license";
2728            case CECILLB: return "http://hl7.org/fhir/spdx-license";
2729            case CECILLC: return "http://hl7.org/fhir/spdx-license";
2730            case CLARTISTIC: return "http://hl7.org/fhir/spdx-license";
2731            case CNRIJYTHON: return "http://hl7.org/fhir/spdx-license";
2732            case CNRIPYTHONGPLCOMPATIBLE: return "http://hl7.org/fhir/spdx-license";
2733            case CNRIPYTHON: return "http://hl7.org/fhir/spdx-license";
2734            case CONDOR1_1: return "http://hl7.org/fhir/spdx-license";
2735            case CPAL1_0: return "http://hl7.org/fhir/spdx-license";
2736            case CPL1_0: return "http://hl7.org/fhir/spdx-license";
2737            case CPOL1_02: return "http://hl7.org/fhir/spdx-license";
2738            case CROSSWORD: return "http://hl7.org/fhir/spdx-license";
2739            case CRYSTALSTACKER: return "http://hl7.org/fhir/spdx-license";
2740            case CUAOPL1_0: return "http://hl7.org/fhir/spdx-license";
2741            case CUBE: return "http://hl7.org/fhir/spdx-license";
2742            case CURL: return "http://hl7.org/fhir/spdx-license";
2743            case DFSL1_0: return "http://hl7.org/fhir/spdx-license";
2744            case DIFFMARK: return "http://hl7.org/fhir/spdx-license";
2745            case DOC: return "http://hl7.org/fhir/spdx-license";
2746            case DOTSEQN: return "http://hl7.org/fhir/spdx-license";
2747            case DSDP: return "http://hl7.org/fhir/spdx-license";
2748            case DVIPDFM: return "http://hl7.org/fhir/spdx-license";
2749            case ECL1_0: return "http://hl7.org/fhir/spdx-license";
2750            case ECL2_0: return "http://hl7.org/fhir/spdx-license";
2751            case EFL1_0: return "http://hl7.org/fhir/spdx-license";
2752            case EFL2_0: return "http://hl7.org/fhir/spdx-license";
2753            case EGENIX: return "http://hl7.org/fhir/spdx-license";
2754            case ENTESSA: return "http://hl7.org/fhir/spdx-license";
2755            case EPL1_0: return "http://hl7.org/fhir/spdx-license";
2756            case EPL2_0: return "http://hl7.org/fhir/spdx-license";
2757            case ERLPL1_1: return "http://hl7.org/fhir/spdx-license";
2758            case EUDATAGRID: return "http://hl7.org/fhir/spdx-license";
2759            case EUPL1_0: return "http://hl7.org/fhir/spdx-license";
2760            case EUPL1_1: return "http://hl7.org/fhir/spdx-license";
2761            case EUPL1_2: return "http://hl7.org/fhir/spdx-license";
2762            case EUROSYM: return "http://hl7.org/fhir/spdx-license";
2763            case FAIR: return "http://hl7.org/fhir/spdx-license";
2764            case FRAMEWORX1_0: return "http://hl7.org/fhir/spdx-license";
2765            case FREEIMAGE: return "http://hl7.org/fhir/spdx-license";
2766            case FSFAP: return "http://hl7.org/fhir/spdx-license";
2767            case FSFUL: return "http://hl7.org/fhir/spdx-license";
2768            case FSFULLR: return "http://hl7.org/fhir/spdx-license";
2769            case FTL: return "http://hl7.org/fhir/spdx-license";
2770            case GFDL1_1ONLY: return "http://hl7.org/fhir/spdx-license";
2771            case GFDL1_1ORLATER: return "http://hl7.org/fhir/spdx-license";
2772            case GFDL1_2ONLY: return "http://hl7.org/fhir/spdx-license";
2773            case GFDL1_2ORLATER: return "http://hl7.org/fhir/spdx-license";
2774            case GFDL1_3ONLY: return "http://hl7.org/fhir/spdx-license";
2775            case GFDL1_3ORLATER: return "http://hl7.org/fhir/spdx-license";
2776            case GIFTWARE: return "http://hl7.org/fhir/spdx-license";
2777            case GL2PS: return "http://hl7.org/fhir/spdx-license";
2778            case GLIDE: return "http://hl7.org/fhir/spdx-license";
2779            case GLULXE: return "http://hl7.org/fhir/spdx-license";
2780            case GNUPLOT: return "http://hl7.org/fhir/spdx-license";
2781            case GPL1_0ONLY: return "http://hl7.org/fhir/spdx-license";
2782            case GPL1_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2783            case GPL2_0ONLY: return "http://hl7.org/fhir/spdx-license";
2784            case GPL2_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2785            case GPL3_0ONLY: return "http://hl7.org/fhir/spdx-license";
2786            case GPL3_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2787            case GSOAP1_3B: return "http://hl7.org/fhir/spdx-license";
2788            case HASKELLREPORT: return "http://hl7.org/fhir/spdx-license";
2789            case HPND: return "http://hl7.org/fhir/spdx-license";
2790            case IBMPIBS: return "http://hl7.org/fhir/spdx-license";
2791            case ICU: return "http://hl7.org/fhir/spdx-license";
2792            case IJG: return "http://hl7.org/fhir/spdx-license";
2793            case IMAGEMAGICK: return "http://hl7.org/fhir/spdx-license";
2794            case IMATIX: return "http://hl7.org/fhir/spdx-license";
2795            case IMLIB2: return "http://hl7.org/fhir/spdx-license";
2796            case INFOZIP: return "http://hl7.org/fhir/spdx-license";
2797            case INTELACPI: return "http://hl7.org/fhir/spdx-license";
2798            case INTEL: return "http://hl7.org/fhir/spdx-license";
2799            case INTERBASE1_0: return "http://hl7.org/fhir/spdx-license";
2800            case IPA: return "http://hl7.org/fhir/spdx-license";
2801            case IPL1_0: return "http://hl7.org/fhir/spdx-license";
2802            case ISC: return "http://hl7.org/fhir/spdx-license";
2803            case JASPER2_0: return "http://hl7.org/fhir/spdx-license";
2804            case JSON: return "http://hl7.org/fhir/spdx-license";
2805            case LAL1_2: return "http://hl7.org/fhir/spdx-license";
2806            case LAL1_3: return "http://hl7.org/fhir/spdx-license";
2807            case LATEX2E: return "http://hl7.org/fhir/spdx-license";
2808            case LEPTONICA: return "http://hl7.org/fhir/spdx-license";
2809            case LGPL2_0ONLY: return "http://hl7.org/fhir/spdx-license";
2810            case LGPL2_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2811            case LGPL2_1ONLY: return "http://hl7.org/fhir/spdx-license";
2812            case LGPL2_1ORLATER: return "http://hl7.org/fhir/spdx-license";
2813            case LGPL3_0ONLY: return "http://hl7.org/fhir/spdx-license";
2814            case LGPL3_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2815            case LGPLLR: return "http://hl7.org/fhir/spdx-license";
2816            case LIBPNG: return "http://hl7.org/fhir/spdx-license";
2817            case LIBTIFF: return "http://hl7.org/fhir/spdx-license";
2818            case LILIQP1_1: return "http://hl7.org/fhir/spdx-license";
2819            case LILIQR1_1: return "http://hl7.org/fhir/spdx-license";
2820            case LILIQRPLUS1_1: return "http://hl7.org/fhir/spdx-license";
2821            case LINUXOPENIB: return "http://hl7.org/fhir/spdx-license";
2822            case LPL1_0: return "http://hl7.org/fhir/spdx-license";
2823            case LPL1_02: return "http://hl7.org/fhir/spdx-license";
2824            case LPPL1_0: return "http://hl7.org/fhir/spdx-license";
2825            case LPPL1_1: return "http://hl7.org/fhir/spdx-license";
2826            case LPPL1_2: return "http://hl7.org/fhir/spdx-license";
2827            case LPPL1_3A: return "http://hl7.org/fhir/spdx-license";
2828            case LPPL1_3C: return "http://hl7.org/fhir/spdx-license";
2829            case MAKEINDEX: return "http://hl7.org/fhir/spdx-license";
2830            case MIROS: return "http://hl7.org/fhir/spdx-license";
2831            case MIT0: return "http://hl7.org/fhir/spdx-license";
2832            case MITADVERTISING: return "http://hl7.org/fhir/spdx-license";
2833            case MITCMU: return "http://hl7.org/fhir/spdx-license";
2834            case MITENNA: return "http://hl7.org/fhir/spdx-license";
2835            case MITFEH: return "http://hl7.org/fhir/spdx-license";
2836            case MIT: return "http://hl7.org/fhir/spdx-license";
2837            case MITNFA: return "http://hl7.org/fhir/spdx-license";
2838            case MOTOSOTO: return "http://hl7.org/fhir/spdx-license";
2839            case MPICH2: return "http://hl7.org/fhir/spdx-license";
2840            case MPL1_0: return "http://hl7.org/fhir/spdx-license";
2841            case MPL1_1: return "http://hl7.org/fhir/spdx-license";
2842            case MPL2_0NOCOPYLEFTEXCEPTION: return "http://hl7.org/fhir/spdx-license";
2843            case MPL2_0: return "http://hl7.org/fhir/spdx-license";
2844            case MSPL: return "http://hl7.org/fhir/spdx-license";
2845            case MSRL: return "http://hl7.org/fhir/spdx-license";
2846            case MTLL: return "http://hl7.org/fhir/spdx-license";
2847            case MULTICS: return "http://hl7.org/fhir/spdx-license";
2848            case MUP: return "http://hl7.org/fhir/spdx-license";
2849            case NASA1_3: return "http://hl7.org/fhir/spdx-license";
2850            case NAUMEN: return "http://hl7.org/fhir/spdx-license";
2851            case NBPL1_0: return "http://hl7.org/fhir/spdx-license";
2852            case NCSA: return "http://hl7.org/fhir/spdx-license";
2853            case NETSNMP: return "http://hl7.org/fhir/spdx-license";
2854            case NETCDF: return "http://hl7.org/fhir/spdx-license";
2855            case NEWSLETR: return "http://hl7.org/fhir/spdx-license";
2856            case NGPL: return "http://hl7.org/fhir/spdx-license";
2857            case NLOD1_0: return "http://hl7.org/fhir/spdx-license";
2858            case NLPL: return "http://hl7.org/fhir/spdx-license";
2859            case NOKIA: return "http://hl7.org/fhir/spdx-license";
2860            case NOSL: return "http://hl7.org/fhir/spdx-license";
2861            case NOWEB: return "http://hl7.org/fhir/spdx-license";
2862            case NPL1_0: return "http://hl7.org/fhir/spdx-license";
2863            case NPL1_1: return "http://hl7.org/fhir/spdx-license";
2864            case NPOSL3_0: return "http://hl7.org/fhir/spdx-license";
2865            case NRL: return "http://hl7.org/fhir/spdx-license";
2866            case NTP: return "http://hl7.org/fhir/spdx-license";
2867            case OCCTPL: return "http://hl7.org/fhir/spdx-license";
2868            case OCLC2_0: return "http://hl7.org/fhir/spdx-license";
2869            case ODBL1_0: return "http://hl7.org/fhir/spdx-license";
2870            case OFL1_0: return "http://hl7.org/fhir/spdx-license";
2871            case OFL1_1: return "http://hl7.org/fhir/spdx-license";
2872            case OGTSL: return "http://hl7.org/fhir/spdx-license";
2873            case OLDAP1_1: return "http://hl7.org/fhir/spdx-license";
2874            case OLDAP1_2: return "http://hl7.org/fhir/spdx-license";
2875            case OLDAP1_3: return "http://hl7.org/fhir/spdx-license";
2876            case OLDAP1_4: return "http://hl7.org/fhir/spdx-license";
2877            case OLDAP2_0_1: return "http://hl7.org/fhir/spdx-license";
2878            case OLDAP2_0: return "http://hl7.org/fhir/spdx-license";
2879            case OLDAP2_1: return "http://hl7.org/fhir/spdx-license";
2880            case OLDAP2_2_1: return "http://hl7.org/fhir/spdx-license";
2881            case OLDAP2_2_2: return "http://hl7.org/fhir/spdx-license";
2882            case OLDAP2_2: return "http://hl7.org/fhir/spdx-license";
2883            case OLDAP2_3: return "http://hl7.org/fhir/spdx-license";
2884            case OLDAP2_4: return "http://hl7.org/fhir/spdx-license";
2885            case OLDAP2_5: return "http://hl7.org/fhir/spdx-license";
2886            case OLDAP2_6: return "http://hl7.org/fhir/spdx-license";
2887            case OLDAP2_7: return "http://hl7.org/fhir/spdx-license";
2888            case OLDAP2_8: return "http://hl7.org/fhir/spdx-license";
2889            case OML: return "http://hl7.org/fhir/spdx-license";
2890            case OPENSSL: return "http://hl7.org/fhir/spdx-license";
2891            case OPL1_0: return "http://hl7.org/fhir/spdx-license";
2892            case OSETPL2_1: return "http://hl7.org/fhir/spdx-license";
2893            case OSL1_0: return "http://hl7.org/fhir/spdx-license";
2894            case OSL1_1: return "http://hl7.org/fhir/spdx-license";
2895            case OSL2_0: return "http://hl7.org/fhir/spdx-license";
2896            case OSL2_1: return "http://hl7.org/fhir/spdx-license";
2897            case OSL3_0: return "http://hl7.org/fhir/spdx-license";
2898            case PDDL1_0: return "http://hl7.org/fhir/spdx-license";
2899            case PHP3_0: return "http://hl7.org/fhir/spdx-license";
2900            case PHP3_01: return "http://hl7.org/fhir/spdx-license";
2901            case PLEXUS: return "http://hl7.org/fhir/spdx-license";
2902            case POSTGRESQL: return "http://hl7.org/fhir/spdx-license";
2903            case PSFRAG: return "http://hl7.org/fhir/spdx-license";
2904            case PSUTILS: return "http://hl7.org/fhir/spdx-license";
2905            case PYTHON2_0: return "http://hl7.org/fhir/spdx-license";
2906            case QHULL: return "http://hl7.org/fhir/spdx-license";
2907            case QPL1_0: return "http://hl7.org/fhir/spdx-license";
2908            case RDISC: return "http://hl7.org/fhir/spdx-license";
2909            case RHECOS1_1: return "http://hl7.org/fhir/spdx-license";
2910            case RPL1_1: return "http://hl7.org/fhir/spdx-license";
2911            case RPL1_5: return "http://hl7.org/fhir/spdx-license";
2912            case RPSL1_0: return "http://hl7.org/fhir/spdx-license";
2913            case RSAMD: return "http://hl7.org/fhir/spdx-license";
2914            case RSCPL: return "http://hl7.org/fhir/spdx-license";
2915            case RUBY: return "http://hl7.org/fhir/spdx-license";
2916            case SAXPD: return "http://hl7.org/fhir/spdx-license";
2917            case SAXPATH: return "http://hl7.org/fhir/spdx-license";
2918            case SCEA: return "http://hl7.org/fhir/spdx-license";
2919            case SENDMAIL: return "http://hl7.org/fhir/spdx-license";
2920            case SGIB1_0: return "http://hl7.org/fhir/spdx-license";
2921            case SGIB1_1: return "http://hl7.org/fhir/spdx-license";
2922            case SGIB2_0: return "http://hl7.org/fhir/spdx-license";
2923            case SIMPL2_0: return "http://hl7.org/fhir/spdx-license";
2924            case SISSL1_2: return "http://hl7.org/fhir/spdx-license";
2925            case SISSL: return "http://hl7.org/fhir/spdx-license";
2926            case SLEEPYCAT: return "http://hl7.org/fhir/spdx-license";
2927            case SMLNJ: return "http://hl7.org/fhir/spdx-license";
2928            case SMPPL: return "http://hl7.org/fhir/spdx-license";
2929            case SNIA: return "http://hl7.org/fhir/spdx-license";
2930            case SPENCER86: return "http://hl7.org/fhir/spdx-license";
2931            case SPENCER94: return "http://hl7.org/fhir/spdx-license";
2932            case SPENCER99: return "http://hl7.org/fhir/spdx-license";
2933            case SPL1_0: return "http://hl7.org/fhir/spdx-license";
2934            case SUGARCRM1_1_3: return "http://hl7.org/fhir/spdx-license";
2935            case SWL: return "http://hl7.org/fhir/spdx-license";
2936            case TCL: return "http://hl7.org/fhir/spdx-license";
2937            case TCPWRAPPERS: return "http://hl7.org/fhir/spdx-license";
2938            case TMATE: return "http://hl7.org/fhir/spdx-license";
2939            case TORQUE1_1: return "http://hl7.org/fhir/spdx-license";
2940            case TOSL: return "http://hl7.org/fhir/spdx-license";
2941            case UNICODEDFS2015: return "http://hl7.org/fhir/spdx-license";
2942            case UNICODEDFS2016: return "http://hl7.org/fhir/spdx-license";
2943            case UNICODETOU: return "http://hl7.org/fhir/spdx-license";
2944            case UNLICENSE: return "http://hl7.org/fhir/spdx-license";
2945            case UPL1_0: return "http://hl7.org/fhir/spdx-license";
2946            case VIM: return "http://hl7.org/fhir/spdx-license";
2947            case VOSTROM: return "http://hl7.org/fhir/spdx-license";
2948            case VSL1_0: return "http://hl7.org/fhir/spdx-license";
2949            case W3C19980720: return "http://hl7.org/fhir/spdx-license";
2950            case W3C20150513: return "http://hl7.org/fhir/spdx-license";
2951            case W3C: return "http://hl7.org/fhir/spdx-license";
2952            case WATCOM1_0: return "http://hl7.org/fhir/spdx-license";
2953            case WSUIPA: return "http://hl7.org/fhir/spdx-license";
2954            case WTFPL: return "http://hl7.org/fhir/spdx-license";
2955            case X11: return "http://hl7.org/fhir/spdx-license";
2956            case XEROX: return "http://hl7.org/fhir/spdx-license";
2957            case XFREE861_1: return "http://hl7.org/fhir/spdx-license";
2958            case XINETD: return "http://hl7.org/fhir/spdx-license";
2959            case XNET: return "http://hl7.org/fhir/spdx-license";
2960            case XPP: return "http://hl7.org/fhir/spdx-license";
2961            case XSKAT: return "http://hl7.org/fhir/spdx-license";
2962            case YPL1_0: return "http://hl7.org/fhir/spdx-license";
2963            case YPL1_1: return "http://hl7.org/fhir/spdx-license";
2964            case ZED: return "http://hl7.org/fhir/spdx-license";
2965            case ZEND2_0: return "http://hl7.org/fhir/spdx-license";
2966            case ZIMBRA1_3: return "http://hl7.org/fhir/spdx-license";
2967            case ZIMBRA1_4: return "http://hl7.org/fhir/spdx-license";
2968            case ZLIBACKNOWLEDGEMENT: return "http://hl7.org/fhir/spdx-license";
2969            case ZLIB: return "http://hl7.org/fhir/spdx-license";
2970            case ZPL1_1: return "http://hl7.org/fhir/spdx-license";
2971            case ZPL2_0: return "http://hl7.org/fhir/spdx-license";
2972            case ZPL2_1: return "http://hl7.org/fhir/spdx-license";
2973            case NULL: return null;
2974            default: return "?";
2975          }
2976        }
2977        public String getDefinition() {
2978          switch (this) {
2979            case NOTOPENSOURCE: return "Not an open source license.";
2980            case _0BSD: return "BSD Zero Clause License.";
2981            case AAL: return "Attribution Assurance License.";
2982            case ABSTYLES: return "Abstyles License.";
2983            case ADOBE2006: return "Adobe Systems Incorporated Source Code License Agreement.";
2984            case ADOBEGLYPH: return "Adobe Glyph List License.";
2985            case ADSL: return "Amazon Digital Services License.";
2986            case AFL1_1: return "Academic Free License v1.1.";
2987            case AFL1_2: return "Academic Free License v1.2.";
2988            case AFL2_0: return "Academic Free License v2.0.";
2989            case AFL2_1: return "Academic Free License v2.1.";
2990            case AFL3_0: return "Academic Free License v3.0.";
2991            case AFMPARSE: return "Afmparse License.";
2992            case AGPL1_0ONLY: return "Affero General Public License v1.0 only.";
2993            case AGPL1_0ORLATER: return "Affero General Public License v1.0 or later.";
2994            case AGPL3_0ONLY: return "GNU Affero General Public License v3.0 only.";
2995            case AGPL3_0ORLATER: return "GNU Affero General Public License v3.0 or later.";
2996            case ALADDIN: return "Aladdin Free Public License.";
2997            case AMDPLPA: return "AMD's plpa_map.c License.";
2998            case AML: return "Apple MIT License.";
2999            case AMPAS: return "Academy of Motion Picture Arts and Sciences BSD.";
3000            case ANTLRPD: return "ANTLR Software Rights Notice.";
3001            case APACHE1_0: return "Apache License 1.0.";
3002            case APACHE1_1: return "Apache License 1.1.";
3003            case APACHE2_0: return "Apache License 2.0.";
3004            case APAFML: return "Adobe Postscript AFM License.";
3005            case APL1_0: return "Adaptive Public License 1.0.";
3006            case APSL1_0: return "Apple Public Source License 1.0.";
3007            case APSL1_1: return "Apple Public Source License 1.1.";
3008            case APSL1_2: return "Apple Public Source License 1.2.";
3009            case APSL2_0: return "Apple Public Source License 2.0.";
3010            case ARTISTIC1_0CL8: return "Artistic License 1.0 w/clause 8.";
3011            case ARTISTIC1_0PERL: return "Artistic License 1.0 (Perl).";
3012            case ARTISTIC1_0: return "Artistic License 1.0.";
3013            case ARTISTIC2_0: return "Artistic License 2.0.";
3014            case BAHYPH: return "Bahyph License.";
3015            case BARR: return "Barr License.";
3016            case BEERWARE: return "Beerware License.";
3017            case BITTORRENT1_0: return "BitTorrent Open Source License v1.0.";
3018            case BITTORRENT1_1: return "BitTorrent Open Source License v1.1.";
3019            case BORCEUX: return "Borceux license.";
3020            case BSD1CLAUSE: return "BSD 1-Clause License.";
3021            case BSD2CLAUSEFREEBSD: return "BSD 2-Clause FreeBSD License.";
3022            case BSD2CLAUSENETBSD: return "BSD 2-Clause NetBSD License.";
3023            case BSD2CLAUSEPATENT: return "BSD-2-Clause Plus Patent License.";
3024            case BSD2CLAUSE: return "BSD 2-Clause \"Simplified\" License.";
3025            case BSD3CLAUSEATTRIBUTION: return "BSD with attribution.";
3026            case BSD3CLAUSECLEAR: return "BSD 3-Clause Clear License.";
3027            case BSD3CLAUSELBNL: return "Lawrence Berkeley National Labs BSD variant license.";
3028            case BSD3CLAUSENONUCLEARLICENSE2014: return "BSD 3-Clause No Nuclear License 2014.";
3029            case BSD3CLAUSENONUCLEARLICENSE: return "BSD 3-Clause No Nuclear License.";
3030            case BSD3CLAUSENONUCLEARWARRANTY: return "BSD 3-Clause No Nuclear Warranty.";
3031            case BSD3CLAUSE: return "BSD 3-Clause \"New\" or \"Revised\" License.";
3032            case BSD4CLAUSEUC: return "BSD-4-Clause (University of California-Specific).";
3033            case BSD4CLAUSE: return "BSD 4-Clause \"Original\" or \"Old\" License.";
3034            case BSDPROTECTION: return "BSD Protection License.";
3035            case BSDSOURCECODE: return "BSD Source Code Attribution.";
3036            case BSL1_0: return "Boost Software License 1.0.";
3037            case BZIP21_0_5: return "bzip2 and libbzip2 License v1.0.5.";
3038            case BZIP21_0_6: return "bzip2 and libbzip2 License v1.0.6.";
3039            case CALDERA: return "Caldera License.";
3040            case CATOSL1_1: return "Computer Associates Trusted Open Source License 1.1.";
3041            case CCBY1_0: return "Creative Commons Attribution 1.0 Generic.";
3042            case CCBY2_0: return "Creative Commons Attribution 2.0 Generic.";
3043            case CCBY2_5: return "Creative Commons Attribution 2.5 Generic.";
3044            case CCBY3_0: return "Creative Commons Attribution 3.0 Unported.";
3045            case CCBY4_0: return "Creative Commons Attribution 4.0 International.";
3046            case CCBYNC1_0: return "Creative Commons Attribution Non Commercial 1.0 Generic.";
3047            case CCBYNC2_0: return "Creative Commons Attribution Non Commercial 2.0 Generic.";
3048            case CCBYNC2_5: return "Creative Commons Attribution Non Commercial 2.5 Generic.";
3049            case CCBYNC3_0: return "Creative Commons Attribution Non Commercial 3.0 Unported.";
3050            case CCBYNC4_0: return "Creative Commons Attribution Non Commercial 4.0 International.";
3051            case CCBYNCND1_0: return "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic.";
3052            case CCBYNCND2_0: return "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic.";
3053            case CCBYNCND2_5: return "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic.";
3054            case CCBYNCND3_0: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported.";
3055            case CCBYNCND4_0: return "Creative Commons Attribution Non Commercial No Derivatives 4.0 International.";
3056            case CCBYNCSA1_0: return "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic.";
3057            case CCBYNCSA2_0: return "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic.";
3058            case CCBYNCSA2_5: return "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic.";
3059            case CCBYNCSA3_0: return "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported.";
3060            case CCBYNCSA4_0: return "Creative Commons Attribution Non Commercial Share Alike 4.0 International.";
3061            case CCBYND1_0: return "Creative Commons Attribution No Derivatives 1.0 Generic.";
3062            case CCBYND2_0: return "Creative Commons Attribution No Derivatives 2.0 Generic.";
3063            case CCBYND2_5: return "Creative Commons Attribution No Derivatives 2.5 Generic.";
3064            case CCBYND3_0: return "Creative Commons Attribution No Derivatives 3.0 Unported.";
3065            case CCBYND4_0: return "Creative Commons Attribution No Derivatives 4.0 International.";
3066            case CCBYSA1_0: return "Creative Commons Attribution Share Alike 1.0 Generic.";
3067            case CCBYSA2_0: return "Creative Commons Attribution Share Alike 2.0 Generic.";
3068            case CCBYSA2_5: return "Creative Commons Attribution Share Alike 2.5 Generic.";
3069            case CCBYSA3_0: return "Creative Commons Attribution Share Alike 3.0 Unported.";
3070            case CCBYSA4_0: return "Creative Commons Attribution Share Alike 4.0 International.";
3071            case CC01_0: return "Creative Commons Zero v1.0 Universal.";
3072            case CDDL1_0: return "Common Development and Distribution License 1.0.";
3073            case CDDL1_1: return "Common Development and Distribution License 1.1.";
3074            case CDLAPERMISSIVE1_0: return "Community Data License Agreement Permissive 1.0.";
3075            case CDLASHARING1_0: return "Community Data License Agreement Sharing 1.0.";
3076            case CECILL1_0: return "CeCILL Free Software License Agreement v1.0.";
3077            case CECILL1_1: return "CeCILL Free Software License Agreement v1.1.";
3078            case CECILL2_0: return "CeCILL Free Software License Agreement v2.0.";
3079            case CECILL2_1: return "CeCILL Free Software License Agreement v2.1.";
3080            case CECILLB: return "CeCILL-B Free Software License Agreement.";
3081            case CECILLC: return "CeCILL-C Free Software License Agreement.";
3082            case CLARTISTIC: return "Clarified Artistic License.";
3083            case CNRIJYTHON: return "CNRI Jython License.";
3084            case CNRIPYTHONGPLCOMPATIBLE: return "CNRI Python Open Source GPL Compatible License Agreement.";
3085            case CNRIPYTHON: return "CNRI Python License.";
3086            case CONDOR1_1: return "Condor Public License v1.1.";
3087            case CPAL1_0: return "Common Public Attribution License 1.0.";
3088            case CPL1_0: return "Common Public License 1.0.";
3089            case CPOL1_02: return "Code Project Open License 1.02.";
3090            case CROSSWORD: return "Crossword License.";
3091            case CRYSTALSTACKER: return "CrystalStacker License.";
3092            case CUAOPL1_0: return "CUA Office Public License v1.0.";
3093            case CUBE: return "Cube License.";
3094            case CURL: return "curl License.";
3095            case DFSL1_0: return "Deutsche Freie Software Lizenz.";
3096            case DIFFMARK: return "diffmark license.";
3097            case DOC: return "DOC License.";
3098            case DOTSEQN: return "Dotseqn License.";
3099            case DSDP: return "DSDP License.";
3100            case DVIPDFM: return "dvipdfm License.";
3101            case ECL1_0: return "Educational Community License v1.0.";
3102            case ECL2_0: return "Educational Community License v2.0.";
3103            case EFL1_0: return "Eiffel Forum License v1.0.";
3104            case EFL2_0: return "Eiffel Forum License v2.0.";
3105            case EGENIX: return "eGenix.com Public License 1.1.0.";
3106            case ENTESSA: return "Entessa Public License v1.0.";
3107            case EPL1_0: return "Eclipse Public License 1.0.";
3108            case EPL2_0: return "Eclipse Public License 2.0.";
3109            case ERLPL1_1: return "Erlang Public License v1.1.";
3110            case EUDATAGRID: return "EU DataGrid Software License.";
3111            case EUPL1_0: return "European Union Public License 1.0.";
3112            case EUPL1_1: return "European Union Public License 1.1.";
3113            case EUPL1_2: return "European Union Public License 1.2.";
3114            case EUROSYM: return "Eurosym License.";
3115            case FAIR: return "Fair License.";
3116            case FRAMEWORX1_0: return "Frameworx Open License 1.0.";
3117            case FREEIMAGE: return "FreeImage Public License v1.0.";
3118            case FSFAP: return "FSF All Permissive License.";
3119            case FSFUL: return "FSF Unlimited License.";
3120            case FSFULLR: return "FSF Unlimited License (with License Retention).";
3121            case FTL: return "Freetype Project License.";
3122            case GFDL1_1ONLY: return "GNU Free Documentation License v1.1 only.";
3123            case GFDL1_1ORLATER: return "GNU Free Documentation License v1.1 or later.";
3124            case GFDL1_2ONLY: return "GNU Free Documentation License v1.2 only.";
3125            case GFDL1_2ORLATER: return "GNU Free Documentation License v1.2 or later.";
3126            case GFDL1_3ONLY: return "GNU Free Documentation License v1.3 only.";
3127            case GFDL1_3ORLATER: return "GNU Free Documentation License v1.3 or later.";
3128            case GIFTWARE: return "Giftware License.";
3129            case GL2PS: return "GL2PS License.";
3130            case GLIDE: return "3dfx Glide License.";
3131            case GLULXE: return "Glulxe License.";
3132            case GNUPLOT: return "gnuplot License.";
3133            case GPL1_0ONLY: return "GNU General Public License v1.0 only.";
3134            case GPL1_0ORLATER: return "GNU General Public License v1.0 or later.";
3135            case GPL2_0ONLY: return "GNU General Public License v2.0 only.";
3136            case GPL2_0ORLATER: return "GNU General Public License v2.0 or later.";
3137            case GPL3_0ONLY: return "GNU General Public License v3.0 only.";
3138            case GPL3_0ORLATER: return "GNU General Public License v3.0 or later.";
3139            case GSOAP1_3B: return "gSOAP Public License v1.3b.";
3140            case HASKELLREPORT: return "Haskell Language Report License.";
3141            case HPND: return "Historical Permission Notice and Disclaimer.";
3142            case IBMPIBS: return "IBM PowerPC Initialization and Boot Software.";
3143            case ICU: return "ICU License.";
3144            case IJG: return "Independent JPEG Group License.";
3145            case IMAGEMAGICK: return "ImageMagick License.";
3146            case IMATIX: return "iMatix Standard Function Library Agreement.";
3147            case IMLIB2: return "Imlib2 License.";
3148            case INFOZIP: return "Info-ZIP License.";
3149            case INTELACPI: return "Intel ACPI Software License Agreement.";
3150            case INTEL: return "Intel Open Source License.";
3151            case INTERBASE1_0: return "Interbase Public License v1.0.";
3152            case IPA: return "IPA Font License.";
3153            case IPL1_0: return "IBM Public License v1.0.";
3154            case ISC: return "ISC License.";
3155            case JASPER2_0: return "JasPer License.";
3156            case JSON: return "JSON License.";
3157            case LAL1_2: return "Licence Art Libre 1.2.";
3158            case LAL1_3: return "Licence Art Libre 1.3.";
3159            case LATEX2E: return "Latex2e License.";
3160            case LEPTONICA: return "Leptonica License.";
3161            case LGPL2_0ONLY: return "GNU Library General Public License v2 only.";
3162            case LGPL2_0ORLATER: return "GNU Library General Public License v2 or later.";
3163            case LGPL2_1ONLY: return "GNU Lesser General Public License v2.1 only.";
3164            case LGPL2_1ORLATER: return "GNU Lesser General Public License v2.1 or later.";
3165            case LGPL3_0ONLY: return "GNU Lesser General Public License v3.0 only.";
3166            case LGPL3_0ORLATER: return "GNU Lesser General Public License v3.0 or later.";
3167            case LGPLLR: return "Lesser General Public License For Linguistic Resources.";
3168            case LIBPNG: return "libpng License.";
3169            case LIBTIFF: return "libtiff License.";
3170            case LILIQP1_1: return "Licence Libre du Québec ? Permissive version 1.1.";
3171            case LILIQR1_1: return "Licence Libre du Québec ? Réciprocité version 1.1.";
3172            case LILIQRPLUS1_1: return "Licence Libre du Québec ? Réciprocité forte version 1.1.";
3173            case LINUXOPENIB: return "Linux Kernel Variant of OpenIB.org license.";
3174            case LPL1_0: return "Lucent Public License Version 1.0.";
3175            case LPL1_02: return "Lucent Public License v1.02.";
3176            case LPPL1_0: return "LaTeX Project Public License v1.0.";
3177            case LPPL1_1: return "LaTeX Project Public License v1.1.";
3178            case LPPL1_2: return "LaTeX Project Public License v1.2.";
3179            case LPPL1_3A: return "LaTeX Project Public License v1.3a.";
3180            case LPPL1_3C: return "LaTeX Project Public License v1.3c.";
3181            case MAKEINDEX: return "MakeIndex License.";
3182            case MIROS: return "MirOS License.";
3183            case MIT0: return "MIT No Attribution.";
3184            case MITADVERTISING: return "Enlightenment License (e16).";
3185            case MITCMU: return "CMU License.";
3186            case MITENNA: return "enna License.";
3187            case MITFEH: return "feh License.";
3188            case MIT: return "MIT License.";
3189            case MITNFA: return "MIT +no-false-attribs license.";
3190            case MOTOSOTO: return "Motosoto License.";
3191            case MPICH2: return "mpich2 License.";
3192            case MPL1_0: return "Mozilla Public License 1.0.";
3193            case MPL1_1: return "Mozilla Public License 1.1.";
3194            case MPL2_0NOCOPYLEFTEXCEPTION: return "Mozilla Public License 2.0 (no copyleft exception).";
3195            case MPL2_0: return "Mozilla Public License 2.0.";
3196            case MSPL: return "Microsoft Public License.";
3197            case MSRL: return "Microsoft Reciprocal License.";
3198            case MTLL: return "Matrix Template Library License.";
3199            case MULTICS: return "Multics License.";
3200            case MUP: return "Mup License.";
3201            case NASA1_3: return "NASA Open Source Agreement 1.3.";
3202            case NAUMEN: return "Naumen Public License.";
3203            case NBPL1_0: return "Net Boolean Public License v1.";
3204            case NCSA: return "University of Illinois/NCSA Open Source License.";
3205            case NETSNMP: return "Net-SNMP License.";
3206            case NETCDF: return "NetCDF license.";
3207            case NEWSLETR: return "Newsletr License.";
3208            case NGPL: return "Nethack General Public License.";
3209            case NLOD1_0: return "Norwegian Licence for Open Government Data.";
3210            case NLPL: return "No Limit Public License.";
3211            case NOKIA: return "Nokia Open Source License.";
3212            case NOSL: return "Netizen Open Source License.";
3213            case NOWEB: return "Noweb License.";
3214            case NPL1_0: return "Netscape Public License v1.0.";
3215            case NPL1_1: return "Netscape Public License v1.1.";
3216            case NPOSL3_0: return "Non-Profit Open Software License 3.0.";
3217            case NRL: return "NRL License.";
3218            case NTP: return "NTP License.";
3219            case OCCTPL: return "Open CASCADE Technology Public License.";
3220            case OCLC2_0: return "OCLC Research Public License 2.0.";
3221            case ODBL1_0: return "ODC Open Database License v1.0.";
3222            case OFL1_0: return "SIL Open Font License 1.0.";
3223            case OFL1_1: return "SIL Open Font License 1.1.";
3224            case OGTSL: return "Open Group Test Suite License.";
3225            case OLDAP1_1: return "Open LDAP Public License v1.1.";
3226            case OLDAP1_2: return "Open LDAP Public License v1.2.";
3227            case OLDAP1_3: return "Open LDAP Public License v1.3.";
3228            case OLDAP1_4: return "Open LDAP Public License v1.4.";
3229            case OLDAP2_0_1: return "Open LDAP Public License v2.0.1.";
3230            case OLDAP2_0: return "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B).";
3231            case OLDAP2_1: return "Open LDAP Public License v2.1.";
3232            case OLDAP2_2_1: return "Open LDAP Public License v2.2.1.";
3233            case OLDAP2_2_2: return "Open LDAP Public License 2.2.2.";
3234            case OLDAP2_2: return "Open LDAP Public License v2.2.";
3235            case OLDAP2_3: return "Open LDAP Public License v2.3.";
3236            case OLDAP2_4: return "Open LDAP Public License v2.4.";
3237            case OLDAP2_5: return "Open LDAP Public License v2.5.";
3238            case OLDAP2_6: return "Open LDAP Public License v2.6.";
3239            case OLDAP2_7: return "Open LDAP Public License v2.7.";
3240            case OLDAP2_8: return "Open LDAP Public License v2.8.";
3241            case OML: return "Open Market License.";
3242            case OPENSSL: return "OpenSSL License.";
3243            case OPL1_0: return "Open Public License v1.0.";
3244            case OSETPL2_1: return "OSET Public License version 2.1.";
3245            case OSL1_0: return "Open Software License 1.0.";
3246            case OSL1_1: return "Open Software License 1.1.";
3247            case OSL2_0: return "Open Software License 2.0.";
3248            case OSL2_1: return "Open Software License 2.1.";
3249            case OSL3_0: return "Open Software License 3.0.";
3250            case PDDL1_0: return "ODC Public Domain Dedication & License 1.0.";
3251            case PHP3_0: return "PHP License v3.0.";
3252            case PHP3_01: return "PHP License v3.01.";
3253            case PLEXUS: return "Plexus Classworlds License.";
3254            case POSTGRESQL: return "PostgreSQL License.";
3255            case PSFRAG: return "psfrag License.";
3256            case PSUTILS: return "psutils License.";
3257            case PYTHON2_0: return "Python License 2.0.";
3258            case QHULL: return "Qhull License.";
3259            case QPL1_0: return "Q Public License 1.0.";
3260            case RDISC: return "Rdisc License.";
3261            case RHECOS1_1: return "Red Hat eCos Public License v1.1.";
3262            case RPL1_1: return "Reciprocal Public License 1.1.";
3263            case RPL1_5: return "Reciprocal Public License 1.5.";
3264            case RPSL1_0: return "RealNetworks Public Source License v1.0.";
3265            case RSAMD: return "RSA Message-Digest License.";
3266            case RSCPL: return "Ricoh Source Code Public License.";
3267            case RUBY: return "Ruby License.";
3268            case SAXPD: return "Sax Public Domain Notice.";
3269            case SAXPATH: return "Saxpath License.";
3270            case SCEA: return "SCEA Shared Source License.";
3271            case SENDMAIL: return "Sendmail License.";
3272            case SGIB1_0: return "SGI Free Software License B v1.0.";
3273            case SGIB1_1: return "SGI Free Software License B v1.1.";
3274            case SGIB2_0: return "SGI Free Software License B v2.0.";
3275            case SIMPL2_0: return "Simple Public License 2.0.";
3276            case SISSL1_2: return "Sun Industry Standards Source License v1.2.";
3277            case SISSL: return "Sun Industry Standards Source License v1.1.";
3278            case SLEEPYCAT: return "Sleepycat License.";
3279            case SMLNJ: return "Standard ML of New Jersey License.";
3280            case SMPPL: return "Secure Messaging Protocol Public License.";
3281            case SNIA: return "SNIA Public License 1.1.";
3282            case SPENCER86: return "Spencer License 86.";
3283            case SPENCER94: return "Spencer License 94.";
3284            case SPENCER99: return "Spencer License 99.";
3285            case SPL1_0: return "Sun Public License v1.0.";
3286            case SUGARCRM1_1_3: return "SugarCRM Public License v1.1.3.";
3287            case SWL: return "Scheme Widget Library (SWL) Software License Agreement.";
3288            case TCL: return "TCL/TK License.";
3289            case TCPWRAPPERS: return "TCP Wrappers License.";
3290            case TMATE: return "TMate Open Source License.";
3291            case TORQUE1_1: return "TORQUE v2.5+ Software License v1.1.";
3292            case TOSL: return "Trusster Open Source License.";
3293            case UNICODEDFS2015: return "Unicode License Agreement - Data Files and Software (2015).";
3294            case UNICODEDFS2016: return "Unicode License Agreement - Data Files and Software (2016).";
3295            case UNICODETOU: return "Unicode Terms of Use.";
3296            case UNLICENSE: return "The Unlicense.";
3297            case UPL1_0: return "Universal Permissive License v1.0.";
3298            case VIM: return "Vim License.";
3299            case VOSTROM: return "VOSTROM Public License for Open Source.";
3300            case VSL1_0: return "Vovida Software License v1.0.";
3301            case W3C19980720: return "W3C Software Notice and License (1998-07-20).";
3302            case W3C20150513: return "W3C Software Notice and Document License (2015-05-13).";
3303            case W3C: return "W3C Software Notice and License (2002-12-31).";
3304            case WATCOM1_0: return "Sybase Open Watcom Public License 1.0.";
3305            case WSUIPA: return "Wsuipa License.";
3306            case WTFPL: return "Do What The F*ck You Want To Public License.";
3307            case X11: return "X11 License.";
3308            case XEROX: return "Xerox License.";
3309            case XFREE861_1: return "XFree86 License 1.1.";
3310            case XINETD: return "xinetd License.";
3311            case XNET: return "X.Net License.";
3312            case XPP: return "XPP License.";
3313            case XSKAT: return "XSkat License.";
3314            case YPL1_0: return "Yahoo! Public License v1.0.";
3315            case YPL1_1: return "Yahoo! Public License v1.1.";
3316            case ZED: return "Zed License.";
3317            case ZEND2_0: return "Zend License v2.0.";
3318            case ZIMBRA1_3: return "Zimbra Public License v1.3.";
3319            case ZIMBRA1_4: return "Zimbra Public License v1.4.";
3320            case ZLIBACKNOWLEDGEMENT: return "zlib/libpng License with Acknowledgement.";
3321            case ZLIB: return "zlib License.";
3322            case ZPL1_1: return "Zope Public License 1.1.";
3323            case ZPL2_0: return "Zope Public License 2.0.";
3324            case ZPL2_1: return "Zope Public License 2.1.";
3325            case NULL: return null;
3326            default: return "?";
3327          }
3328        }
3329        public String getDisplay() {
3330          switch (this) {
3331            case NOTOPENSOURCE: return "Not open source";
3332            case _0BSD: return "BSD Zero Clause License";
3333            case AAL: return "Attribution Assurance License";
3334            case ABSTYLES: return "Abstyles License";
3335            case ADOBE2006: return "Adobe Systems Incorporated Source Code License Agreement";
3336            case ADOBEGLYPH: return "Adobe Glyph List License";
3337            case ADSL: return "Amazon Digital Services License";
3338            case AFL1_1: return "Academic Free License v1.1";
3339            case AFL1_2: return "Academic Free License v1.2";
3340            case AFL2_0: return "Academic Free License v2.0";
3341            case AFL2_1: return "Academic Free License v2.1";
3342            case AFL3_0: return "Academic Free License v3.0";
3343            case AFMPARSE: return "Afmparse License";
3344            case AGPL1_0ONLY: return "Affero General Public License v1.0 only";
3345            case AGPL1_0ORLATER: return "Affero General Public License v1.0 or later";
3346            case AGPL3_0ONLY: return "GNU Affero General Public License v3.0 only";
3347            case AGPL3_0ORLATER: return "GNU Affero General Public License v3.0 or later";
3348            case ALADDIN: return "Aladdin Free Public License";
3349            case AMDPLPA: return "AMD's plpa_map.c License";
3350            case AML: return "Apple MIT License";
3351            case AMPAS: return "Academy of Motion Picture Arts and Sciences BSD";
3352            case ANTLRPD: return "ANTLR Software Rights Notice";
3353            case APACHE1_0: return "Apache License 1.0";
3354            case APACHE1_1: return "Apache License 1.1";
3355            case APACHE2_0: return "Apache License 2.0";
3356            case APAFML: return "Adobe Postscript AFM License";
3357            case APL1_0: return "Adaptive Public License 1.0";
3358            case APSL1_0: return "Apple Public Source License 1.0";
3359            case APSL1_1: return "Apple Public Source License 1.1";
3360            case APSL1_2: return "Apple Public Source License 1.2";
3361            case APSL2_0: return "Apple Public Source License 2.0";
3362            case ARTISTIC1_0CL8: return "Artistic License 1.0 w/clause 8";
3363            case ARTISTIC1_0PERL: return "Artistic License 1.0 (Perl)";
3364            case ARTISTIC1_0: return "Artistic License 1.0";
3365            case ARTISTIC2_0: return "Artistic License 2.0";
3366            case BAHYPH: return "Bahyph License";
3367            case BARR: return "Barr License";
3368            case BEERWARE: return "Beerware License";
3369            case BITTORRENT1_0: return "BitTorrent Open Source License v1.0";
3370            case BITTORRENT1_1: return "BitTorrent Open Source License v1.1";
3371            case BORCEUX: return "Borceux license";
3372            case BSD1CLAUSE: return "BSD 1-Clause License";
3373            case BSD2CLAUSEFREEBSD: return "BSD 2-Clause FreeBSD License";
3374            case BSD2CLAUSENETBSD: return "BSD 2-Clause NetBSD License";
3375            case BSD2CLAUSEPATENT: return "BSD-2-Clause Plus Patent License";
3376            case BSD2CLAUSE: return "BSD 2-Clause \"Simplified\" License";
3377            case BSD3CLAUSEATTRIBUTION: return "BSD with attribution";
3378            case BSD3CLAUSECLEAR: return "BSD 3-Clause Clear License";
3379            case BSD3CLAUSELBNL: return "Lawrence Berkeley National Labs BSD variant license";
3380            case BSD3CLAUSENONUCLEARLICENSE2014: return "BSD 3-Clause No Nuclear License 2014";
3381            case BSD3CLAUSENONUCLEARLICENSE: return "BSD 3-Clause No Nuclear License";
3382            case BSD3CLAUSENONUCLEARWARRANTY: return "BSD 3-Clause No Nuclear Warranty";
3383            case BSD3CLAUSE: return "BSD 3-Clause \"New\" or \"Revised\" License";
3384            case BSD4CLAUSEUC: return "BSD-4-Clause (University of California-Specific)";
3385            case BSD4CLAUSE: return "BSD 4-Clause \"Original\" or \"Old\" License";
3386            case BSDPROTECTION: return "BSD Protection License";
3387            case BSDSOURCECODE: return "BSD Source Code Attribution";
3388            case BSL1_0: return "Boost Software License 1.0";
3389            case BZIP21_0_5: return "bzip2 and libbzip2 License v1.0.5";
3390            case BZIP21_0_6: return "bzip2 and libbzip2 License v1.0.6";
3391            case CALDERA: return "Caldera License";
3392            case CATOSL1_1: return "Computer Associates Trusted Open Source License 1.1";
3393            case CCBY1_0: return "Creative Commons Attribution 1.0 Generic";
3394            case CCBY2_0: return "Creative Commons Attribution 2.0 Generic";
3395            case CCBY2_5: return "Creative Commons Attribution 2.5 Generic";
3396            case CCBY3_0: return "Creative Commons Attribution 3.0 Unported";
3397            case CCBY4_0: return "Creative Commons Attribution 4.0 International";
3398            case CCBYNC1_0: return "Creative Commons Attribution Non Commercial 1.0 Generic";
3399            case CCBYNC2_0: return "Creative Commons Attribution Non Commercial 2.0 Generic";
3400            case CCBYNC2_5: return "Creative Commons Attribution Non Commercial 2.5 Generic";
3401            case CCBYNC3_0: return "Creative Commons Attribution Non Commercial 3.0 Unported";
3402            case CCBYNC4_0: return "Creative Commons Attribution Non Commercial 4.0 International";
3403            case CCBYNCND1_0: return "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic";
3404            case CCBYNCND2_0: return "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic";
3405            case CCBYNCND2_5: return "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic";
3406            case CCBYNCND3_0: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported";
3407            case CCBYNCND4_0: return "Creative Commons Attribution Non Commercial No Derivatives 4.0 International";
3408            case CCBYNCSA1_0: return "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic";
3409            case CCBYNCSA2_0: return "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic";
3410            case CCBYNCSA2_5: return "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic";
3411            case CCBYNCSA3_0: return "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported";
3412            case CCBYNCSA4_0: return "Creative Commons Attribution Non Commercial Share Alike 4.0 International";
3413            case CCBYND1_0: return "Creative Commons Attribution No Derivatives 1.0 Generic";
3414            case CCBYND2_0: return "Creative Commons Attribution No Derivatives 2.0 Generic";
3415            case CCBYND2_5: return "Creative Commons Attribution No Derivatives 2.5 Generic";
3416            case CCBYND3_0: return "Creative Commons Attribution No Derivatives 3.0 Unported";
3417            case CCBYND4_0: return "Creative Commons Attribution No Derivatives 4.0 International";
3418            case CCBYSA1_0: return "Creative Commons Attribution Share Alike 1.0 Generic";
3419            case CCBYSA2_0: return "Creative Commons Attribution Share Alike 2.0 Generic";
3420            case CCBYSA2_5: return "Creative Commons Attribution Share Alike 2.5 Generic";
3421            case CCBYSA3_0: return "Creative Commons Attribution Share Alike 3.0 Unported";
3422            case CCBYSA4_0: return "Creative Commons Attribution Share Alike 4.0 International";
3423            case CC01_0: return "Creative Commons Zero v1.0 Universal";
3424            case CDDL1_0: return "Common Development and Distribution License 1.0";
3425            case CDDL1_1: return "Common Development and Distribution License 1.1";
3426            case CDLAPERMISSIVE1_0: return "Community Data License Agreement Permissive 1.0";
3427            case CDLASHARING1_0: return "Community Data License Agreement Sharing 1.0";
3428            case CECILL1_0: return "CeCILL Free Software License Agreement v1.0";
3429            case CECILL1_1: return "CeCILL Free Software License Agreement v1.1";
3430            case CECILL2_0: return "CeCILL Free Software License Agreement v2.0";
3431            case CECILL2_1: return "CeCILL Free Software License Agreement v2.1";
3432            case CECILLB: return "CeCILL-B Free Software License Agreement";
3433            case CECILLC: return "CeCILL-C Free Software License Agreement";
3434            case CLARTISTIC: return "Clarified Artistic License";
3435            case CNRIJYTHON: return "CNRI Jython License";
3436            case CNRIPYTHONGPLCOMPATIBLE: return "CNRI Python Open Source GPL Compatible License Agreement";
3437            case CNRIPYTHON: return "CNRI Python License";
3438            case CONDOR1_1: return "Condor Public License v1.1";
3439            case CPAL1_0: return "Common Public Attribution License 1.0";
3440            case CPL1_0: return "Common Public License 1.0";
3441            case CPOL1_02: return "Code Project Open License 1.02";
3442            case CROSSWORD: return "Crossword License";
3443            case CRYSTALSTACKER: return "CrystalStacker License";
3444            case CUAOPL1_0: return "CUA Office Public License v1.0";
3445            case CUBE: return "Cube License";
3446            case CURL: return "curl License";
3447            case DFSL1_0: return "Deutsche Freie Software Lizenz";
3448            case DIFFMARK: return "diffmark license";
3449            case DOC: return "DOC License";
3450            case DOTSEQN: return "Dotseqn License";
3451            case DSDP: return "DSDP License";
3452            case DVIPDFM: return "dvipdfm License";
3453            case ECL1_0: return "Educational Community License v1.0";
3454            case ECL2_0: return "Educational Community License v2.0";
3455            case EFL1_0: return "Eiffel Forum License v1.0";
3456            case EFL2_0: return "Eiffel Forum License v2.0";
3457            case EGENIX: return "eGenix.com Public License 1.1.0";
3458            case ENTESSA: return "Entessa Public License v1.0";
3459            case EPL1_0: return "Eclipse Public License 1.0";
3460            case EPL2_0: return "Eclipse Public License 2.0";
3461            case ERLPL1_1: return "Erlang Public License v1.1";
3462            case EUDATAGRID: return "EU DataGrid Software License";
3463            case EUPL1_0: return "European Union Public License 1.0";
3464            case EUPL1_1: return "European Union Public License 1.1";
3465            case EUPL1_2: return "European Union Public License 1.2";
3466            case EUROSYM: return "Eurosym License";
3467            case FAIR: return "Fair License";
3468            case FRAMEWORX1_0: return "Frameworx Open License 1.0";
3469            case FREEIMAGE: return "FreeImage Public License v1.0";
3470            case FSFAP: return "FSF All Permissive License";
3471            case FSFUL: return "FSF Unlimited License";
3472            case FSFULLR: return "FSF Unlimited License (with License Retention)";
3473            case FTL: return "Freetype Project License";
3474            case GFDL1_1ONLY: return "GNU Free Documentation License v1.1 only";
3475            case GFDL1_1ORLATER: return "GNU Free Documentation License v1.1 or later";
3476            case GFDL1_2ONLY: return "GNU Free Documentation License v1.2 only";
3477            case GFDL1_2ORLATER: return "GNU Free Documentation License v1.2 or later";
3478            case GFDL1_3ONLY: return "GNU Free Documentation License v1.3 only";
3479            case GFDL1_3ORLATER: return "GNU Free Documentation License v1.3 or later";
3480            case GIFTWARE: return "Giftware License";
3481            case GL2PS: return "GL2PS License";
3482            case GLIDE: return "3dfx Glide License";
3483            case GLULXE: return "Glulxe License";
3484            case GNUPLOT: return "gnuplot License";
3485            case GPL1_0ONLY: return "GNU General Public License v1.0 only";
3486            case GPL1_0ORLATER: return "GNU General Public License v1.0 or later";
3487            case GPL2_0ONLY: return "GNU General Public License v2.0 only";
3488            case GPL2_0ORLATER: return "GNU General Public License v2.0 or later";
3489            case GPL3_0ONLY: return "GNU General Public License v3.0 only";
3490            case GPL3_0ORLATER: return "GNU General Public License v3.0 or later";
3491            case GSOAP1_3B: return "gSOAP Public License v1.3b";
3492            case HASKELLREPORT: return "Haskell Language Report License";
3493            case HPND: return "Historical Permission Notice and Disclaimer";
3494            case IBMPIBS: return "IBM PowerPC Initialization and Boot Software";
3495            case ICU: return "ICU License";
3496            case IJG: return "Independent JPEG Group License";
3497            case IMAGEMAGICK: return "ImageMagick License";
3498            case IMATIX: return "iMatix Standard Function Library Agreement";
3499            case IMLIB2: return "Imlib2 License";
3500            case INFOZIP: return "Info-ZIP License";
3501            case INTELACPI: return "Intel ACPI Software License Agreement";
3502            case INTEL: return "Intel Open Source License";
3503            case INTERBASE1_0: return "Interbase Public License v1.0";
3504            case IPA: return "IPA Font License";
3505            case IPL1_0: return "IBM Public License v1.0";
3506            case ISC: return "ISC License";
3507            case JASPER2_0: return "JasPer License";
3508            case JSON: return "JSON License";
3509            case LAL1_2: return "Licence Art Libre 1.2";
3510            case LAL1_3: return "Licence Art Libre 1.3";
3511            case LATEX2E: return "Latex2e License";
3512            case LEPTONICA: return "Leptonica License";
3513            case LGPL2_0ONLY: return "GNU Library General Public License v2 only";
3514            case LGPL2_0ORLATER: return "GNU Library General Public License v2 or later";
3515            case LGPL2_1ONLY: return "GNU Lesser General Public License v2.1 only";
3516            case LGPL2_1ORLATER: return "GNU Lesser General Public License v2.1 or later";
3517            case LGPL3_0ONLY: return "GNU Lesser General Public License v3.0 only";
3518            case LGPL3_0ORLATER: return "GNU Lesser General Public License v3.0 or later";
3519            case LGPLLR: return "Lesser General Public License For Linguistic Resources";
3520            case LIBPNG: return "libpng License";
3521            case LIBTIFF: return "libtiff License";
3522            case LILIQP1_1: return "Licence Libre du Québec ? Permissive version 1.1";
3523            case LILIQR1_1: return "Licence Libre du Québec ? Réciprocité version 1.1";
3524            case LILIQRPLUS1_1: return "Licence Libre du Québec ? Réciprocité forte version 1.1";
3525            case LINUXOPENIB: return "Linux Kernel Variant of OpenIB.org license";
3526            case LPL1_0: return "Lucent Public License Version 1.0";
3527            case LPL1_02: return "Lucent Public License v1.02";
3528            case LPPL1_0: return "LaTeX Project Public License v1.0";
3529            case LPPL1_1: return "LaTeX Project Public License v1.1";
3530            case LPPL1_2: return "LaTeX Project Public License v1.2";
3531            case LPPL1_3A: return "LaTeX Project Public License v1.3a";
3532            case LPPL1_3C: return "LaTeX Project Public License v1.3c";
3533            case MAKEINDEX: return "MakeIndex License";
3534            case MIROS: return "MirOS License";
3535            case MIT0: return "MIT No Attribution";
3536            case MITADVERTISING: return "Enlightenment License (e16)";
3537            case MITCMU: return "CMU License";
3538            case MITENNA: return "enna License";
3539            case MITFEH: return "feh License";
3540            case MIT: return "MIT License";
3541            case MITNFA: return "MIT +no-false-attribs license";
3542            case MOTOSOTO: return "Motosoto License";
3543            case MPICH2: return "mpich2 License";
3544            case MPL1_0: return "Mozilla Public License 1.0";
3545            case MPL1_1: return "Mozilla Public License 1.1";
3546            case MPL2_0NOCOPYLEFTEXCEPTION: return "Mozilla Public License 2.0 (no copyleft exception)";
3547            case MPL2_0: return "Mozilla Public License 2.0";
3548            case MSPL: return "Microsoft Public License";
3549            case MSRL: return "Microsoft Reciprocal License";
3550            case MTLL: return "Matrix Template Library License";
3551            case MULTICS: return "Multics License";
3552            case MUP: return "Mup License";
3553            case NASA1_3: return "NASA Open Source Agreement 1.3";
3554            case NAUMEN: return "Naumen Public License";
3555            case NBPL1_0: return "Net Boolean Public License v1";
3556            case NCSA: return "University of Illinois/NCSA Open Source License";
3557            case NETSNMP: return "Net-SNMP License";
3558            case NETCDF: return "NetCDF license";
3559            case NEWSLETR: return "Newsletr License";
3560            case NGPL: return "Nethack General Public License";
3561            case NLOD1_0: return "Norwegian Licence for Open Government Data";
3562            case NLPL: return "No Limit Public License";
3563            case NOKIA: return "Nokia Open Source License";
3564            case NOSL: return "Netizen Open Source License";
3565            case NOWEB: return "Noweb License";
3566            case NPL1_0: return "Netscape Public License v1.0";
3567            case NPL1_1: return "Netscape Public License v1.1";
3568            case NPOSL3_0: return "Non-Profit Open Software License 3.0";
3569            case NRL: return "NRL License";
3570            case NTP: return "NTP License";
3571            case OCCTPL: return "Open CASCADE Technology Public License";
3572            case OCLC2_0: return "OCLC Research Public License 2.0";
3573            case ODBL1_0: return "ODC Open Database License v1.0";
3574            case OFL1_0: return "SIL Open Font License 1.0";
3575            case OFL1_1: return "SIL Open Font License 1.1";
3576            case OGTSL: return "Open Group Test Suite License";
3577            case OLDAP1_1: return "Open LDAP Public License v1.1";
3578            case OLDAP1_2: return "Open LDAP Public License v1.2";
3579            case OLDAP1_3: return "Open LDAP Public License v1.3";
3580            case OLDAP1_4: return "Open LDAP Public License v1.4";
3581            case OLDAP2_0_1: return "Open LDAP Public License v2.0.1";
3582            case OLDAP2_0: return "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)";
3583            case OLDAP2_1: return "Open LDAP Public License v2.1";
3584            case OLDAP2_2_1: return "Open LDAP Public License v2.2.1";
3585            case OLDAP2_2_2: return "Open LDAP Public License 2.2.2";
3586            case OLDAP2_2: return "Open LDAP Public License v2.2";
3587            case OLDAP2_3: return "Open LDAP Public License v2.3";
3588            case OLDAP2_4: return "Open LDAP Public License v2.4";
3589            case OLDAP2_5: return "Open LDAP Public License v2.5";
3590            case OLDAP2_6: return "Open LDAP Public License v2.6";
3591            case OLDAP2_7: return "Open LDAP Public License v2.7";
3592            case OLDAP2_8: return "Open LDAP Public License v2.8";
3593            case OML: return "Open Market License";
3594            case OPENSSL: return "OpenSSL License";
3595            case OPL1_0: return "Open Public License v1.0";
3596            case OSETPL2_1: return "OSET Public License version 2.1";
3597            case OSL1_0: return "Open Software License 1.0";
3598            case OSL1_1: return "Open Software License 1.1";
3599            case OSL2_0: return "Open Software License 2.0";
3600            case OSL2_1: return "Open Software License 2.1";
3601            case OSL3_0: return "Open Software License 3.0";
3602            case PDDL1_0: return "ODC Public Domain Dedication & License 1.0";
3603            case PHP3_0: return "PHP License v3.0";
3604            case PHP3_01: return "PHP License v3.01";
3605            case PLEXUS: return "Plexus Classworlds License";
3606            case POSTGRESQL: return "PostgreSQL License";
3607            case PSFRAG: return "psfrag License";
3608            case PSUTILS: return "psutils License";
3609            case PYTHON2_0: return "Python License 2.0";
3610            case QHULL: return "Qhull License";
3611            case QPL1_0: return "Q Public License 1.0";
3612            case RDISC: return "Rdisc License";
3613            case RHECOS1_1: return "Red Hat eCos Public License v1.1";
3614            case RPL1_1: return "Reciprocal Public License 1.1";
3615            case RPL1_5: return "Reciprocal Public License 1.5";
3616            case RPSL1_0: return "RealNetworks Public Source License v1.0";
3617            case RSAMD: return "RSA Message-Digest License";
3618            case RSCPL: return "Ricoh Source Code Public License";
3619            case RUBY: return "Ruby License";
3620            case SAXPD: return "Sax Public Domain Notice";
3621            case SAXPATH: return "Saxpath License";
3622            case SCEA: return "SCEA Shared Source License";
3623            case SENDMAIL: return "Sendmail License";
3624            case SGIB1_0: return "SGI Free Software License B v1.0";
3625            case SGIB1_1: return "SGI Free Software License B v1.1";
3626            case SGIB2_0: return "SGI Free Software License B v2.0";
3627            case SIMPL2_0: return "Simple Public License 2.0";
3628            case SISSL1_2: return "Sun Industry Standards Source License v1.2";
3629            case SISSL: return "Sun Industry Standards Source License v1.1";
3630            case SLEEPYCAT: return "Sleepycat License";
3631            case SMLNJ: return "Standard ML of New Jersey License";
3632            case SMPPL: return "Secure Messaging Protocol Public License";
3633            case SNIA: return "SNIA Public License 1.1";
3634            case SPENCER86: return "Spencer License 86";
3635            case SPENCER94: return "Spencer License 94";
3636            case SPENCER99: return "Spencer License 99";
3637            case SPL1_0: return "Sun Public License v1.0";
3638            case SUGARCRM1_1_3: return "SugarCRM Public License v1.1.3";
3639            case SWL: return "Scheme Widget Library (SWL) Software License Agreement";
3640            case TCL: return "TCL/TK License";
3641            case TCPWRAPPERS: return "TCP Wrappers License";
3642            case TMATE: return "TMate Open Source License";
3643            case TORQUE1_1: return "TORQUE v2.5+ Software License v1.1";
3644            case TOSL: return "Trusster Open Source License";
3645            case UNICODEDFS2015: return "Unicode License Agreement - Data Files and Software (2015)";
3646            case UNICODEDFS2016: return "Unicode License Agreement - Data Files and Software (2016)";
3647            case UNICODETOU: return "Unicode Terms of Use";
3648            case UNLICENSE: return "The Unlicense";
3649            case UPL1_0: return "Universal Permissive License v1.0";
3650            case VIM: return "Vim License";
3651            case VOSTROM: return "VOSTROM Public License for Open Source";
3652            case VSL1_0: return "Vovida Software License v1.0";
3653            case W3C19980720: return "W3C Software Notice and License (1998-07-20)";
3654            case W3C20150513: return "W3C Software Notice and Document License (2015-05-13)";
3655            case W3C: return "W3C Software Notice and License (2002-12-31)";
3656            case WATCOM1_0: return "Sybase Open Watcom Public License 1.0";
3657            case WSUIPA: return "Wsuipa License";
3658            case WTFPL: return "Do What The F*ck You Want To Public License";
3659            case X11: return "X11 License";
3660            case XEROX: return "Xerox License";
3661            case XFREE861_1: return "XFree86 License 1.1";
3662            case XINETD: return "xinetd License";
3663            case XNET: return "X.Net License";
3664            case XPP: return "XPP License";
3665            case XSKAT: return "XSkat License";
3666            case YPL1_0: return "Yahoo! Public License v1.0";
3667            case YPL1_1: return "Yahoo! Public License v1.1";
3668            case ZED: return "Zed License";
3669            case ZEND2_0: return "Zend License v2.0";
3670            case ZIMBRA1_3: return "Zimbra Public License v1.3";
3671            case ZIMBRA1_4: return "Zimbra Public License v1.4";
3672            case ZLIBACKNOWLEDGEMENT: return "zlib/libpng License with Acknowledgement";
3673            case ZLIB: return "zlib License";
3674            case ZPL1_1: return "Zope Public License 1.1";
3675            case ZPL2_0: return "Zope Public License 2.0";
3676            case ZPL2_1: return "Zope Public License 2.1";
3677            case NULL: return null;
3678            default: return "?";
3679          }
3680        }
3681    }
3682
3683  public static class SPDXLicenseEnumFactory implements EnumFactory<SPDXLicense> {
3684    public SPDXLicense fromCode(String codeString) throws IllegalArgumentException {
3685      if (codeString == null || "".equals(codeString))
3686            if (codeString == null || "".equals(codeString))
3687                return null;
3688        if ("not-open-source".equals(codeString))
3689          return SPDXLicense.NOTOPENSOURCE;
3690        if ("0BSD".equals(codeString))
3691          return SPDXLicense._0BSD;
3692        if ("AAL".equals(codeString))
3693          return SPDXLicense.AAL;
3694        if ("Abstyles".equals(codeString))
3695          return SPDXLicense.ABSTYLES;
3696        if ("Adobe-2006".equals(codeString))
3697          return SPDXLicense.ADOBE2006;
3698        if ("Adobe-Glyph".equals(codeString))
3699          return SPDXLicense.ADOBEGLYPH;
3700        if ("ADSL".equals(codeString))
3701          return SPDXLicense.ADSL;
3702        if ("AFL-1.1".equals(codeString))
3703          return SPDXLicense.AFL1_1;
3704        if ("AFL-1.2".equals(codeString))
3705          return SPDXLicense.AFL1_2;
3706        if ("AFL-2.0".equals(codeString))
3707          return SPDXLicense.AFL2_0;
3708        if ("AFL-2.1".equals(codeString))
3709          return SPDXLicense.AFL2_1;
3710        if ("AFL-3.0".equals(codeString))
3711          return SPDXLicense.AFL3_0;
3712        if ("Afmparse".equals(codeString))
3713          return SPDXLicense.AFMPARSE;
3714        if ("AGPL-1.0-only".equals(codeString))
3715          return SPDXLicense.AGPL1_0ONLY;
3716        if ("AGPL-1.0-or-later".equals(codeString))
3717          return SPDXLicense.AGPL1_0ORLATER;
3718        if ("AGPL-3.0-only".equals(codeString))
3719          return SPDXLicense.AGPL3_0ONLY;
3720        if ("AGPL-3.0-or-later".equals(codeString))
3721          return SPDXLicense.AGPL3_0ORLATER;
3722        if ("Aladdin".equals(codeString))
3723          return SPDXLicense.ALADDIN;
3724        if ("AMDPLPA".equals(codeString))
3725          return SPDXLicense.AMDPLPA;
3726        if ("AML".equals(codeString))
3727          return SPDXLicense.AML;
3728        if ("AMPAS".equals(codeString))
3729          return SPDXLicense.AMPAS;
3730        if ("ANTLR-PD".equals(codeString))
3731          return SPDXLicense.ANTLRPD;
3732        if ("Apache-1.0".equals(codeString))
3733          return SPDXLicense.APACHE1_0;
3734        if ("Apache-1.1".equals(codeString))
3735          return SPDXLicense.APACHE1_1;
3736        if ("Apache-2.0".equals(codeString))
3737          return SPDXLicense.APACHE2_0;
3738        if ("APAFML".equals(codeString))
3739          return SPDXLicense.APAFML;
3740        if ("APL-1.0".equals(codeString))
3741          return SPDXLicense.APL1_0;
3742        if ("APSL-1.0".equals(codeString))
3743          return SPDXLicense.APSL1_0;
3744        if ("APSL-1.1".equals(codeString))
3745          return SPDXLicense.APSL1_1;
3746        if ("APSL-1.2".equals(codeString))
3747          return SPDXLicense.APSL1_2;
3748        if ("APSL-2.0".equals(codeString))
3749          return SPDXLicense.APSL2_0;
3750        if ("Artistic-1.0-cl8".equals(codeString))
3751          return SPDXLicense.ARTISTIC1_0CL8;
3752        if ("Artistic-1.0-Perl".equals(codeString))
3753          return SPDXLicense.ARTISTIC1_0PERL;
3754        if ("Artistic-1.0".equals(codeString))
3755          return SPDXLicense.ARTISTIC1_0;
3756        if ("Artistic-2.0".equals(codeString))
3757          return SPDXLicense.ARTISTIC2_0;
3758        if ("Bahyph".equals(codeString))
3759          return SPDXLicense.BAHYPH;
3760        if ("Barr".equals(codeString))
3761          return SPDXLicense.BARR;
3762        if ("Beerware".equals(codeString))
3763          return SPDXLicense.BEERWARE;
3764        if ("BitTorrent-1.0".equals(codeString))
3765          return SPDXLicense.BITTORRENT1_0;
3766        if ("BitTorrent-1.1".equals(codeString))
3767          return SPDXLicense.BITTORRENT1_1;
3768        if ("Borceux".equals(codeString))
3769          return SPDXLicense.BORCEUX;
3770        if ("BSD-1-Clause".equals(codeString))
3771          return SPDXLicense.BSD1CLAUSE;
3772        if ("BSD-2-Clause-FreeBSD".equals(codeString))
3773          return SPDXLicense.BSD2CLAUSEFREEBSD;
3774        if ("BSD-2-Clause-NetBSD".equals(codeString))
3775          return SPDXLicense.BSD2CLAUSENETBSD;
3776        if ("BSD-2-Clause-Patent".equals(codeString))
3777          return SPDXLicense.BSD2CLAUSEPATENT;
3778        if ("BSD-2-Clause".equals(codeString))
3779          return SPDXLicense.BSD2CLAUSE;
3780        if ("BSD-3-Clause-Attribution".equals(codeString))
3781          return SPDXLicense.BSD3CLAUSEATTRIBUTION;
3782        if ("BSD-3-Clause-Clear".equals(codeString))
3783          return SPDXLicense.BSD3CLAUSECLEAR;
3784        if ("BSD-3-Clause-LBNL".equals(codeString))
3785          return SPDXLicense.BSD3CLAUSELBNL;
3786        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
3787          return SPDXLicense.BSD3CLAUSENONUCLEARLICENSE2014;
3788        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
3789          return SPDXLicense.BSD3CLAUSENONUCLEARLICENSE;
3790        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
3791          return SPDXLicense.BSD3CLAUSENONUCLEARWARRANTY;
3792        if ("BSD-3-Clause".equals(codeString))
3793          return SPDXLicense.BSD3CLAUSE;
3794        if ("BSD-4-Clause-UC".equals(codeString))
3795          return SPDXLicense.BSD4CLAUSEUC;
3796        if ("BSD-4-Clause".equals(codeString))
3797          return SPDXLicense.BSD4CLAUSE;
3798        if ("BSD-Protection".equals(codeString))
3799          return SPDXLicense.BSDPROTECTION;
3800        if ("BSD-Source-Code".equals(codeString))
3801          return SPDXLicense.BSDSOURCECODE;
3802        if ("BSL-1.0".equals(codeString))
3803          return SPDXLicense.BSL1_0;
3804        if ("bzip2-1.0.5".equals(codeString))
3805          return SPDXLicense.BZIP21_0_5;
3806        if ("bzip2-1.0.6".equals(codeString))
3807          return SPDXLicense.BZIP21_0_6;
3808        if ("Caldera".equals(codeString))
3809          return SPDXLicense.CALDERA;
3810        if ("CATOSL-1.1".equals(codeString))
3811          return SPDXLicense.CATOSL1_1;
3812        if ("CC-BY-1.0".equals(codeString))
3813          return SPDXLicense.CCBY1_0;
3814        if ("CC-BY-2.0".equals(codeString))
3815          return SPDXLicense.CCBY2_0;
3816        if ("CC-BY-2.5".equals(codeString))
3817          return SPDXLicense.CCBY2_5;
3818        if ("CC-BY-3.0".equals(codeString))
3819          return SPDXLicense.CCBY3_0;
3820        if ("CC-BY-4.0".equals(codeString))
3821          return SPDXLicense.CCBY4_0;
3822        if ("CC-BY-NC-1.0".equals(codeString))
3823          return SPDXLicense.CCBYNC1_0;
3824        if ("CC-BY-NC-2.0".equals(codeString))
3825          return SPDXLicense.CCBYNC2_0;
3826        if ("CC-BY-NC-2.5".equals(codeString))
3827          return SPDXLicense.CCBYNC2_5;
3828        if ("CC-BY-NC-3.0".equals(codeString))
3829          return SPDXLicense.CCBYNC3_0;
3830        if ("CC-BY-NC-4.0".equals(codeString))
3831          return SPDXLicense.CCBYNC4_0;
3832        if ("CC-BY-NC-ND-1.0".equals(codeString))
3833          return SPDXLicense.CCBYNCND1_0;
3834        if ("CC-BY-NC-ND-2.0".equals(codeString))
3835          return SPDXLicense.CCBYNCND2_0;
3836        if ("CC-BY-NC-ND-2.5".equals(codeString))
3837          return SPDXLicense.CCBYNCND2_5;
3838        if ("CC-BY-NC-ND-3.0".equals(codeString))
3839          return SPDXLicense.CCBYNCND3_0;
3840        if ("CC-BY-NC-ND-4.0".equals(codeString))
3841          return SPDXLicense.CCBYNCND4_0;
3842        if ("CC-BY-NC-SA-1.0".equals(codeString))
3843          return SPDXLicense.CCBYNCSA1_0;
3844        if ("CC-BY-NC-SA-2.0".equals(codeString))
3845          return SPDXLicense.CCBYNCSA2_0;
3846        if ("CC-BY-NC-SA-2.5".equals(codeString))
3847          return SPDXLicense.CCBYNCSA2_5;
3848        if ("CC-BY-NC-SA-3.0".equals(codeString))
3849          return SPDXLicense.CCBYNCSA3_0;
3850        if ("CC-BY-NC-SA-4.0".equals(codeString))
3851          return SPDXLicense.CCBYNCSA4_0;
3852        if ("CC-BY-ND-1.0".equals(codeString))
3853          return SPDXLicense.CCBYND1_0;
3854        if ("CC-BY-ND-2.0".equals(codeString))
3855          return SPDXLicense.CCBYND2_0;
3856        if ("CC-BY-ND-2.5".equals(codeString))
3857          return SPDXLicense.CCBYND2_5;
3858        if ("CC-BY-ND-3.0".equals(codeString))
3859          return SPDXLicense.CCBYND3_0;
3860        if ("CC-BY-ND-4.0".equals(codeString))
3861          return SPDXLicense.CCBYND4_0;
3862        if ("CC-BY-SA-1.0".equals(codeString))
3863          return SPDXLicense.CCBYSA1_0;
3864        if ("CC-BY-SA-2.0".equals(codeString))
3865          return SPDXLicense.CCBYSA2_0;
3866        if ("CC-BY-SA-2.5".equals(codeString))
3867          return SPDXLicense.CCBYSA2_5;
3868        if ("CC-BY-SA-3.0".equals(codeString))
3869          return SPDXLicense.CCBYSA3_0;
3870        if ("CC-BY-SA-4.0".equals(codeString))
3871          return SPDXLicense.CCBYSA4_0;
3872        if ("CC0-1.0".equals(codeString))
3873          return SPDXLicense.CC01_0;
3874        if ("CDDL-1.0".equals(codeString))
3875          return SPDXLicense.CDDL1_0;
3876        if ("CDDL-1.1".equals(codeString))
3877          return SPDXLicense.CDDL1_1;
3878        if ("CDLA-Permissive-1.0".equals(codeString))
3879          return SPDXLicense.CDLAPERMISSIVE1_0;
3880        if ("CDLA-Sharing-1.0".equals(codeString))
3881          return SPDXLicense.CDLASHARING1_0;
3882        if ("CECILL-1.0".equals(codeString))
3883          return SPDXLicense.CECILL1_0;
3884        if ("CECILL-1.1".equals(codeString))
3885          return SPDXLicense.CECILL1_1;
3886        if ("CECILL-2.0".equals(codeString))
3887          return SPDXLicense.CECILL2_0;
3888        if ("CECILL-2.1".equals(codeString))
3889          return SPDXLicense.CECILL2_1;
3890        if ("CECILL-B".equals(codeString))
3891          return SPDXLicense.CECILLB;
3892        if ("CECILL-C".equals(codeString))
3893          return SPDXLicense.CECILLC;
3894        if ("ClArtistic".equals(codeString))
3895          return SPDXLicense.CLARTISTIC;
3896        if ("CNRI-Jython".equals(codeString))
3897          return SPDXLicense.CNRIJYTHON;
3898        if ("CNRI-Python-GPL-Compatible".equals(codeString))
3899          return SPDXLicense.CNRIPYTHONGPLCOMPATIBLE;
3900        if ("CNRI-Python".equals(codeString))
3901          return SPDXLicense.CNRIPYTHON;
3902        if ("Condor-1.1".equals(codeString))
3903          return SPDXLicense.CONDOR1_1;
3904        if ("CPAL-1.0".equals(codeString))
3905          return SPDXLicense.CPAL1_0;
3906        if ("CPL-1.0".equals(codeString))
3907          return SPDXLicense.CPL1_0;
3908        if ("CPOL-1.02".equals(codeString))
3909          return SPDXLicense.CPOL1_02;
3910        if ("Crossword".equals(codeString))
3911          return SPDXLicense.CROSSWORD;
3912        if ("CrystalStacker".equals(codeString))
3913          return SPDXLicense.CRYSTALSTACKER;
3914        if ("CUA-OPL-1.0".equals(codeString))
3915          return SPDXLicense.CUAOPL1_0;
3916        if ("Cube".equals(codeString))
3917          return SPDXLicense.CUBE;
3918        if ("curl".equals(codeString))
3919          return SPDXLicense.CURL;
3920        if ("D-FSL-1.0".equals(codeString))
3921          return SPDXLicense.DFSL1_0;
3922        if ("diffmark".equals(codeString))
3923          return SPDXLicense.DIFFMARK;
3924        if ("DOC".equals(codeString))
3925          return SPDXLicense.DOC;
3926        if ("Dotseqn".equals(codeString))
3927          return SPDXLicense.DOTSEQN;
3928        if ("DSDP".equals(codeString))
3929          return SPDXLicense.DSDP;
3930        if ("dvipdfm".equals(codeString))
3931          return SPDXLicense.DVIPDFM;
3932        if ("ECL-1.0".equals(codeString))
3933          return SPDXLicense.ECL1_0;
3934        if ("ECL-2.0".equals(codeString))
3935          return SPDXLicense.ECL2_0;
3936        if ("EFL-1.0".equals(codeString))
3937          return SPDXLicense.EFL1_0;
3938        if ("EFL-2.0".equals(codeString))
3939          return SPDXLicense.EFL2_0;
3940        if ("eGenix".equals(codeString))
3941          return SPDXLicense.EGENIX;
3942        if ("Entessa".equals(codeString))
3943          return SPDXLicense.ENTESSA;
3944        if ("EPL-1.0".equals(codeString))
3945          return SPDXLicense.EPL1_0;
3946        if ("EPL-2.0".equals(codeString))
3947          return SPDXLicense.EPL2_0;
3948        if ("ErlPL-1.1".equals(codeString))
3949          return SPDXLicense.ERLPL1_1;
3950        if ("EUDatagrid".equals(codeString))
3951          return SPDXLicense.EUDATAGRID;
3952        if ("EUPL-1.0".equals(codeString))
3953          return SPDXLicense.EUPL1_0;
3954        if ("EUPL-1.1".equals(codeString))
3955          return SPDXLicense.EUPL1_1;
3956        if ("EUPL-1.2".equals(codeString))
3957          return SPDXLicense.EUPL1_2;
3958        if ("Eurosym".equals(codeString))
3959          return SPDXLicense.EUROSYM;
3960        if ("Fair".equals(codeString))
3961          return SPDXLicense.FAIR;
3962        if ("Frameworx-1.0".equals(codeString))
3963          return SPDXLicense.FRAMEWORX1_0;
3964        if ("FreeImage".equals(codeString))
3965          return SPDXLicense.FREEIMAGE;
3966        if ("FSFAP".equals(codeString))
3967          return SPDXLicense.FSFAP;
3968        if ("FSFUL".equals(codeString))
3969          return SPDXLicense.FSFUL;
3970        if ("FSFULLR".equals(codeString))
3971          return SPDXLicense.FSFULLR;
3972        if ("FTL".equals(codeString))
3973          return SPDXLicense.FTL;
3974        if ("GFDL-1.1-only".equals(codeString))
3975          return SPDXLicense.GFDL1_1ONLY;
3976        if ("GFDL-1.1-or-later".equals(codeString))
3977          return SPDXLicense.GFDL1_1ORLATER;
3978        if ("GFDL-1.2-only".equals(codeString))
3979          return SPDXLicense.GFDL1_2ONLY;
3980        if ("GFDL-1.2-or-later".equals(codeString))
3981          return SPDXLicense.GFDL1_2ORLATER;
3982        if ("GFDL-1.3-only".equals(codeString))
3983          return SPDXLicense.GFDL1_3ONLY;
3984        if ("GFDL-1.3-or-later".equals(codeString))
3985          return SPDXLicense.GFDL1_3ORLATER;
3986        if ("Giftware".equals(codeString))
3987          return SPDXLicense.GIFTWARE;
3988        if ("GL2PS".equals(codeString))
3989          return SPDXLicense.GL2PS;
3990        if ("Glide".equals(codeString))
3991          return SPDXLicense.GLIDE;
3992        if ("Glulxe".equals(codeString))
3993          return SPDXLicense.GLULXE;
3994        if ("gnuplot".equals(codeString))
3995          return SPDXLicense.GNUPLOT;
3996        if ("GPL-1.0-only".equals(codeString))
3997          return SPDXLicense.GPL1_0ONLY;
3998        if ("GPL-1.0-or-later".equals(codeString))
3999          return SPDXLicense.GPL1_0ORLATER;
4000        if ("GPL-2.0-only".equals(codeString))
4001          return SPDXLicense.GPL2_0ONLY;
4002        if ("GPL-2.0-or-later".equals(codeString))
4003          return SPDXLicense.GPL2_0ORLATER;
4004        if ("GPL-3.0-only".equals(codeString))
4005          return SPDXLicense.GPL3_0ONLY;
4006        if ("GPL-3.0-or-later".equals(codeString))
4007          return SPDXLicense.GPL3_0ORLATER;
4008        if ("gSOAP-1.3b".equals(codeString))
4009          return SPDXLicense.GSOAP1_3B;
4010        if ("HaskellReport".equals(codeString))
4011          return SPDXLicense.HASKELLREPORT;
4012        if ("HPND".equals(codeString))
4013          return SPDXLicense.HPND;
4014        if ("IBM-pibs".equals(codeString))
4015          return SPDXLicense.IBMPIBS;
4016        if ("ICU".equals(codeString))
4017          return SPDXLicense.ICU;
4018        if ("IJG".equals(codeString))
4019          return SPDXLicense.IJG;
4020        if ("ImageMagick".equals(codeString))
4021          return SPDXLicense.IMAGEMAGICK;
4022        if ("iMatix".equals(codeString))
4023          return SPDXLicense.IMATIX;
4024        if ("Imlib2".equals(codeString))
4025          return SPDXLicense.IMLIB2;
4026        if ("Info-ZIP".equals(codeString))
4027          return SPDXLicense.INFOZIP;
4028        if ("Intel-ACPI".equals(codeString))
4029          return SPDXLicense.INTELACPI;
4030        if ("Intel".equals(codeString))
4031          return SPDXLicense.INTEL;
4032        if ("Interbase-1.0".equals(codeString))
4033          return SPDXLicense.INTERBASE1_0;
4034        if ("IPA".equals(codeString))
4035          return SPDXLicense.IPA;
4036        if ("IPL-1.0".equals(codeString))
4037          return SPDXLicense.IPL1_0;
4038        if ("ISC".equals(codeString))
4039          return SPDXLicense.ISC;
4040        if ("JasPer-2.0".equals(codeString))
4041          return SPDXLicense.JASPER2_0;
4042        if ("JSON".equals(codeString))
4043          return SPDXLicense.JSON;
4044        if ("LAL-1.2".equals(codeString))
4045          return SPDXLicense.LAL1_2;
4046        if ("LAL-1.3".equals(codeString))
4047          return SPDXLicense.LAL1_3;
4048        if ("Latex2e".equals(codeString))
4049          return SPDXLicense.LATEX2E;
4050        if ("Leptonica".equals(codeString))
4051          return SPDXLicense.LEPTONICA;
4052        if ("LGPL-2.0-only".equals(codeString))
4053          return SPDXLicense.LGPL2_0ONLY;
4054        if ("LGPL-2.0-or-later".equals(codeString))
4055          return SPDXLicense.LGPL2_0ORLATER;
4056        if ("LGPL-2.1-only".equals(codeString))
4057          return SPDXLicense.LGPL2_1ONLY;
4058        if ("LGPL-2.1-or-later".equals(codeString))
4059          return SPDXLicense.LGPL2_1ORLATER;
4060        if ("LGPL-3.0-only".equals(codeString))
4061          return SPDXLicense.LGPL3_0ONLY;
4062        if ("LGPL-3.0-or-later".equals(codeString))
4063          return SPDXLicense.LGPL3_0ORLATER;
4064        if ("LGPLLR".equals(codeString))
4065          return SPDXLicense.LGPLLR;
4066        if ("Libpng".equals(codeString))
4067          return SPDXLicense.LIBPNG;
4068        if ("libtiff".equals(codeString))
4069          return SPDXLicense.LIBTIFF;
4070        if ("LiLiQ-P-1.1".equals(codeString))
4071          return SPDXLicense.LILIQP1_1;
4072        if ("LiLiQ-R-1.1".equals(codeString))
4073          return SPDXLicense.LILIQR1_1;
4074        if ("LiLiQ-Rplus-1.1".equals(codeString))
4075          return SPDXLicense.LILIQRPLUS1_1;
4076        if ("Linux-OpenIB".equals(codeString))
4077          return SPDXLicense.LINUXOPENIB;
4078        if ("LPL-1.0".equals(codeString))
4079          return SPDXLicense.LPL1_0;
4080        if ("LPL-1.02".equals(codeString))
4081          return SPDXLicense.LPL1_02;
4082        if ("LPPL-1.0".equals(codeString))
4083          return SPDXLicense.LPPL1_0;
4084        if ("LPPL-1.1".equals(codeString))
4085          return SPDXLicense.LPPL1_1;
4086        if ("LPPL-1.2".equals(codeString))
4087          return SPDXLicense.LPPL1_2;
4088        if ("LPPL-1.3a".equals(codeString))
4089          return SPDXLicense.LPPL1_3A;
4090        if ("LPPL-1.3c".equals(codeString))
4091          return SPDXLicense.LPPL1_3C;
4092        if ("MakeIndex".equals(codeString))
4093          return SPDXLicense.MAKEINDEX;
4094        if ("MirOS".equals(codeString))
4095          return SPDXLicense.MIROS;
4096        if ("MIT-0".equals(codeString))
4097          return SPDXLicense.MIT0;
4098        if ("MIT-advertising".equals(codeString))
4099          return SPDXLicense.MITADVERTISING;
4100        if ("MIT-CMU".equals(codeString))
4101          return SPDXLicense.MITCMU;
4102        if ("MIT-enna".equals(codeString))
4103          return SPDXLicense.MITENNA;
4104        if ("MIT-feh".equals(codeString))
4105          return SPDXLicense.MITFEH;
4106        if ("MIT".equals(codeString))
4107          return SPDXLicense.MIT;
4108        if ("MITNFA".equals(codeString))
4109          return SPDXLicense.MITNFA;
4110        if ("Motosoto".equals(codeString))
4111          return SPDXLicense.MOTOSOTO;
4112        if ("mpich2".equals(codeString))
4113          return SPDXLicense.MPICH2;
4114        if ("MPL-1.0".equals(codeString))
4115          return SPDXLicense.MPL1_0;
4116        if ("MPL-1.1".equals(codeString))
4117          return SPDXLicense.MPL1_1;
4118        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
4119          return SPDXLicense.MPL2_0NOCOPYLEFTEXCEPTION;
4120        if ("MPL-2.0".equals(codeString))
4121          return SPDXLicense.MPL2_0;
4122        if ("MS-PL".equals(codeString))
4123          return SPDXLicense.MSPL;
4124        if ("MS-RL".equals(codeString))
4125          return SPDXLicense.MSRL;
4126        if ("MTLL".equals(codeString))
4127          return SPDXLicense.MTLL;
4128        if ("Multics".equals(codeString))
4129          return SPDXLicense.MULTICS;
4130        if ("Mup".equals(codeString))
4131          return SPDXLicense.MUP;
4132        if ("NASA-1.3".equals(codeString))
4133          return SPDXLicense.NASA1_3;
4134        if ("Naumen".equals(codeString))
4135          return SPDXLicense.NAUMEN;
4136        if ("NBPL-1.0".equals(codeString))
4137          return SPDXLicense.NBPL1_0;
4138        if ("NCSA".equals(codeString))
4139          return SPDXLicense.NCSA;
4140        if ("Net-SNMP".equals(codeString))
4141          return SPDXLicense.NETSNMP;
4142        if ("NetCDF".equals(codeString))
4143          return SPDXLicense.NETCDF;
4144        if ("Newsletr".equals(codeString))
4145          return SPDXLicense.NEWSLETR;
4146        if ("NGPL".equals(codeString))
4147          return SPDXLicense.NGPL;
4148        if ("NLOD-1.0".equals(codeString))
4149          return SPDXLicense.NLOD1_0;
4150        if ("NLPL".equals(codeString))
4151          return SPDXLicense.NLPL;
4152        if ("Nokia".equals(codeString))
4153          return SPDXLicense.NOKIA;
4154        if ("NOSL".equals(codeString))
4155          return SPDXLicense.NOSL;
4156        if ("Noweb".equals(codeString))
4157          return SPDXLicense.NOWEB;
4158        if ("NPL-1.0".equals(codeString))
4159          return SPDXLicense.NPL1_0;
4160        if ("NPL-1.1".equals(codeString))
4161          return SPDXLicense.NPL1_1;
4162        if ("NPOSL-3.0".equals(codeString))
4163          return SPDXLicense.NPOSL3_0;
4164        if ("NRL".equals(codeString))
4165          return SPDXLicense.NRL;
4166        if ("NTP".equals(codeString))
4167          return SPDXLicense.NTP;
4168        if ("OCCT-PL".equals(codeString))
4169          return SPDXLicense.OCCTPL;
4170        if ("OCLC-2.0".equals(codeString))
4171          return SPDXLicense.OCLC2_0;
4172        if ("ODbL-1.0".equals(codeString))
4173          return SPDXLicense.ODBL1_0;
4174        if ("OFL-1.0".equals(codeString))
4175          return SPDXLicense.OFL1_0;
4176        if ("OFL-1.1".equals(codeString))
4177          return SPDXLicense.OFL1_1;
4178        if ("OGTSL".equals(codeString))
4179          return SPDXLicense.OGTSL;
4180        if ("OLDAP-1.1".equals(codeString))
4181          return SPDXLicense.OLDAP1_1;
4182        if ("OLDAP-1.2".equals(codeString))
4183          return SPDXLicense.OLDAP1_2;
4184        if ("OLDAP-1.3".equals(codeString))
4185          return SPDXLicense.OLDAP1_3;
4186        if ("OLDAP-1.4".equals(codeString))
4187          return SPDXLicense.OLDAP1_4;
4188        if ("OLDAP-2.0.1".equals(codeString))
4189          return SPDXLicense.OLDAP2_0_1;
4190        if ("OLDAP-2.0".equals(codeString))
4191          return SPDXLicense.OLDAP2_0;
4192        if ("OLDAP-2.1".equals(codeString))
4193          return SPDXLicense.OLDAP2_1;
4194        if ("OLDAP-2.2.1".equals(codeString))
4195          return SPDXLicense.OLDAP2_2_1;
4196        if ("OLDAP-2.2.2".equals(codeString))
4197          return SPDXLicense.OLDAP2_2_2;
4198        if ("OLDAP-2.2".equals(codeString))
4199          return SPDXLicense.OLDAP2_2;
4200        if ("OLDAP-2.3".equals(codeString))
4201          return SPDXLicense.OLDAP2_3;
4202        if ("OLDAP-2.4".equals(codeString))
4203          return SPDXLicense.OLDAP2_4;
4204        if ("OLDAP-2.5".equals(codeString))
4205          return SPDXLicense.OLDAP2_5;
4206        if ("OLDAP-2.6".equals(codeString))
4207          return SPDXLicense.OLDAP2_6;
4208        if ("OLDAP-2.7".equals(codeString))
4209          return SPDXLicense.OLDAP2_7;
4210        if ("OLDAP-2.8".equals(codeString))
4211          return SPDXLicense.OLDAP2_8;
4212        if ("OML".equals(codeString))
4213          return SPDXLicense.OML;
4214        if ("OpenSSL".equals(codeString))
4215          return SPDXLicense.OPENSSL;
4216        if ("OPL-1.0".equals(codeString))
4217          return SPDXLicense.OPL1_0;
4218        if ("OSET-PL-2.1".equals(codeString))
4219          return SPDXLicense.OSETPL2_1;
4220        if ("OSL-1.0".equals(codeString))
4221          return SPDXLicense.OSL1_0;
4222        if ("OSL-1.1".equals(codeString))
4223          return SPDXLicense.OSL1_1;
4224        if ("OSL-2.0".equals(codeString))
4225          return SPDXLicense.OSL2_0;
4226        if ("OSL-2.1".equals(codeString))
4227          return SPDXLicense.OSL2_1;
4228        if ("OSL-3.0".equals(codeString))
4229          return SPDXLicense.OSL3_0;
4230        if ("PDDL-1.0".equals(codeString))
4231          return SPDXLicense.PDDL1_0;
4232        if ("PHP-3.0".equals(codeString))
4233          return SPDXLicense.PHP3_0;
4234        if ("PHP-3.01".equals(codeString))
4235          return SPDXLicense.PHP3_01;
4236        if ("Plexus".equals(codeString))
4237          return SPDXLicense.PLEXUS;
4238        if ("PostgreSQL".equals(codeString))
4239          return SPDXLicense.POSTGRESQL;
4240        if ("psfrag".equals(codeString))
4241          return SPDXLicense.PSFRAG;
4242        if ("psutils".equals(codeString))
4243          return SPDXLicense.PSUTILS;
4244        if ("Python-2.0".equals(codeString))
4245          return SPDXLicense.PYTHON2_0;
4246        if ("Qhull".equals(codeString))
4247          return SPDXLicense.QHULL;
4248        if ("QPL-1.0".equals(codeString))
4249          return SPDXLicense.QPL1_0;
4250        if ("Rdisc".equals(codeString))
4251          return SPDXLicense.RDISC;
4252        if ("RHeCos-1.1".equals(codeString))
4253          return SPDXLicense.RHECOS1_1;
4254        if ("RPL-1.1".equals(codeString))
4255          return SPDXLicense.RPL1_1;
4256        if ("RPL-1.5".equals(codeString))
4257          return SPDXLicense.RPL1_5;
4258        if ("RPSL-1.0".equals(codeString))
4259          return SPDXLicense.RPSL1_0;
4260        if ("RSA-MD".equals(codeString))
4261          return SPDXLicense.RSAMD;
4262        if ("RSCPL".equals(codeString))
4263          return SPDXLicense.RSCPL;
4264        if ("Ruby".equals(codeString))
4265          return SPDXLicense.RUBY;
4266        if ("SAX-PD".equals(codeString))
4267          return SPDXLicense.SAXPD;
4268        if ("Saxpath".equals(codeString))
4269          return SPDXLicense.SAXPATH;
4270        if ("SCEA".equals(codeString))
4271          return SPDXLicense.SCEA;
4272        if ("Sendmail".equals(codeString))
4273          return SPDXLicense.SENDMAIL;
4274        if ("SGI-B-1.0".equals(codeString))
4275          return SPDXLicense.SGIB1_0;
4276        if ("SGI-B-1.1".equals(codeString))
4277          return SPDXLicense.SGIB1_1;
4278        if ("SGI-B-2.0".equals(codeString))
4279          return SPDXLicense.SGIB2_0;
4280        if ("SimPL-2.0".equals(codeString))
4281          return SPDXLicense.SIMPL2_0;
4282        if ("SISSL-1.2".equals(codeString))
4283          return SPDXLicense.SISSL1_2;
4284        if ("SISSL".equals(codeString))
4285          return SPDXLicense.SISSL;
4286        if ("Sleepycat".equals(codeString))
4287          return SPDXLicense.SLEEPYCAT;
4288        if ("SMLNJ".equals(codeString))
4289          return SPDXLicense.SMLNJ;
4290        if ("SMPPL".equals(codeString))
4291          return SPDXLicense.SMPPL;
4292        if ("SNIA".equals(codeString))
4293          return SPDXLicense.SNIA;
4294        if ("Spencer-86".equals(codeString))
4295          return SPDXLicense.SPENCER86;
4296        if ("Spencer-94".equals(codeString))
4297          return SPDXLicense.SPENCER94;
4298        if ("Spencer-99".equals(codeString))
4299          return SPDXLicense.SPENCER99;
4300        if ("SPL-1.0".equals(codeString))
4301          return SPDXLicense.SPL1_0;
4302        if ("SugarCRM-1.1.3".equals(codeString))
4303          return SPDXLicense.SUGARCRM1_1_3;
4304        if ("SWL".equals(codeString))
4305          return SPDXLicense.SWL;
4306        if ("TCL".equals(codeString))
4307          return SPDXLicense.TCL;
4308        if ("TCP-wrappers".equals(codeString))
4309          return SPDXLicense.TCPWRAPPERS;
4310        if ("TMate".equals(codeString))
4311          return SPDXLicense.TMATE;
4312        if ("TORQUE-1.1".equals(codeString))
4313          return SPDXLicense.TORQUE1_1;
4314        if ("TOSL".equals(codeString))
4315          return SPDXLicense.TOSL;
4316        if ("Unicode-DFS-2015".equals(codeString))
4317          return SPDXLicense.UNICODEDFS2015;
4318        if ("Unicode-DFS-2016".equals(codeString))
4319          return SPDXLicense.UNICODEDFS2016;
4320        if ("Unicode-TOU".equals(codeString))
4321          return SPDXLicense.UNICODETOU;
4322        if ("Unlicense".equals(codeString))
4323          return SPDXLicense.UNLICENSE;
4324        if ("UPL-1.0".equals(codeString))
4325          return SPDXLicense.UPL1_0;
4326        if ("Vim".equals(codeString))
4327          return SPDXLicense.VIM;
4328        if ("VOSTROM".equals(codeString))
4329          return SPDXLicense.VOSTROM;
4330        if ("VSL-1.0".equals(codeString))
4331          return SPDXLicense.VSL1_0;
4332        if ("W3C-19980720".equals(codeString))
4333          return SPDXLicense.W3C19980720;
4334        if ("W3C-20150513".equals(codeString))
4335          return SPDXLicense.W3C20150513;
4336        if ("W3C".equals(codeString))
4337          return SPDXLicense.W3C;
4338        if ("Watcom-1.0".equals(codeString))
4339          return SPDXLicense.WATCOM1_0;
4340        if ("Wsuipa".equals(codeString))
4341          return SPDXLicense.WSUIPA;
4342        if ("WTFPL".equals(codeString))
4343          return SPDXLicense.WTFPL;
4344        if ("X11".equals(codeString))
4345          return SPDXLicense.X11;
4346        if ("Xerox".equals(codeString))
4347          return SPDXLicense.XEROX;
4348        if ("XFree86-1.1".equals(codeString))
4349          return SPDXLicense.XFREE861_1;
4350        if ("xinetd".equals(codeString))
4351          return SPDXLicense.XINETD;
4352        if ("Xnet".equals(codeString))
4353          return SPDXLicense.XNET;
4354        if ("xpp".equals(codeString))
4355          return SPDXLicense.XPP;
4356        if ("XSkat".equals(codeString))
4357          return SPDXLicense.XSKAT;
4358        if ("YPL-1.0".equals(codeString))
4359          return SPDXLicense.YPL1_0;
4360        if ("YPL-1.1".equals(codeString))
4361          return SPDXLicense.YPL1_1;
4362        if ("Zed".equals(codeString))
4363          return SPDXLicense.ZED;
4364        if ("Zend-2.0".equals(codeString))
4365          return SPDXLicense.ZEND2_0;
4366        if ("Zimbra-1.3".equals(codeString))
4367          return SPDXLicense.ZIMBRA1_3;
4368        if ("Zimbra-1.4".equals(codeString))
4369          return SPDXLicense.ZIMBRA1_4;
4370        if ("zlib-acknowledgement".equals(codeString))
4371          return SPDXLicense.ZLIBACKNOWLEDGEMENT;
4372        if ("Zlib".equals(codeString))
4373          return SPDXLicense.ZLIB;
4374        if ("ZPL-1.1".equals(codeString))
4375          return SPDXLicense.ZPL1_1;
4376        if ("ZPL-2.0".equals(codeString))
4377          return SPDXLicense.ZPL2_0;
4378        if ("ZPL-2.1".equals(codeString))
4379          return SPDXLicense.ZPL2_1;
4380        throw new IllegalArgumentException("Unknown SPDXLicense code '"+codeString+"'");
4381        }
4382        public Enumeration<SPDXLicense> fromType(Base code) throws FHIRException {
4383          if (code == null)
4384            return null;
4385          if (code.isEmpty())
4386            return new Enumeration<SPDXLicense>(this);
4387          String codeString = ((PrimitiveType) code).asStringValue();
4388          if (codeString == null || "".equals(codeString))
4389            return null;
4390        if ("not-open-source".equals(codeString))
4391          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOTOPENSOURCE);
4392        if ("0BSD".equals(codeString))
4393          return new Enumeration<SPDXLicense>(this, SPDXLicense._0BSD);
4394        if ("AAL".equals(codeString))
4395          return new Enumeration<SPDXLicense>(this, SPDXLicense.AAL);
4396        if ("Abstyles".equals(codeString))
4397          return new Enumeration<SPDXLicense>(this, SPDXLicense.ABSTYLES);
4398        if ("Adobe-2006".equals(codeString))
4399          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADOBE2006);
4400        if ("Adobe-Glyph".equals(codeString))
4401          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADOBEGLYPH);
4402        if ("ADSL".equals(codeString))
4403          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADSL);
4404        if ("AFL-1.1".equals(codeString))
4405          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL1_1);
4406        if ("AFL-1.2".equals(codeString))
4407          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL1_2);
4408        if ("AFL-2.0".equals(codeString))
4409          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL2_0);
4410        if ("AFL-2.1".equals(codeString))
4411          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL2_1);
4412        if ("AFL-3.0".equals(codeString))
4413          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL3_0);
4414        if ("Afmparse".equals(codeString))
4415          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFMPARSE);
4416        if ("AGPL-1.0-only".equals(codeString))
4417          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL1_0ONLY);
4418        if ("AGPL-1.0-or-later".equals(codeString))
4419          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL1_0ORLATER);
4420        if ("AGPL-3.0-only".equals(codeString))
4421          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL3_0ONLY);
4422        if ("AGPL-3.0-or-later".equals(codeString))
4423          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL3_0ORLATER);
4424        if ("Aladdin".equals(codeString))
4425          return new Enumeration<SPDXLicense>(this, SPDXLicense.ALADDIN);
4426        if ("AMDPLPA".equals(codeString))
4427          return new Enumeration<SPDXLicense>(this, SPDXLicense.AMDPLPA);
4428        if ("AML".equals(codeString))
4429          return new Enumeration<SPDXLicense>(this, SPDXLicense.AML);
4430        if ("AMPAS".equals(codeString))
4431          return new Enumeration<SPDXLicense>(this, SPDXLicense.AMPAS);
4432        if ("ANTLR-PD".equals(codeString))
4433          return new Enumeration<SPDXLicense>(this, SPDXLicense.ANTLRPD);
4434        if ("Apache-1.0".equals(codeString))
4435          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE1_0);
4436        if ("Apache-1.1".equals(codeString))
4437          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE1_1);
4438        if ("Apache-2.0".equals(codeString))
4439          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE2_0);
4440        if ("APAFML".equals(codeString))
4441          return new Enumeration<SPDXLicense>(this, SPDXLicense.APAFML);
4442        if ("APL-1.0".equals(codeString))
4443          return new Enumeration<SPDXLicense>(this, SPDXLicense.APL1_0);
4444        if ("APSL-1.0".equals(codeString))
4445          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL1_0);
4446        if ("APSL-1.1".equals(codeString))
4447          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL1_1);
4448        if ("APSL-1.2".equals(codeString))
4449          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL1_2);
4450        if ("APSL-2.0".equals(codeString))
4451          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL2_0);
4452        if ("Artistic-1.0-cl8".equals(codeString))
4453          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC1_0CL8);
4454        if ("Artistic-1.0-Perl".equals(codeString))
4455          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC1_0PERL);
4456        if ("Artistic-1.0".equals(codeString))
4457          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC1_0);
4458        if ("Artistic-2.0".equals(codeString))
4459          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC2_0);
4460        if ("Bahyph".equals(codeString))
4461          return new Enumeration<SPDXLicense>(this, SPDXLicense.BAHYPH);
4462        if ("Barr".equals(codeString))
4463          return new Enumeration<SPDXLicense>(this, SPDXLicense.BARR);
4464        if ("Beerware".equals(codeString))
4465          return new Enumeration<SPDXLicense>(this, SPDXLicense.BEERWARE);
4466        if ("BitTorrent-1.0".equals(codeString))
4467          return new Enumeration<SPDXLicense>(this, SPDXLicense.BITTORRENT1_0);
4468        if ("BitTorrent-1.1".equals(codeString))
4469          return new Enumeration<SPDXLicense>(this, SPDXLicense.BITTORRENT1_1);
4470        if ("Borceux".equals(codeString))
4471          return new Enumeration<SPDXLicense>(this, SPDXLicense.BORCEUX);
4472        if ("BSD-1-Clause".equals(codeString))
4473          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD1CLAUSE);
4474        if ("BSD-2-Clause-FreeBSD".equals(codeString))
4475          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSEFREEBSD);
4476        if ("BSD-2-Clause-NetBSD".equals(codeString))
4477          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSENETBSD);
4478        if ("BSD-2-Clause-Patent".equals(codeString))
4479          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSEPATENT);
4480        if ("BSD-2-Clause".equals(codeString))
4481          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSE);
4482        if ("BSD-3-Clause-Attribution".equals(codeString))
4483          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSEATTRIBUTION);
4484        if ("BSD-3-Clause-Clear".equals(codeString))
4485          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSECLEAR);
4486        if ("BSD-3-Clause-LBNL".equals(codeString))
4487          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSELBNL);
4488        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
4489          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSENONUCLEARLICENSE2014);
4490        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
4491          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSENONUCLEARLICENSE);
4492        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
4493          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSENONUCLEARWARRANTY);
4494        if ("BSD-3-Clause".equals(codeString))
4495          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSE);
4496        if ("BSD-4-Clause-UC".equals(codeString))
4497          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD4CLAUSEUC);
4498        if ("BSD-4-Clause".equals(codeString))
4499          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD4CLAUSE);
4500        if ("BSD-Protection".equals(codeString))
4501          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSDPROTECTION);
4502        if ("BSD-Source-Code".equals(codeString))
4503          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSDSOURCECODE);
4504        if ("BSL-1.0".equals(codeString))
4505          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSL1_0);
4506        if ("bzip2-1.0.5".equals(codeString))
4507          return new Enumeration<SPDXLicense>(this, SPDXLicense.BZIP21_0_5);
4508        if ("bzip2-1.0.6".equals(codeString))
4509          return new Enumeration<SPDXLicense>(this, SPDXLicense.BZIP21_0_6);
4510        if ("Caldera".equals(codeString))
4511          return new Enumeration<SPDXLicense>(this, SPDXLicense.CALDERA);
4512        if ("CATOSL-1.1".equals(codeString))
4513          return new Enumeration<SPDXLicense>(this, SPDXLicense.CATOSL1_1);
4514        if ("CC-BY-1.0".equals(codeString))
4515          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY1_0);
4516        if ("CC-BY-2.0".equals(codeString))
4517          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY2_0);
4518        if ("CC-BY-2.5".equals(codeString))
4519          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY2_5);
4520        if ("CC-BY-3.0".equals(codeString))
4521          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY3_0);
4522        if ("CC-BY-4.0".equals(codeString))
4523          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY4_0);
4524        if ("CC-BY-NC-1.0".equals(codeString))
4525          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC1_0);
4526        if ("CC-BY-NC-2.0".equals(codeString))
4527          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC2_0);
4528        if ("CC-BY-NC-2.5".equals(codeString))
4529          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC2_5);
4530        if ("CC-BY-NC-3.0".equals(codeString))
4531          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC3_0);
4532        if ("CC-BY-NC-4.0".equals(codeString))
4533          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC4_0);
4534        if ("CC-BY-NC-ND-1.0".equals(codeString))
4535          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND1_0);
4536        if ("CC-BY-NC-ND-2.0".equals(codeString))
4537          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND2_0);
4538        if ("CC-BY-NC-ND-2.5".equals(codeString))
4539          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND2_5);
4540        if ("CC-BY-NC-ND-3.0".equals(codeString))
4541          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND3_0);
4542        if ("CC-BY-NC-ND-4.0".equals(codeString))
4543          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND4_0);
4544        if ("CC-BY-NC-SA-1.0".equals(codeString))
4545          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA1_0);
4546        if ("CC-BY-NC-SA-2.0".equals(codeString))
4547          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA2_0);
4548        if ("CC-BY-NC-SA-2.5".equals(codeString))
4549          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA2_5);
4550        if ("CC-BY-NC-SA-3.0".equals(codeString))
4551          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA3_0);
4552        if ("CC-BY-NC-SA-4.0".equals(codeString))
4553          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA4_0);
4554        if ("CC-BY-ND-1.0".equals(codeString))
4555          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND1_0);
4556        if ("CC-BY-ND-2.0".equals(codeString))
4557          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND2_0);
4558        if ("CC-BY-ND-2.5".equals(codeString))
4559          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND2_5);
4560        if ("CC-BY-ND-3.0".equals(codeString))
4561          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND3_0);
4562        if ("CC-BY-ND-4.0".equals(codeString))
4563          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND4_0);
4564        if ("CC-BY-SA-1.0".equals(codeString))
4565          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA1_0);
4566        if ("CC-BY-SA-2.0".equals(codeString))
4567          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA2_0);
4568        if ("CC-BY-SA-2.5".equals(codeString))
4569          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA2_5);
4570        if ("CC-BY-SA-3.0".equals(codeString))
4571          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA3_0);
4572        if ("CC-BY-SA-4.0".equals(codeString))
4573          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA4_0);
4574        if ("CC0-1.0".equals(codeString))
4575          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC01_0);
4576        if ("CDDL-1.0".equals(codeString))
4577          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDDL1_0);
4578        if ("CDDL-1.1".equals(codeString))
4579          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDDL1_1);
4580        if ("CDLA-Permissive-1.0".equals(codeString))
4581          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLAPERMISSIVE1_0);
4582        if ("CDLA-Sharing-1.0".equals(codeString))
4583          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLASHARING1_0);
4584        if ("CECILL-1.0".equals(codeString))
4585          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL1_0);
4586        if ("CECILL-1.1".equals(codeString))
4587          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL1_1);
4588        if ("CECILL-2.0".equals(codeString))
4589          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL2_0);
4590        if ("CECILL-2.1".equals(codeString))
4591          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL2_1);
4592        if ("CECILL-B".equals(codeString))
4593          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILLB);
4594        if ("CECILL-C".equals(codeString))
4595          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILLC);
4596        if ("ClArtistic".equals(codeString))
4597          return new Enumeration<SPDXLicense>(this, SPDXLicense.CLARTISTIC);
4598        if ("CNRI-Jython".equals(codeString))
4599          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRIJYTHON);
4600        if ("CNRI-Python-GPL-Compatible".equals(codeString))
4601          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRIPYTHONGPLCOMPATIBLE);
4602        if ("CNRI-Python".equals(codeString))
4603          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRIPYTHON);
4604        if ("Condor-1.1".equals(codeString))
4605          return new Enumeration<SPDXLicense>(this, SPDXLicense.CONDOR1_1);
4606        if ("CPAL-1.0".equals(codeString))
4607          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPAL1_0);
4608        if ("CPL-1.0".equals(codeString))
4609          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPL1_0);
4610        if ("CPOL-1.02".equals(codeString))
4611          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPOL1_02);
4612        if ("Crossword".equals(codeString))
4613          return new Enumeration<SPDXLicense>(this, SPDXLicense.CROSSWORD);
4614        if ("CrystalStacker".equals(codeString))
4615          return new Enumeration<SPDXLicense>(this, SPDXLicense.CRYSTALSTACKER);
4616        if ("CUA-OPL-1.0".equals(codeString))
4617          return new Enumeration<SPDXLicense>(this, SPDXLicense.CUAOPL1_0);
4618        if ("Cube".equals(codeString))
4619          return new Enumeration<SPDXLicense>(this, SPDXLicense.CUBE);
4620        if ("curl".equals(codeString))
4621          return new Enumeration<SPDXLicense>(this, SPDXLicense.CURL);
4622        if ("D-FSL-1.0".equals(codeString))
4623          return new Enumeration<SPDXLicense>(this, SPDXLicense.DFSL1_0);
4624        if ("diffmark".equals(codeString))
4625          return new Enumeration<SPDXLicense>(this, SPDXLicense.DIFFMARK);
4626        if ("DOC".equals(codeString))
4627          return new Enumeration<SPDXLicense>(this, SPDXLicense.DOC);
4628        if ("Dotseqn".equals(codeString))
4629          return new Enumeration<SPDXLicense>(this, SPDXLicense.DOTSEQN);
4630        if ("DSDP".equals(codeString))
4631          return new Enumeration<SPDXLicense>(this, SPDXLicense.DSDP);
4632        if ("dvipdfm".equals(codeString))
4633          return new Enumeration<SPDXLicense>(this, SPDXLicense.DVIPDFM);
4634        if ("ECL-1.0".equals(codeString))
4635          return new Enumeration<SPDXLicense>(this, SPDXLicense.ECL1_0);
4636        if ("ECL-2.0".equals(codeString))
4637          return new Enumeration<SPDXLicense>(this, SPDXLicense.ECL2_0);
4638        if ("EFL-1.0".equals(codeString))
4639          return new Enumeration<SPDXLicense>(this, SPDXLicense.EFL1_0);
4640        if ("EFL-2.0".equals(codeString))
4641          return new Enumeration<SPDXLicense>(this, SPDXLicense.EFL2_0);
4642        if ("eGenix".equals(codeString))
4643          return new Enumeration<SPDXLicense>(this, SPDXLicense.EGENIX);
4644        if ("Entessa".equals(codeString))
4645          return new Enumeration<SPDXLicense>(this, SPDXLicense.ENTESSA);
4646        if ("EPL-1.0".equals(codeString))
4647          return new Enumeration<SPDXLicense>(this, SPDXLicense.EPL1_0);
4648        if ("EPL-2.0".equals(codeString))
4649          return new Enumeration<SPDXLicense>(this, SPDXLicense.EPL2_0);
4650        if ("ErlPL-1.1".equals(codeString))
4651          return new Enumeration<SPDXLicense>(this, SPDXLicense.ERLPL1_1);
4652        if ("EUDatagrid".equals(codeString))
4653          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUDATAGRID);
4654        if ("EUPL-1.0".equals(codeString))
4655          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL1_0);
4656        if ("EUPL-1.1".equals(codeString))
4657          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL1_1);
4658        if ("EUPL-1.2".equals(codeString))
4659          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL1_2);
4660        if ("Eurosym".equals(codeString))
4661          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUROSYM);
4662        if ("Fair".equals(codeString))
4663          return new Enumeration<SPDXLicense>(this, SPDXLicense.FAIR);
4664        if ("Frameworx-1.0".equals(codeString))
4665          return new Enumeration<SPDXLicense>(this, SPDXLicense.FRAMEWORX1_0);
4666        if ("FreeImage".equals(codeString))
4667          return new Enumeration<SPDXLicense>(this, SPDXLicense.FREEIMAGE);
4668        if ("FSFAP".equals(codeString))
4669          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFAP);
4670        if ("FSFUL".equals(codeString))
4671          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFUL);
4672        if ("FSFULLR".equals(codeString))
4673          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFULLR);
4674        if ("FTL".equals(codeString))
4675          return new Enumeration<SPDXLicense>(this, SPDXLicense.FTL);
4676        if ("GFDL-1.1-only".equals(codeString))
4677          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_1ONLY);
4678        if ("GFDL-1.1-or-later".equals(codeString))
4679          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_1ORLATER);
4680        if ("GFDL-1.2-only".equals(codeString))
4681          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_2ONLY);
4682        if ("GFDL-1.2-or-later".equals(codeString))
4683          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_2ORLATER);
4684        if ("GFDL-1.3-only".equals(codeString))
4685          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_3ONLY);
4686        if ("GFDL-1.3-or-later".equals(codeString))
4687          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_3ORLATER);
4688        if ("Giftware".equals(codeString))
4689          return new Enumeration<SPDXLicense>(this, SPDXLicense.GIFTWARE);
4690        if ("GL2PS".equals(codeString))
4691          return new Enumeration<SPDXLicense>(this, SPDXLicense.GL2PS);
4692        if ("Glide".equals(codeString))
4693          return new Enumeration<SPDXLicense>(this, SPDXLicense.GLIDE);
4694        if ("Glulxe".equals(codeString))
4695          return new Enumeration<SPDXLicense>(this, SPDXLicense.GLULXE);
4696        if ("gnuplot".equals(codeString))
4697          return new Enumeration<SPDXLicense>(this, SPDXLicense.GNUPLOT);
4698        if ("GPL-1.0-only".equals(codeString))
4699          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL1_0ONLY);
4700        if ("GPL-1.0-or-later".equals(codeString))
4701          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL1_0ORLATER);
4702        if ("GPL-2.0-only".equals(codeString))
4703          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL2_0ONLY);
4704        if ("GPL-2.0-or-later".equals(codeString))
4705          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL2_0ORLATER);
4706        if ("GPL-3.0-only".equals(codeString))
4707          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL3_0ONLY);
4708        if ("GPL-3.0-or-later".equals(codeString))
4709          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL3_0ORLATER);
4710        if ("gSOAP-1.3b".equals(codeString))
4711          return new Enumeration<SPDXLicense>(this, SPDXLicense.GSOAP1_3B);
4712        if ("HaskellReport".equals(codeString))
4713          return new Enumeration<SPDXLicense>(this, SPDXLicense.HASKELLREPORT);
4714        if ("HPND".equals(codeString))
4715          return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND);
4716        if ("IBM-pibs".equals(codeString))
4717          return new Enumeration<SPDXLicense>(this, SPDXLicense.IBMPIBS);
4718        if ("ICU".equals(codeString))
4719          return new Enumeration<SPDXLicense>(this, SPDXLicense.ICU);
4720        if ("IJG".equals(codeString))
4721          return new Enumeration<SPDXLicense>(this, SPDXLicense.IJG);
4722        if ("ImageMagick".equals(codeString))
4723          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMAGEMAGICK);
4724        if ("iMatix".equals(codeString))
4725          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMATIX);
4726        if ("Imlib2".equals(codeString))
4727          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMLIB2);
4728        if ("Info-ZIP".equals(codeString))
4729          return new Enumeration<SPDXLicense>(this, SPDXLicense.INFOZIP);
4730        if ("Intel-ACPI".equals(codeString))
4731          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTELACPI);
4732        if ("Intel".equals(codeString))
4733          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTEL);
4734        if ("Interbase-1.0".equals(codeString))
4735          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTERBASE1_0);
4736        if ("IPA".equals(codeString))
4737          return new Enumeration<SPDXLicense>(this, SPDXLicense.IPA);
4738        if ("IPL-1.0".equals(codeString))
4739          return new Enumeration<SPDXLicense>(this, SPDXLicense.IPL1_0);
4740        if ("ISC".equals(codeString))
4741          return new Enumeration<SPDXLicense>(this, SPDXLicense.ISC);
4742        if ("JasPer-2.0".equals(codeString))
4743          return new Enumeration<SPDXLicense>(this, SPDXLicense.JASPER2_0);
4744        if ("JSON".equals(codeString))
4745          return new Enumeration<SPDXLicense>(this, SPDXLicense.JSON);
4746        if ("LAL-1.2".equals(codeString))
4747          return new Enumeration<SPDXLicense>(this, SPDXLicense.LAL1_2);
4748        if ("LAL-1.3".equals(codeString))
4749          return new Enumeration<SPDXLicense>(this, SPDXLicense.LAL1_3);
4750        if ("Latex2e".equals(codeString))
4751          return new Enumeration<SPDXLicense>(this, SPDXLicense.LATEX2E);
4752        if ("Leptonica".equals(codeString))
4753          return new Enumeration<SPDXLicense>(this, SPDXLicense.LEPTONICA);
4754        if ("LGPL-2.0-only".equals(codeString))
4755          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_0ONLY);
4756        if ("LGPL-2.0-or-later".equals(codeString))
4757          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_0ORLATER);
4758        if ("LGPL-2.1-only".equals(codeString))
4759          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_1ONLY);
4760        if ("LGPL-2.1-or-later".equals(codeString))
4761          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_1ORLATER);
4762        if ("LGPL-3.0-only".equals(codeString))
4763          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL3_0ONLY);
4764        if ("LGPL-3.0-or-later".equals(codeString))
4765          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL3_0ORLATER);
4766        if ("LGPLLR".equals(codeString))
4767          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPLLR);
4768        if ("Libpng".equals(codeString))
4769          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBPNG);
4770        if ("libtiff".equals(codeString))
4771          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBTIFF);
4772        if ("LiLiQ-P-1.1".equals(codeString))
4773          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQP1_1);
4774        if ("LiLiQ-R-1.1".equals(codeString))
4775          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQR1_1);
4776        if ("LiLiQ-Rplus-1.1".equals(codeString))
4777          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQRPLUS1_1);
4778        if ("Linux-OpenIB".equals(codeString))
4779          return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUXOPENIB);
4780        if ("LPL-1.0".equals(codeString))
4781          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPL1_0);
4782        if ("LPL-1.02".equals(codeString))
4783          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPL1_02);
4784        if ("LPPL-1.0".equals(codeString))
4785          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_0);
4786        if ("LPPL-1.1".equals(codeString))
4787          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_1);
4788        if ("LPPL-1.2".equals(codeString))
4789          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_2);
4790        if ("LPPL-1.3a".equals(codeString))
4791          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_3A);
4792        if ("LPPL-1.3c".equals(codeString))
4793          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_3C);
4794        if ("MakeIndex".equals(codeString))
4795          return new Enumeration<SPDXLicense>(this, SPDXLicense.MAKEINDEX);
4796        if ("MirOS".equals(codeString))
4797          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIROS);
4798        if ("MIT-0".equals(codeString))
4799          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT0);
4800        if ("MIT-advertising".equals(codeString))
4801          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITADVERTISING);
4802        if ("MIT-CMU".equals(codeString))
4803          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITCMU);
4804        if ("MIT-enna".equals(codeString))
4805          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITENNA);
4806        if ("MIT-feh".equals(codeString))
4807          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITFEH);
4808        if ("MIT".equals(codeString))
4809          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT);
4810        if ("MITNFA".equals(codeString))
4811          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITNFA);
4812        if ("Motosoto".equals(codeString))
4813          return new Enumeration<SPDXLicense>(this, SPDXLicense.MOTOSOTO);
4814        if ("mpich2".equals(codeString))
4815          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPICH2);
4816        if ("MPL-1.0".equals(codeString))
4817          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL1_0);
4818        if ("MPL-1.1".equals(codeString))
4819          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL1_1);
4820        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
4821          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL2_0NOCOPYLEFTEXCEPTION);
4822        if ("MPL-2.0".equals(codeString))
4823          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL2_0);
4824        if ("MS-PL".equals(codeString))
4825          return new Enumeration<SPDXLicense>(this, SPDXLicense.MSPL);
4826        if ("MS-RL".equals(codeString))
4827          return new Enumeration<SPDXLicense>(this, SPDXLicense.MSRL);
4828        if ("MTLL".equals(codeString))
4829          return new Enumeration<SPDXLicense>(this, SPDXLicense.MTLL);
4830        if ("Multics".equals(codeString))
4831          return new Enumeration<SPDXLicense>(this, SPDXLicense.MULTICS);
4832        if ("Mup".equals(codeString))
4833          return new Enumeration<SPDXLicense>(this, SPDXLicense.MUP);
4834        if ("NASA-1.3".equals(codeString))
4835          return new Enumeration<SPDXLicense>(this, SPDXLicense.NASA1_3);
4836        if ("Naumen".equals(codeString))
4837          return new Enumeration<SPDXLicense>(this, SPDXLicense.NAUMEN);
4838        if ("NBPL-1.0".equals(codeString))
4839          return new Enumeration<SPDXLicense>(this, SPDXLicense.NBPL1_0);
4840        if ("NCSA".equals(codeString))
4841          return new Enumeration<SPDXLicense>(this, SPDXLicense.NCSA);
4842        if ("Net-SNMP".equals(codeString))
4843          return new Enumeration<SPDXLicense>(this, SPDXLicense.NETSNMP);
4844        if ("NetCDF".equals(codeString))
4845          return new Enumeration<SPDXLicense>(this, SPDXLicense.NETCDF);
4846        if ("Newsletr".equals(codeString))
4847          return new Enumeration<SPDXLicense>(this, SPDXLicense.NEWSLETR);
4848        if ("NGPL".equals(codeString))
4849          return new Enumeration<SPDXLicense>(this, SPDXLicense.NGPL);
4850        if ("NLOD-1.0".equals(codeString))
4851          return new Enumeration<SPDXLicense>(this, SPDXLicense.NLOD1_0);
4852        if ("NLPL".equals(codeString))
4853          return new Enumeration<SPDXLicense>(this, SPDXLicense.NLPL);
4854        if ("Nokia".equals(codeString))
4855          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOKIA);
4856        if ("NOSL".equals(codeString))
4857          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOSL);
4858        if ("Noweb".equals(codeString))
4859          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOWEB);
4860        if ("NPL-1.0".equals(codeString))
4861          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPL1_0);
4862        if ("NPL-1.1".equals(codeString))
4863          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPL1_1);
4864        if ("NPOSL-3.0".equals(codeString))
4865          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPOSL3_0);
4866        if ("NRL".equals(codeString))
4867          return new Enumeration<SPDXLicense>(this, SPDXLicense.NRL);
4868        if ("NTP".equals(codeString))
4869          return new Enumeration<SPDXLicense>(this, SPDXLicense.NTP);
4870        if ("OCCT-PL".equals(codeString))
4871          return new Enumeration<SPDXLicense>(this, SPDXLicense.OCCTPL);
4872        if ("OCLC-2.0".equals(codeString))
4873          return new Enumeration<SPDXLicense>(this, SPDXLicense.OCLC2_0);
4874        if ("ODbL-1.0".equals(codeString))
4875          return new Enumeration<SPDXLicense>(this, SPDXLicense.ODBL1_0);
4876        if ("OFL-1.0".equals(codeString))
4877          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL1_0);
4878        if ("OFL-1.1".equals(codeString))
4879          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL1_1);
4880        if ("OGTSL".equals(codeString))
4881          return new Enumeration<SPDXLicense>(this, SPDXLicense.OGTSL);
4882        if ("OLDAP-1.1".equals(codeString))
4883          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_1);
4884        if ("OLDAP-1.2".equals(codeString))
4885          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_2);
4886        if ("OLDAP-1.3".equals(codeString))
4887          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_3);
4888        if ("OLDAP-1.4".equals(codeString))
4889          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_4);
4890        if ("OLDAP-2.0.1".equals(codeString))
4891          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_0_1);
4892        if ("OLDAP-2.0".equals(codeString))
4893          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_0);
4894        if ("OLDAP-2.1".equals(codeString))
4895          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_1);
4896        if ("OLDAP-2.2.1".equals(codeString))
4897          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_2_1);
4898        if ("OLDAP-2.2.2".equals(codeString))
4899          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_2_2);
4900        if ("OLDAP-2.2".equals(codeString))
4901          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_2);
4902        if ("OLDAP-2.3".equals(codeString))
4903          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_3);
4904        if ("OLDAP-2.4".equals(codeString))
4905          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_4);
4906        if ("OLDAP-2.5".equals(codeString))
4907          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_5);
4908        if ("OLDAP-2.6".equals(codeString))
4909          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_6);
4910        if ("OLDAP-2.7".equals(codeString))
4911          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_7);
4912        if ("OLDAP-2.8".equals(codeString))
4913          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_8);
4914        if ("OML".equals(codeString))
4915          return new Enumeration<SPDXLicense>(this, SPDXLicense.OML);
4916        if ("OpenSSL".equals(codeString))
4917          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPENSSL);
4918        if ("OPL-1.0".equals(codeString))
4919          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPL1_0);
4920        if ("OSET-PL-2.1".equals(codeString))
4921          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSETPL2_1);
4922        if ("OSL-1.0".equals(codeString))
4923          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL1_0);
4924        if ("OSL-1.1".equals(codeString))
4925          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL1_1);
4926        if ("OSL-2.0".equals(codeString))
4927          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL2_0);
4928        if ("OSL-2.1".equals(codeString))
4929          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL2_1);
4930        if ("OSL-3.0".equals(codeString))
4931          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL3_0);
4932        if ("PDDL-1.0".equals(codeString))
4933          return new Enumeration<SPDXLicense>(this, SPDXLicense.PDDL1_0);
4934        if ("PHP-3.0".equals(codeString))
4935          return new Enumeration<SPDXLicense>(this, SPDXLicense.PHP3_0);
4936        if ("PHP-3.01".equals(codeString))
4937          return new Enumeration<SPDXLicense>(this, SPDXLicense.PHP3_01);
4938        if ("Plexus".equals(codeString))
4939          return new Enumeration<SPDXLicense>(this, SPDXLicense.PLEXUS);
4940        if ("PostgreSQL".equals(codeString))
4941          return new Enumeration<SPDXLicense>(this, SPDXLicense.POSTGRESQL);
4942        if ("psfrag".equals(codeString))
4943          return new Enumeration<SPDXLicense>(this, SPDXLicense.PSFRAG);
4944        if ("psutils".equals(codeString))
4945          return new Enumeration<SPDXLicense>(this, SPDXLicense.PSUTILS);
4946        if ("Python-2.0".equals(codeString))
4947          return new Enumeration<SPDXLicense>(this, SPDXLicense.PYTHON2_0);
4948        if ("Qhull".equals(codeString))
4949          return new Enumeration<SPDXLicense>(this, SPDXLicense.QHULL);
4950        if ("QPL-1.0".equals(codeString))
4951          return new Enumeration<SPDXLicense>(this, SPDXLicense.QPL1_0);
4952        if ("Rdisc".equals(codeString))
4953          return new Enumeration<SPDXLicense>(this, SPDXLicense.RDISC);
4954        if ("RHeCos-1.1".equals(codeString))
4955          return new Enumeration<SPDXLicense>(this, SPDXLicense.RHECOS1_1);
4956        if ("RPL-1.1".equals(codeString))
4957          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPL1_1);
4958        if ("RPL-1.5".equals(codeString))
4959          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPL1_5);
4960        if ("RPSL-1.0".equals(codeString))
4961          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPSL1_0);
4962        if ("RSA-MD".equals(codeString))
4963          return new Enumeration<SPDXLicense>(this, SPDXLicense.RSAMD);
4964        if ("RSCPL".equals(codeString))
4965          return new Enumeration<SPDXLicense>(this, SPDXLicense.RSCPL);
4966        if ("Ruby".equals(codeString))
4967          return new Enumeration<SPDXLicense>(this, SPDXLicense.RUBY);
4968        if ("SAX-PD".equals(codeString))
4969          return new Enumeration<SPDXLicense>(this, SPDXLicense.SAXPD);
4970        if ("Saxpath".equals(codeString))
4971          return new Enumeration<SPDXLicense>(this, SPDXLicense.SAXPATH);
4972        if ("SCEA".equals(codeString))
4973          return new Enumeration<SPDXLicense>(this, SPDXLicense.SCEA);
4974        if ("Sendmail".equals(codeString))
4975          return new Enumeration<SPDXLicense>(this, SPDXLicense.SENDMAIL);
4976        if ("SGI-B-1.0".equals(codeString))
4977          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGIB1_0);
4978        if ("SGI-B-1.1".equals(codeString))
4979          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGIB1_1);
4980        if ("SGI-B-2.0".equals(codeString))
4981          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGIB2_0);
4982        if ("SimPL-2.0".equals(codeString))
4983          return new Enumeration<SPDXLicense>(this, SPDXLicense.SIMPL2_0);
4984        if ("SISSL-1.2".equals(codeString))
4985          return new Enumeration<SPDXLicense>(this, SPDXLicense.SISSL1_2);
4986        if ("SISSL".equals(codeString))
4987          return new Enumeration<SPDXLicense>(this, SPDXLicense.SISSL);
4988        if ("Sleepycat".equals(codeString))
4989          return new Enumeration<SPDXLicense>(this, SPDXLicense.SLEEPYCAT);
4990        if ("SMLNJ".equals(codeString))
4991          return new Enumeration<SPDXLicense>(this, SPDXLicense.SMLNJ);
4992        if ("SMPPL".equals(codeString))
4993          return new Enumeration<SPDXLicense>(this, SPDXLicense.SMPPL);
4994        if ("SNIA".equals(codeString))
4995          return new Enumeration<SPDXLicense>(this, SPDXLicense.SNIA);
4996        if ("Spencer-86".equals(codeString))
4997          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER86);
4998        if ("Spencer-94".equals(codeString))
4999          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER94);
5000        if ("Spencer-99".equals(codeString))
5001          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER99);
5002        if ("SPL-1.0".equals(codeString))
5003          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPL1_0);
5004        if ("SugarCRM-1.1.3".equals(codeString))
5005          return new Enumeration<SPDXLicense>(this, SPDXLicense.SUGARCRM1_1_3);
5006        if ("SWL".equals(codeString))
5007          return new Enumeration<SPDXLicense>(this, SPDXLicense.SWL);
5008        if ("TCL".equals(codeString))
5009          return new Enumeration<SPDXLicense>(this, SPDXLicense.TCL);
5010        if ("TCP-wrappers".equals(codeString))
5011          return new Enumeration<SPDXLicense>(this, SPDXLicense.TCPWRAPPERS);
5012        if ("TMate".equals(codeString))
5013          return new Enumeration<SPDXLicense>(this, SPDXLicense.TMATE);
5014        if ("TORQUE-1.1".equals(codeString))
5015          return new Enumeration<SPDXLicense>(this, SPDXLicense.TORQUE1_1);
5016        if ("TOSL".equals(codeString))
5017          return new Enumeration<SPDXLicense>(this, SPDXLicense.TOSL);
5018        if ("Unicode-DFS-2015".equals(codeString))
5019          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODEDFS2015);
5020        if ("Unicode-DFS-2016".equals(codeString))
5021          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODEDFS2016);
5022        if ("Unicode-TOU".equals(codeString))
5023          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODETOU);
5024        if ("Unlicense".equals(codeString))
5025          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNLICENSE);
5026        if ("UPL-1.0".equals(codeString))
5027          return new Enumeration<SPDXLicense>(this, SPDXLicense.UPL1_0);
5028        if ("Vim".equals(codeString))
5029          return new Enumeration<SPDXLicense>(this, SPDXLicense.VIM);
5030        if ("VOSTROM".equals(codeString))
5031          return new Enumeration<SPDXLicense>(this, SPDXLicense.VOSTROM);
5032        if ("VSL-1.0".equals(codeString))
5033          return new Enumeration<SPDXLicense>(this, SPDXLicense.VSL1_0);
5034        if ("W3C-19980720".equals(codeString))
5035          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C19980720);
5036        if ("W3C-20150513".equals(codeString))
5037          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C20150513);
5038        if ("W3C".equals(codeString))
5039          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C);
5040        if ("Watcom-1.0".equals(codeString))
5041          return new Enumeration<SPDXLicense>(this, SPDXLicense.WATCOM1_0);
5042        if ("Wsuipa".equals(codeString))
5043          return new Enumeration<SPDXLicense>(this, SPDXLicense.WSUIPA);
5044        if ("WTFPL".equals(codeString))
5045          return new Enumeration<SPDXLicense>(this, SPDXLicense.WTFPL);
5046        if ("X11".equals(codeString))
5047          return new Enumeration<SPDXLicense>(this, SPDXLicense.X11);
5048        if ("Xerox".equals(codeString))
5049          return new Enumeration<SPDXLicense>(this, SPDXLicense.XEROX);
5050        if ("XFree86-1.1".equals(codeString))
5051          return new Enumeration<SPDXLicense>(this, SPDXLicense.XFREE861_1);
5052        if ("xinetd".equals(codeString))
5053          return new Enumeration<SPDXLicense>(this, SPDXLicense.XINETD);
5054        if ("Xnet".equals(codeString))
5055          return new Enumeration<SPDXLicense>(this, SPDXLicense.XNET);
5056        if ("xpp".equals(codeString))
5057          return new Enumeration<SPDXLicense>(this, SPDXLicense.XPP);
5058        if ("XSkat".equals(codeString))
5059          return new Enumeration<SPDXLicense>(this, SPDXLicense.XSKAT);
5060        if ("YPL-1.0".equals(codeString))
5061          return new Enumeration<SPDXLicense>(this, SPDXLicense.YPL1_0);
5062        if ("YPL-1.1".equals(codeString))
5063          return new Enumeration<SPDXLicense>(this, SPDXLicense.YPL1_1);
5064        if ("Zed".equals(codeString))
5065          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZED);
5066        if ("Zend-2.0".equals(codeString))
5067          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZEND2_0);
5068        if ("Zimbra-1.3".equals(codeString))
5069          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZIMBRA1_3);
5070        if ("Zimbra-1.4".equals(codeString))
5071          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZIMBRA1_4);
5072        if ("zlib-acknowledgement".equals(codeString))
5073          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZLIBACKNOWLEDGEMENT);
5074        if ("Zlib".equals(codeString))
5075          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZLIB);
5076        if ("ZPL-1.1".equals(codeString))
5077          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL1_1);
5078        if ("ZPL-2.0".equals(codeString))
5079          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL2_0);
5080        if ("ZPL-2.1".equals(codeString))
5081          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL2_1);
5082        throw new FHIRException("Unknown SPDXLicense code '"+codeString+"'");
5083        }
5084    public String toCode(SPDXLicense code) {
5085      if (code == SPDXLicense.NOTOPENSOURCE)
5086        return "not-open-source";
5087      if (code == SPDXLicense._0BSD)
5088        return "0BSD";
5089      if (code == SPDXLicense.AAL)
5090        return "AAL";
5091      if (code == SPDXLicense.ABSTYLES)
5092        return "Abstyles";
5093      if (code == SPDXLicense.ADOBE2006)
5094        return "Adobe-2006";
5095      if (code == SPDXLicense.ADOBEGLYPH)
5096        return "Adobe-Glyph";
5097      if (code == SPDXLicense.ADSL)
5098        return "ADSL";
5099      if (code == SPDXLicense.AFL1_1)
5100        return "AFL-1.1";
5101      if (code == SPDXLicense.AFL1_2)
5102        return "AFL-1.2";
5103      if (code == SPDXLicense.AFL2_0)
5104        return "AFL-2.0";
5105      if (code == SPDXLicense.AFL2_1)
5106        return "AFL-2.1";
5107      if (code == SPDXLicense.AFL3_0)
5108        return "AFL-3.0";
5109      if (code == SPDXLicense.AFMPARSE)
5110        return "Afmparse";
5111      if (code == SPDXLicense.AGPL1_0ONLY)
5112        return "AGPL-1.0-only";
5113      if (code == SPDXLicense.AGPL1_0ORLATER)
5114        return "AGPL-1.0-or-later";
5115      if (code == SPDXLicense.AGPL3_0ONLY)
5116        return "AGPL-3.0-only";
5117      if (code == SPDXLicense.AGPL3_0ORLATER)
5118        return "AGPL-3.0-or-later";
5119      if (code == SPDXLicense.ALADDIN)
5120        return "Aladdin";
5121      if (code == SPDXLicense.AMDPLPA)
5122        return "AMDPLPA";
5123      if (code == SPDXLicense.AML)
5124        return "AML";
5125      if (code == SPDXLicense.AMPAS)
5126        return "AMPAS";
5127      if (code == SPDXLicense.ANTLRPD)
5128        return "ANTLR-PD";
5129      if (code == SPDXLicense.APACHE1_0)
5130        return "Apache-1.0";
5131      if (code == SPDXLicense.APACHE1_1)
5132        return "Apache-1.1";
5133      if (code == SPDXLicense.APACHE2_0)
5134        return "Apache-2.0";
5135      if (code == SPDXLicense.APAFML)
5136        return "APAFML";
5137      if (code == SPDXLicense.APL1_0)
5138        return "APL-1.0";
5139      if (code == SPDXLicense.APSL1_0)
5140        return "APSL-1.0";
5141      if (code == SPDXLicense.APSL1_1)
5142        return "APSL-1.1";
5143      if (code == SPDXLicense.APSL1_2)
5144        return "APSL-1.2";
5145      if (code == SPDXLicense.APSL2_0)
5146        return "APSL-2.0";
5147      if (code == SPDXLicense.ARTISTIC1_0CL8)
5148        return "Artistic-1.0-cl8";
5149      if (code == SPDXLicense.ARTISTIC1_0PERL)
5150        return "Artistic-1.0-Perl";
5151      if (code == SPDXLicense.ARTISTIC1_0)
5152        return "Artistic-1.0";
5153      if (code == SPDXLicense.ARTISTIC2_0)
5154        return "Artistic-2.0";
5155      if (code == SPDXLicense.BAHYPH)
5156        return "Bahyph";
5157      if (code == SPDXLicense.BARR)
5158        return "Barr";
5159      if (code == SPDXLicense.BEERWARE)
5160        return "Beerware";
5161      if (code == SPDXLicense.BITTORRENT1_0)
5162        return "BitTorrent-1.0";
5163      if (code == SPDXLicense.BITTORRENT1_1)
5164        return "BitTorrent-1.1";
5165      if (code == SPDXLicense.BORCEUX)
5166        return "Borceux";
5167      if (code == SPDXLicense.BSD1CLAUSE)
5168        return "BSD-1-Clause";
5169      if (code == SPDXLicense.BSD2CLAUSEFREEBSD)
5170        return "BSD-2-Clause-FreeBSD";
5171      if (code == SPDXLicense.BSD2CLAUSENETBSD)
5172        return "BSD-2-Clause-NetBSD";
5173      if (code == SPDXLicense.BSD2CLAUSEPATENT)
5174        return "BSD-2-Clause-Patent";
5175      if (code == SPDXLicense.BSD2CLAUSE)
5176        return "BSD-2-Clause";
5177      if (code == SPDXLicense.BSD3CLAUSEATTRIBUTION)
5178        return "BSD-3-Clause-Attribution";
5179      if (code == SPDXLicense.BSD3CLAUSECLEAR)
5180        return "BSD-3-Clause-Clear";
5181      if (code == SPDXLicense.BSD3CLAUSELBNL)
5182        return "BSD-3-Clause-LBNL";
5183      if (code == SPDXLicense.BSD3CLAUSENONUCLEARLICENSE2014)
5184        return "BSD-3-Clause-No-Nuclear-License-2014";
5185      if (code == SPDXLicense.BSD3CLAUSENONUCLEARLICENSE)
5186        return "BSD-3-Clause-No-Nuclear-License";
5187      if (code == SPDXLicense.BSD3CLAUSENONUCLEARWARRANTY)
5188        return "BSD-3-Clause-No-Nuclear-Warranty";
5189      if (code == SPDXLicense.BSD3CLAUSE)
5190        return "BSD-3-Clause";
5191      if (code == SPDXLicense.BSD4CLAUSEUC)
5192        return "BSD-4-Clause-UC";
5193      if (code == SPDXLicense.BSD4CLAUSE)
5194        return "BSD-4-Clause";
5195      if (code == SPDXLicense.BSDPROTECTION)
5196        return "BSD-Protection";
5197      if (code == SPDXLicense.BSDSOURCECODE)
5198        return "BSD-Source-Code";
5199      if (code == SPDXLicense.BSL1_0)
5200        return "BSL-1.0";
5201      if (code == SPDXLicense.BZIP21_0_5)
5202        return "bzip2-1.0.5";
5203      if (code == SPDXLicense.BZIP21_0_6)
5204        return "bzip2-1.0.6";
5205      if (code == SPDXLicense.CALDERA)
5206        return "Caldera";
5207      if (code == SPDXLicense.CATOSL1_1)
5208        return "CATOSL-1.1";
5209      if (code == SPDXLicense.CCBY1_0)
5210        return "CC-BY-1.0";
5211      if (code == SPDXLicense.CCBY2_0)
5212        return "CC-BY-2.0";
5213      if (code == SPDXLicense.CCBY2_5)
5214        return "CC-BY-2.5";
5215      if (code == SPDXLicense.CCBY3_0)
5216        return "CC-BY-3.0";
5217      if (code == SPDXLicense.CCBY4_0)
5218        return "CC-BY-4.0";
5219      if (code == SPDXLicense.CCBYNC1_0)
5220        return "CC-BY-NC-1.0";
5221      if (code == SPDXLicense.CCBYNC2_0)
5222        return "CC-BY-NC-2.0";
5223      if (code == SPDXLicense.CCBYNC2_5)
5224        return "CC-BY-NC-2.5";
5225      if (code == SPDXLicense.CCBYNC3_0)
5226        return "CC-BY-NC-3.0";
5227      if (code == SPDXLicense.CCBYNC4_0)
5228        return "CC-BY-NC-4.0";
5229      if (code == SPDXLicense.CCBYNCND1_0)
5230        return "CC-BY-NC-ND-1.0";
5231      if (code == SPDXLicense.CCBYNCND2_0)
5232        return "CC-BY-NC-ND-2.0";
5233      if (code == SPDXLicense.CCBYNCND2_5)
5234        return "CC-BY-NC-ND-2.5";
5235      if (code == SPDXLicense.CCBYNCND3_0)
5236        return "CC-BY-NC-ND-3.0";
5237      if (code == SPDXLicense.CCBYNCND4_0)
5238        return "CC-BY-NC-ND-4.0";
5239      if (code == SPDXLicense.CCBYNCSA1_0)
5240        return "CC-BY-NC-SA-1.0";
5241      if (code == SPDXLicense.CCBYNCSA2_0)
5242        return "CC-BY-NC-SA-2.0";
5243      if (code == SPDXLicense.CCBYNCSA2_5)
5244        return "CC-BY-NC-SA-2.5";
5245      if (code == SPDXLicense.CCBYNCSA3_0)
5246        return "CC-BY-NC-SA-3.0";
5247      if (code == SPDXLicense.CCBYNCSA4_0)
5248        return "CC-BY-NC-SA-4.0";
5249      if (code == SPDXLicense.CCBYND1_0)
5250        return "CC-BY-ND-1.0";
5251      if (code == SPDXLicense.CCBYND2_0)
5252        return "CC-BY-ND-2.0";
5253      if (code == SPDXLicense.CCBYND2_5)
5254        return "CC-BY-ND-2.5";
5255      if (code == SPDXLicense.CCBYND3_0)
5256        return "CC-BY-ND-3.0";
5257      if (code == SPDXLicense.CCBYND4_0)
5258        return "CC-BY-ND-4.0";
5259      if (code == SPDXLicense.CCBYSA1_0)
5260        return "CC-BY-SA-1.0";
5261      if (code == SPDXLicense.CCBYSA2_0)
5262        return "CC-BY-SA-2.0";
5263      if (code == SPDXLicense.CCBYSA2_5)
5264        return "CC-BY-SA-2.5";
5265      if (code == SPDXLicense.CCBYSA3_0)
5266        return "CC-BY-SA-3.0";
5267      if (code == SPDXLicense.CCBYSA4_0)
5268        return "CC-BY-SA-4.0";
5269      if (code == SPDXLicense.CC01_0)
5270        return "CC0-1.0";
5271      if (code == SPDXLicense.CDDL1_0)
5272        return "CDDL-1.0";
5273      if (code == SPDXLicense.CDDL1_1)
5274        return "CDDL-1.1";
5275      if (code == SPDXLicense.CDLAPERMISSIVE1_0)
5276        return "CDLA-Permissive-1.0";
5277      if (code == SPDXLicense.CDLASHARING1_0)
5278        return "CDLA-Sharing-1.0";
5279      if (code == SPDXLicense.CECILL1_0)
5280        return "CECILL-1.0";
5281      if (code == SPDXLicense.CECILL1_1)
5282        return "CECILL-1.1";
5283      if (code == SPDXLicense.CECILL2_0)
5284        return "CECILL-2.0";
5285      if (code == SPDXLicense.CECILL2_1)
5286        return "CECILL-2.1";
5287      if (code == SPDXLicense.CECILLB)
5288        return "CECILL-B";
5289      if (code == SPDXLicense.CECILLC)
5290        return "CECILL-C";
5291      if (code == SPDXLicense.CLARTISTIC)
5292        return "ClArtistic";
5293      if (code == SPDXLicense.CNRIJYTHON)
5294        return "CNRI-Jython";
5295      if (code == SPDXLicense.CNRIPYTHONGPLCOMPATIBLE)
5296        return "CNRI-Python-GPL-Compatible";
5297      if (code == SPDXLicense.CNRIPYTHON)
5298        return "CNRI-Python";
5299      if (code == SPDXLicense.CONDOR1_1)
5300        return "Condor-1.1";
5301      if (code == SPDXLicense.CPAL1_0)
5302        return "CPAL-1.0";
5303      if (code == SPDXLicense.CPL1_0)
5304        return "CPL-1.0";
5305      if (code == SPDXLicense.CPOL1_02)
5306        return "CPOL-1.02";
5307      if (code == SPDXLicense.CROSSWORD)
5308        return "Crossword";
5309      if (code == SPDXLicense.CRYSTALSTACKER)
5310        return "CrystalStacker";
5311      if (code == SPDXLicense.CUAOPL1_0)
5312        return "CUA-OPL-1.0";
5313      if (code == SPDXLicense.CUBE)
5314        return "Cube";
5315      if (code == SPDXLicense.CURL)
5316        return "curl";
5317      if (code == SPDXLicense.DFSL1_0)
5318        return "D-FSL-1.0";
5319      if (code == SPDXLicense.DIFFMARK)
5320        return "diffmark";
5321      if (code == SPDXLicense.DOC)
5322        return "DOC";
5323      if (code == SPDXLicense.DOTSEQN)
5324        return "Dotseqn";
5325      if (code == SPDXLicense.DSDP)
5326        return "DSDP";
5327      if (code == SPDXLicense.DVIPDFM)
5328        return "dvipdfm";
5329      if (code == SPDXLicense.ECL1_0)
5330        return "ECL-1.0";
5331      if (code == SPDXLicense.ECL2_0)
5332        return "ECL-2.0";
5333      if (code == SPDXLicense.EFL1_0)
5334        return "EFL-1.0";
5335      if (code == SPDXLicense.EFL2_0)
5336        return "EFL-2.0";
5337      if (code == SPDXLicense.EGENIX)
5338        return "eGenix";
5339      if (code == SPDXLicense.ENTESSA)
5340        return "Entessa";
5341      if (code == SPDXLicense.EPL1_0)
5342        return "EPL-1.0";
5343      if (code == SPDXLicense.EPL2_0)
5344        return "EPL-2.0";
5345      if (code == SPDXLicense.ERLPL1_1)
5346        return "ErlPL-1.1";
5347      if (code == SPDXLicense.EUDATAGRID)
5348        return "EUDatagrid";
5349      if (code == SPDXLicense.EUPL1_0)
5350        return "EUPL-1.0";
5351      if (code == SPDXLicense.EUPL1_1)
5352        return "EUPL-1.1";
5353      if (code == SPDXLicense.EUPL1_2)
5354        return "EUPL-1.2";
5355      if (code == SPDXLicense.EUROSYM)
5356        return "Eurosym";
5357      if (code == SPDXLicense.FAIR)
5358        return "Fair";
5359      if (code == SPDXLicense.FRAMEWORX1_0)
5360        return "Frameworx-1.0";
5361      if (code == SPDXLicense.FREEIMAGE)
5362        return "FreeImage";
5363      if (code == SPDXLicense.FSFAP)
5364        return "FSFAP";
5365      if (code == SPDXLicense.FSFUL)
5366        return "FSFUL";
5367      if (code == SPDXLicense.FSFULLR)
5368        return "FSFULLR";
5369      if (code == SPDXLicense.FTL)
5370        return "FTL";
5371      if (code == SPDXLicense.GFDL1_1ONLY)
5372        return "GFDL-1.1-only";
5373      if (code == SPDXLicense.GFDL1_1ORLATER)
5374        return "GFDL-1.1-or-later";
5375      if (code == SPDXLicense.GFDL1_2ONLY)
5376        return "GFDL-1.2-only";
5377      if (code == SPDXLicense.GFDL1_2ORLATER)
5378        return "GFDL-1.2-or-later";
5379      if (code == SPDXLicense.GFDL1_3ONLY)
5380        return "GFDL-1.3-only";
5381      if (code == SPDXLicense.GFDL1_3ORLATER)
5382        return "GFDL-1.3-or-later";
5383      if (code == SPDXLicense.GIFTWARE)
5384        return "Giftware";
5385      if (code == SPDXLicense.GL2PS)
5386        return "GL2PS";
5387      if (code == SPDXLicense.GLIDE)
5388        return "Glide";
5389      if (code == SPDXLicense.GLULXE)
5390        return "Glulxe";
5391      if (code == SPDXLicense.GNUPLOT)
5392        return "gnuplot";
5393      if (code == SPDXLicense.GPL1_0ONLY)
5394        return "GPL-1.0-only";
5395      if (code == SPDXLicense.GPL1_0ORLATER)
5396        return "GPL-1.0-or-later";
5397      if (code == SPDXLicense.GPL2_0ONLY)
5398        return "GPL-2.0-only";
5399      if (code == SPDXLicense.GPL2_0ORLATER)
5400        return "GPL-2.0-or-later";
5401      if (code == SPDXLicense.GPL3_0ONLY)
5402        return "GPL-3.0-only";
5403      if (code == SPDXLicense.GPL3_0ORLATER)
5404        return "GPL-3.0-or-later";
5405      if (code == SPDXLicense.GSOAP1_3B)
5406        return "gSOAP-1.3b";
5407      if (code == SPDXLicense.HASKELLREPORT)
5408        return "HaskellReport";
5409      if (code == SPDXLicense.HPND)
5410        return "HPND";
5411      if (code == SPDXLicense.IBMPIBS)
5412        return "IBM-pibs";
5413      if (code == SPDXLicense.ICU)
5414        return "ICU";
5415      if (code == SPDXLicense.IJG)
5416        return "IJG";
5417      if (code == SPDXLicense.IMAGEMAGICK)
5418        return "ImageMagick";
5419      if (code == SPDXLicense.IMATIX)
5420        return "iMatix";
5421      if (code == SPDXLicense.IMLIB2)
5422        return "Imlib2";
5423      if (code == SPDXLicense.INFOZIP)
5424        return "Info-ZIP";
5425      if (code == SPDXLicense.INTELACPI)
5426        return "Intel-ACPI";
5427      if (code == SPDXLicense.INTEL)
5428        return "Intel";
5429      if (code == SPDXLicense.INTERBASE1_0)
5430        return "Interbase-1.0";
5431      if (code == SPDXLicense.IPA)
5432        return "IPA";
5433      if (code == SPDXLicense.IPL1_0)
5434        return "IPL-1.0";
5435      if (code == SPDXLicense.ISC)
5436        return "ISC";
5437      if (code == SPDXLicense.JASPER2_0)
5438        return "JasPer-2.0";
5439      if (code == SPDXLicense.JSON)
5440        return "JSON";
5441      if (code == SPDXLicense.LAL1_2)
5442        return "LAL-1.2";
5443      if (code == SPDXLicense.LAL1_3)
5444        return "LAL-1.3";
5445      if (code == SPDXLicense.LATEX2E)
5446        return "Latex2e";
5447      if (code == SPDXLicense.LEPTONICA)
5448        return "Leptonica";
5449      if (code == SPDXLicense.LGPL2_0ONLY)
5450        return "LGPL-2.0-only";
5451      if (code == SPDXLicense.LGPL2_0ORLATER)
5452        return "LGPL-2.0-or-later";
5453      if (code == SPDXLicense.LGPL2_1ONLY)
5454        return "LGPL-2.1-only";
5455      if (code == SPDXLicense.LGPL2_1ORLATER)
5456        return "LGPL-2.1-or-later";
5457      if (code == SPDXLicense.LGPL3_0ONLY)
5458        return "LGPL-3.0-only";
5459      if (code == SPDXLicense.LGPL3_0ORLATER)
5460        return "LGPL-3.0-or-later";
5461      if (code == SPDXLicense.LGPLLR)
5462        return "LGPLLR";
5463      if (code == SPDXLicense.LIBPNG)
5464        return "Libpng";
5465      if (code == SPDXLicense.LIBTIFF)
5466        return "libtiff";
5467      if (code == SPDXLicense.LILIQP1_1)
5468        return "LiLiQ-P-1.1";
5469      if (code == SPDXLicense.LILIQR1_1)
5470        return "LiLiQ-R-1.1";
5471      if (code == SPDXLicense.LILIQRPLUS1_1)
5472        return "LiLiQ-Rplus-1.1";
5473      if (code == SPDXLicense.LINUXOPENIB)
5474        return "Linux-OpenIB";
5475      if (code == SPDXLicense.LPL1_0)
5476        return "LPL-1.0";
5477      if (code == SPDXLicense.LPL1_02)
5478        return "LPL-1.02";
5479      if (code == SPDXLicense.LPPL1_0)
5480        return "LPPL-1.0";
5481      if (code == SPDXLicense.LPPL1_1)
5482        return "LPPL-1.1";
5483      if (code == SPDXLicense.LPPL1_2)
5484        return "LPPL-1.2";
5485      if (code == SPDXLicense.LPPL1_3A)
5486        return "LPPL-1.3a";
5487      if (code == SPDXLicense.LPPL1_3C)
5488        return "LPPL-1.3c";
5489      if (code == SPDXLicense.MAKEINDEX)
5490        return "MakeIndex";
5491      if (code == SPDXLicense.MIROS)
5492        return "MirOS";
5493      if (code == SPDXLicense.MIT0)
5494        return "MIT-0";
5495      if (code == SPDXLicense.MITADVERTISING)
5496        return "MIT-advertising";
5497      if (code == SPDXLicense.MITCMU)
5498        return "MIT-CMU";
5499      if (code == SPDXLicense.MITENNA)
5500        return "MIT-enna";
5501      if (code == SPDXLicense.MITFEH)
5502        return "MIT-feh";
5503      if (code == SPDXLicense.MIT)
5504        return "MIT";
5505      if (code == SPDXLicense.MITNFA)
5506        return "MITNFA";
5507      if (code == SPDXLicense.MOTOSOTO)
5508        return "Motosoto";
5509      if (code == SPDXLicense.MPICH2)
5510        return "mpich2";
5511      if (code == SPDXLicense.MPL1_0)
5512        return "MPL-1.0";
5513      if (code == SPDXLicense.MPL1_1)
5514        return "MPL-1.1";
5515      if (code == SPDXLicense.MPL2_0NOCOPYLEFTEXCEPTION)
5516        return "MPL-2.0-no-copyleft-exception";
5517      if (code == SPDXLicense.MPL2_0)
5518        return "MPL-2.0";
5519      if (code == SPDXLicense.MSPL)
5520        return "MS-PL";
5521      if (code == SPDXLicense.MSRL)
5522        return "MS-RL";
5523      if (code == SPDXLicense.MTLL)
5524        return "MTLL";
5525      if (code == SPDXLicense.MULTICS)
5526        return "Multics";
5527      if (code == SPDXLicense.MUP)
5528        return "Mup";
5529      if (code == SPDXLicense.NASA1_3)
5530        return "NASA-1.3";
5531      if (code == SPDXLicense.NAUMEN)
5532        return "Naumen";
5533      if (code == SPDXLicense.NBPL1_0)
5534        return "NBPL-1.0";
5535      if (code == SPDXLicense.NCSA)
5536        return "NCSA";
5537      if (code == SPDXLicense.NETSNMP)
5538        return "Net-SNMP";
5539      if (code == SPDXLicense.NETCDF)
5540        return "NetCDF";
5541      if (code == SPDXLicense.NEWSLETR)
5542        return "Newsletr";
5543      if (code == SPDXLicense.NGPL)
5544        return "NGPL";
5545      if (code == SPDXLicense.NLOD1_0)
5546        return "NLOD-1.0";
5547      if (code == SPDXLicense.NLPL)
5548        return "NLPL";
5549      if (code == SPDXLicense.NOKIA)
5550        return "Nokia";
5551      if (code == SPDXLicense.NOSL)
5552        return "NOSL";
5553      if (code == SPDXLicense.NOWEB)
5554        return "Noweb";
5555      if (code == SPDXLicense.NPL1_0)
5556        return "NPL-1.0";
5557      if (code == SPDXLicense.NPL1_1)
5558        return "NPL-1.1";
5559      if (code == SPDXLicense.NPOSL3_0)
5560        return "NPOSL-3.0";
5561      if (code == SPDXLicense.NRL)
5562        return "NRL";
5563      if (code == SPDXLicense.NTP)
5564        return "NTP";
5565      if (code == SPDXLicense.OCCTPL)
5566        return "OCCT-PL";
5567      if (code == SPDXLicense.OCLC2_0)
5568        return "OCLC-2.0";
5569      if (code == SPDXLicense.ODBL1_0)
5570        return "ODbL-1.0";
5571      if (code == SPDXLicense.OFL1_0)
5572        return "OFL-1.0";
5573      if (code == SPDXLicense.OFL1_1)
5574        return "OFL-1.1";
5575      if (code == SPDXLicense.OGTSL)
5576        return "OGTSL";
5577      if (code == SPDXLicense.OLDAP1_1)
5578        return "OLDAP-1.1";
5579      if (code == SPDXLicense.OLDAP1_2)
5580        return "OLDAP-1.2";
5581      if (code == SPDXLicense.OLDAP1_3)
5582        return "OLDAP-1.3";
5583      if (code == SPDXLicense.OLDAP1_4)
5584        return "OLDAP-1.4";
5585      if (code == SPDXLicense.OLDAP2_0_1)
5586        return "OLDAP-2.0.1";
5587      if (code == SPDXLicense.OLDAP2_0)
5588        return "OLDAP-2.0";
5589      if (code == SPDXLicense.OLDAP2_1)
5590        return "OLDAP-2.1";
5591      if (code == SPDXLicense.OLDAP2_2_1)
5592        return "OLDAP-2.2.1";
5593      if (code == SPDXLicense.OLDAP2_2_2)
5594        return "OLDAP-2.2.2";
5595      if (code == SPDXLicense.OLDAP2_2)
5596        return "OLDAP-2.2";
5597      if (code == SPDXLicense.OLDAP2_3)
5598        return "OLDAP-2.3";
5599      if (code == SPDXLicense.OLDAP2_4)
5600        return "OLDAP-2.4";
5601      if (code == SPDXLicense.OLDAP2_5)
5602        return "OLDAP-2.5";
5603      if (code == SPDXLicense.OLDAP2_6)
5604        return "OLDAP-2.6";
5605      if (code == SPDXLicense.OLDAP2_7)
5606        return "OLDAP-2.7";
5607      if (code == SPDXLicense.OLDAP2_8)
5608        return "OLDAP-2.8";
5609      if (code == SPDXLicense.OML)
5610        return "OML";
5611      if (code == SPDXLicense.OPENSSL)
5612        return "OpenSSL";
5613      if (code == SPDXLicense.OPL1_0)
5614        return "OPL-1.0";
5615      if (code == SPDXLicense.OSETPL2_1)
5616        return "OSET-PL-2.1";
5617      if (code == SPDXLicense.OSL1_0)
5618        return "OSL-1.0";
5619      if (code == SPDXLicense.OSL1_1)
5620        return "OSL-1.1";
5621      if (code == SPDXLicense.OSL2_0)
5622        return "OSL-2.0";
5623      if (code == SPDXLicense.OSL2_1)
5624        return "OSL-2.1";
5625      if (code == SPDXLicense.OSL3_0)
5626        return "OSL-3.0";
5627      if (code == SPDXLicense.PDDL1_0)
5628        return "PDDL-1.0";
5629      if (code == SPDXLicense.PHP3_0)
5630        return "PHP-3.0";
5631      if (code == SPDXLicense.PHP3_01)
5632        return "PHP-3.01";
5633      if (code == SPDXLicense.PLEXUS)
5634        return "Plexus";
5635      if (code == SPDXLicense.POSTGRESQL)
5636        return "PostgreSQL";
5637      if (code == SPDXLicense.PSFRAG)
5638        return "psfrag";
5639      if (code == SPDXLicense.PSUTILS)
5640        return "psutils";
5641      if (code == SPDXLicense.PYTHON2_0)
5642        return "Python-2.0";
5643      if (code == SPDXLicense.QHULL)
5644        return "Qhull";
5645      if (code == SPDXLicense.QPL1_0)
5646        return "QPL-1.0";
5647      if (code == SPDXLicense.RDISC)
5648        return "Rdisc";
5649      if (code == SPDXLicense.RHECOS1_1)
5650        return "RHeCos-1.1";
5651      if (code == SPDXLicense.RPL1_1)
5652        return "RPL-1.1";
5653      if (code == SPDXLicense.RPL1_5)
5654        return "RPL-1.5";
5655      if (code == SPDXLicense.RPSL1_0)
5656        return "RPSL-1.0";
5657      if (code == SPDXLicense.RSAMD)
5658        return "RSA-MD";
5659      if (code == SPDXLicense.RSCPL)
5660        return "RSCPL";
5661      if (code == SPDXLicense.RUBY)
5662        return "Ruby";
5663      if (code == SPDXLicense.SAXPD)
5664        return "SAX-PD";
5665      if (code == SPDXLicense.SAXPATH)
5666        return "Saxpath";
5667      if (code == SPDXLicense.SCEA)
5668        return "SCEA";
5669      if (code == SPDXLicense.SENDMAIL)
5670        return "Sendmail";
5671      if (code == SPDXLicense.SGIB1_0)
5672        return "SGI-B-1.0";
5673      if (code == SPDXLicense.SGIB1_1)
5674        return "SGI-B-1.1";
5675      if (code == SPDXLicense.SGIB2_0)
5676        return "SGI-B-2.0";
5677      if (code == SPDXLicense.SIMPL2_0)
5678        return "SimPL-2.0";
5679      if (code == SPDXLicense.SISSL1_2)
5680        return "SISSL-1.2";
5681      if (code == SPDXLicense.SISSL)
5682        return "SISSL";
5683      if (code == SPDXLicense.SLEEPYCAT)
5684        return "Sleepycat";
5685      if (code == SPDXLicense.SMLNJ)
5686        return "SMLNJ";
5687      if (code == SPDXLicense.SMPPL)
5688        return "SMPPL";
5689      if (code == SPDXLicense.SNIA)
5690        return "SNIA";
5691      if (code == SPDXLicense.SPENCER86)
5692        return "Spencer-86";
5693      if (code == SPDXLicense.SPENCER94)
5694        return "Spencer-94";
5695      if (code == SPDXLicense.SPENCER99)
5696        return "Spencer-99";
5697      if (code == SPDXLicense.SPL1_0)
5698        return "SPL-1.0";
5699      if (code == SPDXLicense.SUGARCRM1_1_3)
5700        return "SugarCRM-1.1.3";
5701      if (code == SPDXLicense.SWL)
5702        return "SWL";
5703      if (code == SPDXLicense.TCL)
5704        return "TCL";
5705      if (code == SPDXLicense.TCPWRAPPERS)
5706        return "TCP-wrappers";
5707      if (code == SPDXLicense.TMATE)
5708        return "TMate";
5709      if (code == SPDXLicense.TORQUE1_1)
5710        return "TORQUE-1.1";
5711      if (code == SPDXLicense.TOSL)
5712        return "TOSL";
5713      if (code == SPDXLicense.UNICODEDFS2015)
5714        return "Unicode-DFS-2015";
5715      if (code == SPDXLicense.UNICODEDFS2016)
5716        return "Unicode-DFS-2016";
5717      if (code == SPDXLicense.UNICODETOU)
5718        return "Unicode-TOU";
5719      if (code == SPDXLicense.UNLICENSE)
5720        return "Unlicense";
5721      if (code == SPDXLicense.UPL1_0)
5722        return "UPL-1.0";
5723      if (code == SPDXLicense.VIM)
5724        return "Vim";
5725      if (code == SPDXLicense.VOSTROM)
5726        return "VOSTROM";
5727      if (code == SPDXLicense.VSL1_0)
5728        return "VSL-1.0";
5729      if (code == SPDXLicense.W3C19980720)
5730        return "W3C-19980720";
5731      if (code == SPDXLicense.W3C20150513)
5732        return "W3C-20150513";
5733      if (code == SPDXLicense.W3C)
5734        return "W3C";
5735      if (code == SPDXLicense.WATCOM1_0)
5736        return "Watcom-1.0";
5737      if (code == SPDXLicense.WSUIPA)
5738        return "Wsuipa";
5739      if (code == SPDXLicense.WTFPL)
5740        return "WTFPL";
5741      if (code == SPDXLicense.X11)
5742        return "X11";
5743      if (code == SPDXLicense.XEROX)
5744        return "Xerox";
5745      if (code == SPDXLicense.XFREE861_1)
5746        return "XFree86-1.1";
5747      if (code == SPDXLicense.XINETD)
5748        return "xinetd";
5749      if (code == SPDXLicense.XNET)
5750        return "Xnet";
5751      if (code == SPDXLicense.XPP)
5752        return "xpp";
5753      if (code == SPDXLicense.XSKAT)
5754        return "XSkat";
5755      if (code == SPDXLicense.YPL1_0)
5756        return "YPL-1.0";
5757      if (code == SPDXLicense.YPL1_1)
5758        return "YPL-1.1";
5759      if (code == SPDXLicense.ZED)
5760        return "Zed";
5761      if (code == SPDXLicense.ZEND2_0)
5762        return "Zend-2.0";
5763      if (code == SPDXLicense.ZIMBRA1_3)
5764        return "Zimbra-1.3";
5765      if (code == SPDXLicense.ZIMBRA1_4)
5766        return "Zimbra-1.4";
5767      if (code == SPDXLicense.ZLIBACKNOWLEDGEMENT)
5768        return "zlib-acknowledgement";
5769      if (code == SPDXLicense.ZLIB)
5770        return "Zlib";
5771      if (code == SPDXLicense.ZPL1_1)
5772        return "ZPL-1.1";
5773      if (code == SPDXLicense.ZPL2_0)
5774        return "ZPL-2.0";
5775      if (code == SPDXLicense.ZPL2_1)
5776        return "ZPL-2.1";
5777      return "?";
5778      }
5779    public String toSystem(SPDXLicense code) {
5780      return code.getSystem();
5781      }
5782    }
5783
5784    @Block()
5785    public static class ImplementationGuideDependsOnComponent extends BackboneElement implements IBaseBackboneElement {
5786        /**
5787         * A canonical reference to the Implementation guide for the dependency.
5788         */
5789        @Child(name = "uri", type = {CanonicalType.class}, order=1, min=1, max=1, modifier=false, summary=true)
5790        @Description(shortDefinition="Identity of the IG that this depends on", formalDefinition="A canonical reference to the Implementation guide for the dependency." )
5791        protected CanonicalType uri;
5792
5793        /**
5794         * The NPM package name for the Implementation Guide that this IG depends on.
5795         */
5796        @Child(name = "packageId", type = {IdType.class}, order=2, min=0, max=1, modifier=false, summary=true)
5797        @Description(shortDefinition="NPM Package name for IG this depends on", formalDefinition="The NPM package name for the Implementation Guide that this IG depends on." )
5798        protected IdType packageId;
5799
5800        /**
5801         * The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
5802         */
5803        @Child(name = "version", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
5804        @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." )
5805        protected StringType version;
5806
5807        /**
5808         * A description explaining the nature of the dependency on the listed IG.
5809         */
5810        @Child(name = "reason", type = {MarkdownType.class}, order=4, min=0, max=1, modifier=false, summary=false)
5811        @Description(shortDefinition="Why dependency exists", formalDefinition="A description explaining the nature of the dependency on the listed IG." )
5812        protected MarkdownType reason;
5813
5814        private static final long serialVersionUID = 487374450L;
5815
5816    /**
5817     * Constructor
5818     */
5819      public ImplementationGuideDependsOnComponent() {
5820        super();
5821      }
5822
5823    /**
5824     * Constructor
5825     */
5826      public ImplementationGuideDependsOnComponent(String uri) {
5827        super();
5828        this.setUri(uri);
5829      }
5830
5831        /**
5832         * @return {@link #uri} (A canonical reference to the Implementation guide for the dependency.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value
5833         */
5834        public CanonicalType getUriElement() { 
5835          if (this.uri == null)
5836            if (Configuration.errorOnAutoCreate())
5837              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.uri");
5838            else if (Configuration.doAutoCreate())
5839              this.uri = new CanonicalType(); // bb
5840          return this.uri;
5841        }
5842
5843        public boolean hasUriElement() { 
5844          return this.uri != null && !this.uri.isEmpty();
5845        }
5846
5847        public boolean hasUri() { 
5848          return this.uri != null && !this.uri.isEmpty();
5849        }
5850
5851        /**
5852         * @param value {@link #uri} (A canonical reference to the Implementation guide for the dependency.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value
5853         */
5854        public ImplementationGuideDependsOnComponent setUriElement(CanonicalType value) { 
5855          this.uri = value;
5856          return this;
5857        }
5858
5859        /**
5860         * @return A canonical reference to the Implementation guide for the dependency.
5861         */
5862        public String getUri() { 
5863          return this.uri == null ? null : this.uri.getValue();
5864        }
5865
5866        /**
5867         * @param value A canonical reference to the Implementation guide for the dependency.
5868         */
5869        public ImplementationGuideDependsOnComponent setUri(String value) { 
5870            if (this.uri == null)
5871              this.uri = new CanonicalType();
5872            this.uri.setValue(value);
5873          return this;
5874        }
5875
5876        /**
5877         * @return {@link #packageId} (The NPM package name for the Implementation Guide that this IG depends on.). This is the underlying object with id, value and extensions. The accessor "getPackageId" gives direct access to the value
5878         */
5879        public IdType getPackageIdElement() { 
5880          if (this.packageId == null)
5881            if (Configuration.errorOnAutoCreate())
5882              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.packageId");
5883            else if (Configuration.doAutoCreate())
5884              this.packageId = new IdType(); // bb
5885          return this.packageId;
5886        }
5887
5888        public boolean hasPackageIdElement() { 
5889          return this.packageId != null && !this.packageId.isEmpty();
5890        }
5891
5892        public boolean hasPackageId() { 
5893          return this.packageId != null && !this.packageId.isEmpty();
5894        }
5895
5896        /**
5897         * @param value {@link #packageId} (The NPM package name for the Implementation Guide that this IG depends on.). This is the underlying object with id, value and extensions. The accessor "getPackageId" gives direct access to the value
5898         */
5899        public ImplementationGuideDependsOnComponent setPackageIdElement(IdType value) { 
5900          this.packageId = value;
5901          return this;
5902        }
5903
5904        /**
5905         * @return The NPM package name for the Implementation Guide that this IG depends on.
5906         */
5907        public String getPackageId() { 
5908          return this.packageId == null ? null : this.packageId.getValue();
5909        }
5910
5911        /**
5912         * @param value The NPM package name for the Implementation Guide that this IG depends on.
5913         */
5914        public ImplementationGuideDependsOnComponent setPackageId(String value) { 
5915          if (Utilities.noString(value))
5916            this.packageId = null;
5917          else {
5918            if (this.packageId == null)
5919              this.packageId = new IdType();
5920            this.packageId.setValue(value);
5921          }
5922          return this;
5923        }
5924
5925        /**
5926         * @return {@link #version} (The version of the IG that is depended on, when the correct version is required to understand the IG correctly.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
5927         */
5928        public StringType getVersionElement() { 
5929          if (this.version == null)
5930            if (Configuration.errorOnAutoCreate())
5931              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.version");
5932            else if (Configuration.doAutoCreate())
5933              this.version = new StringType(); // bb
5934          return this.version;
5935        }
5936
5937        public boolean hasVersionElement() { 
5938          return this.version != null && !this.version.isEmpty();
5939        }
5940
5941        public boolean hasVersion() { 
5942          return this.version != null && !this.version.isEmpty();
5943        }
5944
5945        /**
5946         * @param value {@link #version} (The version of the IG that is depended on, when the correct version is required to understand the IG correctly.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
5947         */
5948        public ImplementationGuideDependsOnComponent setVersionElement(StringType value) { 
5949          this.version = value;
5950          return this;
5951        }
5952
5953        /**
5954         * @return The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
5955         */
5956        public String getVersion() { 
5957          return this.version == null ? null : this.version.getValue();
5958        }
5959
5960        /**
5961         * @param value The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
5962         */
5963        public ImplementationGuideDependsOnComponent setVersion(String value) { 
5964          if (Utilities.noString(value))
5965            this.version = null;
5966          else {
5967            if (this.version == null)
5968              this.version = new StringType();
5969            this.version.setValue(value);
5970          }
5971          return this;
5972        }
5973
5974        /**
5975         * @return {@link #reason} (A description explaining the nature of the dependency on the listed IG.). This is the underlying object with id, value and extensions. The accessor "getReason" gives direct access to the value
5976         */
5977        public MarkdownType getReasonElement() { 
5978          if (this.reason == null)
5979            if (Configuration.errorOnAutoCreate())
5980              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.reason");
5981            else if (Configuration.doAutoCreate())
5982              this.reason = new MarkdownType(); // bb
5983          return this.reason;
5984        }
5985
5986        public boolean hasReasonElement() { 
5987          return this.reason != null && !this.reason.isEmpty();
5988        }
5989
5990        public boolean hasReason() { 
5991          return this.reason != null && !this.reason.isEmpty();
5992        }
5993
5994        /**
5995         * @param value {@link #reason} (A description explaining the nature of the dependency on the listed IG.). This is the underlying object with id, value and extensions. The accessor "getReason" gives direct access to the value
5996         */
5997        public ImplementationGuideDependsOnComponent setReasonElement(MarkdownType value) { 
5998          this.reason = value;
5999          return this;
6000        }
6001
6002        /**
6003         * @return A description explaining the nature of the dependency on the listed IG.
6004         */
6005        public String getReason() { 
6006          return this.reason == null ? null : this.reason.getValue();
6007        }
6008
6009        /**
6010         * @param value A description explaining the nature of the dependency on the listed IG.
6011         */
6012        public ImplementationGuideDependsOnComponent setReason(String value) { 
6013          if (value == null)
6014            this.reason = null;
6015          else {
6016            if (this.reason == null)
6017              this.reason = new MarkdownType();
6018            this.reason.setValue(value);
6019          }
6020          return this;
6021        }
6022
6023        protected void listChildren(List<Property> children) {
6024          super.listChildren(children);
6025          children.add(new Property("uri", "canonical(ImplementationGuide)", "A canonical reference to the Implementation guide for the dependency.", 0, 1, uri));
6026          children.add(new Property("packageId", "id", "The NPM package name for the Implementation Guide that this IG depends on.", 0, 1, packageId));
6027          children.add(new Property("version", "string", "The version of the IG that is depended on, when the correct version is required to understand the IG correctly.", 0, 1, version));
6028          children.add(new Property("reason", "markdown", "A description explaining the nature of the dependency on the listed IG.", 0, 1, reason));
6029        }
6030
6031        @Override
6032        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6033          switch (_hash) {
6034          case 116076: /*uri*/  return new Property("uri", "canonical(ImplementationGuide)", "A canonical reference to the Implementation guide for the dependency.", 0, 1, uri);
6035          case 1802060801: /*packageId*/  return new Property("packageId", "id", "The NPM package name for the Implementation Guide that this IG depends on.", 0, 1, packageId);
6036          case 351608024: /*version*/  return new Property("version", "string", "The version of the IG that is depended on, when the correct version is required to understand the IG correctly.", 0, 1, version);
6037          case -934964668: /*reason*/  return new Property("reason", "markdown", "A description explaining the nature of the dependency on the listed IG.", 0, 1, reason);
6038          default: return super.getNamedProperty(_hash, _name, _checkValid);
6039          }
6040
6041        }
6042
6043      @Override
6044      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6045        switch (hash) {
6046        case 116076: /*uri*/ return this.uri == null ? new Base[0] : new Base[] {this.uri}; // CanonicalType
6047        case 1802060801: /*packageId*/ return this.packageId == null ? new Base[0] : new Base[] {this.packageId}; // IdType
6048        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
6049        case -934964668: /*reason*/ return this.reason == null ? new Base[0] : new Base[] {this.reason}; // MarkdownType
6050        default: return super.getProperty(hash, name, checkValid);
6051        }
6052
6053      }
6054
6055      @Override
6056      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6057        switch (hash) {
6058        case 116076: // uri
6059          this.uri = TypeConvertor.castToCanonical(value); // CanonicalType
6060          return value;
6061        case 1802060801: // packageId
6062          this.packageId = TypeConvertor.castToId(value); // IdType
6063          return value;
6064        case 351608024: // version
6065          this.version = TypeConvertor.castToString(value); // StringType
6066          return value;
6067        case -934964668: // reason
6068          this.reason = TypeConvertor.castToMarkdown(value); // MarkdownType
6069          return value;
6070        default: return super.setProperty(hash, name, value);
6071        }
6072
6073      }
6074
6075      @Override
6076      public Base setProperty(String name, Base value) throws FHIRException {
6077        if (name.equals("uri")) {
6078          this.uri = TypeConvertor.castToCanonical(value); // CanonicalType
6079        } else if (name.equals("packageId")) {
6080          this.packageId = TypeConvertor.castToId(value); // IdType
6081        } else if (name.equals("version")) {
6082          this.version = TypeConvertor.castToString(value); // StringType
6083        } else if (name.equals("reason")) {
6084          this.reason = TypeConvertor.castToMarkdown(value); // MarkdownType
6085        } else
6086          return super.setProperty(name, value);
6087        return value;
6088      }
6089
6090      @Override
6091      public Base makeProperty(int hash, String name) throws FHIRException {
6092        switch (hash) {
6093        case 116076:  return getUriElement();
6094        case 1802060801:  return getPackageIdElement();
6095        case 351608024:  return getVersionElement();
6096        case -934964668:  return getReasonElement();
6097        default: return super.makeProperty(hash, name);
6098        }
6099
6100      }
6101
6102      @Override
6103      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6104        switch (hash) {
6105        case 116076: /*uri*/ return new String[] {"canonical"};
6106        case 1802060801: /*packageId*/ return new String[] {"id"};
6107        case 351608024: /*version*/ return new String[] {"string"};
6108        case -934964668: /*reason*/ return new String[] {"markdown"};
6109        default: return super.getTypesForProperty(hash, name);
6110        }
6111
6112      }
6113
6114      @Override
6115      public Base addChild(String name) throws FHIRException {
6116        if (name.equals("uri")) {
6117          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.dependsOn.uri");
6118        }
6119        else if (name.equals("packageId")) {
6120          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.dependsOn.packageId");
6121        }
6122        else if (name.equals("version")) {
6123          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.dependsOn.version");
6124        }
6125        else if (name.equals("reason")) {
6126          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.dependsOn.reason");
6127        }
6128        else
6129          return super.addChild(name);
6130      }
6131
6132      public ImplementationGuideDependsOnComponent copy() {
6133        ImplementationGuideDependsOnComponent dst = new ImplementationGuideDependsOnComponent();
6134        copyValues(dst);
6135        return dst;
6136      }
6137
6138      public void copyValues(ImplementationGuideDependsOnComponent dst) {
6139        super.copyValues(dst);
6140        dst.uri = uri == null ? null : uri.copy();
6141        dst.packageId = packageId == null ? null : packageId.copy();
6142        dst.version = version == null ? null : version.copy();
6143        dst.reason = reason == null ? null : reason.copy();
6144      }
6145
6146      @Override
6147      public boolean equalsDeep(Base other_) {
6148        if (!super.equalsDeep(other_))
6149          return false;
6150        if (!(other_ instanceof ImplementationGuideDependsOnComponent))
6151          return false;
6152        ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
6153        return compareDeep(uri, o.uri, true) && compareDeep(packageId, o.packageId, true) && compareDeep(version, o.version, true)
6154           && compareDeep(reason, o.reason, true);
6155      }
6156
6157      @Override
6158      public boolean equalsShallow(Base other_) {
6159        if (!super.equalsShallow(other_))
6160          return false;
6161        if (!(other_ instanceof ImplementationGuideDependsOnComponent))
6162          return false;
6163        ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
6164        return compareValues(uri, o.uri, true) && compareValues(packageId, o.packageId, true) && compareValues(version, o.version, true)
6165           && compareValues(reason, o.reason, true);
6166      }
6167
6168      public boolean isEmpty() {
6169        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(uri, packageId, version
6170          , reason);
6171      }
6172
6173  public String fhirType() {
6174    return "ImplementationGuide.dependsOn";
6175
6176  }
6177
6178  }
6179
6180    @Block()
6181    public static class ImplementationGuideGlobalComponent extends BackboneElement implements IBaseBackboneElement {
6182        /**
6183         * The type of resource that all instances must conform to.
6184         */
6185        @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
6186        @Description(shortDefinition="Type this profile applies to", formalDefinition="The type of resource that all instances must conform to." )
6187        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types")
6188        protected CodeType type;
6189
6190        /**
6191         * A reference to the profile that all instances must conform to.
6192         */
6193        @Child(name = "profile", type = {CanonicalType.class}, order=2, min=1, max=1, modifier=false, summary=true)
6194        @Description(shortDefinition="Profile that all resources must conform to", formalDefinition="A reference to the profile that all instances must conform to." )
6195        protected CanonicalType profile;
6196
6197        private static final long serialVersionUID = 33894666L;
6198
6199    /**
6200     * Constructor
6201     */
6202      public ImplementationGuideGlobalComponent() {
6203        super();
6204      }
6205
6206    /**
6207     * Constructor
6208     */
6209      public ImplementationGuideGlobalComponent(String type, String profile) {
6210        super();
6211        this.setType(type);
6212        this.setProfile(profile);
6213      }
6214
6215        /**
6216         * @return {@link #type} (The type of resource that all instances must conform to.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
6217         */
6218        public CodeType getTypeElement() { 
6219          if (this.type == null)
6220            if (Configuration.errorOnAutoCreate())
6221              throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.type");
6222            else if (Configuration.doAutoCreate())
6223              this.type = new CodeType(); // bb
6224          return this.type;
6225        }
6226
6227        public boolean hasTypeElement() { 
6228          return this.type != null && !this.type.isEmpty();
6229        }
6230
6231        public boolean hasType() { 
6232          return this.type != null && !this.type.isEmpty();
6233        }
6234
6235        /**
6236         * @param value {@link #type} (The type of resource that all instances must conform to.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
6237         */
6238        public ImplementationGuideGlobalComponent setTypeElement(CodeType value) { 
6239          this.type = value;
6240          return this;
6241        }
6242
6243        /**
6244         * @return The type of resource that all instances must conform to.
6245         */
6246        public String getType() { 
6247          return this.type == null ? null : this.type.getValue();
6248        }
6249
6250        /**
6251         * @param value The type of resource that all instances must conform to.
6252         */
6253        public ImplementationGuideGlobalComponent setType(String value) { 
6254            if (this.type == null)
6255              this.type = new CodeType();
6256            this.type.setValue(value);
6257          return this;
6258        }
6259
6260        /**
6261         * @return {@link #profile} (A reference to the profile that all instances must conform to.). This is the underlying object with id, value and extensions. The accessor "getProfile" gives direct access to the value
6262         */
6263        public CanonicalType getProfileElement() { 
6264          if (this.profile == null)
6265            if (Configuration.errorOnAutoCreate())
6266              throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.profile");
6267            else if (Configuration.doAutoCreate())
6268              this.profile = new CanonicalType(); // bb
6269          return this.profile;
6270        }
6271
6272        public boolean hasProfileElement() { 
6273          return this.profile != null && !this.profile.isEmpty();
6274        }
6275
6276        public boolean hasProfile() { 
6277          return this.profile != null && !this.profile.isEmpty();
6278        }
6279
6280        /**
6281         * @param value {@link #profile} (A reference to the profile that all instances must conform to.). This is the underlying object with id, value and extensions. The accessor "getProfile" gives direct access to the value
6282         */
6283        public ImplementationGuideGlobalComponent setProfileElement(CanonicalType value) { 
6284          this.profile = value;
6285          return this;
6286        }
6287
6288        /**
6289         * @return A reference to the profile that all instances must conform to.
6290         */
6291        public String getProfile() { 
6292          return this.profile == null ? null : this.profile.getValue();
6293        }
6294
6295        /**
6296         * @param value A reference to the profile that all instances must conform to.
6297         */
6298        public ImplementationGuideGlobalComponent setProfile(String value) { 
6299            if (this.profile == null)
6300              this.profile = new CanonicalType();
6301            this.profile.setValue(value);
6302          return this;
6303        }
6304
6305        protected void listChildren(List<Property> children) {
6306          super.listChildren(children);
6307          children.add(new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1, type));
6308          children.add(new Property("profile", "canonical(StructureDefinition)", "A reference to the profile that all instances must conform to.", 0, 1, profile));
6309        }
6310
6311        @Override
6312        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6313          switch (_hash) {
6314          case 3575610: /*type*/  return new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1, type);
6315          case -309425751: /*profile*/  return new Property("profile", "canonical(StructureDefinition)", "A reference to the profile that all instances must conform to.", 0, 1, profile);
6316          default: return super.getNamedProperty(_hash, _name, _checkValid);
6317          }
6318
6319        }
6320
6321      @Override
6322      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6323        switch (hash) {
6324        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeType
6325        case -309425751: /*profile*/ return this.profile == null ? new Base[0] : new Base[] {this.profile}; // CanonicalType
6326        default: return super.getProperty(hash, name, checkValid);
6327        }
6328
6329      }
6330
6331      @Override
6332      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6333        switch (hash) {
6334        case 3575610: // type
6335          this.type = TypeConvertor.castToCode(value); // CodeType
6336          return value;
6337        case -309425751: // profile
6338          this.profile = TypeConvertor.castToCanonical(value); // CanonicalType
6339          return value;
6340        default: return super.setProperty(hash, name, value);
6341        }
6342
6343      }
6344
6345      @Override
6346      public Base setProperty(String name, Base value) throws FHIRException {
6347        if (name.equals("type")) {
6348          this.type = TypeConvertor.castToCode(value); // CodeType
6349        } else if (name.equals("profile")) {
6350          this.profile = TypeConvertor.castToCanonical(value); // CanonicalType
6351        } else
6352          return super.setProperty(name, value);
6353        return value;
6354      }
6355
6356      @Override
6357      public Base makeProperty(int hash, String name) throws FHIRException {
6358        switch (hash) {
6359        case 3575610:  return getTypeElement();
6360        case -309425751:  return getProfileElement();
6361        default: return super.makeProperty(hash, name);
6362        }
6363
6364      }
6365
6366      @Override
6367      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6368        switch (hash) {
6369        case 3575610: /*type*/ return new String[] {"code"};
6370        case -309425751: /*profile*/ return new String[] {"canonical"};
6371        default: return super.getTypesForProperty(hash, name);
6372        }
6373
6374      }
6375
6376      @Override
6377      public Base addChild(String name) throws FHIRException {
6378        if (name.equals("type")) {
6379          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.global.type");
6380        }
6381        else if (name.equals("profile")) {
6382          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.global.profile");
6383        }
6384        else
6385          return super.addChild(name);
6386      }
6387
6388      public ImplementationGuideGlobalComponent copy() {
6389        ImplementationGuideGlobalComponent dst = new ImplementationGuideGlobalComponent();
6390        copyValues(dst);
6391        return dst;
6392      }
6393
6394      public void copyValues(ImplementationGuideGlobalComponent dst) {
6395        super.copyValues(dst);
6396        dst.type = type == null ? null : type.copy();
6397        dst.profile = profile == null ? null : profile.copy();
6398      }
6399
6400      @Override
6401      public boolean equalsDeep(Base other_) {
6402        if (!super.equalsDeep(other_))
6403          return false;
6404        if (!(other_ instanceof ImplementationGuideGlobalComponent))
6405          return false;
6406        ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
6407        return compareDeep(type, o.type, true) && compareDeep(profile, o.profile, true);
6408      }
6409
6410      @Override
6411      public boolean equalsShallow(Base other_) {
6412        if (!super.equalsShallow(other_))
6413          return false;
6414        if (!(other_ instanceof ImplementationGuideGlobalComponent))
6415          return false;
6416        ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
6417        return compareValues(type, o.type, true) && compareValues(profile, o.profile, true);
6418      }
6419
6420      public boolean isEmpty() {
6421        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, profile);
6422      }
6423
6424  public String fhirType() {
6425    return "ImplementationGuide.global";
6426
6427  }
6428
6429  }
6430
6431    @Block()
6432    public static class ImplementationGuideDefinitionComponent extends BackboneElement implements IBaseBackboneElement {
6433        /**
6434         * A logical group of resources. Logical groups can be used when building pages.
6435         */
6436        @Child(name = "grouping", type = {}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6437        @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." )
6438        protected List<ImplementationGuideDefinitionGroupingComponent> grouping;
6439
6440        /**
6441         * 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.
6442         */
6443        @Child(name = "resource", type = {}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6444        @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." )
6445        protected List<ImplementationGuideDefinitionResourceComponent> resource;
6446
6447        /**
6448         * A page / section in the implementation guide. The root page is the implementation guide home page.
6449         */
6450        @Child(name = "page", type = {}, order=3, min=0, max=1, modifier=false, summary=false)
6451        @Description(shortDefinition="Page/Section in the Guide", formalDefinition="A page / section in the implementation guide. The root page is the implementation guide home page." )
6452        protected ImplementationGuideDefinitionPageComponent page;
6453
6454        /**
6455         * A set of parameters that defines how the implementation guide is built. The parameters are defined by the relevant tools that build the implementation guides.
6456         */
6457        @Child(name = "parameter", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6458        @Description(shortDefinition="Defines how IG is built by tools", formalDefinition="A set of parameters that defines how the implementation guide is built. The parameters are defined by the relevant tools that build the implementation guides." )
6459        protected List<ImplementationGuideDefinitionParameterComponent> parameter;
6460
6461        /**
6462         * A template for building resources.
6463         */
6464        @Child(name = "template", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6465        @Description(shortDefinition="A template for building resources", formalDefinition="A template for building resources." )
6466        protected List<ImplementationGuideDefinitionTemplateComponent> template;
6467
6468        private static final long serialVersionUID = 179051968L;
6469
6470    /**
6471     * Constructor
6472     */
6473      public ImplementationGuideDefinitionComponent() {
6474        super();
6475      }
6476
6477        /**
6478         * @return {@link #grouping} (A logical group of resources. Logical groups can be used when building pages.)
6479         */
6480        public List<ImplementationGuideDefinitionGroupingComponent> getGrouping() { 
6481          if (this.grouping == null)
6482            this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
6483          return this.grouping;
6484        }
6485
6486        /**
6487         * @return Returns a reference to <code>this</code> for easy method chaining
6488         */
6489        public ImplementationGuideDefinitionComponent setGrouping(List<ImplementationGuideDefinitionGroupingComponent> theGrouping) { 
6490          this.grouping = theGrouping;
6491          return this;
6492        }
6493
6494        public boolean hasGrouping() { 
6495          if (this.grouping == null)
6496            return false;
6497          for (ImplementationGuideDefinitionGroupingComponent item : this.grouping)
6498            if (!item.isEmpty())
6499              return true;
6500          return false;
6501        }
6502
6503        public ImplementationGuideDefinitionGroupingComponent addGrouping() { //3
6504          ImplementationGuideDefinitionGroupingComponent t = new ImplementationGuideDefinitionGroupingComponent();
6505          if (this.grouping == null)
6506            this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
6507          this.grouping.add(t);
6508          return t;
6509        }
6510
6511        public ImplementationGuideDefinitionComponent addGrouping(ImplementationGuideDefinitionGroupingComponent t) { //3
6512          if (t == null)
6513            return this;
6514          if (this.grouping == null)
6515            this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
6516          this.grouping.add(t);
6517          return this;
6518        }
6519
6520        /**
6521         * @return The first repetition of repeating field {@link #grouping}, creating it if it does not already exist {3}
6522         */
6523        public ImplementationGuideDefinitionGroupingComponent getGroupingFirstRep() { 
6524          if (getGrouping().isEmpty()) {
6525            addGrouping();
6526          }
6527          return getGrouping().get(0);
6528        }
6529
6530        /**
6531         * @return {@link #resource} (A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.)
6532         */
6533        public List<ImplementationGuideDefinitionResourceComponent> getResource() { 
6534          if (this.resource == null)
6535            this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
6536          return this.resource;
6537        }
6538
6539        /**
6540         * @return Returns a reference to <code>this</code> for easy method chaining
6541         */
6542        public ImplementationGuideDefinitionComponent setResource(List<ImplementationGuideDefinitionResourceComponent> theResource) { 
6543          this.resource = theResource;
6544          return this;
6545        }
6546
6547        public boolean hasResource() { 
6548          if (this.resource == null)
6549            return false;
6550          for (ImplementationGuideDefinitionResourceComponent item : this.resource)
6551            if (!item.isEmpty())
6552              return true;
6553          return false;
6554        }
6555
6556        public ImplementationGuideDefinitionResourceComponent addResource() { //3
6557          ImplementationGuideDefinitionResourceComponent t = new ImplementationGuideDefinitionResourceComponent();
6558          if (this.resource == null)
6559            this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
6560          this.resource.add(t);
6561          return t;
6562        }
6563
6564        public ImplementationGuideDefinitionComponent addResource(ImplementationGuideDefinitionResourceComponent t) { //3
6565          if (t == null)
6566            return this;
6567          if (this.resource == null)
6568            this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
6569          this.resource.add(t);
6570          return this;
6571        }
6572
6573        /**
6574         * @return The first repetition of repeating field {@link #resource}, creating it if it does not already exist {3}
6575         */
6576        public ImplementationGuideDefinitionResourceComponent getResourceFirstRep() { 
6577          if (getResource().isEmpty()) {
6578            addResource();
6579          }
6580          return getResource().get(0);
6581        }
6582
6583        /**
6584         * @return {@link #page} (A page / section in the implementation guide. The root page is the implementation guide home page.)
6585         */
6586        public ImplementationGuideDefinitionPageComponent getPage() { 
6587          if (this.page == null)
6588            if (Configuration.errorOnAutoCreate())
6589              throw new Error("Attempt to auto-create ImplementationGuideDefinitionComponent.page");
6590            else if (Configuration.doAutoCreate())
6591              this.page = new ImplementationGuideDefinitionPageComponent(); // cc
6592          return this.page;
6593        }
6594
6595        public boolean hasPage() { 
6596          return this.page != null && !this.page.isEmpty();
6597        }
6598
6599        /**
6600         * @param value {@link #page} (A page / section in the implementation guide. The root page is the implementation guide home page.)
6601         */
6602        public ImplementationGuideDefinitionComponent setPage(ImplementationGuideDefinitionPageComponent value) { 
6603          this.page = value;
6604          return this;
6605        }
6606
6607        /**
6608         * @return {@link #parameter} (A set of parameters that defines how the implementation guide is built. The parameters are defined by the relevant tools that build the implementation guides.)
6609         */
6610        public List<ImplementationGuideDefinitionParameterComponent> getParameter() { 
6611          if (this.parameter == null)
6612            this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
6613          return this.parameter;
6614        }
6615
6616        /**
6617         * @return Returns a reference to <code>this</code> for easy method chaining
6618         */
6619        public ImplementationGuideDefinitionComponent setParameter(List<ImplementationGuideDefinitionParameterComponent> theParameter) { 
6620          this.parameter = theParameter;
6621          return this;
6622        }
6623
6624        public boolean hasParameter() { 
6625          if (this.parameter == null)
6626            return false;
6627          for (ImplementationGuideDefinitionParameterComponent item : this.parameter)
6628            if (!item.isEmpty())
6629              return true;
6630          return false;
6631        }
6632
6633        public ImplementationGuideDefinitionParameterComponent addParameter() { //3
6634          ImplementationGuideDefinitionParameterComponent t = new ImplementationGuideDefinitionParameterComponent();
6635          if (this.parameter == null)
6636            this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
6637          this.parameter.add(t);
6638          return t;
6639        }
6640
6641        public ImplementationGuideDefinitionComponent addParameter(ImplementationGuideDefinitionParameterComponent t) { //3
6642          if (t == null)
6643            return this;
6644          if (this.parameter == null)
6645            this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
6646          this.parameter.add(t);
6647          return this;
6648        }
6649
6650        /**
6651         * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist {3}
6652         */
6653        public ImplementationGuideDefinitionParameterComponent getParameterFirstRep() { 
6654          if (getParameter().isEmpty()) {
6655            addParameter();
6656          }
6657          return getParameter().get(0);
6658        }
6659
6660        /**
6661         * @return {@link #template} (A template for building resources.)
6662         */
6663        public List<ImplementationGuideDefinitionTemplateComponent> getTemplate() { 
6664          if (this.template == null)
6665            this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
6666          return this.template;
6667        }
6668
6669        /**
6670         * @return Returns a reference to <code>this</code> for easy method chaining
6671         */
6672        public ImplementationGuideDefinitionComponent setTemplate(List<ImplementationGuideDefinitionTemplateComponent> theTemplate) { 
6673          this.template = theTemplate;
6674          return this;
6675        }
6676
6677        public boolean hasTemplate() { 
6678          if (this.template == null)
6679            return false;
6680          for (ImplementationGuideDefinitionTemplateComponent item : this.template)
6681            if (!item.isEmpty())
6682              return true;
6683          return false;
6684        }
6685
6686        public ImplementationGuideDefinitionTemplateComponent addTemplate() { //3
6687          ImplementationGuideDefinitionTemplateComponent t = new ImplementationGuideDefinitionTemplateComponent();
6688          if (this.template == null)
6689            this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
6690          this.template.add(t);
6691          return t;
6692        }
6693
6694        public ImplementationGuideDefinitionComponent addTemplate(ImplementationGuideDefinitionTemplateComponent t) { //3
6695          if (t == null)
6696            return this;
6697          if (this.template == null)
6698            this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
6699          this.template.add(t);
6700          return this;
6701        }
6702
6703        /**
6704         * @return The first repetition of repeating field {@link #template}, creating it if it does not already exist {3}
6705         */
6706        public ImplementationGuideDefinitionTemplateComponent getTemplateFirstRep() { 
6707          if (getTemplate().isEmpty()) {
6708            addTemplate();
6709          }
6710          return getTemplate().get(0);
6711        }
6712
6713        protected void listChildren(List<Property> children) {
6714          super.listChildren(children);
6715          children.add(new Property("grouping", "", "A logical group of resources. Logical groups can be used when building pages.", 0, java.lang.Integer.MAX_VALUE, grouping));
6716          children.add(new Property("resource", "", "A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.", 0, java.lang.Integer.MAX_VALUE, resource));
6717          children.add(new Property("page", "", "A page / section in the implementation guide. The root page is the implementation guide home page.", 0, 1, page));
6718          children.add(new Property("parameter", "", "A set of parameters that defines how the implementation guide is built. The parameters are defined by the relevant tools that build the implementation guides.", 0, java.lang.Integer.MAX_VALUE, parameter));
6719          children.add(new Property("template", "", "A template for building resources.", 0, java.lang.Integer.MAX_VALUE, template));
6720        }
6721
6722        @Override
6723        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6724          switch (_hash) {
6725          case 506371331: /*grouping*/  return new Property("grouping", "", "A logical group of resources. Logical groups can be used when building pages.", 0, java.lang.Integer.MAX_VALUE, grouping);
6726          case -341064690: /*resource*/  return new Property("resource", "", "A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.", 0, java.lang.Integer.MAX_VALUE, resource);
6727          case 3433103: /*page*/  return new Property("page", "", "A page / section in the implementation guide. The root page is the implementation guide home page.", 0, 1, page);
6728          case 1954460585: /*parameter*/  return new Property("parameter", "", "A set of parameters that defines how the implementation guide is built. The parameters are defined by the relevant tools that build the implementation guides.", 0, java.lang.Integer.MAX_VALUE, parameter);
6729          case -1321546630: /*template*/  return new Property("template", "", "A template for building resources.", 0, java.lang.Integer.MAX_VALUE, template);
6730          default: return super.getNamedProperty(_hash, _name, _checkValid);
6731          }
6732
6733        }
6734
6735      @Override
6736      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6737        switch (hash) {
6738        case 506371331: /*grouping*/ return this.grouping == null ? new Base[0] : this.grouping.toArray(new Base[this.grouping.size()]); // ImplementationGuideDefinitionGroupingComponent
6739        case -341064690: /*resource*/ return this.resource == null ? new Base[0] : this.resource.toArray(new Base[this.resource.size()]); // ImplementationGuideDefinitionResourceComponent
6740        case 3433103: /*page*/ return this.page == null ? new Base[0] : new Base[] {this.page}; // ImplementationGuideDefinitionPageComponent
6741        case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // ImplementationGuideDefinitionParameterComponent
6742        case -1321546630: /*template*/ return this.template == null ? new Base[0] : this.template.toArray(new Base[this.template.size()]); // ImplementationGuideDefinitionTemplateComponent
6743        default: return super.getProperty(hash, name, checkValid);
6744        }
6745
6746      }
6747
6748      @Override
6749      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6750        switch (hash) {
6751        case 506371331: // grouping
6752          this.getGrouping().add((ImplementationGuideDefinitionGroupingComponent) value); // ImplementationGuideDefinitionGroupingComponent
6753          return value;
6754        case -341064690: // resource
6755          this.getResource().add((ImplementationGuideDefinitionResourceComponent) value); // ImplementationGuideDefinitionResourceComponent
6756          return value;
6757        case 3433103: // page
6758          this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
6759          return value;
6760        case 1954460585: // parameter
6761          this.getParameter().add((ImplementationGuideDefinitionParameterComponent) value); // ImplementationGuideDefinitionParameterComponent
6762          return value;
6763        case -1321546630: // template
6764          this.getTemplate().add((ImplementationGuideDefinitionTemplateComponent) value); // ImplementationGuideDefinitionTemplateComponent
6765          return value;
6766        default: return super.setProperty(hash, name, value);
6767        }
6768
6769      }
6770
6771      @Override
6772      public Base setProperty(String name, Base value) throws FHIRException {
6773        if (name.equals("grouping")) {
6774          this.getGrouping().add((ImplementationGuideDefinitionGroupingComponent) value);
6775        } else if (name.equals("resource")) {
6776          this.getResource().add((ImplementationGuideDefinitionResourceComponent) value);
6777        } else if (name.equals("page")) {
6778          this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
6779        } else if (name.equals("parameter")) {
6780          this.getParameter().add((ImplementationGuideDefinitionParameterComponent) value);
6781        } else if (name.equals("template")) {
6782          this.getTemplate().add((ImplementationGuideDefinitionTemplateComponent) value);
6783        } else
6784          return super.setProperty(name, value);
6785        return value;
6786      }
6787
6788      @Override
6789      public Base makeProperty(int hash, String name) throws FHIRException {
6790        switch (hash) {
6791        case 506371331:  return addGrouping(); 
6792        case -341064690:  return addResource(); 
6793        case 3433103:  return getPage();
6794        case 1954460585:  return addParameter(); 
6795        case -1321546630:  return addTemplate(); 
6796        default: return super.makeProperty(hash, name);
6797        }
6798
6799      }
6800
6801      @Override
6802      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6803        switch (hash) {
6804        case 506371331: /*grouping*/ return new String[] {};
6805        case -341064690: /*resource*/ return new String[] {};
6806        case 3433103: /*page*/ return new String[] {};
6807        case 1954460585: /*parameter*/ return new String[] {};
6808        case -1321546630: /*template*/ return new String[] {};
6809        default: return super.getTypesForProperty(hash, name);
6810        }
6811
6812      }
6813
6814      @Override
6815      public Base addChild(String name) throws FHIRException {
6816        if (name.equals("grouping")) {
6817          return addGrouping();
6818        }
6819        else if (name.equals("resource")) {
6820          return addResource();
6821        }
6822        else if (name.equals("page")) {
6823          this.page = new ImplementationGuideDefinitionPageComponent();
6824          return this.page;
6825        }
6826        else if (name.equals("parameter")) {
6827          return addParameter();
6828        }
6829        else if (name.equals("template")) {
6830          return addTemplate();
6831        }
6832        else
6833          return super.addChild(name);
6834      }
6835
6836      public ImplementationGuideDefinitionComponent copy() {
6837        ImplementationGuideDefinitionComponent dst = new ImplementationGuideDefinitionComponent();
6838        copyValues(dst);
6839        return dst;
6840      }
6841
6842      public void copyValues(ImplementationGuideDefinitionComponent dst) {
6843        super.copyValues(dst);
6844        if (grouping != null) {
6845          dst.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
6846          for (ImplementationGuideDefinitionGroupingComponent i : grouping)
6847            dst.grouping.add(i.copy());
6848        };
6849        if (resource != null) {
6850          dst.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
6851          for (ImplementationGuideDefinitionResourceComponent i : resource)
6852            dst.resource.add(i.copy());
6853        };
6854        dst.page = page == null ? null : page.copy();
6855        if (parameter != null) {
6856          dst.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
6857          for (ImplementationGuideDefinitionParameterComponent i : parameter)
6858            dst.parameter.add(i.copy());
6859        };
6860        if (template != null) {
6861          dst.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
6862          for (ImplementationGuideDefinitionTemplateComponent i : template)
6863            dst.template.add(i.copy());
6864        };
6865      }
6866
6867      @Override
6868      public boolean equalsDeep(Base other_) {
6869        if (!super.equalsDeep(other_))
6870          return false;
6871        if (!(other_ instanceof ImplementationGuideDefinitionComponent))
6872          return false;
6873        ImplementationGuideDefinitionComponent o = (ImplementationGuideDefinitionComponent) other_;
6874        return compareDeep(grouping, o.grouping, true) && compareDeep(resource, o.resource, true) && compareDeep(page, o.page, true)
6875           && compareDeep(parameter, o.parameter, true) && compareDeep(template, o.template, true);
6876      }
6877
6878      @Override
6879      public boolean equalsShallow(Base other_) {
6880        if (!super.equalsShallow(other_))
6881          return false;
6882        if (!(other_ instanceof ImplementationGuideDefinitionComponent))
6883          return false;
6884        ImplementationGuideDefinitionComponent o = (ImplementationGuideDefinitionComponent) other_;
6885        return true;
6886      }
6887
6888      public boolean isEmpty() {
6889        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(grouping, resource, page
6890          , parameter, template);
6891      }
6892
6893  public String fhirType() {
6894    return "ImplementationGuide.definition";
6895
6896  }
6897
6898  }
6899
6900    @Block()
6901    public static class ImplementationGuideDefinitionGroupingComponent extends BackboneElement implements IBaseBackboneElement {
6902        /**
6903         * The human-readable title to display for the package of resources when rendering the implementation guide.
6904         */
6905        @Child(name = "name", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
6906        @Description(shortDefinition="Descriptive name for the package", formalDefinition="The human-readable title to display for the package of resources when rendering the implementation guide." )
6907        protected StringType name;
6908
6909        /**
6910         * Human readable text describing the package.
6911         */
6912        @Child(name = "description", type = {MarkdownType.class}, order=2, min=0, max=1, modifier=false, summary=false)
6913        @Description(shortDefinition="Human readable text describing the package", formalDefinition="Human readable text describing the package." )
6914        protected MarkdownType description;
6915
6916        private static final long serialVersionUID = 2116554295L;
6917
6918    /**
6919     * Constructor
6920     */
6921      public ImplementationGuideDefinitionGroupingComponent() {
6922        super();
6923      }
6924
6925    /**
6926     * Constructor
6927     */
6928      public ImplementationGuideDefinitionGroupingComponent(String name) {
6929        super();
6930        this.setName(name);
6931      }
6932
6933        /**
6934         * @return {@link #name} (The human-readable title to display for the package of resources when rendering the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
6935         */
6936        public StringType getNameElement() { 
6937          if (this.name == null)
6938            if (Configuration.errorOnAutoCreate())
6939              throw new Error("Attempt to auto-create ImplementationGuideDefinitionGroupingComponent.name");
6940            else if (Configuration.doAutoCreate())
6941              this.name = new StringType(); // bb
6942          return this.name;
6943        }
6944
6945        public boolean hasNameElement() { 
6946          return this.name != null && !this.name.isEmpty();
6947        }
6948
6949        public boolean hasName() { 
6950          return this.name != null && !this.name.isEmpty();
6951        }
6952
6953        /**
6954         * @param value {@link #name} (The human-readable title to display for the package of resources when rendering the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
6955         */
6956        public ImplementationGuideDefinitionGroupingComponent setNameElement(StringType value) { 
6957          this.name = value;
6958          return this;
6959        }
6960
6961        /**
6962         * @return The human-readable title to display for the package of resources when rendering the implementation guide.
6963         */
6964        public String getName() { 
6965          return this.name == null ? null : this.name.getValue();
6966        }
6967
6968        /**
6969         * @param value The human-readable title to display for the package of resources when rendering the implementation guide.
6970         */
6971        public ImplementationGuideDefinitionGroupingComponent setName(String value) { 
6972            if (this.name == null)
6973              this.name = new StringType();
6974            this.name.setValue(value);
6975          return this;
6976        }
6977
6978        /**
6979         * @return {@link #description} (Human readable text describing the package.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
6980         */
6981        public MarkdownType getDescriptionElement() { 
6982          if (this.description == null)
6983            if (Configuration.errorOnAutoCreate())
6984              throw new Error("Attempt to auto-create ImplementationGuideDefinitionGroupingComponent.description");
6985            else if (Configuration.doAutoCreate())
6986              this.description = new MarkdownType(); // bb
6987          return this.description;
6988        }
6989
6990        public boolean hasDescriptionElement() { 
6991          return this.description != null && !this.description.isEmpty();
6992        }
6993
6994        public boolean hasDescription() { 
6995          return this.description != null && !this.description.isEmpty();
6996        }
6997
6998        /**
6999         * @param value {@link #description} (Human readable text describing the package.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
7000         */
7001        public ImplementationGuideDefinitionGroupingComponent setDescriptionElement(MarkdownType value) { 
7002          this.description = value;
7003          return this;
7004        }
7005
7006        /**
7007         * @return Human readable text describing the package.
7008         */
7009        public String getDescription() { 
7010          return this.description == null ? null : this.description.getValue();
7011        }
7012
7013        /**
7014         * @param value Human readable text describing the package.
7015         */
7016        public ImplementationGuideDefinitionGroupingComponent setDescription(String value) { 
7017          if (value == null)
7018            this.description = null;
7019          else {
7020            if (this.description == null)
7021              this.description = new MarkdownType();
7022            this.description.setValue(value);
7023          }
7024          return this;
7025        }
7026
7027        protected void listChildren(List<Property> children) {
7028          super.listChildren(children);
7029          children.add(new Property("name", "string", "The human-readable title to display for the package of resources when rendering the implementation guide.", 0, 1, name));
7030          children.add(new Property("description", "markdown", "Human readable text describing the package.", 0, 1, description));
7031        }
7032
7033        @Override
7034        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
7035          switch (_hash) {
7036          case 3373707: /*name*/  return new Property("name", "string", "The human-readable title to display for the package of resources when rendering the implementation guide.", 0, 1, name);
7037          case -1724546052: /*description*/  return new Property("description", "markdown", "Human readable text describing the package.", 0, 1, description);
7038          default: return super.getNamedProperty(_hash, _name, _checkValid);
7039          }
7040
7041        }
7042
7043      @Override
7044      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
7045        switch (hash) {
7046        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
7047        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
7048        default: return super.getProperty(hash, name, checkValid);
7049        }
7050
7051      }
7052
7053      @Override
7054      public Base setProperty(int hash, String name, Base value) throws FHIRException {
7055        switch (hash) {
7056        case 3373707: // name
7057          this.name = TypeConvertor.castToString(value); // StringType
7058          return value;
7059        case -1724546052: // description
7060          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
7061          return value;
7062        default: return super.setProperty(hash, name, value);
7063        }
7064
7065      }
7066
7067      @Override
7068      public Base setProperty(String name, Base value) throws FHIRException {
7069        if (name.equals("name")) {
7070          this.name = TypeConvertor.castToString(value); // StringType
7071        } else if (name.equals("description")) {
7072          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
7073        } else
7074          return super.setProperty(name, value);
7075        return value;
7076      }
7077
7078      @Override
7079      public Base makeProperty(int hash, String name) throws FHIRException {
7080        switch (hash) {
7081        case 3373707:  return getNameElement();
7082        case -1724546052:  return getDescriptionElement();
7083        default: return super.makeProperty(hash, name);
7084        }
7085
7086      }
7087
7088      @Override
7089      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
7090        switch (hash) {
7091        case 3373707: /*name*/ return new String[] {"string"};
7092        case -1724546052: /*description*/ return new String[] {"markdown"};
7093        default: return super.getTypesForProperty(hash, name);
7094        }
7095
7096      }
7097
7098      @Override
7099      public Base addChild(String name) throws FHIRException {
7100        if (name.equals("name")) {
7101          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.grouping.name");
7102        }
7103        else if (name.equals("description")) {
7104          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.grouping.description");
7105        }
7106        else
7107          return super.addChild(name);
7108      }
7109
7110      public ImplementationGuideDefinitionGroupingComponent copy() {
7111        ImplementationGuideDefinitionGroupingComponent dst = new ImplementationGuideDefinitionGroupingComponent();
7112        copyValues(dst);
7113        return dst;
7114      }
7115
7116      public void copyValues(ImplementationGuideDefinitionGroupingComponent dst) {
7117        super.copyValues(dst);
7118        dst.name = name == null ? null : name.copy();
7119        dst.description = description == null ? null : description.copy();
7120      }
7121
7122      @Override
7123      public boolean equalsDeep(Base other_) {
7124        if (!super.equalsDeep(other_))
7125          return false;
7126        if (!(other_ instanceof ImplementationGuideDefinitionGroupingComponent))
7127          return false;
7128        ImplementationGuideDefinitionGroupingComponent o = (ImplementationGuideDefinitionGroupingComponent) other_;
7129        return compareDeep(name, o.name, true) && compareDeep(description, o.description, true);
7130      }
7131
7132      @Override
7133      public boolean equalsShallow(Base other_) {
7134        if (!super.equalsShallow(other_))
7135          return false;
7136        if (!(other_ instanceof ImplementationGuideDefinitionGroupingComponent))
7137          return false;
7138        ImplementationGuideDefinitionGroupingComponent o = (ImplementationGuideDefinitionGroupingComponent) other_;
7139        return compareValues(name, o.name, true) && compareValues(description, o.description, true);
7140      }
7141
7142      public boolean isEmpty() {
7143        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, description);
7144      }
7145
7146  public String fhirType() {
7147    return "ImplementationGuide.definition.grouping";
7148
7149  }
7150
7151  }
7152
7153    @Block()
7154    public static class ImplementationGuideDefinitionResourceComponent extends BackboneElement implements IBaseBackboneElement {
7155        /**
7156         * Where this resource is found.
7157         */
7158        @Child(name = "reference", type = {Reference.class}, order=1, min=1, max=1, modifier=false, summary=false)
7159        @Description(shortDefinition="Location of the resource", formalDefinition="Where this resource is found." )
7160        protected Reference reference;
7161
7162        /**
7163         * 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.
7164         */
7165        @Child(name = "fhirVersion", type = {CodeType.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
7166        @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." )
7167        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/FHIR-version")
7168        protected List<Enumeration<FHIRVersion>> fhirVersion;
7169
7170        /**
7171         * 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).
7172         */
7173        @Child(name = "name", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
7174        @Description(shortDefinition="Human readable 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)." )
7175        protected StringType name;
7176
7177        /**
7178         * A description of the reason that a resource has been included in the implementation guide.
7179         */
7180        @Child(name = "description", type = {MarkdownType.class}, order=4, min=0, max=1, modifier=false, summary=false)
7181        @Description(shortDefinition="Reason why included in guide", formalDefinition="A description of the reason that a resource has been included in the implementation guide." )
7182        protected MarkdownType description;
7183
7184        /**
7185         * If true, indicates the resource is an example instance.
7186         */
7187        @Child(name = "isExample", type = {BooleanType.class}, order=5, min=0, max=1, modifier=false, summary=false)
7188        @Description(shortDefinition="Is this an example", formalDefinition="If true, indicates the resource is an example instance." )
7189        protected BooleanType isExample;
7190
7191        /**
7192         * If present, indicates profile(s) the instance is valid against.
7193         */
7194        @Child(name = "profile", type = {CanonicalType.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
7195        @Description(shortDefinition="Profile(s) this is an example of", formalDefinition="If present, indicates profile(s) the instance is valid against." )
7196        protected List<CanonicalType> profile;
7197
7198        /**
7199         * Reference to the id of the grouping this resource appears in.
7200         */
7201        @Child(name = "groupingId", type = {IdType.class}, order=7, min=0, max=1, modifier=false, summary=false)
7202        @Description(shortDefinition="Grouping this is part of", formalDefinition="Reference to the id of the grouping this resource appears in." )
7203        protected IdType groupingId;
7204
7205        private static final long serialVersionUID = 804050536L;
7206
7207    /**
7208     * Constructor
7209     */
7210      public ImplementationGuideDefinitionResourceComponent() {
7211        super();
7212      }
7213
7214    /**
7215     * Constructor
7216     */
7217      public ImplementationGuideDefinitionResourceComponent(Reference reference) {
7218        super();
7219        this.setReference(reference);
7220      }
7221
7222        /**
7223         * @return {@link #reference} (Where this resource is found.)
7224         */
7225        public Reference getReference() { 
7226          if (this.reference == null)
7227            if (Configuration.errorOnAutoCreate())
7228              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.reference");
7229            else if (Configuration.doAutoCreate())
7230              this.reference = new Reference(); // cc
7231          return this.reference;
7232        }
7233
7234        public boolean hasReference() { 
7235          return this.reference != null && !this.reference.isEmpty();
7236        }
7237
7238        /**
7239         * @param value {@link #reference} (Where this resource is found.)
7240         */
7241        public ImplementationGuideDefinitionResourceComponent setReference(Reference value) { 
7242          this.reference = value;
7243          return this;
7244        }
7245
7246        /**
7247         * @return {@link #fhirVersion} (Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.)
7248         */
7249        public List<Enumeration<FHIRVersion>> getFhirVersion() { 
7250          if (this.fhirVersion == null)
7251            this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
7252          return this.fhirVersion;
7253        }
7254
7255        /**
7256         * @return Returns a reference to <code>this</code> for easy method chaining
7257         */
7258        public ImplementationGuideDefinitionResourceComponent setFhirVersion(List<Enumeration<FHIRVersion>> theFhirVersion) { 
7259          this.fhirVersion = theFhirVersion;
7260          return this;
7261        }
7262
7263        public boolean hasFhirVersion() { 
7264          if (this.fhirVersion == null)
7265            return false;
7266          for (Enumeration<FHIRVersion> item : this.fhirVersion)
7267            if (!item.isEmpty())
7268              return true;
7269          return false;
7270        }
7271
7272        /**
7273         * @return {@link #fhirVersion} (Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.)
7274         */
7275        public Enumeration<FHIRVersion> addFhirVersionElement() {//2 
7276          Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
7277          if (this.fhirVersion == null)
7278            this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
7279          this.fhirVersion.add(t);
7280          return t;
7281        }
7282
7283        /**
7284         * @param value {@link #fhirVersion} (Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.)
7285         */
7286        public ImplementationGuideDefinitionResourceComponent addFhirVersion(FHIRVersion value) { //1
7287          Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
7288          t.setValue(value);
7289          if (this.fhirVersion == null)
7290            this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
7291          this.fhirVersion.add(t);
7292          return this;
7293        }
7294
7295        /**
7296         * @param value {@link #fhirVersion} (Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.)
7297         */
7298        public boolean hasFhirVersion(FHIRVersion value) { 
7299          if (this.fhirVersion == null)
7300            return false;
7301          for (Enumeration<FHIRVersion> v : this.fhirVersion)
7302            if (v.getValue().equals(value)) // code
7303              return true;
7304          return false;
7305        }
7306
7307        /**
7308         * @return {@link #name} (A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
7309         */
7310        public StringType getNameElement() { 
7311          if (this.name == null)
7312            if (Configuration.errorOnAutoCreate())
7313              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.name");
7314            else if (Configuration.doAutoCreate())
7315              this.name = new StringType(); // bb
7316          return this.name;
7317        }
7318
7319        public boolean hasNameElement() { 
7320          return this.name != null && !this.name.isEmpty();
7321        }
7322
7323        public boolean hasName() { 
7324          return this.name != null && !this.name.isEmpty();
7325        }
7326
7327        /**
7328         * @param value {@link #name} (A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
7329         */
7330        public ImplementationGuideDefinitionResourceComponent setNameElement(StringType value) { 
7331          this.name = value;
7332          return this;
7333        }
7334
7335        /**
7336         * @return A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).
7337         */
7338        public String getName() { 
7339          return this.name == null ? null : this.name.getValue();
7340        }
7341
7342        /**
7343         * @param value A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).
7344         */
7345        public ImplementationGuideDefinitionResourceComponent setName(String value) { 
7346          if (Utilities.noString(value))
7347            this.name = null;
7348          else {
7349            if (this.name == null)
7350              this.name = new StringType();
7351            this.name.setValue(value);
7352          }
7353          return this;
7354        }
7355
7356        /**
7357         * @return {@link #description} (A description of the reason that a resource has been included in the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
7358         */
7359        public MarkdownType getDescriptionElement() { 
7360          if (this.description == null)
7361            if (Configuration.errorOnAutoCreate())
7362              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.description");
7363            else if (Configuration.doAutoCreate())
7364              this.description = new MarkdownType(); // bb
7365          return this.description;
7366        }
7367
7368        public boolean hasDescriptionElement() { 
7369          return this.description != null && !this.description.isEmpty();
7370        }
7371
7372        public boolean hasDescription() { 
7373          return this.description != null && !this.description.isEmpty();
7374        }
7375
7376        /**
7377         * @param value {@link #description} (A description of the reason that a resource has been included in the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
7378         */
7379        public ImplementationGuideDefinitionResourceComponent setDescriptionElement(MarkdownType value) { 
7380          this.description = value;
7381          return this;
7382        }
7383
7384        /**
7385         * @return A description of the reason that a resource has been included in the implementation guide.
7386         */
7387        public String getDescription() { 
7388          return this.description == null ? null : this.description.getValue();
7389        }
7390
7391        /**
7392         * @param value A description of the reason that a resource has been included in the implementation guide.
7393         */
7394        public ImplementationGuideDefinitionResourceComponent setDescription(String value) { 
7395          if (value == null)
7396            this.description = null;
7397          else {
7398            if (this.description == null)
7399              this.description = new MarkdownType();
7400            this.description.setValue(value);
7401          }
7402          return this;
7403        }
7404
7405        /**
7406         * @return {@link #isExample} (If true, indicates the resource is an example instance.). This is the underlying object with id, value and extensions. The accessor "getIsExample" gives direct access to the value
7407         */
7408        public BooleanType getIsExampleElement() { 
7409          if (this.isExample == null)
7410            if (Configuration.errorOnAutoCreate())
7411              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.isExample");
7412            else if (Configuration.doAutoCreate())
7413              this.isExample = new BooleanType(); // bb
7414          return this.isExample;
7415        }
7416
7417        public boolean hasIsExampleElement() { 
7418          return this.isExample != null && !this.isExample.isEmpty();
7419        }
7420
7421        public boolean hasIsExample() { 
7422          return this.isExample != null && !this.isExample.isEmpty();
7423        }
7424
7425        /**
7426         * @param value {@link #isExample} (If true, indicates the resource is an example instance.). This is the underlying object with id, value and extensions. The accessor "getIsExample" gives direct access to the value
7427         */
7428        public ImplementationGuideDefinitionResourceComponent setIsExampleElement(BooleanType value) { 
7429          this.isExample = value;
7430          return this;
7431        }
7432
7433        /**
7434         * @return If true, indicates the resource is an example instance.
7435         */
7436        public boolean getIsExample() { 
7437          return this.isExample == null || this.isExample.isEmpty() ? false : this.isExample.getValue();
7438        }
7439
7440        /**
7441         * @param value If true, indicates the resource is an example instance.
7442         */
7443        public ImplementationGuideDefinitionResourceComponent setIsExample(boolean value) { 
7444            if (this.isExample == null)
7445              this.isExample = new BooleanType();
7446            this.isExample.setValue(value);
7447          return this;
7448        }
7449
7450        /**
7451         * @return {@link #profile} (If present, indicates profile(s) the instance is valid against.)
7452         */
7453        public List<CanonicalType> getProfile() { 
7454          if (this.profile == null)
7455            this.profile = new ArrayList<CanonicalType>();
7456          return this.profile;
7457        }
7458
7459        /**
7460         * @return Returns a reference to <code>this</code> for easy method chaining
7461         */
7462        public ImplementationGuideDefinitionResourceComponent setProfile(List<CanonicalType> theProfile) { 
7463          this.profile = theProfile;
7464          return this;
7465        }
7466
7467        public boolean hasProfile() { 
7468          if (this.profile == null)
7469            return false;
7470          for (CanonicalType item : this.profile)
7471            if (!item.isEmpty())
7472              return true;
7473          return false;
7474        }
7475
7476        /**
7477         * @return {@link #profile} (If present, indicates profile(s) the instance is valid against.)
7478         */
7479        public CanonicalType addProfileElement() {//2 
7480          CanonicalType t = new CanonicalType();
7481          if (this.profile == null)
7482            this.profile = new ArrayList<CanonicalType>();
7483          this.profile.add(t);
7484          return t;
7485        }
7486
7487        /**
7488         * @param value {@link #profile} (If present, indicates profile(s) the instance is valid against.)
7489         */
7490        public ImplementationGuideDefinitionResourceComponent addProfile(String value) { //1
7491          CanonicalType t = new CanonicalType();
7492          t.setValue(value);
7493          if (this.profile == null)
7494            this.profile = new ArrayList<CanonicalType>();
7495          this.profile.add(t);
7496          return this;
7497        }
7498
7499        /**
7500         * @param value {@link #profile} (If present, indicates profile(s) the instance is valid against.)
7501         */
7502        public boolean hasProfile(String value) { 
7503          if (this.profile == null)
7504            return false;
7505          for (CanonicalType v : this.profile)
7506            if (v.getValue().equals(value)) // canonical
7507              return true;
7508          return false;
7509        }
7510
7511        /**
7512         * @return {@link #groupingId} (Reference to the id of the grouping this resource appears in.). This is the underlying object with id, value and extensions. The accessor "getGroupingId" gives direct access to the value
7513         */
7514        public IdType getGroupingIdElement() { 
7515          if (this.groupingId == null)
7516            if (Configuration.errorOnAutoCreate())
7517              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.groupingId");
7518            else if (Configuration.doAutoCreate())
7519              this.groupingId = new IdType(); // bb
7520          return this.groupingId;
7521        }
7522
7523        public boolean hasGroupingIdElement() { 
7524          return this.groupingId != null && !this.groupingId.isEmpty();
7525        }
7526
7527        public boolean hasGroupingId() { 
7528          return this.groupingId != null && !this.groupingId.isEmpty();
7529        }
7530
7531        /**
7532         * @param value {@link #groupingId} (Reference to the id of the grouping this resource appears in.). This is the underlying object with id, value and extensions. The accessor "getGroupingId" gives direct access to the value
7533         */
7534        public ImplementationGuideDefinitionResourceComponent setGroupingIdElement(IdType value) { 
7535          this.groupingId = value;
7536          return this;
7537        }
7538
7539        /**
7540         * @return Reference to the id of the grouping this resource appears in.
7541         */
7542        public String getGroupingId() { 
7543          return this.groupingId == null ? null : this.groupingId.getValue();
7544        }
7545
7546        /**
7547         * @param value Reference to the id of the grouping this resource appears in.
7548         */
7549        public ImplementationGuideDefinitionResourceComponent setGroupingId(String value) { 
7550          if (Utilities.noString(value))
7551            this.groupingId = null;
7552          else {
7553            if (this.groupingId == null)
7554              this.groupingId = new IdType();
7555            this.groupingId.setValue(value);
7556          }
7557          return this;
7558        }
7559
7560        protected void listChildren(List<Property> children) {
7561          super.listChildren(children);
7562          children.add(new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference));
7563          children.add(new Property("fhirVersion", "code", "Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.", 0, java.lang.Integer.MAX_VALUE, fhirVersion));
7564          children.add(new Property("name", "string", "A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).", 0, 1, name));
7565          children.add(new Property("description", "markdown", "A description of the reason that a resource has been included in the implementation guide.", 0, 1, description));
7566          children.add(new Property("isExample", "boolean", "If true, indicates the resource is an example instance.", 0, 1, isExample));
7567          children.add(new Property("profile", "canonical(StructureDefinition)", "If present, indicates profile(s) the instance is valid against.", 0, java.lang.Integer.MAX_VALUE, profile));
7568          children.add(new Property("groupingId", "id", "Reference to the id of the grouping this resource appears in.", 0, 1, groupingId));
7569        }
7570
7571        @Override
7572        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
7573          switch (_hash) {
7574          case -925155509: /*reference*/  return new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference);
7575          case 461006061: /*fhirVersion*/  return new Property("fhirVersion", "code", "Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion.", 0, java.lang.Integer.MAX_VALUE, fhirVersion);
7576          case 3373707: /*name*/  return new Property("name", "string", "A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name).", 0, 1, name);
7577          case -1724546052: /*description*/  return new Property("description", "markdown", "A description of the reason that a resource has been included in the implementation guide.", 0, 1, description);
7578          case -1902749472: /*isExample*/  return new Property("isExample", "boolean", "If true, indicates the resource is an example instance.", 0, 1, isExample);
7579          case -309425751: /*profile*/  return new Property("profile", "canonical(StructureDefinition)", "If present, indicates profile(s) the instance is valid against.", 0, java.lang.Integer.MAX_VALUE, profile);
7580          case 1291547006: /*groupingId*/  return new Property("groupingId", "id", "Reference to the id of the grouping this resource appears in.", 0, 1, groupingId);
7581          default: return super.getNamedProperty(_hash, _name, _checkValid);
7582          }
7583
7584        }
7585
7586      @Override
7587      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
7588        switch (hash) {
7589        case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // Reference
7590        case 461006061: /*fhirVersion*/ return this.fhirVersion == null ? new Base[0] : this.fhirVersion.toArray(new Base[this.fhirVersion.size()]); // Enumeration<FHIRVersion>
7591        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
7592        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
7593        case -1902749472: /*isExample*/ return this.isExample == null ? new Base[0] : new Base[] {this.isExample}; // BooleanType
7594        case -309425751: /*profile*/ return this.profile == null ? new Base[0] : this.profile.toArray(new Base[this.profile.size()]); // CanonicalType
7595        case 1291547006: /*groupingId*/ return this.groupingId == null ? new Base[0] : new Base[] {this.groupingId}; // IdType
7596        default: return super.getProperty(hash, name, checkValid);
7597        }
7598
7599      }
7600
7601      @Override
7602      public Base setProperty(int hash, String name, Base value) throws FHIRException {
7603        switch (hash) {
7604        case -925155509: // reference
7605          this.reference = TypeConvertor.castToReference(value); // Reference
7606          return value;
7607        case 461006061: // fhirVersion
7608          value = new FHIRVersionEnumFactory().fromType(TypeConvertor.castToCode(value));
7609          this.getFhirVersion().add((Enumeration) value); // Enumeration<FHIRVersion>
7610          return value;
7611        case 3373707: // name
7612          this.name = TypeConvertor.castToString(value); // StringType
7613          return value;
7614        case -1724546052: // description
7615          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
7616          return value;
7617        case -1902749472: // isExample
7618          this.isExample = TypeConvertor.castToBoolean(value); // BooleanType
7619          return value;
7620        case -309425751: // profile
7621          this.getProfile().add(TypeConvertor.castToCanonical(value)); // CanonicalType
7622          return value;
7623        case 1291547006: // groupingId
7624          this.groupingId = TypeConvertor.castToId(value); // IdType
7625          return value;
7626        default: return super.setProperty(hash, name, value);
7627        }
7628
7629      }
7630
7631      @Override
7632      public Base setProperty(String name, Base value) throws FHIRException {
7633        if (name.equals("reference")) {
7634          this.reference = TypeConvertor.castToReference(value); // Reference
7635        } else if (name.equals("fhirVersion")) {
7636          value = new FHIRVersionEnumFactory().fromType(TypeConvertor.castToCode(value));
7637          this.getFhirVersion().add((Enumeration) value);
7638        } else if (name.equals("name")) {
7639          this.name = TypeConvertor.castToString(value); // StringType
7640        } else if (name.equals("description")) {
7641          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
7642        } else if (name.equals("isExample")) {
7643          this.isExample = TypeConvertor.castToBoolean(value); // BooleanType
7644        } else if (name.equals("profile")) {
7645          this.getProfile().add(TypeConvertor.castToCanonical(value));
7646        } else if (name.equals("groupingId")) {
7647          this.groupingId = TypeConvertor.castToId(value); // IdType
7648        } else
7649          return super.setProperty(name, value);
7650        return value;
7651      }
7652
7653      @Override
7654      public Base makeProperty(int hash, String name) throws FHIRException {
7655        switch (hash) {
7656        case -925155509:  return getReference();
7657        case 461006061:  return addFhirVersionElement();
7658        case 3373707:  return getNameElement();
7659        case -1724546052:  return getDescriptionElement();
7660        case -1902749472:  return getIsExampleElement();
7661        case -309425751:  return addProfileElement();
7662        case 1291547006:  return getGroupingIdElement();
7663        default: return super.makeProperty(hash, name);
7664        }
7665
7666      }
7667
7668      @Override
7669      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
7670        switch (hash) {
7671        case -925155509: /*reference*/ return new String[] {"Reference"};
7672        case 461006061: /*fhirVersion*/ return new String[] {"code"};
7673        case 3373707: /*name*/ return new String[] {"string"};
7674        case -1724546052: /*description*/ return new String[] {"markdown"};
7675        case -1902749472: /*isExample*/ return new String[] {"boolean"};
7676        case -309425751: /*profile*/ return new String[] {"canonical"};
7677        case 1291547006: /*groupingId*/ return new String[] {"id"};
7678        default: return super.getTypesForProperty(hash, name);
7679        }
7680
7681      }
7682
7683      @Override
7684      public Base addChild(String name) throws FHIRException {
7685        if (name.equals("reference")) {
7686          this.reference = new Reference();
7687          return this.reference;
7688        }
7689        else if (name.equals("fhirVersion")) {
7690          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.resource.fhirVersion");
7691        }
7692        else if (name.equals("name")) {
7693          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.resource.name");
7694        }
7695        else if (name.equals("description")) {
7696          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.resource.description");
7697        }
7698        else if (name.equals("isExample")) {
7699          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.resource.isExample");
7700        }
7701        else if (name.equals("profile")) {
7702          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.resource.profile");
7703        }
7704        else if (name.equals("groupingId")) {
7705          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.resource.groupingId");
7706        }
7707        else
7708          return super.addChild(name);
7709      }
7710
7711      public ImplementationGuideDefinitionResourceComponent copy() {
7712        ImplementationGuideDefinitionResourceComponent dst = new ImplementationGuideDefinitionResourceComponent();
7713        copyValues(dst);
7714        return dst;
7715      }
7716
7717      public void copyValues(ImplementationGuideDefinitionResourceComponent dst) {
7718        super.copyValues(dst);
7719        dst.reference = reference == null ? null : reference.copy();
7720        if (fhirVersion != null) {
7721          dst.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
7722          for (Enumeration<FHIRVersion> i : fhirVersion)
7723            dst.fhirVersion.add(i.copy());
7724        };
7725        dst.name = name == null ? null : name.copy();
7726        dst.description = description == null ? null : description.copy();
7727        dst.isExample = isExample == null ? null : isExample.copy();
7728        if (profile != null) {
7729          dst.profile = new ArrayList<CanonicalType>();
7730          for (CanonicalType i : profile)
7731            dst.profile.add(i.copy());
7732        };
7733        dst.groupingId = groupingId == null ? null : groupingId.copy();
7734      }
7735
7736      @Override
7737      public boolean equalsDeep(Base other_) {
7738        if (!super.equalsDeep(other_))
7739          return false;
7740        if (!(other_ instanceof ImplementationGuideDefinitionResourceComponent))
7741          return false;
7742        ImplementationGuideDefinitionResourceComponent o = (ImplementationGuideDefinitionResourceComponent) other_;
7743        return compareDeep(reference, o.reference, true) && compareDeep(fhirVersion, o.fhirVersion, true)
7744           && compareDeep(name, o.name, true) && compareDeep(description, o.description, true) && compareDeep(isExample, o.isExample, true)
7745           && compareDeep(profile, o.profile, true) && compareDeep(groupingId, o.groupingId, true);
7746      }
7747
7748      @Override
7749      public boolean equalsShallow(Base other_) {
7750        if (!super.equalsShallow(other_))
7751          return false;
7752        if (!(other_ instanceof ImplementationGuideDefinitionResourceComponent))
7753          return false;
7754        ImplementationGuideDefinitionResourceComponent o = (ImplementationGuideDefinitionResourceComponent) other_;
7755        return compareValues(fhirVersion, o.fhirVersion, true) && compareValues(name, o.name, true) && compareValues(description, o.description, true)
7756           && compareValues(isExample, o.isExample, true) && compareValues(profile, o.profile, true) && compareValues(groupingId, o.groupingId, true)
7757          ;
7758      }
7759
7760      public boolean isEmpty() {
7761        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, fhirVersion, name
7762          , description, isExample, profile, groupingId);
7763      }
7764
7765  public String fhirType() {
7766    return "ImplementationGuide.definition.resource";
7767
7768  }
7769
7770// added from java-adornments.txt:
7771
7772// end addition
7773  }
7774
7775    @Block()
7776    public static class ImplementationGuideDefinitionPageComponent extends BackboneElement implements IBaseBackboneElement {
7777        /**
7778         * Indicates the URL or the actual content to provide for the page.
7779         */
7780        @Child(name = "source", type = {UrlType.class, StringType.class, MarkdownType.class}, order=1, min=0, max=1, modifier=false, summary=false)
7781        @Description(shortDefinition="Source for page", formalDefinition="Indicates the URL or the actual content to provide for the page." )
7782        protected DataType source;
7783
7784        /**
7785         * The url by which the page should be known when published.
7786         */
7787        @Child(name = "name", type = {UrlType.class}, order=2, min=1, max=1, modifier=false, summary=false)
7788        @Description(shortDefinition="Name of the page when published", formalDefinition="The url by which the page should be known when published." )
7789        protected UrlType name;
7790
7791        /**
7792         * A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.
7793         */
7794        @Child(name = "title", type = {StringType.class}, order=3, min=1, max=1, modifier=false, summary=false)
7795        @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." )
7796        protected StringType title;
7797
7798        /**
7799         * A code that indicates how the page is generated.
7800         */
7801        @Child(name = "generation", type = {CodeType.class}, order=4, min=1, max=1, modifier=false, summary=false)
7802        @Description(shortDefinition="html | markdown | xml | generated", formalDefinition="A code that indicates how the page is generated." )
7803        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/guide-page-generation")
7804        protected Enumeration<GuidePageGeneration> generation;
7805
7806        /**
7807         * Nested Pages/Sections under this page.
7808         */
7809        @Child(name = "page", type = {ImplementationGuideDefinitionPageComponent.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
7810        @Description(shortDefinition="Nested Pages / Sections", formalDefinition="Nested Pages/Sections under this page." )
7811        protected List<ImplementationGuideDefinitionPageComponent> page;
7812
7813        private static final long serialVersionUID = 57473246L;
7814
7815    /**
7816     * Constructor
7817     */
7818      public ImplementationGuideDefinitionPageComponent() {
7819        super();
7820      }
7821
7822    /**
7823     * Constructor
7824     */
7825      public ImplementationGuideDefinitionPageComponent(String name, String title, GuidePageGeneration generation) {
7826        super();
7827        this.setName(name);
7828        this.setTitle(title);
7829        this.setGeneration(generation);
7830      }
7831
7832        /**
7833         * @return {@link #source} (Indicates the URL or the actual content to provide for the page.)
7834         */
7835        public DataType getSource() { 
7836          return this.source;
7837        }
7838
7839        /**
7840         * @return {@link #source} (Indicates the URL or the actual content to provide for the page.)
7841         */
7842        public UrlType getSourceUrlType() throws FHIRException { 
7843          if (this.source == null)
7844            this.source = new UrlType();
7845          if (!(this.source instanceof UrlType))
7846            throw new FHIRException("Type mismatch: the type UrlType was expected, but "+this.source.getClass().getName()+" was encountered");
7847          return (UrlType) this.source;
7848        }
7849
7850        public boolean hasSourceUrlType() { 
7851          return this != null && this.source instanceof UrlType;
7852        }
7853
7854        /**
7855         * @return {@link #source} (Indicates the URL or the actual content to provide for the page.)
7856         */
7857        public StringType getSourceStringType() throws FHIRException { 
7858          if (this.source == null)
7859            this.source = new StringType();
7860          if (!(this.source instanceof StringType))
7861            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.source.getClass().getName()+" was encountered");
7862          return (StringType) this.source;
7863        }
7864
7865        public boolean hasSourceStringType() { 
7866          return this != null && this.source instanceof StringType;
7867        }
7868
7869        /**
7870         * @return {@link #source} (Indicates the URL or the actual content to provide for the page.)
7871         */
7872        public MarkdownType getSourceMarkdownType() throws FHIRException { 
7873          if (this.source == null)
7874            this.source = new MarkdownType();
7875          if (!(this.source instanceof MarkdownType))
7876            throw new FHIRException("Type mismatch: the type MarkdownType was expected, but "+this.source.getClass().getName()+" was encountered");
7877          return (MarkdownType) this.source;
7878        }
7879
7880        public boolean hasSourceMarkdownType() { 
7881          return this != null && this.source instanceof MarkdownType;
7882        }
7883
7884        public boolean hasSource() { 
7885          return this.source != null && !this.source.isEmpty();
7886        }
7887
7888        /**
7889         * @param value {@link #source} (Indicates the URL or the actual content to provide for the page.)
7890         */
7891        public ImplementationGuideDefinitionPageComponent setSource(DataType value) { 
7892          if (value != null && !(value instanceof UrlType || value instanceof StringType || value instanceof MarkdownType))
7893            throw new Error("Not the right type for ImplementationGuide.definition.page.source[x]: "+value.fhirType());
7894          this.source = value;
7895          return this;
7896        }
7897
7898        /**
7899         * @return {@link #name} (The url by which the page should be known when published.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
7900         */
7901        public UrlType getNameElement() { 
7902          if (this.name == null)
7903            if (Configuration.errorOnAutoCreate())
7904              throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.name");
7905            else if (Configuration.doAutoCreate())
7906              this.name = new UrlType(); // bb
7907          return this.name;
7908        }
7909
7910        public boolean hasNameElement() { 
7911          return this.name != null && !this.name.isEmpty();
7912        }
7913
7914        public boolean hasName() { 
7915          return this.name != null && !this.name.isEmpty();
7916        }
7917
7918        /**
7919         * @param value {@link #name} (The url by which the page should be known when published.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
7920         */
7921        public ImplementationGuideDefinitionPageComponent setNameElement(UrlType value) { 
7922          this.name = value;
7923          return this;
7924        }
7925
7926        /**
7927         * @return The url by which the page should be known when published.
7928         */
7929        public String getName() { 
7930          return this.name == null ? null : this.name.getValue();
7931        }
7932
7933        /**
7934         * @param value The url by which the page should be known when published.
7935         */
7936        public ImplementationGuideDefinitionPageComponent setName(String value) { 
7937            if (this.name == null)
7938              this.name = new UrlType();
7939            this.name.setValue(value);
7940          return this;
7941        }
7942
7943        /**
7944         * @return {@link #title} (A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
7945         */
7946        public StringType getTitleElement() { 
7947          if (this.title == null)
7948            if (Configuration.errorOnAutoCreate())
7949              throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.title");
7950            else if (Configuration.doAutoCreate())
7951              this.title = new StringType(); // bb
7952          return this.title;
7953        }
7954
7955        public boolean hasTitleElement() { 
7956          return this.title != null && !this.title.isEmpty();
7957        }
7958
7959        public boolean hasTitle() { 
7960          return this.title != null && !this.title.isEmpty();
7961        }
7962
7963        /**
7964         * @param value {@link #title} (A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
7965         */
7966        public ImplementationGuideDefinitionPageComponent setTitleElement(StringType value) { 
7967          this.title = value;
7968          return this;
7969        }
7970
7971        /**
7972         * @return A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.
7973         */
7974        public String getTitle() { 
7975          return this.title == null ? null : this.title.getValue();
7976        }
7977
7978        /**
7979         * @param value A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.
7980         */
7981        public ImplementationGuideDefinitionPageComponent setTitle(String value) { 
7982            if (this.title == null)
7983              this.title = new StringType();
7984            this.title.setValue(value);
7985          return this;
7986        }
7987
7988        /**
7989         * @return {@link #generation} (A code that indicates how the page is generated.). This is the underlying object with id, value and extensions. The accessor "getGeneration" gives direct access to the value
7990         */
7991        public Enumeration<GuidePageGeneration> getGenerationElement() { 
7992          if (this.generation == null)
7993            if (Configuration.errorOnAutoCreate())
7994              throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.generation");
7995            else if (Configuration.doAutoCreate())
7996              this.generation = new Enumeration<GuidePageGeneration>(new GuidePageGenerationEnumFactory()); // bb
7997          return this.generation;
7998        }
7999
8000        public boolean hasGenerationElement() { 
8001          return this.generation != null && !this.generation.isEmpty();
8002        }
8003
8004        public boolean hasGeneration() { 
8005          return this.generation != null && !this.generation.isEmpty();
8006        }
8007
8008        /**
8009         * @param value {@link #generation} (A code that indicates how the page is generated.). This is the underlying object with id, value and extensions. The accessor "getGeneration" gives direct access to the value
8010         */
8011        public ImplementationGuideDefinitionPageComponent setGenerationElement(Enumeration<GuidePageGeneration> value) { 
8012          this.generation = value;
8013          return this;
8014        }
8015
8016        /**
8017         * @return A code that indicates how the page is generated.
8018         */
8019        public GuidePageGeneration getGeneration() { 
8020          return this.generation == null ? null : this.generation.getValue();
8021        }
8022
8023        /**
8024         * @param value A code that indicates how the page is generated.
8025         */
8026        public ImplementationGuideDefinitionPageComponent setGeneration(GuidePageGeneration value) { 
8027            if (this.generation == null)
8028              this.generation = new Enumeration<GuidePageGeneration>(new GuidePageGenerationEnumFactory());
8029            this.generation.setValue(value);
8030          return this;
8031        }
8032
8033        /**
8034         * @return {@link #page} (Nested Pages/Sections under this page.)
8035         */
8036        public List<ImplementationGuideDefinitionPageComponent> getPage() { 
8037          if (this.page == null)
8038            this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
8039          return this.page;
8040        }
8041
8042        /**
8043         * @return Returns a reference to <code>this</code> for easy method chaining
8044         */
8045        public ImplementationGuideDefinitionPageComponent setPage(List<ImplementationGuideDefinitionPageComponent> thePage) { 
8046          this.page = thePage;
8047          return this;
8048        }
8049
8050        public boolean hasPage() { 
8051          if (this.page == null)
8052            return false;
8053          for (ImplementationGuideDefinitionPageComponent item : this.page)
8054            if (!item.isEmpty())
8055              return true;
8056          return false;
8057        }
8058
8059        public ImplementationGuideDefinitionPageComponent addPage() { //3
8060          ImplementationGuideDefinitionPageComponent t = new ImplementationGuideDefinitionPageComponent();
8061          if (this.page == null)
8062            this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
8063          this.page.add(t);
8064          return t;
8065        }
8066
8067        public ImplementationGuideDefinitionPageComponent addPage(ImplementationGuideDefinitionPageComponent t) { //3
8068          if (t == null)
8069            return this;
8070          if (this.page == null)
8071            this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
8072          this.page.add(t);
8073          return this;
8074        }
8075
8076        /**
8077         * @return The first repetition of repeating field {@link #page}, creating it if it does not already exist {3}
8078         */
8079        public ImplementationGuideDefinitionPageComponent getPageFirstRep() { 
8080          if (getPage().isEmpty()) {
8081            addPage();
8082          }
8083          return getPage().get(0);
8084        }
8085
8086        protected void listChildren(List<Property> children) {
8087          super.listChildren(children);
8088          children.add(new Property("source[x]", "url|string|markdown", "Indicates the URL or the actual content to provide for the page.", 0, 1, source));
8089          children.add(new Property("name", "url", "The url by which the page should be known when published.", 0, 1, name));
8090          children.add(new Property("title", "string", "A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.", 0, 1, title));
8091          children.add(new Property("generation", "code", "A code that indicates how the page is generated.", 0, 1, generation));
8092          children.add(new Property("page", "@ImplementationGuide.definition.page", "Nested Pages/Sections under this page.", 0, java.lang.Integer.MAX_VALUE, page));
8093        }
8094
8095        @Override
8096        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
8097          switch (_hash) {
8098          case -1698413947: /*source[x]*/  return new Property("source[x]", "url|string|markdown", "Indicates the URL or the actual content to provide for the page.", 0, 1, source);
8099          case -896505829: /*source*/  return new Property("source[x]", "url|string|markdown", "Indicates the URL or the actual content to provide for the page.", 0, 1, source);
8100          case -1698419884: /*sourceUrl*/  return new Property("source[x]", "url", "Indicates the URL or the actual content to provide for the page.", 0, 1, source);
8101          case 1327821836: /*sourceString*/  return new Property("source[x]", "string", "Indicates the URL or the actual content to provide for the page.", 0, 1, source);
8102          case -1116570070: /*sourceMarkdown*/  return new Property("source[x]", "markdown", "Indicates the URL or the actual content to provide for the page.", 0, 1, source);
8103          case 3373707: /*name*/  return new Property("name", "url", "The url by which the page should be known when published.", 0, 1, name);
8104          case 110371416: /*title*/  return new Property("title", "string", "A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.", 0, 1, title);
8105          case 305703192: /*generation*/  return new Property("generation", "code", "A code that indicates how the page is generated.", 0, 1, generation);
8106          case 3433103: /*page*/  return new Property("page", "@ImplementationGuide.definition.page", "Nested Pages/Sections under this page.", 0, java.lang.Integer.MAX_VALUE, page);
8107          default: return super.getNamedProperty(_hash, _name, _checkValid);
8108          }
8109
8110        }
8111
8112      @Override
8113      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
8114        switch (hash) {
8115        case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // DataType
8116        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // UrlType
8117        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
8118        case 305703192: /*generation*/ return this.generation == null ? new Base[0] : new Base[] {this.generation}; // Enumeration<GuidePageGeneration>
8119        case 3433103: /*page*/ return this.page == null ? new Base[0] : this.page.toArray(new Base[this.page.size()]); // ImplementationGuideDefinitionPageComponent
8120        default: return super.getProperty(hash, name, checkValid);
8121        }
8122
8123      }
8124
8125      @Override
8126      public Base setProperty(int hash, String name, Base value) throws FHIRException {
8127        switch (hash) {
8128        case -896505829: // source
8129          this.source = TypeConvertor.castToType(value); // DataType
8130          return value;
8131        case 3373707: // name
8132          this.name = TypeConvertor.castToUrl(value); // UrlType
8133          return value;
8134        case 110371416: // title
8135          this.title = TypeConvertor.castToString(value); // StringType
8136          return value;
8137        case 305703192: // generation
8138          value = new GuidePageGenerationEnumFactory().fromType(TypeConvertor.castToCode(value));
8139          this.generation = (Enumeration) value; // Enumeration<GuidePageGeneration>
8140          return value;
8141        case 3433103: // page
8142          this.getPage().add((ImplementationGuideDefinitionPageComponent) value); // ImplementationGuideDefinitionPageComponent
8143          return value;
8144        default: return super.setProperty(hash, name, value);
8145        }
8146
8147      }
8148
8149      @Override
8150      public Base setProperty(String name, Base value) throws FHIRException {
8151        if (name.equals("source[x]")) {
8152          this.source = TypeConvertor.castToType(value); // DataType
8153        } else if (name.equals("name")) {
8154          this.name = TypeConvertor.castToUrl(value); // UrlType
8155        } else if (name.equals("title")) {
8156          this.title = TypeConvertor.castToString(value); // StringType
8157        } else if (name.equals("generation")) {
8158          value = new GuidePageGenerationEnumFactory().fromType(TypeConvertor.castToCode(value));
8159          this.generation = (Enumeration) value; // Enumeration<GuidePageGeneration>
8160        } else if (name.equals("page")) {
8161          this.getPage().add((ImplementationGuideDefinitionPageComponent) value);
8162        } else
8163          return super.setProperty(name, value);
8164        return value;
8165      }
8166
8167      @Override
8168      public Base makeProperty(int hash, String name) throws FHIRException {
8169        switch (hash) {
8170        case -1698413947:  return getSource();
8171        case -896505829:  return getSource();
8172        case 3373707:  return getNameElement();
8173        case 110371416:  return getTitleElement();
8174        case 305703192:  return getGenerationElement();
8175        case 3433103:  return addPage(); 
8176        default: return super.makeProperty(hash, name);
8177        }
8178
8179      }
8180
8181      @Override
8182      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
8183        switch (hash) {
8184        case -896505829: /*source*/ return new String[] {"url", "string", "markdown"};
8185        case 3373707: /*name*/ return new String[] {"url"};
8186        case 110371416: /*title*/ return new String[] {"string"};
8187        case 305703192: /*generation*/ return new String[] {"code"};
8188        case 3433103: /*page*/ return new String[] {"@ImplementationGuide.definition.page"};
8189        default: return super.getTypesForProperty(hash, name);
8190        }
8191
8192      }
8193
8194      @Override
8195      public Base addChild(String name) throws FHIRException {
8196        if (name.equals("sourceUrl")) {
8197          this.source = new UrlType();
8198          return this.source;
8199        }
8200        else if (name.equals("sourceString")) {
8201          this.source = new StringType();
8202          return this.source;
8203        }
8204        else if (name.equals("sourceMarkdown")) {
8205          this.source = new MarkdownType();
8206          return this.source;
8207        }
8208        else if (name.equals("name")) {
8209          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.page.name");
8210        }
8211        else if (name.equals("title")) {
8212          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.page.title");
8213        }
8214        else if (name.equals("generation")) {
8215          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.page.generation");
8216        }
8217        else if (name.equals("page")) {
8218          return addPage();
8219        }
8220        else
8221          return super.addChild(name);
8222      }
8223
8224      public ImplementationGuideDefinitionPageComponent copy() {
8225        ImplementationGuideDefinitionPageComponent dst = new ImplementationGuideDefinitionPageComponent();
8226        copyValues(dst);
8227        return dst;
8228      }
8229
8230      public void copyValues(ImplementationGuideDefinitionPageComponent dst) {
8231        super.copyValues(dst);
8232        dst.source = source == null ? null : source.copy();
8233        dst.name = name == null ? null : name.copy();
8234        dst.title = title == null ? null : title.copy();
8235        dst.generation = generation == null ? null : generation.copy();
8236        if (page != null) {
8237          dst.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
8238          for (ImplementationGuideDefinitionPageComponent i : page)
8239            dst.page.add(i.copy());
8240        };
8241      }
8242
8243      @Override
8244      public boolean equalsDeep(Base other_) {
8245        if (!super.equalsDeep(other_))
8246          return false;
8247        if (!(other_ instanceof ImplementationGuideDefinitionPageComponent))
8248          return false;
8249        ImplementationGuideDefinitionPageComponent o = (ImplementationGuideDefinitionPageComponent) other_;
8250        return compareDeep(source, o.source, true) && compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
8251           && compareDeep(generation, o.generation, true) && compareDeep(page, o.page, true);
8252      }
8253
8254      @Override
8255      public boolean equalsShallow(Base other_) {
8256        if (!super.equalsShallow(other_))
8257          return false;
8258        if (!(other_ instanceof ImplementationGuideDefinitionPageComponent))
8259          return false;
8260        ImplementationGuideDefinitionPageComponent o = (ImplementationGuideDefinitionPageComponent) other_;
8261        return compareValues(name, o.name, true) && compareValues(title, o.title, true) && compareValues(generation, o.generation, true)
8262          ;
8263      }
8264
8265      public boolean isEmpty() {
8266        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(source, name, title, generation
8267          , page);
8268      }
8269
8270  public String fhirType() {
8271    return "ImplementationGuide.definition.page";
8272
8273  }
8274
8275  }
8276
8277    @Block()
8278    public static class ImplementationGuideDefinitionParameterComponent extends BackboneElement implements IBaseBackboneElement {
8279        /**
8280         * A tool-specific code that defines the parameter.
8281         */
8282        @Child(name = "code", type = {Coding.class}, order=1, min=1, max=1, modifier=false, summary=false)
8283        @Description(shortDefinition="Code that identifies parameter", formalDefinition="A tool-specific code that defines the parameter." )
8284        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/guide-parameter-code")
8285        protected Coding code;
8286
8287        /**
8288         * Value for named type.
8289         */
8290        @Child(name = "value", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
8291        @Description(shortDefinition="Value for named type", formalDefinition="Value for named type." )
8292        protected StringType value;
8293
8294        private static final long serialVersionUID = -1728909245L;
8295
8296    /**
8297     * Constructor
8298     */
8299      public ImplementationGuideDefinitionParameterComponent() {
8300        super();
8301      }
8302
8303    /**
8304     * Constructor
8305     */
8306      public ImplementationGuideDefinitionParameterComponent(Coding code, String value) {
8307        super();
8308        this.setCode(code);
8309        this.setValue(value);
8310      }
8311
8312        /**
8313         * @return {@link #code} (A tool-specific code that defines the parameter.)
8314         */
8315        public Coding getCode() { 
8316          if (this.code == null)
8317            if (Configuration.errorOnAutoCreate())
8318              throw new Error("Attempt to auto-create ImplementationGuideDefinitionParameterComponent.code");
8319            else if (Configuration.doAutoCreate())
8320              this.code = new Coding(); // cc
8321          return this.code;
8322        }
8323
8324        public boolean hasCode() { 
8325          return this.code != null && !this.code.isEmpty();
8326        }
8327
8328        /**
8329         * @param value {@link #code} (A tool-specific code that defines the parameter.)
8330         */
8331        public ImplementationGuideDefinitionParameterComponent setCode(Coding value) { 
8332          this.code = value;
8333          return this;
8334        }
8335
8336        /**
8337         * @return {@link #value} (Value for named type.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value
8338         */
8339        public StringType getValueElement() { 
8340          if (this.value == null)
8341            if (Configuration.errorOnAutoCreate())
8342              throw new Error("Attempt to auto-create ImplementationGuideDefinitionParameterComponent.value");
8343            else if (Configuration.doAutoCreate())
8344              this.value = new StringType(); // bb
8345          return this.value;
8346        }
8347
8348        public boolean hasValueElement() { 
8349          return this.value != null && !this.value.isEmpty();
8350        }
8351
8352        public boolean hasValue() { 
8353          return this.value != null && !this.value.isEmpty();
8354        }
8355
8356        /**
8357         * @param value {@link #value} (Value for named type.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value
8358         */
8359        public ImplementationGuideDefinitionParameterComponent setValueElement(StringType value) { 
8360          this.value = value;
8361          return this;
8362        }
8363
8364        /**
8365         * @return Value for named type.
8366         */
8367        public String getValue() { 
8368          return this.value == null ? null : this.value.getValue();
8369        }
8370
8371        /**
8372         * @param value Value for named type.
8373         */
8374        public ImplementationGuideDefinitionParameterComponent setValue(String value) { 
8375            if (this.value == null)
8376              this.value = new StringType();
8377            this.value.setValue(value);
8378          return this;
8379        }
8380
8381        protected void listChildren(List<Property> children) {
8382          super.listChildren(children);
8383          children.add(new Property("code", "Coding", "A tool-specific code that defines the parameter.", 0, 1, code));
8384          children.add(new Property("value", "string", "Value for named type.", 0, 1, value));
8385        }
8386
8387        @Override
8388        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
8389          switch (_hash) {
8390          case 3059181: /*code*/  return new Property("code", "Coding", "A tool-specific code that defines the parameter.", 0, 1, code);
8391          case 111972721: /*value*/  return new Property("value", "string", "Value for named type.", 0, 1, value);
8392          default: return super.getNamedProperty(_hash, _name, _checkValid);
8393          }
8394
8395        }
8396
8397      @Override
8398      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
8399        switch (hash) {
8400        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // Coding
8401        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType
8402        default: return super.getProperty(hash, name, checkValid);
8403        }
8404
8405      }
8406
8407      @Override
8408      public Base setProperty(int hash, String name, Base value) throws FHIRException {
8409        switch (hash) {
8410        case 3059181: // code
8411          this.code = TypeConvertor.castToCoding(value); // Coding
8412          return value;
8413        case 111972721: // value
8414          this.value = TypeConvertor.castToString(value); // StringType
8415          return value;
8416        default: return super.setProperty(hash, name, value);
8417        }
8418
8419      }
8420
8421      @Override
8422      public Base setProperty(String name, Base value) throws FHIRException {
8423        if (name.equals("code")) {
8424          this.code = TypeConvertor.castToCoding(value); // Coding
8425        } else if (name.equals("value")) {
8426          this.value = TypeConvertor.castToString(value); // StringType
8427        } else
8428          return super.setProperty(name, value);
8429        return value;
8430      }
8431
8432      @Override
8433      public Base makeProperty(int hash, String name) throws FHIRException {
8434        switch (hash) {
8435        case 3059181:  return getCode();
8436        case 111972721:  return getValueElement();
8437        default: return super.makeProperty(hash, name);
8438        }
8439
8440      }
8441
8442      @Override
8443      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
8444        switch (hash) {
8445        case 3059181: /*code*/ return new String[] {"Coding"};
8446        case 111972721: /*value*/ return new String[] {"string"};
8447        default: return super.getTypesForProperty(hash, name);
8448        }
8449
8450      }
8451
8452      @Override
8453      public Base addChild(String name) throws FHIRException {
8454        if (name.equals("code")) {
8455          this.code = new Coding();
8456          return this.code;
8457        }
8458        else if (name.equals("value")) {
8459          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.parameter.value");
8460        }
8461        else
8462          return super.addChild(name);
8463      }
8464
8465      public ImplementationGuideDefinitionParameterComponent copy() {
8466        ImplementationGuideDefinitionParameterComponent dst = new ImplementationGuideDefinitionParameterComponent();
8467        copyValues(dst);
8468        return dst;
8469      }
8470
8471      public void copyValues(ImplementationGuideDefinitionParameterComponent dst) {
8472        super.copyValues(dst);
8473        dst.code = code == null ? null : code.copy();
8474        dst.value = value == null ? null : value.copy();
8475      }
8476
8477      @Override
8478      public boolean equalsDeep(Base other_) {
8479        if (!super.equalsDeep(other_))
8480          return false;
8481        if (!(other_ instanceof ImplementationGuideDefinitionParameterComponent))
8482          return false;
8483        ImplementationGuideDefinitionParameterComponent o = (ImplementationGuideDefinitionParameterComponent) other_;
8484        return compareDeep(code, o.code, true) && compareDeep(value, o.value, true);
8485      }
8486
8487      @Override
8488      public boolean equalsShallow(Base other_) {
8489        if (!super.equalsShallow(other_))
8490          return false;
8491        if (!(other_ instanceof ImplementationGuideDefinitionParameterComponent))
8492          return false;
8493        ImplementationGuideDefinitionParameterComponent o = (ImplementationGuideDefinitionParameterComponent) other_;
8494        return compareValues(value, o.value, true);
8495      }
8496
8497      public boolean isEmpty() {
8498        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, value);
8499      }
8500
8501  public String fhirType() {
8502    return "ImplementationGuide.definition.parameter";
8503
8504  }
8505
8506  }
8507
8508    @Block()
8509    public static class ImplementationGuideDefinitionTemplateComponent extends BackboneElement implements IBaseBackboneElement {
8510        /**
8511         * Type of template specified.
8512         */
8513        @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
8514        @Description(shortDefinition="Type of template specified", formalDefinition="Type of template specified." )
8515        protected CodeType code;
8516
8517        /**
8518         * The source location for the template.
8519         */
8520        @Child(name = "source", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
8521        @Description(shortDefinition="The source location for the template", formalDefinition="The source location for the template." )
8522        protected StringType source;
8523
8524        /**
8525         * The scope in which the template applies.
8526         */
8527        @Child(name = "scope", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
8528        @Description(shortDefinition="The scope in which the template applies", formalDefinition="The scope in which the template applies." )
8529        protected StringType scope;
8530
8531        private static final long serialVersionUID = 923832457L;
8532
8533    /**
8534     * Constructor
8535     */
8536      public ImplementationGuideDefinitionTemplateComponent() {
8537        super();
8538      }
8539
8540    /**
8541     * Constructor
8542     */
8543      public ImplementationGuideDefinitionTemplateComponent(String code, String source) {
8544        super();
8545        this.setCode(code);
8546        this.setSource(source);
8547      }
8548
8549        /**
8550         * @return {@link #code} (Type of template specified.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
8551         */
8552        public CodeType getCodeElement() { 
8553          if (this.code == null)
8554            if (Configuration.errorOnAutoCreate())
8555              throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.code");
8556            else if (Configuration.doAutoCreate())
8557              this.code = new CodeType(); // bb
8558          return this.code;
8559        }
8560
8561        public boolean hasCodeElement() { 
8562          return this.code != null && !this.code.isEmpty();
8563        }
8564
8565        public boolean hasCode() { 
8566          return this.code != null && !this.code.isEmpty();
8567        }
8568
8569        /**
8570         * @param value {@link #code} (Type of template specified.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
8571         */
8572        public ImplementationGuideDefinitionTemplateComponent setCodeElement(CodeType value) { 
8573          this.code = value;
8574          return this;
8575        }
8576
8577        /**
8578         * @return Type of template specified.
8579         */
8580        public String getCode() { 
8581          return this.code == null ? null : this.code.getValue();
8582        }
8583
8584        /**
8585         * @param value Type of template specified.
8586         */
8587        public ImplementationGuideDefinitionTemplateComponent setCode(String value) { 
8588            if (this.code == null)
8589              this.code = new CodeType();
8590            this.code.setValue(value);
8591          return this;
8592        }
8593
8594        /**
8595         * @return {@link #source} (The source location for the template.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value
8596         */
8597        public StringType getSourceElement() { 
8598          if (this.source == null)
8599            if (Configuration.errorOnAutoCreate())
8600              throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.source");
8601            else if (Configuration.doAutoCreate())
8602              this.source = new StringType(); // bb
8603          return this.source;
8604        }
8605
8606        public boolean hasSourceElement() { 
8607          return this.source != null && !this.source.isEmpty();
8608        }
8609
8610        public boolean hasSource() { 
8611          return this.source != null && !this.source.isEmpty();
8612        }
8613
8614        /**
8615         * @param value {@link #source} (The source location for the template.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value
8616         */
8617        public ImplementationGuideDefinitionTemplateComponent setSourceElement(StringType value) { 
8618          this.source = value;
8619          return this;
8620        }
8621
8622        /**
8623         * @return The source location for the template.
8624         */
8625        public String getSource() { 
8626          return this.source == null ? null : this.source.getValue();
8627        }
8628
8629        /**
8630         * @param value The source location for the template.
8631         */
8632        public ImplementationGuideDefinitionTemplateComponent setSource(String value) { 
8633            if (this.source == null)
8634              this.source = new StringType();
8635            this.source.setValue(value);
8636          return this;
8637        }
8638
8639        /**
8640         * @return {@link #scope} (The scope in which the template applies.). This is the underlying object with id, value and extensions. The accessor "getScope" gives direct access to the value
8641         */
8642        public StringType getScopeElement() { 
8643          if (this.scope == null)
8644            if (Configuration.errorOnAutoCreate())
8645              throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.scope");
8646            else if (Configuration.doAutoCreate())
8647              this.scope = new StringType(); // bb
8648          return this.scope;
8649        }
8650
8651        public boolean hasScopeElement() { 
8652          return this.scope != null && !this.scope.isEmpty();
8653        }
8654
8655        public boolean hasScope() { 
8656          return this.scope != null && !this.scope.isEmpty();
8657        }
8658
8659        /**
8660         * @param value {@link #scope} (The scope in which the template applies.). This is the underlying object with id, value and extensions. The accessor "getScope" gives direct access to the value
8661         */
8662        public ImplementationGuideDefinitionTemplateComponent setScopeElement(StringType value) { 
8663          this.scope = value;
8664          return this;
8665        }
8666
8667        /**
8668         * @return The scope in which the template applies.
8669         */
8670        public String getScope() { 
8671          return this.scope == null ? null : this.scope.getValue();
8672        }
8673
8674        /**
8675         * @param value The scope in which the template applies.
8676         */
8677        public ImplementationGuideDefinitionTemplateComponent setScope(String value) { 
8678          if (Utilities.noString(value))
8679            this.scope = null;
8680          else {
8681            if (this.scope == null)
8682              this.scope = new StringType();
8683            this.scope.setValue(value);
8684          }
8685          return this;
8686        }
8687
8688        protected void listChildren(List<Property> children) {
8689          super.listChildren(children);
8690          children.add(new Property("code", "code", "Type of template specified.", 0, 1, code));
8691          children.add(new Property("source", "string", "The source location for the template.", 0, 1, source));
8692          children.add(new Property("scope", "string", "The scope in which the template applies.", 0, 1, scope));
8693        }
8694
8695        @Override
8696        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
8697          switch (_hash) {
8698          case 3059181: /*code*/  return new Property("code", "code", "Type of template specified.", 0, 1, code);
8699          case -896505829: /*source*/  return new Property("source", "string", "The source location for the template.", 0, 1, source);
8700          case 109264468: /*scope*/  return new Property("scope", "string", "The scope in which the template applies.", 0, 1, scope);
8701          default: return super.getNamedProperty(_hash, _name, _checkValid);
8702          }
8703
8704        }
8705
8706      @Override
8707      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
8708        switch (hash) {
8709        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
8710        case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // StringType
8711        case 109264468: /*scope*/ return this.scope == null ? new Base[0] : new Base[] {this.scope}; // StringType
8712        default: return super.getProperty(hash, name, checkValid);
8713        }
8714
8715      }
8716
8717      @Override
8718      public Base setProperty(int hash, String name, Base value) throws FHIRException {
8719        switch (hash) {
8720        case 3059181: // code
8721          this.code = TypeConvertor.castToCode(value); // CodeType
8722          return value;
8723        case -896505829: // source
8724          this.source = TypeConvertor.castToString(value); // StringType
8725          return value;
8726        case 109264468: // scope
8727          this.scope = TypeConvertor.castToString(value); // StringType
8728          return value;
8729        default: return super.setProperty(hash, name, value);
8730        }
8731
8732      }
8733
8734      @Override
8735      public Base setProperty(String name, Base value) throws FHIRException {
8736        if (name.equals("code")) {
8737          this.code = TypeConvertor.castToCode(value); // CodeType
8738        } else if (name.equals("source")) {
8739          this.source = TypeConvertor.castToString(value); // StringType
8740        } else if (name.equals("scope")) {
8741          this.scope = TypeConvertor.castToString(value); // StringType
8742        } else
8743          return super.setProperty(name, value);
8744        return value;
8745      }
8746
8747      @Override
8748      public Base makeProperty(int hash, String name) throws FHIRException {
8749        switch (hash) {
8750        case 3059181:  return getCodeElement();
8751        case -896505829:  return getSourceElement();
8752        case 109264468:  return getScopeElement();
8753        default: return super.makeProperty(hash, name);
8754        }
8755
8756      }
8757
8758      @Override
8759      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
8760        switch (hash) {
8761        case 3059181: /*code*/ return new String[] {"code"};
8762        case -896505829: /*source*/ return new String[] {"string"};
8763        case 109264468: /*scope*/ return new String[] {"string"};
8764        default: return super.getTypesForProperty(hash, name);
8765        }
8766
8767      }
8768
8769      @Override
8770      public Base addChild(String name) throws FHIRException {
8771        if (name.equals("code")) {
8772          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.template.code");
8773        }
8774        else if (name.equals("source")) {
8775          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.template.source");
8776        }
8777        else if (name.equals("scope")) {
8778          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.template.scope");
8779        }
8780        else
8781          return super.addChild(name);
8782      }
8783
8784      public ImplementationGuideDefinitionTemplateComponent copy() {
8785        ImplementationGuideDefinitionTemplateComponent dst = new ImplementationGuideDefinitionTemplateComponent();
8786        copyValues(dst);
8787        return dst;
8788      }
8789
8790      public void copyValues(ImplementationGuideDefinitionTemplateComponent dst) {
8791        super.copyValues(dst);
8792        dst.code = code == null ? null : code.copy();
8793        dst.source = source == null ? null : source.copy();
8794        dst.scope = scope == null ? null : scope.copy();
8795      }
8796
8797      @Override
8798      public boolean equalsDeep(Base other_) {
8799        if (!super.equalsDeep(other_))
8800          return false;
8801        if (!(other_ instanceof ImplementationGuideDefinitionTemplateComponent))
8802          return false;
8803        ImplementationGuideDefinitionTemplateComponent o = (ImplementationGuideDefinitionTemplateComponent) other_;
8804        return compareDeep(code, o.code, true) && compareDeep(source, o.source, true) && compareDeep(scope, o.scope, true)
8805          ;
8806      }
8807
8808      @Override
8809      public boolean equalsShallow(Base other_) {
8810        if (!super.equalsShallow(other_))
8811          return false;
8812        if (!(other_ instanceof ImplementationGuideDefinitionTemplateComponent))
8813          return false;
8814        ImplementationGuideDefinitionTemplateComponent o = (ImplementationGuideDefinitionTemplateComponent) other_;
8815        return compareValues(code, o.code, true) && compareValues(source, o.source, true) && compareValues(scope, o.scope, true)
8816          ;
8817      }
8818
8819      public boolean isEmpty() {
8820        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, source, scope);
8821      }
8822
8823  public String fhirType() {
8824    return "ImplementationGuide.definition.template";
8825
8826  }
8827
8828  }
8829
8830    @Block()
8831    public static class ImplementationGuideManifestComponent extends BackboneElement implements IBaseBackboneElement {
8832        /**
8833         * A pointer to official web page, PDF or other rendering of the implementation guide.
8834         */
8835        @Child(name = "rendering", type = {UrlType.class}, order=1, min=0, max=1, modifier=false, summary=true)
8836        @Description(shortDefinition="Location of rendered implementation guide", formalDefinition="A pointer to official web page, PDF or other rendering of the implementation guide." )
8837        protected UrlType rendering;
8838
8839        /**
8840         * 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.
8841         */
8842        @Child(name = "resource", type = {}, order=2, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
8843        @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." )
8844        protected List<ManifestResourceComponent> resource;
8845
8846        /**
8847         * Information about a page within the IG.
8848         */
8849        @Child(name = "page", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
8850        @Description(shortDefinition="HTML page within the parent IG", formalDefinition="Information about a page within the IG." )
8851        protected List<ManifestPageComponent> page;
8852
8853        /**
8854         * Indicates a relative path to an image that exists within the IG.
8855         */
8856        @Child(name = "image", type = {StringType.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
8857        @Description(shortDefinition="Image within the IG", formalDefinition="Indicates a relative path to an image that exists within the IG." )
8858        protected List<StringType> image;
8859
8860        /**
8861         * 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.
8862         */
8863        @Child(name = "other", type = {StringType.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
8864        @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." )
8865        protected List<StringType> other;
8866
8867        private static final long serialVersionUID = 1881327712L;
8868
8869    /**
8870     * Constructor
8871     */
8872      public ImplementationGuideManifestComponent() {
8873        super();
8874      }
8875
8876    /**
8877     * Constructor
8878     */
8879      public ImplementationGuideManifestComponent(ManifestResourceComponent resource) {
8880        super();
8881        this.addResource(resource);
8882      }
8883
8884        /**
8885         * @return {@link #rendering} (A pointer to official web page, PDF or other rendering of the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getRendering" gives direct access to the value
8886         */
8887        public UrlType getRenderingElement() { 
8888          if (this.rendering == null)
8889            if (Configuration.errorOnAutoCreate())
8890              throw new Error("Attempt to auto-create ImplementationGuideManifestComponent.rendering");
8891            else if (Configuration.doAutoCreate())
8892              this.rendering = new UrlType(); // bb
8893          return this.rendering;
8894        }
8895
8896        public boolean hasRenderingElement() { 
8897          return this.rendering != null && !this.rendering.isEmpty();
8898        }
8899
8900        public boolean hasRendering() { 
8901          return this.rendering != null && !this.rendering.isEmpty();
8902        }
8903
8904        /**
8905         * @param value {@link #rendering} (A pointer to official web page, PDF or other rendering of the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getRendering" gives direct access to the value
8906         */
8907        public ImplementationGuideManifestComponent setRenderingElement(UrlType value) { 
8908          this.rendering = value;
8909          return this;
8910        }
8911
8912        /**
8913         * @return A pointer to official web page, PDF or other rendering of the implementation guide.
8914         */
8915        public String getRendering() { 
8916          return this.rendering == null ? null : this.rendering.getValue();
8917        }
8918
8919        /**
8920         * @param value A pointer to official web page, PDF or other rendering of the implementation guide.
8921         */
8922        public ImplementationGuideManifestComponent setRendering(String value) { 
8923          if (Utilities.noString(value))
8924            this.rendering = null;
8925          else {
8926            if (this.rendering == null)
8927              this.rendering = new UrlType();
8928            this.rendering.setValue(value);
8929          }
8930          return this;
8931        }
8932
8933        /**
8934         * @return {@link #resource} (A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.)
8935         */
8936        public List<ManifestResourceComponent> getResource() { 
8937          if (this.resource == null)
8938            this.resource = new ArrayList<ManifestResourceComponent>();
8939          return this.resource;
8940        }
8941
8942        /**
8943         * @return Returns a reference to <code>this</code> for easy method chaining
8944         */
8945        public ImplementationGuideManifestComponent setResource(List<ManifestResourceComponent> theResource) { 
8946          this.resource = theResource;
8947          return this;
8948        }
8949
8950        public boolean hasResource() { 
8951          if (this.resource == null)
8952            return false;
8953          for (ManifestResourceComponent item : this.resource)
8954            if (!item.isEmpty())
8955              return true;
8956          return false;
8957        }
8958
8959        public ManifestResourceComponent addResource() { //3
8960          ManifestResourceComponent t = new ManifestResourceComponent();
8961          if (this.resource == null)
8962            this.resource = new ArrayList<ManifestResourceComponent>();
8963          this.resource.add(t);
8964          return t;
8965        }
8966
8967        public ImplementationGuideManifestComponent addResource(ManifestResourceComponent t) { //3
8968          if (t == null)
8969            return this;
8970          if (this.resource == null)
8971            this.resource = new ArrayList<ManifestResourceComponent>();
8972          this.resource.add(t);
8973          return this;
8974        }
8975
8976        /**
8977         * @return The first repetition of repeating field {@link #resource}, creating it if it does not already exist {3}
8978         */
8979        public ManifestResourceComponent getResourceFirstRep() { 
8980          if (getResource().isEmpty()) {
8981            addResource();
8982          }
8983          return getResource().get(0);
8984        }
8985
8986        /**
8987         * @return {@link #page} (Information about a page within the IG.)
8988         */
8989        public List<ManifestPageComponent> getPage() { 
8990          if (this.page == null)
8991            this.page = new ArrayList<ManifestPageComponent>();
8992          return this.page;
8993        }
8994
8995        /**
8996         * @return Returns a reference to <code>this</code> for easy method chaining
8997         */
8998        public ImplementationGuideManifestComponent setPage(List<ManifestPageComponent> thePage) { 
8999          this.page = thePage;
9000          return this;
9001        }
9002
9003        public boolean hasPage() { 
9004          if (this.page == null)
9005            return false;
9006          for (ManifestPageComponent item : this.page)
9007            if (!item.isEmpty())
9008              return true;
9009          return false;
9010        }
9011
9012        public ManifestPageComponent addPage() { //3
9013          ManifestPageComponent t = new ManifestPageComponent();
9014          if (this.page == null)
9015            this.page = new ArrayList<ManifestPageComponent>();
9016          this.page.add(t);
9017          return t;
9018        }
9019
9020        public ImplementationGuideManifestComponent addPage(ManifestPageComponent t) { //3
9021          if (t == null)
9022            return this;
9023          if (this.page == null)
9024            this.page = new ArrayList<ManifestPageComponent>();
9025          this.page.add(t);
9026          return this;
9027        }
9028
9029        /**
9030         * @return The first repetition of repeating field {@link #page}, creating it if it does not already exist {3}
9031         */
9032        public ManifestPageComponent getPageFirstRep() { 
9033          if (getPage().isEmpty()) {
9034            addPage();
9035          }
9036          return getPage().get(0);
9037        }
9038
9039        /**
9040         * @return {@link #image} (Indicates a relative path to an image that exists within the IG.)
9041         */
9042        public List<StringType> getImage() { 
9043          if (this.image == null)
9044            this.image = new ArrayList<StringType>();
9045          return this.image;
9046        }
9047
9048        /**
9049         * @return Returns a reference to <code>this</code> for easy method chaining
9050         */
9051        public ImplementationGuideManifestComponent setImage(List<StringType> theImage) { 
9052          this.image = theImage;
9053          return this;
9054        }
9055
9056        public boolean hasImage() { 
9057          if (this.image == null)
9058            return false;
9059          for (StringType item : this.image)
9060            if (!item.isEmpty())
9061              return true;
9062          return false;
9063        }
9064
9065        /**
9066         * @return {@link #image} (Indicates a relative path to an image that exists within the IG.)
9067         */
9068        public StringType addImageElement() {//2 
9069          StringType t = new StringType();
9070          if (this.image == null)
9071            this.image = new ArrayList<StringType>();
9072          this.image.add(t);
9073          return t;
9074        }
9075
9076        /**
9077         * @param value {@link #image} (Indicates a relative path to an image that exists within the IG.)
9078         */
9079        public ImplementationGuideManifestComponent addImage(String value) { //1
9080          StringType t = new StringType();
9081          t.setValue(value);
9082          if (this.image == null)
9083            this.image = new ArrayList<StringType>();
9084          this.image.add(t);
9085          return this;
9086        }
9087
9088        /**
9089         * @param value {@link #image} (Indicates a relative path to an image that exists within the IG.)
9090         */
9091        public boolean hasImage(String value) { 
9092          if (this.image == null)
9093            return false;
9094          for (StringType v : this.image)
9095            if (v.getValue().equals(value)) // string
9096              return true;
9097          return false;
9098        }
9099
9100        /**
9101         * @return {@link #other} (Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.)
9102         */
9103        public List<StringType> getOther() { 
9104          if (this.other == null)
9105            this.other = new ArrayList<StringType>();
9106          return this.other;
9107        }
9108
9109        /**
9110         * @return Returns a reference to <code>this</code> for easy method chaining
9111         */
9112        public ImplementationGuideManifestComponent setOther(List<StringType> theOther) { 
9113          this.other = theOther;
9114          return this;
9115        }
9116
9117        public boolean hasOther() { 
9118          if (this.other == null)
9119            return false;
9120          for (StringType item : this.other)
9121            if (!item.isEmpty())
9122              return true;
9123          return false;
9124        }
9125
9126        /**
9127         * @return {@link #other} (Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.)
9128         */
9129        public StringType addOtherElement() {//2 
9130          StringType t = new StringType();
9131          if (this.other == null)
9132            this.other = new ArrayList<StringType>();
9133          this.other.add(t);
9134          return t;
9135        }
9136
9137        /**
9138         * @param value {@link #other} (Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.)
9139         */
9140        public ImplementationGuideManifestComponent addOther(String value) { //1
9141          StringType t = new StringType();
9142          t.setValue(value);
9143          if (this.other == null)
9144            this.other = new ArrayList<StringType>();
9145          this.other.add(t);
9146          return this;
9147        }
9148
9149        /**
9150         * @param value {@link #other} (Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.)
9151         */
9152        public boolean hasOther(String value) { 
9153          if (this.other == null)
9154            return false;
9155          for (StringType v : this.other)
9156            if (v.getValue().equals(value)) // string
9157              return true;
9158          return false;
9159        }
9160
9161        protected void listChildren(List<Property> children) {
9162          super.listChildren(children);
9163          children.add(new Property("rendering", "url", "A pointer to official web page, PDF or other rendering of the implementation guide.", 0, 1, rendering));
9164          children.add(new Property("resource", "", "A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.", 0, java.lang.Integer.MAX_VALUE, resource));
9165          children.add(new Property("page", "", "Information about a page within the IG.", 0, java.lang.Integer.MAX_VALUE, page));
9166          children.add(new Property("image", "string", "Indicates a relative path to an image that exists within the IG.", 0, java.lang.Integer.MAX_VALUE, image));
9167          children.add(new Property("other", "string", "Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.", 0, java.lang.Integer.MAX_VALUE, other));
9168        }
9169
9170        @Override
9171        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
9172          switch (_hash) {
9173          case 1839654540: /*rendering*/  return new Property("rendering", "url", "A pointer to official web page, PDF or other rendering of the implementation guide.", 0, 1, rendering);
9174          case -341064690: /*resource*/  return new Property("resource", "", "A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource.", 0, java.lang.Integer.MAX_VALUE, resource);
9175          case 3433103: /*page*/  return new Property("page", "", "Information about a page within the IG.", 0, java.lang.Integer.MAX_VALUE, page);
9176          case 100313435: /*image*/  return new Property("image", "string", "Indicates a relative path to an image that exists within the IG.", 0, java.lang.Integer.MAX_VALUE, image);
9177          case 106069776: /*other*/  return new Property("other", "string", "Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG.", 0, java.lang.Integer.MAX_VALUE, other);
9178          default: return super.getNamedProperty(_hash, _name, _checkValid);
9179          }
9180
9181        }
9182
9183      @Override
9184      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
9185        switch (hash) {
9186        case 1839654540: /*rendering*/ return this.rendering == null ? new Base[0] : new Base[] {this.rendering}; // UrlType
9187        case -341064690: /*resource*/ return this.resource == null ? new Base[0] : this.resource.toArray(new Base[this.resource.size()]); // ManifestResourceComponent
9188        case 3433103: /*page*/ return this.page == null ? new Base[0] : this.page.toArray(new Base[this.page.size()]); // ManifestPageComponent
9189        case 100313435: /*image*/ return this.image == null ? new Base[0] : this.image.toArray(new Base[this.image.size()]); // StringType
9190        case 106069776: /*other*/ return this.other == null ? new Base[0] : this.other.toArray(new Base[this.other.size()]); // StringType
9191        default: return super.getProperty(hash, name, checkValid);
9192        }
9193
9194      }
9195
9196      @Override
9197      public Base setProperty(int hash, String name, Base value) throws FHIRException {
9198        switch (hash) {
9199        case 1839654540: // rendering
9200          this.rendering = TypeConvertor.castToUrl(value); // UrlType
9201          return value;
9202        case -341064690: // resource
9203          this.getResource().add((ManifestResourceComponent) value); // ManifestResourceComponent
9204          return value;
9205        case 3433103: // page
9206          this.getPage().add((ManifestPageComponent) value); // ManifestPageComponent
9207          return value;
9208        case 100313435: // image
9209          this.getImage().add(TypeConvertor.castToString(value)); // StringType
9210          return value;
9211        case 106069776: // other
9212          this.getOther().add(TypeConvertor.castToString(value)); // StringType
9213          return value;
9214        default: return super.setProperty(hash, name, value);
9215        }
9216
9217      }
9218
9219      @Override
9220      public Base setProperty(String name, Base value) throws FHIRException {
9221        if (name.equals("rendering")) {
9222          this.rendering = TypeConvertor.castToUrl(value); // UrlType
9223        } else if (name.equals("resource")) {
9224          this.getResource().add((ManifestResourceComponent) value);
9225        } else if (name.equals("page")) {
9226          this.getPage().add((ManifestPageComponent) value);
9227        } else if (name.equals("image")) {
9228          this.getImage().add(TypeConvertor.castToString(value));
9229        } else if (name.equals("other")) {
9230          this.getOther().add(TypeConvertor.castToString(value));
9231        } else
9232          return super.setProperty(name, value);
9233        return value;
9234      }
9235
9236      @Override
9237      public Base makeProperty(int hash, String name) throws FHIRException {
9238        switch (hash) {
9239        case 1839654540:  return getRenderingElement();
9240        case -341064690:  return addResource(); 
9241        case 3433103:  return addPage(); 
9242        case 100313435:  return addImageElement();
9243        case 106069776:  return addOtherElement();
9244        default: return super.makeProperty(hash, name);
9245        }
9246
9247      }
9248
9249      @Override
9250      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
9251        switch (hash) {
9252        case 1839654540: /*rendering*/ return new String[] {"url"};
9253        case -341064690: /*resource*/ return new String[] {};
9254        case 3433103: /*page*/ return new String[] {};
9255        case 100313435: /*image*/ return new String[] {"string"};
9256        case 106069776: /*other*/ return new String[] {"string"};
9257        default: return super.getTypesForProperty(hash, name);
9258        }
9259
9260      }
9261
9262      @Override
9263      public Base addChild(String name) throws FHIRException {
9264        if (name.equals("rendering")) {
9265          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.manifest.rendering");
9266        }
9267        else if (name.equals("resource")) {
9268          return addResource();
9269        }
9270        else if (name.equals("page")) {
9271          return addPage();
9272        }
9273        else if (name.equals("image")) {
9274          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.manifest.image");
9275        }
9276        else if (name.equals("other")) {
9277          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.manifest.other");
9278        }
9279        else
9280          return super.addChild(name);
9281      }
9282
9283      public ImplementationGuideManifestComponent copy() {
9284        ImplementationGuideManifestComponent dst = new ImplementationGuideManifestComponent();
9285        copyValues(dst);
9286        return dst;
9287      }
9288
9289      public void copyValues(ImplementationGuideManifestComponent dst) {
9290        super.copyValues(dst);
9291        dst.rendering = rendering == null ? null : rendering.copy();
9292        if (resource != null) {
9293          dst.resource = new ArrayList<ManifestResourceComponent>();
9294          for (ManifestResourceComponent i : resource)
9295            dst.resource.add(i.copy());
9296        };
9297        if (page != null) {
9298          dst.page = new ArrayList<ManifestPageComponent>();
9299          for (ManifestPageComponent i : page)
9300            dst.page.add(i.copy());
9301        };
9302        if (image != null) {
9303          dst.image = new ArrayList<StringType>();
9304          for (StringType i : image)
9305            dst.image.add(i.copy());
9306        };
9307        if (other != null) {
9308          dst.other = new ArrayList<StringType>();
9309          for (StringType i : other)
9310            dst.other.add(i.copy());
9311        };
9312      }
9313
9314      @Override
9315      public boolean equalsDeep(Base other_) {
9316        if (!super.equalsDeep(other_))
9317          return false;
9318        if (!(other_ instanceof ImplementationGuideManifestComponent))
9319          return false;
9320        ImplementationGuideManifestComponent o = (ImplementationGuideManifestComponent) other_;
9321        return compareDeep(rendering, o.rendering, true) && compareDeep(resource, o.resource, true) && compareDeep(page, o.page, true)
9322           && compareDeep(image, o.image, true) && compareDeep(other, o.other, true);
9323      }
9324
9325      @Override
9326      public boolean equalsShallow(Base other_) {
9327        if (!super.equalsShallow(other_))
9328          return false;
9329        if (!(other_ instanceof ImplementationGuideManifestComponent))
9330          return false;
9331        ImplementationGuideManifestComponent o = (ImplementationGuideManifestComponent) other_;
9332        return compareValues(rendering, o.rendering, true) && compareValues(image, o.image, true) && compareValues(other, o.other, true)
9333          ;
9334      }
9335
9336      public boolean isEmpty() {
9337        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(rendering, resource, page
9338          , image, other);
9339      }
9340
9341  public String fhirType() {
9342    return "ImplementationGuide.manifest";
9343
9344  }
9345
9346  }
9347
9348    @Block()
9349    public static class ManifestResourceComponent extends BackboneElement implements IBaseBackboneElement {
9350        /**
9351         * Where this resource is found.
9352         */
9353        @Child(name = "reference", type = {Reference.class}, order=1, min=1, max=1, modifier=false, summary=true)
9354        @Description(shortDefinition="Location of the resource", formalDefinition="Where this resource is found." )
9355        protected Reference reference;
9356
9357        /**
9358         * If true, indicates the resource is an example instance.
9359         */
9360        @Child(name = "isExample", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false)
9361        @Description(shortDefinition="Is this an example", formalDefinition="If true, indicates the resource is an example instance." )
9362        protected BooleanType isExample;
9363
9364        /**
9365         * If present, indicates profile(s) the instance is valid against.
9366         */
9367        @Child(name = "profile", type = {CanonicalType.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
9368        @Description(shortDefinition="Profile(s) this is an example of", formalDefinition="If present, indicates profile(s) the instance is valid against." )
9369        protected List<CanonicalType> profile;
9370
9371        /**
9372         * The relative path for primary page for this resource within the IG.
9373         */
9374        @Child(name = "relativePath", type = {UrlType.class}, order=4, min=0, max=1, modifier=false, summary=false)
9375        @Description(shortDefinition="Relative path for page in IG", formalDefinition="The relative path for primary page for this resource within the IG." )
9376        protected UrlType relativePath;
9377
9378        private static final long serialVersionUID = 66726063L;
9379
9380    /**
9381     * Con