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