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 Fri, Jul 15, 2022 11:20+1000 for FHIR v5.0.0-snapshot2
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * A set of rules of how a particular interoperability or standards problem is solved - typically through the use of FHIR resources. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts.
052 */
053@ResourceDef(name="ImplementationGuide", profile="http://hl7.org/fhir/StructureDefinition/ImplementationGuide")
054public class ImplementationGuide extends CanonicalResource {
055
056    public enum GuidePageGeneration {
057        /**
058         * Page is proper xhtml with no templating.  Will be brought across unchanged for standard post-processing.
059         */
060        HTML, 
061        /**
062         * Page is markdown with templating.  Will use the template to create a file that imports the markdown file prior to post-processing.
063         */
064        MARKDOWN, 
065        /**
066         * Page is xml with templating.  Will use the template to create a file that imports the source file and run the nominated XSLT transform (see parameters) if present prior to post-processing.
067         */
068        XML, 
069        /**
070         * Page will be generated by the publication process - no source to bring across.
071         */
072        GENERATED, 
073        /**
074         * added to help the parsers with the generic types
075         */
076        NULL;
077        public static GuidePageGeneration fromCode(String codeString) throws FHIRException {
078            if (codeString == null || "".equals(codeString))
079                return null;
080        if ("html".equals(codeString))
081          return HTML;
082        if ("markdown".equals(codeString))
083          return MARKDOWN;
084        if ("xml".equals(codeString))
085          return XML;
086        if ("generated".equals(codeString))
087          return GENERATED;
088        if (Configuration.isAcceptInvalidEnums())
089          return null;
090        else
091          throw new FHIRException("Unknown GuidePageGeneration code '"+codeString+"'");
092        }
093        public String toCode() {
094          switch (this) {
095            case HTML: return "html";
096            case MARKDOWN: return "markdown";
097            case XML: return "xml";
098            case GENERATED: return "generated";
099            case NULL: return null;
100            default: return "?";
101          }
102        }
103        public String getSystem() {
104          switch (this) {
105            case HTML: return "http://hl7.org/fhir/guide-page-generation";
106            case MARKDOWN: return "http://hl7.org/fhir/guide-page-generation";
107            case XML: return "http://hl7.org/fhir/guide-page-generation";
108            case GENERATED: return "http://hl7.org/fhir/guide-page-generation";
109            case NULL: return null;
110            default: return "?";
111          }
112        }
113        public String getDefinition() {
114          switch (this) {
115            case HTML: return "Page is proper xhtml with no templating.  Will be brought across unchanged for standard post-processing.";
116            case MARKDOWN: return "Page is markdown with templating.  Will use the template to create a file that imports the markdown file prior to post-processing.";
117            case XML: return "Page is xml with templating.  Will use the template to create a file that imports the source file and run the nominated XSLT transform (see parameters) if present prior to post-processing.";
118            case GENERATED: return "Page will be generated by the publication process - no source to bring across.";
119            case NULL: return null;
120            default: return "?";
121          }
122        }
123        public String getDisplay() {
124          switch (this) {
125            case HTML: return "HTML";
126            case MARKDOWN: return "Markdown";
127            case XML: return "XML";
128            case GENERATED: return "Generated";
129            case NULL: return null;
130            default: return "?";
131          }
132        }
133    }
134
135  public static class GuidePageGenerationEnumFactory implements EnumFactory<GuidePageGeneration> {
136    public GuidePageGeneration fromCode(String codeString) throws IllegalArgumentException {
137      if (codeString == null || "".equals(codeString))
138            if (codeString == null || "".equals(codeString))
139                return null;
140        if ("html".equals(codeString))
141          return GuidePageGeneration.HTML;
142        if ("markdown".equals(codeString))
143          return GuidePageGeneration.MARKDOWN;
144        if ("xml".equals(codeString))
145          return GuidePageGeneration.XML;
146        if ("generated".equals(codeString))
147          return GuidePageGeneration.GENERATED;
148        throw new IllegalArgumentException("Unknown GuidePageGeneration code '"+codeString+"'");
149        }
150        public Enumeration<GuidePageGeneration> fromType(Base code) throws FHIRException {
151          if (code == null)
152            return null;
153          if (code.isEmpty())
154            return new Enumeration<GuidePageGeneration>(this);
155          String codeString = ((PrimitiveType) code).asStringValue();
156          if (codeString == null || "".equals(codeString))
157            return null;
158        if ("html".equals(codeString))
159          return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.HTML);
160        if ("markdown".equals(codeString))
161          return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.MARKDOWN);
162        if ("xml".equals(codeString))
163          return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.XML);
164        if ("generated".equals(codeString))
165          return new Enumeration<GuidePageGeneration>(this, GuidePageGeneration.GENERATED);
166        throw new FHIRException("Unknown GuidePageGeneration code '"+codeString+"'");
167        }
168    public String toCode(GuidePageGeneration code) {
169      if (code == GuidePageGeneration.HTML)
170        return "html";
171      if (code == GuidePageGeneration.MARKDOWN)
172        return "markdown";
173      if (code == GuidePageGeneration.XML)
174        return "xml";
175      if (code == GuidePageGeneration.GENERATED)
176        return "generated";
177      return "?";
178      }
179    public String toSystem(GuidePageGeneration code) {
180      return code.getSystem();
181      }
182    }
183
184    public enum SPDXLicense {
185        /**
186         * Not an open source license.
187         */
188        NOTOPENSOURCE, 
189        /**
190         * BSD Zero Clause License.
191         */
192        _0BSD, 
193        /**
194         * Attribution Assurance License.
195         */
196        AAL, 
197        /**
198         * Abstyles License.
199         */
200        ABSTYLES, 
201        /**
202         * Adobe Systems Incorporated Source Code License Agreement.
203         */
204        ADOBE2006, 
205        /**
206         * Adobe Glyph List License.
207         */
208        ADOBEGLYPH, 
209        /**
210         * Amazon Digital Services License.
211         */
212        ADSL, 
213        /**
214         * Academic Free License v1.1.
215         */
216        AFL1_1, 
217        /**
218         * Academic Free License v1.2.
219         */
220        AFL1_2, 
221        /**
222         * Academic Free License v2.0.
223         */
224        AFL2_0, 
225        /**
226         * Academic Free License v2.1.
227         */
228        AFL2_1, 
229        /**
230         * Academic Free License v3.0.
231         */
232        AFL3_0, 
233        /**
234         * Afmparse License.
235         */
236        AFMPARSE, 
237        /**
238         * Affero General Public License v1.0 only.
239         */
240        AGPL1_0ONLY, 
241        /**
242         * Affero General Public License v1.0 or later.
243         */
244        AGPL1_0ORLATER, 
245        /**
246         * GNU Affero General Public License v3.0 only.
247         */
248        AGPL3_0ONLY, 
249        /**
250         * GNU Affero General Public License v3.0 or later.
251         */
252        AGPL3_0ORLATER, 
253        /**
254         * Aladdin Free Public License.
255         */
256        ALADDIN, 
257        /**
258         * AMD's plpa_map.c License.
259         */
260        AMDPLPA, 
261        /**
262         * Apple MIT License.
263         */
264        AML, 
265        /**
266         * Academy of Motion Picture Arts and Sciences BSD.
267         */
268        AMPAS, 
269        /**
270         * ANTLR Software Rights Notice.
271         */
272        ANTLRPD, 
273        /**
274         * Apache License 1.0.
275         */
276        APACHE1_0, 
277        /**
278         * Apache License 1.1.
279         */
280        APACHE1_1, 
281        /**
282         * Apache License 2.0.
283         */
284        APACHE2_0, 
285        /**
286         * Adobe Postscript AFM License.
287         */
288        APAFML, 
289        /**
290         * Adaptive Public License 1.0.
291         */
292        APL1_0, 
293        /**
294         * Apple Public Source License 1.0.
295         */
296        APSL1_0, 
297        /**
298         * Apple Public Source License 1.1.
299         */
300        APSL1_1, 
301        /**
302         * Apple Public Source License 1.2.
303         */
304        APSL1_2, 
305        /**
306         * Apple Public Source License 2.0.
307         */
308        APSL2_0, 
309        /**
310         * Artistic License 1.0 w/clause 8.
311         */
312        ARTISTIC1_0CL8, 
313        /**
314         * Artistic License 1.0 (Perl).
315         */
316        ARTISTIC1_0PERL, 
317        /**
318         * Artistic License 1.0.
319         */
320        ARTISTIC1_0, 
321        /**
322         * Artistic License 2.0.
323         */
324        ARTISTIC2_0, 
325        /**
326         * Bahyph License.
327         */
328        BAHYPH, 
329        /**
330         * Barr License.
331         */
332        BARR, 
333        /**
334         * Beerware License.
335         */
336        BEERWARE, 
337        /**
338         * BitTorrent Open Source License v1.0.
339         */
340        BITTORRENT1_0, 
341        /**
342         * BitTorrent Open Source License v1.1.
343         */
344        BITTORRENT1_1, 
345        /**
346         * Borceux license.
347         */
348        BORCEUX, 
349        /**
350         * BSD 1-Clause License.
351         */
352        BSD1CLAUSE, 
353        /**
354         * BSD 2-Clause FreeBSD License.
355         */
356        BSD2CLAUSEFREEBSD, 
357        /**
358         * BSD 2-Clause NetBSD License.
359         */
360        BSD2CLAUSENETBSD, 
361        /**
362         * BSD-2-Clause Plus Patent License.
363         */
364        BSD2CLAUSEPATENT, 
365        /**
366         * BSD 2-Clause \"Simplified\" License.
367         */
368        BSD2CLAUSE, 
369        /**
370         * BSD with attribution.
371         */
372        BSD3CLAUSEATTRIBUTION, 
373        /**
374         * BSD 3-Clause Clear License.
375         */
376        BSD3CLAUSECLEAR, 
377        /**
378         * Lawrence Berkeley National Labs BSD variant license.
379         */
380        BSD3CLAUSELBNL, 
381        /**
382         * BSD 3-Clause No Nuclear License 2014.
383         */
384        BSD3CLAUSENONUCLEARLICENSE2014, 
385        /**
386         * BSD 3-Clause No Nuclear License.
387         */
388        BSD3CLAUSENONUCLEARLICENSE, 
389        /**
390         * BSD 3-Clause No Nuclear Warranty.
391         */
392        BSD3CLAUSENONUCLEARWARRANTY, 
393        /**
394         * BSD 3-Clause \"New\" or \"Revised\" License.
395         */
396        BSD3CLAUSE, 
397        /**
398         * BSD-4-Clause (University of California-Specific).
399         */
400        BSD4CLAUSEUC, 
401        /**
402         * BSD 4-Clause \"Original\" or \"Old\" License.
403         */
404        BSD4CLAUSE, 
405        /**
406         * BSD Protection License.
407         */
408        BSDPROTECTION, 
409        /**
410         * BSD Source Code Attribution.
411         */
412        BSDSOURCECODE, 
413        /**
414         * Boost Software License 1.0.
415         */
416        BSL1_0, 
417        /**
418         * bzip2 and libbzip2 License v1.0.5.
419         */
420        BZIP21_0_5, 
421        /**
422         * bzip2 and libbzip2 License v1.0.6.
423         */
424        BZIP21_0_6, 
425        /**
426         * Caldera License.
427         */
428        CALDERA, 
429        /**
430         * Computer Associates Trusted Open Source License 1.1.
431         */
432        CATOSL1_1, 
433        /**
434         * Creative Commons Attribution 1.0 Generic.
435         */
436        CCBY1_0, 
437        /**
438         * Creative Commons Attribution 2.0 Generic.
439         */
440        CCBY2_0, 
441        /**
442         * Creative Commons Attribution 2.5 Generic.
443         */
444        CCBY2_5, 
445        /**
446         * Creative Commons Attribution 3.0 Unported.
447         */
448        CCBY3_0, 
449        /**
450         * Creative Commons Attribution 4.0 International.
451         */
452        CCBY4_0, 
453        /**
454         * Creative Commons Attribution Non Commercial 1.0 Generic.
455         */
456        CCBYNC1_0, 
457        /**
458         * Creative Commons Attribution Non Commercial 2.0 Generic.
459         */
460        CCBYNC2_0, 
461        /**
462         * Creative Commons Attribution Non Commercial 2.5 Generic.
463         */
464        CCBYNC2_5, 
465        /**
466         * Creative Commons Attribution Non Commercial 3.0 Unported.
467         */
468        CCBYNC3_0, 
469        /**
470         * Creative Commons Attribution Non Commercial 4.0 International.
471         */
472        CCBYNC4_0, 
473        /**
474         * Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic.
475         */
476        CCBYNCND1_0, 
477        /**
478         * Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic.
479         */
480        CCBYNCND2_0, 
481        /**
482         * Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic.
483         */
484        CCBYNCND2_5, 
485        /**
486         * Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported.
487         */
488        CCBYNCND3_0, 
489        /**
490         * Creative Commons Attribution Non Commercial No Derivatives 4.0 International.
491         */
492        CCBYNCND4_0, 
493        /**
494         * Creative Commons Attribution Non Commercial Share Alike 1.0 Generic.
495         */
496        CCBYNCSA1_0, 
497        /**
498         * Creative Commons Attribution Non Commercial Share Alike 2.0 Generic.
499         */
500        CCBYNCSA2_0, 
501        /**
502         * Creative Commons Attribution Non Commercial Share Alike 2.5 Generic.
503         */
504        CCBYNCSA2_5, 
505        /**
506         * Creative Commons Attribution Non Commercial Share Alike 3.0 Unported.
507         */
508        CCBYNCSA3_0, 
509        /**
510         * Creative Commons Attribution Non Commercial Share Alike 4.0 International.
511         */
512        CCBYNCSA4_0, 
513        /**
514         * Creative Commons Attribution No Derivatives 1.0 Generic.
515         */
516        CCBYND1_0, 
517        /**
518         * Creative Commons Attribution No Derivatives 2.0 Generic.
519         */
520        CCBYND2_0, 
521        /**
522         * Creative Commons Attribution No Derivatives 2.5 Generic.
523         */
524        CCBYND2_5, 
525        /**
526         * Creative Commons Attribution No Derivatives 3.0 Unported.
527         */
528        CCBYND3_0, 
529        /**
530         * Creative Commons Attribution No Derivatives 4.0 International.
531         */
532        CCBYND4_0, 
533        /**
534         * Creative Commons Attribution Share Alike 1.0 Generic.
535         */
536        CCBYSA1_0, 
537        /**
538         * Creative Commons Attribution Share Alike 2.0 Generic.
539         */
540        CCBYSA2_0, 
541        /**
542         * Creative Commons Attribution Share Alike 2.5 Generic.
543         */
544        CCBYSA2_5, 
545        /**
546         * Creative Commons Attribution Share Alike 3.0 Unported.
547         */
548        CCBYSA3_0, 
549        /**
550         * Creative Commons Attribution Share Alike 4.0 International.
551         */
552        CCBYSA4_0, 
553        /**
554         * Creative Commons Zero v1.0 Universal.
555         */
556        CC01_0, 
557        /**
558         * Common Development and Distribution License 1.0.
559         */
560        CDDL1_0, 
561        /**
562         * Common Development and Distribution License 1.1.
563         */
564        CDDL1_1, 
565        /**
566         * Community Data License Agreement Permissive 1.0.
567         */
568        CDLAPERMISSIVE1_0, 
569        /**
570         * Community Data License Agreement Sharing 1.0.
571         */
572        CDLASHARING1_0, 
573        /**
574         * CeCILL Free Software License Agreement v1.0.
575         */
576        CECILL1_0, 
577        /**
578         * CeCILL Free Software License Agreement v1.1.
579         */
580        CECILL1_1, 
581        /**
582         * CeCILL Free Software License Agreement v2.0.
583         */
584        CECILL2_0, 
585        /**
586         * CeCILL Free Software License Agreement v2.1.
587         */
588        CECILL2_1, 
589        /**
590         * CeCILL-B Free Software License Agreement.
591         */
592        CECILLB, 
593        /**
594         * CeCILL-C Free Software License Agreement.
595         */
596        CECILLC, 
597        /**
598         * Clarified Artistic License.
599         */
600        CLARTISTIC, 
601        /**
602         * CNRI Jython License.
603         */
604        CNRIJYTHON, 
605        /**
606         * CNRI Python Open Source GPL Compatible License Agreement.
607         */
608        CNRIPYTHONGPLCOMPATIBLE, 
609        /**
610         * CNRI Python License.
611         */
612        CNRIPYTHON, 
613        /**
614         * Condor Public License v1.1.
615         */
616        CONDOR1_1, 
617        /**
618         * Common Public Attribution License 1.0.
619         */
620        CPAL1_0, 
621        /**
622         * Common Public License 1.0.
623         */
624        CPL1_0, 
625        /**
626         * Code Project Open License 1.02.
627         */
628        CPOL1_02, 
629        /**
630         * Crossword License.
631         */
632        CROSSWORD, 
633        /**
634         * CrystalStacker License.
635         */
636        CRYSTALSTACKER, 
637        /**
638         * CUA Office Public License v1.0.
639         */
640        CUAOPL1_0, 
641        /**
642         * Cube License.
643         */
644        CUBE, 
645        /**
646         * curl License.
647         */
648        CURL, 
649        /**
650         * Deutsche Freie Software Lizenz.
651         */
652        DFSL1_0, 
653        /**
654         * diffmark license.
655         */
656        DIFFMARK, 
657        /**
658         * DOC License.
659         */
660        DOC, 
661        /**
662         * Dotseqn License.
663         */
664        DOTSEQN, 
665        /**
666         * DSDP License.
667         */
668        DSDP, 
669        /**
670         * dvipdfm License.
671         */
672        DVIPDFM, 
673        /**
674         * Educational Community License v1.0.
675         */
676        ECL1_0, 
677        /**
678         * Educational Community License v2.0.
679         */
680        ECL2_0, 
681        /**
682         * Eiffel Forum License v1.0.
683         */
684        EFL1_0, 
685        /**
686         * Eiffel Forum License v2.0.
687         */
688        EFL2_0, 
689        /**
690         * eGenix.com Public License 1.1.0.
691         */
692        EGENIX, 
693        /**
694         * Entessa Public License v1.0.
695         */
696        ENTESSA, 
697        /**
698         * Eclipse Public License 1.0.
699         */
700        EPL1_0, 
701        /**
702         * Eclipse Public License 2.0.
703         */
704        EPL2_0, 
705        /**
706         * Erlang Public License v1.1.
707         */
708        ERLPL1_1, 
709        /**
710         * EU DataGrid Software License.
711         */
712        EUDATAGRID, 
713        /**
714         * European Union Public License 1.0.
715         */
716        EUPL1_0, 
717        /**
718         * European Union Public License 1.1.
719         */
720        EUPL1_1, 
721        /**
722         * European Union Public License 1.2.
723         */
724        EUPL1_2, 
725        /**
726         * Eurosym License.
727         */
728        EUROSYM, 
729        /**
730         * Fair License.
731         */
732        FAIR, 
733        /**
734         * Frameworx Open License 1.0.
735         */
736        FRAMEWORX1_0, 
737        /**
738         * FreeImage Public License v1.0.
739         */
740        FREEIMAGE, 
741        /**
742         * FSF All Permissive License.
743         */
744        FSFAP, 
745        /**
746         * FSF Unlimited License.
747         */
748        FSFUL, 
749        /**
750         * FSF Unlimited License (with License Retention).
751         */
752        FSFULLR, 
753        /**
754         * Freetype Project License.
755         */
756        FTL, 
757        /**
758         * GNU Free Documentation License v1.1 only.
759         */
760        GFDL1_1ONLY, 
761        /**
762         * GNU Free Documentation License v1.1 or later.
763         */
764        GFDL1_1ORLATER, 
765        /**
766         * GNU Free Documentation License v1.2 only.
767         */
768        GFDL1_2ONLY, 
769        /**
770         * GNU Free Documentation License v1.2 or later.
771         */
772        GFDL1_2ORLATER, 
773        /**
774         * GNU Free Documentation License v1.3 only.
775         */
776        GFDL1_3ONLY, 
777        /**
778         * GNU Free Documentation License v1.3 or later.
779         */
780        GFDL1_3ORLATER, 
781        /**
782         * Giftware License.
783         */
784        GIFTWARE, 
785        /**
786         * GL2PS License.
787         */
788        GL2PS, 
789        /**
790         * 3dfx Glide License.
791         */
792        GLIDE, 
793        /**
794         * Glulxe License.
795         */
796        GLULXE, 
797        /**
798         * gnuplot License.
799         */
800        GNUPLOT, 
801        /**
802         * GNU General Public License v1.0 only.
803         */
804        GPL1_0ONLY, 
805        /**
806         * GNU General Public License v1.0 or later.
807         */
808        GPL1_0ORLATER, 
809        /**
810         * GNU General Public License v2.0 only.
811         */
812        GPL2_0ONLY, 
813        /**
814         * GNU General Public License v2.0 or later.
815         */
816        GPL2_0ORLATER, 
817        /**
818         * GNU General Public License v3.0 only.
819         */
820        GPL3_0ONLY, 
821        /**
822         * GNU General Public License v3.0 or later.
823         */
824        GPL3_0ORLATER, 
825        /**
826         * gSOAP Public License v1.3b.
827         */
828        GSOAP1_3B, 
829        /**
830         * Haskell Language Report License.
831         */
832        HASKELLREPORT, 
833        /**
834         * Historical Permission Notice and Disclaimer.
835         */
836        HPND, 
837        /**
838         * IBM PowerPC Initialization and Boot Software.
839         */
840        IBMPIBS, 
841        /**
842         * ICU License.
843         */
844        ICU, 
845        /**
846         * Independent JPEG Group License.
847         */
848        IJG, 
849        /**
850         * ImageMagick License.
851         */
852        IMAGEMAGICK, 
853        /**
854         * iMatix Standard Function Library Agreement.
855         */
856        IMATIX, 
857        /**
858         * Imlib2 License.
859         */
860        IMLIB2, 
861        /**
862         * Info-ZIP License.
863         */
864        INFOZIP, 
865        /**
866         * Intel ACPI Software License Agreement.
867         */
868        INTELACPI, 
869        /**
870         * Intel Open Source License.
871         */
872        INTEL, 
873        /**
874         * Interbase Public License v1.0.
875         */
876        INTERBASE1_0, 
877        /**
878         * IPA Font License.
879         */
880        IPA, 
881        /**
882         * IBM Public License v1.0.
883         */
884        IPL1_0, 
885        /**
886         * ISC License.
887         */
888        ISC, 
889        /**
890         * JasPer License.
891         */
892        JASPER2_0, 
893        /**
894         * JSON License.
895         */
896        JSON, 
897        /**
898         * Licence Art Libre 1.2.
899         */
900        LAL1_2, 
901        /**
902         * Licence Art Libre 1.3.
903         */
904        LAL1_3, 
905        /**
906         * Latex2e License.
907         */
908        LATEX2E, 
909        /**
910         * Leptonica License.
911         */
912        LEPTONICA, 
913        /**
914         * GNU Library General Public License v2 only.
915         */
916        LGPL2_0ONLY, 
917        /**
918         * GNU Library General Public License v2 or later.
919         */
920        LGPL2_0ORLATER, 
921        /**
922         * GNU Lesser General Public License v2.1 only.
923         */
924        LGPL2_1ONLY, 
925        /**
926         * GNU Lesser General Public License v2.1 or later.
927         */
928        LGPL2_1ORLATER, 
929        /**
930         * GNU Lesser General Public License v3.0 only.
931         */
932        LGPL3_0ONLY, 
933        /**
934         * GNU Lesser General Public License v3.0 or later.
935         */
936        LGPL3_0ORLATER, 
937        /**
938         * Lesser General Public License For Linguistic Resources.
939         */
940        LGPLLR, 
941        /**
942         * libpng License.
943         */
944        LIBPNG, 
945        /**
946         * libtiff License.
947         */
948        LIBTIFF, 
949        /**
950         * Licence Libre du Québec ? Permissive version 1.1.
951         */
952        LILIQP1_1, 
953        /**
954         * Licence Libre du Québec ? Réciprocité version 1.1.
955         */
956        LILIQR1_1, 
957        /**
958         * Licence Libre du Québec ? Réciprocité forte version 1.1.
959         */
960        LILIQRPLUS1_1, 
961        /**
962         * Linux Kernel Variant of OpenIB.org license.
963         */
964        LINUXOPENIB, 
965        /**
966         * Lucent Public License Version 1.0.
967         */
968        LPL1_0, 
969        /**
970         * Lucent Public License v1.02.
971         */
972        LPL1_02, 
973        /**
974         * LaTeX Project Public License v1.0.
975         */
976        LPPL1_0, 
977        /**
978         * LaTeX Project Public License v1.1.
979         */
980        LPPL1_1, 
981        /**
982         * LaTeX Project Public License v1.2.
983         */
984        LPPL1_2, 
985        /**
986         * LaTeX Project Public License v1.3a.
987         */
988        LPPL1_3A, 
989        /**
990         * LaTeX Project Public License v1.3c.
991         */
992        LPPL1_3C, 
993        /**
994         * MakeIndex License.
995         */
996        MAKEINDEX, 
997        /**
998         * MirOS License.
999         */
1000        MIROS, 
1001        /**
1002         * MIT No Attribution.
1003         */
1004        MIT0, 
1005        /**
1006         * Enlightenment License (e16).
1007         */
1008        MITADVERTISING, 
1009        /**
1010         * CMU License.
1011         */
1012        MITCMU, 
1013        /**
1014         * enna License.
1015         */
1016        MITENNA, 
1017        /**
1018         * feh License.
1019         */
1020        MITFEH, 
1021        /**
1022         * MIT License.
1023         */
1024        MIT, 
1025        /**
1026         * MIT +no-false-attribs license.
1027         */
1028        MITNFA, 
1029        /**
1030         * Motosoto License.
1031         */
1032        MOTOSOTO, 
1033        /**
1034         * mpich2 License.
1035         */
1036        MPICH2, 
1037        /**
1038         * Mozilla Public License 1.0.
1039         */
1040        MPL1_0, 
1041        /**
1042         * Mozilla Public License 1.1.
1043         */
1044        MPL1_1, 
1045        /**
1046         * Mozilla Public License 2.0 (no copyleft exception).
1047         */
1048        MPL2_0NOCOPYLEFTEXCEPTION, 
1049        /**
1050         * Mozilla Public License 2.0.
1051         */
1052        MPL2_0, 
1053        /**
1054         * Microsoft Public License.
1055         */
1056        MSPL, 
1057        /**
1058         * Microsoft Reciprocal License.
1059         */
1060        MSRL, 
1061        /**
1062         * Matrix Template Library License.
1063         */
1064        MTLL, 
1065        /**
1066         * Multics License.
1067         */
1068        MULTICS, 
1069        /**
1070         * Mup License.
1071         */
1072        MUP, 
1073        /**
1074         * NASA Open Source Agreement 1.3.
1075         */
1076        NASA1_3, 
1077        /**
1078         * Naumen Public License.
1079         */
1080        NAUMEN, 
1081        /**
1082         * Net Boolean Public License v1.
1083         */
1084        NBPL1_0, 
1085        /**
1086         * University of Illinois/NCSA Open Source License.
1087         */
1088        NCSA, 
1089        /**
1090         * Net-SNMP License.
1091         */
1092        NETSNMP, 
1093        /**
1094         * NetCDF license.
1095         */
1096        NETCDF, 
1097        /**
1098         * Newsletr License.
1099         */
1100        NEWSLETR, 
1101        /**
1102         * Nethack General Public License.
1103         */
1104        NGPL, 
1105        /**
1106         * Norwegian Licence for Open Government Data.
1107         */
1108        NLOD1_0, 
1109        /**
1110         * No Limit Public License.
1111         */
1112        NLPL, 
1113        /**
1114         * Nokia Open Source License.
1115         */
1116        NOKIA, 
1117        /**
1118         * Netizen Open Source License.
1119         */
1120        NOSL, 
1121        /**
1122         * Noweb License.
1123         */
1124        NOWEB, 
1125        /**
1126         * Netscape Public License v1.0.
1127         */
1128        NPL1_0, 
1129        /**
1130         * Netscape Public License v1.1.
1131         */
1132        NPL1_1, 
1133        /**
1134         * Non-Profit Open Software License 3.0.
1135         */
1136        NPOSL3_0, 
1137        /**
1138         * NRL License.
1139         */
1140        NRL, 
1141        /**
1142         * NTP License.
1143         */
1144        NTP, 
1145        /**
1146         * Open CASCADE Technology Public License.
1147         */
1148        OCCTPL, 
1149        /**
1150         * OCLC Research Public License 2.0.
1151         */
1152        OCLC2_0, 
1153        /**
1154         * ODC Open Database License v1.0.
1155         */
1156        ODBL1_0, 
1157        /**
1158         * SIL Open Font License 1.0.
1159         */
1160        OFL1_0, 
1161        /**
1162         * SIL Open Font License 1.1.
1163         */
1164        OFL1_1, 
1165        /**
1166         * Open Group Test Suite License.
1167         */
1168        OGTSL, 
1169        /**
1170         * Open LDAP Public License v1.1.
1171         */
1172        OLDAP1_1, 
1173        /**
1174         * Open LDAP Public License v1.2.
1175         */
1176        OLDAP1_2, 
1177        /**
1178         * Open LDAP Public License v1.3.
1179         */
1180        OLDAP1_3, 
1181        /**
1182         * Open LDAP Public License v1.4.
1183         */
1184        OLDAP1_4, 
1185        /**
1186         * Open LDAP Public License v2.0.1.
1187         */
1188        OLDAP2_0_1, 
1189        /**
1190         * Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B).
1191         */
1192        OLDAP2_0, 
1193        /**
1194         * Open LDAP Public License v2.1.
1195         */
1196        OLDAP2_1, 
1197        /**
1198         * Open LDAP Public License v2.2.1.
1199         */
1200        OLDAP2_2_1, 
1201        /**
1202         * Open LDAP Public License 2.2.2.
1203         */
1204        OLDAP2_2_2, 
1205        /**
1206         * Open LDAP Public License v2.2.
1207         */
1208        OLDAP2_2, 
1209        /**
1210         * Open LDAP Public License v2.3.
1211         */
1212        OLDAP2_3, 
1213        /**
1214         * Open LDAP Public License v2.4.
1215         */
1216        OLDAP2_4, 
1217        /**
1218         * Open LDAP Public License v2.5.
1219         */
1220        OLDAP2_5, 
1221        /**
1222         * Open LDAP Public License v2.6.
1223         */
1224        OLDAP2_6, 
1225        /**
1226         * Open LDAP Public License v2.7.
1227         */
1228        OLDAP2_7, 
1229        /**
1230         * Open LDAP Public License v2.8.
1231         */
1232        OLDAP2_8, 
1233        /**
1234         * Open Market License.
1235         */
1236        OML, 
1237        /**
1238         * OpenSSL License.
1239         */
1240        OPENSSL, 
1241        /**
1242         * Open Public License v1.0.
1243         */
1244        OPL1_0, 
1245        /**
1246         * OSET Public License version 2.1.
1247         */
1248        OSETPL2_1, 
1249        /**
1250         * Open Software License 1.0.
1251         */
1252        OSL1_0, 
1253        /**
1254         * Open Software License 1.1.
1255         */
1256        OSL1_1, 
1257        /**
1258         * Open Software License 2.0.
1259         */
1260        OSL2_0, 
1261        /**
1262         * Open Software License 2.1.
1263         */
1264        OSL2_1, 
1265        /**
1266         * Open Software License 3.0.
1267         */
1268        OSL3_0, 
1269        /**
1270         * ODC Public Domain Dedication & License 1.0.
1271         */
1272        PDDL1_0, 
1273        /**
1274         * PHP License v3.0.
1275         */
1276        PHP3_0, 
1277        /**
1278         * PHP License v3.01.
1279         */
1280        PHP3_01, 
1281        /**
1282         * Plexus Classworlds License.
1283         */
1284        PLEXUS, 
1285        /**
1286         * PostgreSQL License.
1287         */
1288        POSTGRESQL, 
1289        /**
1290         * psfrag License.
1291         */
1292        PSFRAG, 
1293        /**
1294         * psutils License.
1295         */
1296        PSUTILS, 
1297        /**
1298         * Python License 2.0.
1299         */
1300        PYTHON2_0, 
1301        /**
1302         * Qhull License.
1303         */
1304        QHULL, 
1305        /**
1306         * Q Public License 1.0.
1307         */
1308        QPL1_0, 
1309        /**
1310         * Rdisc License.
1311         */
1312        RDISC, 
1313        /**
1314         * Red Hat eCos Public License v1.1.
1315         */
1316        RHECOS1_1, 
1317        /**
1318         * Reciprocal Public License 1.1.
1319         */
1320        RPL1_1, 
1321        /**
1322         * Reciprocal Public License 1.5.
1323         */
1324        RPL1_5, 
1325        /**
1326         * RealNetworks Public Source License v1.0.
1327         */
1328        RPSL1_0, 
1329        /**
1330         * RSA Message-Digest License.
1331         */
1332        RSAMD, 
1333        /**
1334         * Ricoh Source Code Public License.
1335         */
1336        RSCPL, 
1337        /**
1338         * Ruby License.
1339         */
1340        RUBY, 
1341        /**
1342         * Sax Public Domain Notice.
1343         */
1344        SAXPD, 
1345        /**
1346         * Saxpath License.
1347         */
1348        SAXPATH, 
1349        /**
1350         * SCEA Shared Source License.
1351         */
1352        SCEA, 
1353        /**
1354         * Sendmail License.
1355         */
1356        SENDMAIL, 
1357        /**
1358         * SGI Free Software License B v1.0.
1359         */
1360        SGIB1_0, 
1361        /**
1362         * SGI Free Software License B v1.1.
1363         */
1364        SGIB1_1, 
1365        /**
1366         * SGI Free Software License B v2.0.
1367         */
1368        SGIB2_0, 
1369        /**
1370         * Simple Public License 2.0.
1371         */
1372        SIMPL2_0, 
1373        /**
1374         * Sun Industry Standards Source License v1.2.
1375         */
1376        SISSL1_2, 
1377        /**
1378         * Sun Industry Standards Source License v1.1.
1379         */
1380        SISSL, 
1381        /**
1382         * Sleepycat License.
1383         */
1384        SLEEPYCAT, 
1385        /**
1386         * Standard ML of New Jersey License.
1387         */
1388        SMLNJ, 
1389        /**
1390         * Secure Messaging Protocol Public License.
1391         */
1392        SMPPL, 
1393        /**
1394         * SNIA Public License 1.1.
1395         */
1396        SNIA, 
1397        /**
1398         * Spencer License 86.
1399         */
1400        SPENCER86, 
1401        /**
1402         * Spencer License 94.
1403         */
1404        SPENCER94, 
1405        /**
1406         * Spencer License 99.
1407         */
1408        SPENCER99, 
1409        /**
1410         * Sun Public License v1.0.
1411         */
1412        SPL1_0, 
1413        /**
1414         * SugarCRM Public License v1.1.3.
1415         */
1416        SUGARCRM1_1_3, 
1417        /**
1418         * Scheme Widget Library (SWL) Software License Agreement.
1419         */
1420        SWL, 
1421        /**
1422         * TCL/TK License.
1423         */
1424        TCL, 
1425        /**
1426         * TCP Wrappers License.
1427         */
1428        TCPWRAPPERS, 
1429        /**
1430         * TMate Open Source License.
1431         */
1432        TMATE, 
1433        /**
1434         * TORQUE v2.5+ Software License v1.1.
1435         */
1436        TORQUE1_1, 
1437        /**
1438         * Trusster Open Source License.
1439         */
1440        TOSL, 
1441        /**
1442         * Unicode License Agreement - Data Files and Software (2015).
1443         */
1444        UNICODEDFS2015, 
1445        /**
1446         * Unicode License Agreement - Data Files and Software (2016).
1447         */
1448        UNICODEDFS2016, 
1449        /**
1450         * Unicode Terms of Use.
1451         */
1452        UNICODETOU, 
1453        /**
1454         * The Unlicense.
1455         */
1456        UNLICENSE, 
1457        /**
1458         * Universal Permissive License v1.0.
1459         */
1460        UPL1_0, 
1461        /**
1462         * Vim License.
1463         */
1464        VIM, 
1465        /**
1466         * VOSTROM Public License for Open Source.
1467         */
1468        VOSTROM, 
1469        /**
1470         * Vovida Software License v1.0.
1471         */
1472        VSL1_0, 
1473        /**
1474         * W3C Software Notice and License (1998-07-20).
1475         */
1476        W3C19980720, 
1477        /**
1478         * W3C Software Notice and Document License (2015-05-13).
1479         */
1480        W3C20150513, 
1481        /**
1482         * W3C Software Notice and License (2002-12-31).
1483         */
1484        W3C, 
1485        /**
1486         * Sybase Open Watcom Public License 1.0.
1487         */
1488        WATCOM1_0, 
1489        /**
1490         * Wsuipa License.
1491         */
1492        WSUIPA, 
1493        /**
1494         * Do What The F*ck You Want To Public License.
1495         */
1496        WTFPL, 
1497        /**
1498         * X11 License.
1499         */
1500        X11, 
1501        /**
1502         * Xerox License.
1503         */
1504        XEROX, 
1505        /**
1506         * XFree86 License 1.1.
1507         */
1508        XFREE861_1, 
1509        /**
1510         * xinetd License.
1511         */
1512        XINETD, 
1513        /**
1514         * X.Net License.
1515         */
1516        XNET, 
1517        /**
1518         * XPP License.
1519         */
1520        XPP, 
1521        /**
1522         * XSkat License.
1523         */
1524        XSKAT, 
1525        /**
1526         * Yahoo! Public License v1.0.
1527         */
1528        YPL1_0, 
1529        /**
1530         * Yahoo! Public License v1.1.
1531         */
1532        YPL1_1, 
1533        /**
1534         * Zed License.
1535         */
1536        ZED, 
1537        /**
1538         * Zend License v2.0.
1539         */
1540        ZEND2_0, 
1541        /**
1542         * Zimbra Public License v1.3.
1543         */
1544        ZIMBRA1_3, 
1545        /**
1546         * Zimbra Public License v1.4.
1547         */
1548        ZIMBRA1_4, 
1549        /**
1550         * zlib/libpng License with Acknowledgement.
1551         */
1552        ZLIBACKNOWLEDGEMENT, 
1553        /**
1554         * zlib License.
1555         */
1556        ZLIB, 
1557        /**
1558         * Zope Public License 1.1.
1559         */
1560        ZPL1_1, 
1561        /**
1562         * Zope Public License 2.0.
1563         */
1564        ZPL2_0, 
1565        /**
1566         * Zope Public License 2.1.
1567         */
1568        ZPL2_1, 
1569        /**
1570         * added to help the parsers with the generic types
1571         */
1572        NULL;
1573        public static SPDXLicense fromCode(String codeString) throws FHIRException {
1574            if (codeString == null || "".equals(codeString))
1575                return null;
1576        if ("not-open-source".equals(codeString))
1577          return NOTOPENSOURCE;
1578        if ("0BSD".equals(codeString))
1579          return _0BSD;
1580        if ("AAL".equals(codeString))
1581          return AAL;
1582        if ("Abstyles".equals(codeString))
1583          return ABSTYLES;
1584        if ("Adobe-2006".equals(codeString))
1585          return ADOBE2006;
1586        if ("Adobe-Glyph".equals(codeString))
1587          return ADOBEGLYPH;
1588        if ("ADSL".equals(codeString))
1589          return ADSL;
1590        if ("AFL-1.1".equals(codeString))
1591          return AFL1_1;
1592        if ("AFL-1.2".equals(codeString))
1593          return AFL1_2;
1594        if ("AFL-2.0".equals(codeString))
1595          return AFL2_0;
1596        if ("AFL-2.1".equals(codeString))
1597          return AFL2_1;
1598        if ("AFL-3.0".equals(codeString))
1599          return AFL3_0;
1600        if ("Afmparse".equals(codeString))
1601          return AFMPARSE;
1602        if ("AGPL-1.0-only".equals(codeString))
1603          return AGPL1_0ONLY;
1604        if ("AGPL-1.0-or-later".equals(codeString))
1605          return AGPL1_0ORLATER;
1606        if ("AGPL-3.0-only".equals(codeString))
1607          return AGPL3_0ONLY;
1608        if ("AGPL-3.0-or-later".equals(codeString))
1609          return AGPL3_0ORLATER;
1610        if ("Aladdin".equals(codeString))
1611          return ALADDIN;
1612        if ("AMDPLPA".equals(codeString))
1613          return AMDPLPA;
1614        if ("AML".equals(codeString))
1615          return AML;
1616        if ("AMPAS".equals(codeString))
1617          return AMPAS;
1618        if ("ANTLR-PD".equals(codeString))
1619          return ANTLRPD;
1620        if ("Apache-1.0".equals(codeString))
1621          return APACHE1_0;
1622        if ("Apache-1.1".equals(codeString))
1623          return APACHE1_1;
1624        if ("Apache-2.0".equals(codeString))
1625          return APACHE2_0;
1626        if ("APAFML".equals(codeString))
1627          return APAFML;
1628        if ("APL-1.0".equals(codeString))
1629          return APL1_0;
1630        if ("APSL-1.0".equals(codeString))
1631          return APSL1_0;
1632        if ("APSL-1.1".equals(codeString))
1633          return APSL1_1;
1634        if ("APSL-1.2".equals(codeString))
1635          return APSL1_2;
1636        if ("APSL-2.0".equals(codeString))
1637          return APSL2_0;
1638        if ("Artistic-1.0-cl8".equals(codeString))
1639          return ARTISTIC1_0CL8;
1640        if ("Artistic-1.0-Perl".equals(codeString))
1641          return ARTISTIC1_0PERL;
1642        if ("Artistic-1.0".equals(codeString))
1643          return ARTISTIC1_0;
1644        if ("Artistic-2.0".equals(codeString))
1645          return ARTISTIC2_0;
1646        if ("Bahyph".equals(codeString))
1647          return BAHYPH;
1648        if ("Barr".equals(codeString))
1649          return BARR;
1650        if ("Beerware".equals(codeString))
1651          return BEERWARE;
1652        if ("BitTorrent-1.0".equals(codeString))
1653          return BITTORRENT1_0;
1654        if ("BitTorrent-1.1".equals(codeString))
1655          return BITTORRENT1_1;
1656        if ("Borceux".equals(codeString))
1657          return BORCEUX;
1658        if ("BSD-1-Clause".equals(codeString))
1659          return BSD1CLAUSE;
1660        if ("BSD-2-Clause-FreeBSD".equals(codeString))
1661          return BSD2CLAUSEFREEBSD;
1662        if ("BSD-2-Clause-NetBSD".equals(codeString))
1663          return BSD2CLAUSENETBSD;
1664        if ("BSD-2-Clause-Patent".equals(codeString))
1665          return BSD2CLAUSEPATENT;
1666        if ("BSD-2-Clause".equals(codeString))
1667          return BSD2CLAUSE;
1668        if ("BSD-3-Clause-Attribution".equals(codeString))
1669          return BSD3CLAUSEATTRIBUTION;
1670        if ("BSD-3-Clause-Clear".equals(codeString))
1671          return BSD3CLAUSECLEAR;
1672        if ("BSD-3-Clause-LBNL".equals(codeString))
1673          return BSD3CLAUSELBNL;
1674        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
1675          return BSD3CLAUSENONUCLEARLICENSE2014;
1676        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
1677          return BSD3CLAUSENONUCLEARLICENSE;
1678        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
1679          return BSD3CLAUSENONUCLEARWARRANTY;
1680        if ("BSD-3-Clause".equals(codeString))
1681          return BSD3CLAUSE;
1682        if ("BSD-4-Clause-UC".equals(codeString))
1683          return BSD4CLAUSEUC;
1684        if ("BSD-4-Clause".equals(codeString))
1685          return BSD4CLAUSE;
1686        if ("BSD-Protection".equals(codeString))
1687          return BSDPROTECTION;
1688        if ("BSD-Source-Code".equals(codeString))
1689          return BSDSOURCECODE;
1690        if ("BSL-1.0".equals(codeString))
1691          return BSL1_0;
1692        if ("bzip2-1.0.5".equals(codeString))
1693          return BZIP21_0_5;
1694        if ("bzip2-1.0.6".equals(codeString))
1695          return BZIP21_0_6;
1696        if ("Caldera".equals(codeString))
1697          return CALDERA;
1698        if ("CATOSL-1.1".equals(codeString))
1699          return CATOSL1_1;
1700        if ("CC-BY-1.0".equals(codeString))
1701          return CCBY1_0;
1702        if ("CC-BY-2.0".equals(codeString))
1703          return CCBY2_0;
1704        if ("CC-BY-2.5".equals(codeString))
1705          return CCBY2_5;
1706        if ("CC-BY-3.0".equals(codeString))
1707          return CCBY3_0;
1708        if ("CC-BY-4.0".equals(codeString))
1709          return CCBY4_0;
1710        if ("CC-BY-NC-1.0".equals(codeString))
1711          return CCBYNC1_0;
1712        if ("CC-BY-NC-2.0".equals(codeString))
1713          return CCBYNC2_0;
1714        if ("CC-BY-NC-2.5".equals(codeString))
1715          return CCBYNC2_5;
1716        if ("CC-BY-NC-3.0".equals(codeString))
1717          return CCBYNC3_0;
1718        if ("CC-BY-NC-4.0".equals(codeString))
1719          return CCBYNC4_0;
1720        if ("CC-BY-NC-ND-1.0".equals(codeString))
1721          return CCBYNCND1_0;
1722        if ("CC-BY-NC-ND-2.0".equals(codeString))
1723          return CCBYNCND2_0;
1724        if ("CC-BY-NC-ND-2.5".equals(codeString))
1725          return CCBYNCND2_5;
1726        if ("CC-BY-NC-ND-3.0".equals(codeString))
1727          return CCBYNCND3_0;
1728        if ("CC-BY-NC-ND-4.0".equals(codeString))
1729          return CCBYNCND4_0;
1730        if ("CC-BY-NC-SA-1.0".equals(codeString))
1731          return CCBYNCSA1_0;
1732        if ("CC-BY-NC-SA-2.0".equals(codeString))
1733          return CCBYNCSA2_0;
1734        if ("CC-BY-NC-SA-2.5".equals(codeString))
1735          return CCBYNCSA2_5;
1736        if ("CC-BY-NC-SA-3.0".equals(codeString))
1737          return CCBYNCSA3_0;
1738        if ("CC-BY-NC-SA-4.0".equals(codeString))
1739          return CCBYNCSA4_0;
1740        if ("CC-BY-ND-1.0".equals(codeString))
1741          return CCBYND1_0;
1742        if ("CC-BY-ND-2.0".equals(codeString))
1743          return CCBYND2_0;
1744        if ("CC-BY-ND-2.5".equals(codeString))
1745          return CCBYND2_5;
1746        if ("CC-BY-ND-3.0".equals(codeString))
1747          return CCBYND3_0;
1748        if ("CC-BY-ND-4.0".equals(codeString))
1749          return CCBYND4_0;
1750        if ("CC-BY-SA-1.0".equals(codeString))
1751          return CCBYSA1_0;
1752        if ("CC-BY-SA-2.0".equals(codeString))
1753          return CCBYSA2_0;
1754        if ("CC-BY-SA-2.5".equals(codeString))
1755          return CCBYSA2_5;
1756        if ("CC-BY-SA-3.0".equals(codeString))
1757          return CCBYSA3_0;
1758        if ("CC-BY-SA-4.0".equals(codeString))
1759          return CCBYSA4_0;
1760        if ("CC0-1.0".equals(codeString))
1761          return CC01_0;
1762        if ("CDDL-1.0".equals(codeString))
1763          return CDDL1_0;
1764        if ("CDDL-1.1".equals(codeString))
1765          return CDDL1_1;
1766        if ("CDLA-Permissive-1.0".equals(codeString))
1767          return CDLAPERMISSIVE1_0;
1768        if ("CDLA-Sharing-1.0".equals(codeString))
1769          return CDLASHARING1_0;
1770        if ("CECILL-1.0".equals(codeString))
1771          return CECILL1_0;
1772        if ("CECILL-1.1".equals(codeString))
1773          return CECILL1_1;
1774        if ("CECILL-2.0".equals(codeString))
1775          return CECILL2_0;
1776        if ("CECILL-2.1".equals(codeString))
1777          return CECILL2_1;
1778        if ("CECILL-B".equals(codeString))
1779          return CECILLB;
1780        if ("CECILL-C".equals(codeString))
1781          return CECILLC;
1782        if ("ClArtistic".equals(codeString))
1783          return CLARTISTIC;
1784        if ("CNRI-Jython".equals(codeString))
1785          return CNRIJYTHON;
1786        if ("CNRI-Python-GPL-Compatible".equals(codeString))
1787          return CNRIPYTHONGPLCOMPATIBLE;
1788        if ("CNRI-Python".equals(codeString))
1789          return CNRIPYTHON;
1790        if ("Condor-1.1".equals(codeString))
1791          return CONDOR1_1;
1792        if ("CPAL-1.0".equals(codeString))
1793          return CPAL1_0;
1794        if ("CPL-1.0".equals(codeString))
1795          return CPL1_0;
1796        if ("CPOL-1.02".equals(codeString))
1797          return CPOL1_02;
1798        if ("Crossword".equals(codeString))
1799          return CROSSWORD;
1800        if ("CrystalStacker".equals(codeString))
1801          return CRYSTALSTACKER;
1802        if ("CUA-OPL-1.0".equals(codeString))
1803          return CUAOPL1_0;
1804        if ("Cube".equals(codeString))
1805          return CUBE;
1806        if ("curl".equals(codeString))
1807          return CURL;
1808        if ("D-FSL-1.0".equals(codeString))
1809          return DFSL1_0;
1810        if ("diffmark".equals(codeString))
1811          return DIFFMARK;
1812        if ("DOC".equals(codeString))
1813          return DOC;
1814        if ("Dotseqn".equals(codeString))
1815          return DOTSEQN;
1816        if ("DSDP".equals(codeString))
1817          return DSDP;
1818        if ("dvipdfm".equals(codeString))
1819          return DVIPDFM;
1820        if ("ECL-1.0".equals(codeString))
1821          return ECL1_0;
1822        if ("ECL-2.0".equals(codeString))
1823          return ECL2_0;
1824        if ("EFL-1.0".equals(codeString))
1825          return EFL1_0;
1826        if ("EFL-2.0".equals(codeString))
1827          return EFL2_0;
1828        if ("eGenix".equals(codeString))
1829          return EGENIX;
1830        if ("Entessa".equals(codeString))
1831          return ENTESSA;
1832        if ("EPL-1.0".equals(codeString))
1833          return EPL1_0;
1834        if ("EPL-2.0".equals(codeString))
1835          return EPL2_0;
1836        if ("ErlPL-1.1".equals(codeString))
1837          return ERLPL1_1;
1838        if ("EUDatagrid".equals(codeString))
1839          return EUDATAGRID;
1840        if ("EUPL-1.0".equals(codeString))
1841          return EUPL1_0;
1842        if ("EUPL-1.1".equals(codeString))
1843          return EUPL1_1;
1844        if ("EUPL-1.2".equals(codeString))
1845          return EUPL1_2;
1846        if ("Eurosym".equals(codeString))
1847          return EUROSYM;
1848        if ("Fair".equals(codeString))
1849          return FAIR;
1850        if ("Frameworx-1.0".equals(codeString))
1851          return FRAMEWORX1_0;
1852        if ("FreeImage".equals(codeString))
1853          return FREEIMAGE;
1854        if ("FSFAP".equals(codeString))
1855          return FSFAP;
1856        if ("FSFUL".equals(codeString))
1857          return FSFUL;
1858        if ("FSFULLR".equals(codeString))
1859          return FSFULLR;
1860        if ("FTL".equals(codeString))
1861          return FTL;
1862        if ("GFDL-1.1-only".equals(codeString))
1863          return GFDL1_1ONLY;
1864        if ("GFDL-1.1-or-later".equals(codeString))
1865          return GFDL1_1ORLATER;
1866        if ("GFDL-1.2-only".equals(codeString))
1867          return GFDL1_2ONLY;
1868        if ("GFDL-1.2-or-later".equals(codeString))
1869          return GFDL1_2ORLATER;
1870        if ("GFDL-1.3-only".equals(codeString))
1871          return GFDL1_3ONLY;
1872        if ("GFDL-1.3-or-later".equals(codeString))
1873          return GFDL1_3ORLATER;
1874        if ("Giftware".equals(codeString))
1875          return GIFTWARE;
1876        if ("GL2PS".equals(codeString))
1877          return GL2PS;
1878        if ("Glide".equals(codeString))
1879          return GLIDE;
1880        if ("Glulxe".equals(codeString))
1881          return GLULXE;
1882        if ("gnuplot".equals(codeString))
1883          return GNUPLOT;
1884        if ("GPL-1.0-only".equals(codeString))
1885          return GPL1_0ONLY;
1886        if ("GPL-1.0-or-later".equals(codeString))
1887          return GPL1_0ORLATER;
1888        if ("GPL-2.0-only".equals(codeString))
1889          return GPL2_0ONLY;
1890        if ("GPL-2.0-or-later".equals(codeString))
1891          return GPL2_0ORLATER;
1892        if ("GPL-3.0-only".equals(codeString))
1893          return GPL3_0ONLY;
1894        if ("GPL-3.0-or-later".equals(codeString))
1895          return GPL3_0ORLATER;
1896        if ("gSOAP-1.3b".equals(codeString))
1897          return GSOAP1_3B;
1898        if ("HaskellReport".equals(codeString))
1899          return HASKELLREPORT;
1900        if ("HPND".equals(codeString))
1901          return HPND;
1902        if ("IBM-pibs".equals(codeString))
1903          return IBMPIBS;
1904        if ("ICU".equals(codeString))
1905          return ICU;
1906        if ("IJG".equals(codeString))
1907          return IJG;
1908        if ("ImageMagick".equals(codeString))
1909          return IMAGEMAGICK;
1910        if ("iMatix".equals(codeString))
1911          return IMATIX;
1912        if ("Imlib2".equals(codeString))
1913          return IMLIB2;
1914        if ("Info-ZIP".equals(codeString))
1915          return INFOZIP;
1916        if ("Intel-ACPI".equals(codeString))
1917          return INTELACPI;
1918        if ("Intel".equals(codeString))
1919          return INTEL;
1920        if ("Interbase-1.0".equals(codeString))
1921          return INTERBASE1_0;
1922        if ("IPA".equals(codeString))
1923          return IPA;
1924        if ("IPL-1.0".equals(codeString))
1925          return IPL1_0;
1926        if ("ISC".equals(codeString))
1927          return ISC;
1928        if ("JasPer-2.0".equals(codeString))
1929          return JASPER2_0;
1930        if ("JSON".equals(codeString))
1931          return JSON;
1932        if ("LAL-1.2".equals(codeString))
1933          return LAL1_2;
1934        if ("LAL-1.3".equals(codeString))
1935          return LAL1_3;
1936        if ("Latex2e".equals(codeString))
1937          return LATEX2E;
1938        if ("Leptonica".equals(codeString))
1939          return LEPTONICA;
1940        if ("LGPL-2.0-only".equals(codeString))
1941          return LGPL2_0ONLY;
1942        if ("LGPL-2.0-or-later".equals(codeString))
1943          return LGPL2_0ORLATER;
1944        if ("LGPL-2.1-only".equals(codeString))
1945          return LGPL2_1ONLY;
1946        if ("LGPL-2.1-or-later".equals(codeString))
1947          return LGPL2_1ORLATER;
1948        if ("LGPL-3.0-only".equals(codeString))
1949          return LGPL3_0ONLY;
1950        if ("LGPL-3.0-or-later".equals(codeString))
1951          return LGPL3_0ORLATER;
1952        if ("LGPLLR".equals(codeString))
1953          return LGPLLR;
1954        if ("Libpng".equals(codeString))
1955          return LIBPNG;
1956        if ("libtiff".equals(codeString))
1957          return LIBTIFF;
1958        if ("LiLiQ-P-1.1".equals(codeString))
1959          return LILIQP1_1;
1960        if ("LiLiQ-R-1.1".equals(codeString))
1961          return LILIQR1_1;
1962        if ("LiLiQ-Rplus-1.1".equals(codeString))
1963          return LILIQRPLUS1_1;
1964        if ("Linux-OpenIB".equals(codeString))
1965          return LINUXOPENIB;
1966        if ("LPL-1.0".equals(codeString))
1967          return LPL1_0;
1968        if ("LPL-1.02".equals(codeString))
1969          return LPL1_02;
1970        if ("LPPL-1.0".equals(codeString))
1971          return LPPL1_0;
1972        if ("LPPL-1.1".equals(codeString))
1973          return LPPL1_1;
1974        if ("LPPL-1.2".equals(codeString))
1975          return LPPL1_2;
1976        if ("LPPL-1.3a".equals(codeString))
1977          return LPPL1_3A;
1978        if ("LPPL-1.3c".equals(codeString))
1979          return LPPL1_3C;
1980        if ("MakeIndex".equals(codeString))
1981          return MAKEINDEX;
1982        if ("MirOS".equals(codeString))
1983          return MIROS;
1984        if ("MIT-0".equals(codeString))
1985          return MIT0;
1986        if ("MIT-advertising".equals(codeString))
1987          return MITADVERTISING;
1988        if ("MIT-CMU".equals(codeString))
1989          return MITCMU;
1990        if ("MIT-enna".equals(codeString))
1991          return MITENNA;
1992        if ("MIT-feh".equals(codeString))
1993          return MITFEH;
1994        if ("MIT".equals(codeString))
1995          return MIT;
1996        if ("MITNFA".equals(codeString))
1997          return MITNFA;
1998        if ("Motosoto".equals(codeString))
1999          return MOTOSOTO;
2000        if ("mpich2".equals(codeString))
2001          return MPICH2;
2002        if ("MPL-1.0".equals(codeString))
2003          return MPL1_0;
2004        if ("MPL-1.1".equals(codeString))
2005          return MPL1_1;
2006        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
2007          return MPL2_0NOCOPYLEFTEXCEPTION;
2008        if ("MPL-2.0".equals(codeString))
2009          return MPL2_0;
2010        if ("MS-PL".equals(codeString))
2011          return MSPL;
2012        if ("MS-RL".equals(codeString))
2013          return MSRL;
2014        if ("MTLL".equals(codeString))
2015          return MTLL;
2016        if ("Multics".equals(codeString))
2017          return MULTICS;
2018        if ("Mup".equals(codeString))
2019          return MUP;
2020        if ("NASA-1.3".equals(codeString))
2021          return NASA1_3;
2022        if ("Naumen".equals(codeString))
2023          return NAUMEN;
2024        if ("NBPL-1.0".equals(codeString))
2025          return NBPL1_0;
2026        if ("NCSA".equals(codeString))
2027          return NCSA;
2028        if ("Net-SNMP".equals(codeString))
2029          return NETSNMP;
2030        if ("NetCDF".equals(codeString))
2031          return NETCDF;
2032        if ("Newsletr".equals(codeString))
2033          return NEWSLETR;
2034        if ("NGPL".equals(codeString))
2035          return NGPL;
2036        if ("NLOD-1.0".equals(codeString))
2037          return NLOD1_0;
2038        if ("NLPL".equals(codeString))
2039          return NLPL;
2040        if ("Nokia".equals(codeString))
2041          return NOKIA;
2042        if ("NOSL".equals(codeString))
2043          return NOSL;
2044        if ("Noweb".equals(codeString))
2045          return NOWEB;
2046        if ("NPL-1.0".equals(codeString))
2047          return NPL1_0;
2048        if ("NPL-1.1".equals(codeString))
2049          return NPL1_1;
2050        if ("NPOSL-3.0".equals(codeString))
2051          return NPOSL3_0;
2052        if ("NRL".equals(codeString))
2053          return NRL;
2054        if ("NTP".equals(codeString))
2055          return NTP;
2056        if ("OCCT-PL".equals(codeString))
2057          return OCCTPL;
2058        if ("OCLC-2.0".equals(codeString))
2059          return OCLC2_0;
2060        if ("ODbL-1.0".equals(codeString))
2061          return ODBL1_0;
2062        if ("OFL-1.0".equals(codeString))
2063          return OFL1_0;
2064        if ("OFL-1.1".equals(codeString))
2065          return OFL1_1;
2066        if ("OGTSL".equals(codeString))
2067          return OGTSL;
2068        if ("OLDAP-1.1".equals(codeString))
2069          return OLDAP1_1;
2070        if ("OLDAP-1.2".equals(codeString))
2071          return OLDAP1_2;
2072        if ("OLDAP-1.3".equals(codeString))
2073          return OLDAP1_3;
2074        if ("OLDAP-1.4".equals(codeString))
2075          return OLDAP1_4;
2076        if ("OLDAP-2.0.1".equals(codeString))
2077          return OLDAP2_0_1;
2078        if ("OLDAP-2.0".equals(codeString))
2079          return OLDAP2_0;
2080        if ("OLDAP-2.1".equals(codeString))
2081          return OLDAP2_1;
2082        if ("OLDAP-2.2.1".equals(codeString))
2083          return OLDAP2_2_1;
2084        if ("OLDAP-2.2.2".equals(codeString))
2085          return OLDAP2_2_2;
2086        if ("OLDAP-2.2".equals(codeString))
2087          return OLDAP2_2;
2088        if ("OLDAP-2.3".equals(codeString))
2089          return OLDAP2_3;
2090        if ("OLDAP-2.4".equals(codeString))
2091          return OLDAP2_4;
2092        if ("OLDAP-2.5".equals(codeString))
2093          return OLDAP2_5;
2094        if ("OLDAP-2.6".equals(codeString))
2095          return OLDAP2_6;
2096        if ("OLDAP-2.7".equals(codeString))
2097          return OLDAP2_7;
2098        if ("OLDAP-2.8".equals(codeString))
2099          return OLDAP2_8;
2100        if ("OML".equals(codeString))
2101          return OML;
2102        if ("OpenSSL".equals(codeString))
2103          return OPENSSL;
2104        if ("OPL-1.0".equals(codeString))
2105          return OPL1_0;
2106        if ("OSET-PL-2.1".equals(codeString))
2107          return OSETPL2_1;
2108        if ("OSL-1.0".equals(codeString))
2109          return OSL1_0;
2110        if ("OSL-1.1".equals(codeString))
2111          return OSL1_1;
2112        if ("OSL-2.0".equals(codeString))
2113          return OSL2_0;
2114        if ("OSL-2.1".equals(codeString))
2115          return OSL2_1;
2116        if ("OSL-3.0".equals(codeString))
2117          return OSL3_0;
2118        if ("PDDL-1.0".equals(codeString))
2119          return PDDL1_0;
2120        if ("PHP-3.0".equals(codeString))
2121          return PHP3_0;
2122        if ("PHP-3.01".equals(codeString))
2123          return PHP3_01;
2124        if ("Plexus".equals(codeString))
2125          return PLEXUS;
2126        if ("PostgreSQL".equals(codeString))
2127          return POSTGRESQL;
2128        if ("psfrag".equals(codeString))
2129          return PSFRAG;
2130        if ("psutils".equals(codeString))
2131          return PSUTILS;
2132        if ("Python-2.0".equals(codeString))
2133          return PYTHON2_0;
2134        if ("Qhull".equals(codeString))
2135          return QHULL;
2136        if ("QPL-1.0".equals(codeString))
2137          return QPL1_0;
2138        if ("Rdisc".equals(codeString))
2139          return RDISC;
2140        if ("RHeCos-1.1".equals(codeString))
2141          return RHECOS1_1;
2142        if ("RPL-1.1".equals(codeString))
2143          return RPL1_1;
2144        if ("RPL-1.5".equals(codeString))
2145          return RPL1_5;
2146        if ("RPSL-1.0".equals(codeString))
2147          return RPSL1_0;
2148        if ("RSA-MD".equals(codeString))
2149          return RSAMD;
2150        if ("RSCPL".equals(codeString))
2151          return RSCPL;
2152        if ("Ruby".equals(codeString))
2153          return RUBY;
2154        if ("SAX-PD".equals(codeString))
2155          return SAXPD;
2156        if ("Saxpath".equals(codeString))
2157          return SAXPATH;
2158        if ("SCEA".equals(codeString))
2159          return SCEA;
2160        if ("Sendmail".equals(codeString))
2161          return SENDMAIL;
2162        if ("SGI-B-1.0".equals(codeString))
2163          return SGIB1_0;
2164        if ("SGI-B-1.1".equals(codeString))
2165          return SGIB1_1;
2166        if ("SGI-B-2.0".equals(codeString))
2167          return SGIB2_0;
2168        if ("SimPL-2.0".equals(codeString))
2169          return SIMPL2_0;
2170        if ("SISSL-1.2".equals(codeString))
2171          return SISSL1_2;
2172        if ("SISSL".equals(codeString))
2173          return SISSL;
2174        if ("Sleepycat".equals(codeString))
2175          return SLEEPYCAT;
2176        if ("SMLNJ".equals(codeString))
2177          return SMLNJ;
2178        if ("SMPPL".equals(codeString))
2179          return SMPPL;
2180        if ("SNIA".equals(codeString))
2181          return SNIA;
2182        if ("Spencer-86".equals(codeString))
2183          return SPENCER86;
2184        if ("Spencer-94".equals(codeString))
2185          return SPENCER94;
2186        if ("Spencer-99".equals(codeString))
2187          return SPENCER99;
2188        if ("SPL-1.0".equals(codeString))
2189          return SPL1_0;
2190        if ("SugarCRM-1.1.3".equals(codeString))
2191          return SUGARCRM1_1_3;
2192        if ("SWL".equals(codeString))
2193          return SWL;
2194        if ("TCL".equals(codeString))
2195          return TCL;
2196        if ("TCP-wrappers".equals(codeString))
2197          return TCPWRAPPERS;
2198        if ("TMate".equals(codeString))
2199          return TMATE;
2200        if ("TORQUE-1.1".equals(codeString))
2201          return TORQUE1_1;
2202        if ("TOSL".equals(codeString))
2203          return TOSL;
2204        if ("Unicode-DFS-2015".equals(codeString))
2205          return UNICODEDFS2015;
2206        if ("Unicode-DFS-2016".equals(codeString))
2207          return UNICODEDFS2016;
2208        if ("Unicode-TOU".equals(codeString))
2209          return UNICODETOU;
2210        if ("Unlicense".equals(codeString))
2211          return UNLICENSE;
2212        if ("UPL-1.0".equals(codeString))
2213          return UPL1_0;
2214        if ("Vim".equals(codeString))
2215          return VIM;
2216        if ("VOSTROM".equals(codeString))
2217          return VOSTROM;
2218        if ("VSL-1.0".equals(codeString))
2219          return VSL1_0;
2220        if ("W3C-19980720".equals(codeString))
2221          return W3C19980720;
2222        if ("W3C-20150513".equals(codeString))
2223          return W3C20150513;
2224        if ("W3C".equals(codeString))
2225          return W3C;
2226        if ("Watcom-1.0".equals(codeString))
2227          return WATCOM1_0;
2228        if ("Wsuipa".equals(codeString))
2229          return WSUIPA;
2230        if ("WTFPL".equals(codeString))
2231          return WTFPL;
2232        if ("X11".equals(codeString))
2233          return X11;
2234        if ("Xerox".equals(codeString))
2235          return XEROX;
2236        if ("XFree86-1.1".equals(codeString))
2237          return XFREE861_1;
2238        if ("xinetd".equals(codeString))
2239          return XINETD;
2240        if ("Xnet".equals(codeString))
2241          return XNET;
2242        if ("xpp".equals(codeString))
2243          return XPP;
2244        if ("XSkat".equals(codeString))
2245          return XSKAT;
2246        if ("YPL-1.0".equals(codeString))
2247          return YPL1_0;
2248        if ("YPL-1.1".equals(codeString))
2249          return YPL1_1;
2250        if ("Zed".equals(codeString))
2251          return ZED;
2252        if ("Zend-2.0".equals(codeString))
2253          return ZEND2_0;
2254        if ("Zimbra-1.3".equals(codeString))
2255          return ZIMBRA1_3;
2256        if ("Zimbra-1.4".equals(codeString))
2257          return ZIMBRA1_4;
2258        if ("zlib-acknowledgement".equals(codeString))
2259          return ZLIBACKNOWLEDGEMENT;
2260        if ("Zlib".equals(codeString))
2261          return ZLIB;
2262        if ("ZPL-1.1".equals(codeString))
2263          return ZPL1_1;
2264        if ("ZPL-2.0".equals(codeString))
2265          return ZPL2_0;
2266        if ("ZPL-2.1".equals(codeString))
2267          return ZPL2_1;
2268        if (Configuration.isAcceptInvalidEnums())
2269          return null;
2270        else
2271          throw new FHIRException("Unknown SPDXLicense code '"+codeString+"'");
2272        }
2273        public String toCode() {
2274          switch (this) {
2275            case NOTOPENSOURCE: return "not-open-source";
2276            case _0BSD: return "0BSD";
2277            case AAL: return "AAL";
2278            case ABSTYLES: return "Abstyles";
2279            case ADOBE2006: return "Adobe-2006";
2280            case ADOBEGLYPH: return "Adobe-Glyph";
2281            case ADSL: return "ADSL";
2282            case AFL1_1: return "AFL-1.1";
2283            case AFL1_2: return "AFL-1.2";
2284            case AFL2_0: return "AFL-2.0";
2285            case AFL2_1: return "AFL-2.1";
2286            case AFL3_0: return "AFL-3.0";
2287            case AFMPARSE: return "Afmparse";
2288            case AGPL1_0ONLY: return "AGPL-1.0-only";
2289            case AGPL1_0ORLATER: return "AGPL-1.0-or-later";
2290            case AGPL3_0ONLY: return "AGPL-3.0-only";
2291            case AGPL3_0ORLATER: return "AGPL-3.0-or-later";
2292            case ALADDIN: return "Aladdin";
2293            case AMDPLPA: return "AMDPLPA";
2294            case AML: return "AML";
2295            case AMPAS: return "AMPAS";
2296            case ANTLRPD: return "ANTLR-PD";
2297            case APACHE1_0: return "Apache-1.0";
2298            case APACHE1_1: return "Apache-1.1";
2299            case APACHE2_0: return "Apache-2.0";
2300            case APAFML: return "APAFML";
2301            case APL1_0: return "APL-1.0";
2302            case APSL1_0: return "APSL-1.0";
2303            case APSL1_1: return "APSL-1.1";
2304            case APSL1_2: return "APSL-1.2";
2305            case APSL2_0: return "APSL-2.0";
2306            case ARTISTIC1_0CL8: return "Artistic-1.0-cl8";
2307            case ARTISTIC1_0PERL: return "Artistic-1.0-Perl";
2308            case ARTISTIC1_0: return "Artistic-1.0";
2309            case ARTISTIC2_0: return "Artistic-2.0";
2310            case BAHYPH: return "Bahyph";
2311            case BARR: return "Barr";
2312            case BEERWARE: return "Beerware";
2313            case BITTORRENT1_0: return "BitTorrent-1.0";
2314            case BITTORRENT1_1: return "BitTorrent-1.1";
2315            case BORCEUX: return "Borceux";
2316            case BSD1CLAUSE: return "BSD-1-Clause";
2317            case BSD2CLAUSEFREEBSD: return "BSD-2-Clause-FreeBSD";
2318            case BSD2CLAUSENETBSD: return "BSD-2-Clause-NetBSD";
2319            case BSD2CLAUSEPATENT: return "BSD-2-Clause-Patent";
2320            case BSD2CLAUSE: return "BSD-2-Clause";
2321            case BSD3CLAUSEATTRIBUTION: return "BSD-3-Clause-Attribution";
2322            case BSD3CLAUSECLEAR: return "BSD-3-Clause-Clear";
2323            case BSD3CLAUSELBNL: return "BSD-3-Clause-LBNL";
2324            case BSD3CLAUSENONUCLEARLICENSE2014: return "BSD-3-Clause-No-Nuclear-License-2014";
2325            case BSD3CLAUSENONUCLEARLICENSE: return "BSD-3-Clause-No-Nuclear-License";
2326            case BSD3CLAUSENONUCLEARWARRANTY: return "BSD-3-Clause-No-Nuclear-Warranty";
2327            case BSD3CLAUSE: return "BSD-3-Clause";
2328            case BSD4CLAUSEUC: return "BSD-4-Clause-UC";
2329            case BSD4CLAUSE: return "BSD-4-Clause";
2330            case BSDPROTECTION: return "BSD-Protection";
2331            case BSDSOURCECODE: return "BSD-Source-Code";
2332            case BSL1_0: return "BSL-1.0";
2333            case BZIP21_0_5: return "bzip2-1.0.5";
2334            case BZIP21_0_6: return "bzip2-1.0.6";
2335            case CALDERA: return "Caldera";
2336            case CATOSL1_1: return "CATOSL-1.1";
2337            case CCBY1_0: return "CC-BY-1.0";
2338            case CCBY2_0: return "CC-BY-2.0";
2339            case CCBY2_5: return "CC-BY-2.5";
2340            case CCBY3_0: return "CC-BY-3.0";
2341            case CCBY4_0: return "CC-BY-4.0";
2342            case CCBYNC1_0: return "CC-BY-NC-1.0";
2343            case CCBYNC2_0: return "CC-BY-NC-2.0";
2344            case CCBYNC2_5: return "CC-BY-NC-2.5";
2345            case CCBYNC3_0: return "CC-BY-NC-3.0";
2346            case CCBYNC4_0: return "CC-BY-NC-4.0";
2347            case CCBYNCND1_0: return "CC-BY-NC-ND-1.0";
2348            case CCBYNCND2_0: return "CC-BY-NC-ND-2.0";
2349            case CCBYNCND2_5: return "CC-BY-NC-ND-2.5";
2350            case CCBYNCND3_0: return "CC-BY-NC-ND-3.0";
2351            case CCBYNCND4_0: return "CC-BY-NC-ND-4.0";
2352            case CCBYNCSA1_0: return "CC-BY-NC-SA-1.0";
2353            case CCBYNCSA2_0: return "CC-BY-NC-SA-2.0";
2354            case CCBYNCSA2_5: return "CC-BY-NC-SA-2.5";
2355            case CCBYNCSA3_0: return "CC-BY-NC-SA-3.0";
2356            case CCBYNCSA4_0: return "CC-BY-NC-SA-4.0";
2357            case CCBYND1_0: return "CC-BY-ND-1.0";
2358            case CCBYND2_0: return "CC-BY-ND-2.0";
2359            case CCBYND2_5: return "CC-BY-ND-2.5";
2360            case CCBYND3_0: return "CC-BY-ND-3.0";
2361            case CCBYND4_0: return "CC-BY-ND-4.0";
2362            case CCBYSA1_0: return "CC-BY-SA-1.0";
2363            case CCBYSA2_0: return "CC-BY-SA-2.0";
2364            case CCBYSA2_5: return "CC-BY-SA-2.5";
2365            case CCBYSA3_0: return "CC-BY-SA-3.0";
2366            case CCBYSA4_0: return "CC-BY-SA-4.0";
2367            case CC01_0: return "CC0-1.0";
2368            case CDDL1_0: return "CDDL-1.0";
2369            case CDDL1_1: return "CDDL-1.1";
2370            case CDLAPERMISSIVE1_0: return "CDLA-Permissive-1.0";
2371            case CDLASHARING1_0: return "CDLA-Sharing-1.0";
2372            case CECILL1_0: return "CECILL-1.0";
2373            case CECILL1_1: return "CECILL-1.1";
2374            case CECILL2_0: return "CECILL-2.0";
2375            case CECILL2_1: return "CECILL-2.1";
2376            case CECILLB: return "CECILL-B";
2377            case CECILLC: return "CECILL-C";
2378            case CLARTISTIC: return "ClArtistic";
2379            case CNRIJYTHON: return "CNRI-Jython";
2380            case CNRIPYTHONGPLCOMPATIBLE: return "CNRI-Python-GPL-Compatible";
2381            case CNRIPYTHON: return "CNRI-Python";
2382            case CONDOR1_1: return "Condor-1.1";
2383            case CPAL1_0: return "CPAL-1.0";
2384            case CPL1_0: return "CPL-1.0";
2385            case CPOL1_02: return "CPOL-1.02";
2386            case CROSSWORD: return "Crossword";
2387            case CRYSTALSTACKER: return "CrystalStacker";
2388            case CUAOPL1_0: return "CUA-OPL-1.0";
2389            case CUBE: return "Cube";
2390            case CURL: return "curl";
2391            case DFSL1_0: return "D-FSL-1.0";
2392            case DIFFMARK: return "diffmark";
2393            case DOC: return "DOC";
2394            case DOTSEQN: return "Dotseqn";
2395            case DSDP: return "DSDP";
2396            case DVIPDFM: return "dvipdfm";
2397            case ECL1_0: return "ECL-1.0";
2398            case ECL2_0: return "ECL-2.0";
2399            case EFL1_0: return "EFL-1.0";
2400            case EFL2_0: return "EFL-2.0";
2401            case EGENIX: return "eGenix";
2402            case ENTESSA: return "Entessa";
2403            case EPL1_0: return "EPL-1.0";
2404            case EPL2_0: return "EPL-2.0";
2405            case ERLPL1_1: return "ErlPL-1.1";
2406            case EUDATAGRID: return "EUDatagrid";
2407            case EUPL1_0: return "EUPL-1.0";
2408            case EUPL1_1: return "EUPL-1.1";
2409            case EUPL1_2: return "EUPL-1.2";
2410            case EUROSYM: return "Eurosym";
2411            case FAIR: return "Fair";
2412            case FRAMEWORX1_0: return "Frameworx-1.0";
2413            case FREEIMAGE: return "FreeImage";
2414            case FSFAP: return "FSFAP";
2415            case FSFUL: return "FSFUL";
2416            case FSFULLR: return "FSFULLR";
2417            case FTL: return "FTL";
2418            case GFDL1_1ONLY: return "GFDL-1.1-only";
2419            case GFDL1_1ORLATER: return "GFDL-1.1-or-later";
2420            case GFDL1_2ONLY: return "GFDL-1.2-only";
2421            case GFDL1_2ORLATER: return "GFDL-1.2-or-later";
2422            case GFDL1_3ONLY: return "GFDL-1.3-only";
2423            case GFDL1_3ORLATER: return "GFDL-1.3-or-later";
2424            case GIFTWARE: return "Giftware";
2425            case GL2PS: return "GL2PS";
2426            case GLIDE: return "Glide";
2427            case GLULXE: return "Glulxe";
2428            case GNUPLOT: return "gnuplot";
2429            case GPL1_0ONLY: return "GPL-1.0-only";
2430            case GPL1_0ORLATER: return "GPL-1.0-or-later";
2431            case GPL2_0ONLY: return "GPL-2.0-only";
2432            case GPL2_0ORLATER: return "GPL-2.0-or-later";
2433            case GPL3_0ONLY: return "GPL-3.0-only";
2434            case GPL3_0ORLATER: return "GPL-3.0-or-later";
2435            case GSOAP1_3B: return "gSOAP-1.3b";
2436            case HASKELLREPORT: return "HaskellReport";
2437            case HPND: return "HPND";
2438            case IBMPIBS: return "IBM-pibs";
2439            case ICU: return "ICU";
2440            case IJG: return "IJG";
2441            case IMAGEMAGICK: return "ImageMagick";
2442            case IMATIX: return "iMatix";
2443            case IMLIB2: return "Imlib2";
2444            case INFOZIP: return "Info-ZIP";
2445            case INTELACPI: return "Intel-ACPI";
2446            case INTEL: return "Intel";
2447            case INTERBASE1_0: return "Interbase-1.0";
2448            case IPA: return "IPA";
2449            case IPL1_0: return "IPL-1.0";
2450            case ISC: return "ISC";
2451            case JASPER2_0: return "JasPer-2.0";
2452            case JSON: return "JSON";
2453            case LAL1_2: return "LAL-1.2";
2454            case LAL1_3: return "LAL-1.3";
2455            case LATEX2E: return "Latex2e";
2456            case LEPTONICA: return "Leptonica";
2457            case LGPL2_0ONLY: return "LGPL-2.0-only";
2458            case LGPL2_0ORLATER: return "LGPL-2.0-or-later";
2459            case LGPL2_1ONLY: return "LGPL-2.1-only";
2460            case LGPL2_1ORLATER: return "LGPL-2.1-or-later";
2461            case LGPL3_0ONLY: return "LGPL-3.0-only";
2462            case LGPL3_0ORLATER: return "LGPL-3.0-or-later";
2463            case LGPLLR: return "LGPLLR";
2464            case LIBPNG: return "Libpng";
2465            case LIBTIFF: return "libtiff";
2466            case LILIQP1_1: return "LiLiQ-P-1.1";
2467            case LILIQR1_1: return "LiLiQ-R-1.1";
2468            case LILIQRPLUS1_1: return "LiLiQ-Rplus-1.1";
2469            case LINUXOPENIB: return "Linux-OpenIB";
2470            case LPL1_0: return "LPL-1.0";
2471            case LPL1_02: return "LPL-1.02";
2472            case LPPL1_0: return "LPPL-1.0";
2473            case LPPL1_1: return "LPPL-1.1";
2474            case LPPL1_2: return "LPPL-1.2";
2475            case LPPL1_3A: return "LPPL-1.3a";
2476            case LPPL1_3C: return "LPPL-1.3c";
2477            case MAKEINDEX: return "MakeIndex";
2478            case MIROS: return "MirOS";
2479            case MIT0: return "MIT-0";
2480            case MITADVERTISING: return "MIT-advertising";
2481            case MITCMU: return "MIT-CMU";
2482            case MITENNA: return "MIT-enna";
2483            case MITFEH: return "MIT-feh";
2484            case MIT: return "MIT";
2485            case MITNFA: return "MITNFA";
2486            case MOTOSOTO: return "Motosoto";
2487            case MPICH2: return "mpich2";
2488            case MPL1_0: return "MPL-1.0";
2489            case MPL1_1: return "MPL-1.1";
2490            case MPL2_0NOCOPYLEFTEXCEPTION: return "MPL-2.0-no-copyleft-exception";
2491            case MPL2_0: return "MPL-2.0";
2492            case MSPL: return "MS-PL";
2493            case MSRL: return "MS-RL";
2494            case MTLL: return "MTLL";
2495            case MULTICS: return "Multics";
2496            case MUP: return "Mup";
2497            case NASA1_3: return "NASA-1.3";
2498            case NAUMEN: return "Naumen";
2499            case NBPL1_0: return "NBPL-1.0";
2500            case NCSA: return "NCSA";
2501            case NETSNMP: return "Net-SNMP";
2502            case NETCDF: return "NetCDF";
2503            case NEWSLETR: return "Newsletr";
2504            case NGPL: return "NGPL";
2505            case NLOD1_0: return "NLOD-1.0";
2506            case NLPL: return "NLPL";
2507            case NOKIA: return "Nokia";
2508            case NOSL: return "NOSL";
2509            case NOWEB: return "Noweb";
2510            case NPL1_0: return "NPL-1.0";
2511            case NPL1_1: return "NPL-1.1";
2512            case NPOSL3_0: return "NPOSL-3.0";
2513            case NRL: return "NRL";
2514            case NTP: return "NTP";
2515            case OCCTPL: return "OCCT-PL";
2516            case OCLC2_0: return "OCLC-2.0";
2517            case ODBL1_0: return "ODbL-1.0";
2518            case OFL1_0: return "OFL-1.0";
2519            case OFL1_1: return "OFL-1.1";
2520            case OGTSL: return "OGTSL";
2521            case OLDAP1_1: return "OLDAP-1.1";
2522            case OLDAP1_2: return "OLDAP-1.2";
2523            case OLDAP1_3: return "OLDAP-1.3";
2524            case OLDAP1_4: return "OLDAP-1.4";
2525            case OLDAP2_0_1: return "OLDAP-2.0.1";
2526            case OLDAP2_0: return "OLDAP-2.0";
2527            case OLDAP2_1: return "OLDAP-2.1";
2528            case OLDAP2_2_1: return "OLDAP-2.2.1";
2529            case OLDAP2_2_2: return "OLDAP-2.2.2";
2530            case OLDAP2_2: return "OLDAP-2.2";
2531            case OLDAP2_3: return "OLDAP-2.3";
2532            case OLDAP2_4: return "OLDAP-2.4";
2533            case OLDAP2_5: return "OLDAP-2.5";
2534            case OLDAP2_6: return "OLDAP-2.6";
2535            case OLDAP2_7: return "OLDAP-2.7";
2536            case OLDAP2_8: return "OLDAP-2.8";
2537            case OML: return "OML";
2538            case OPENSSL: return "OpenSSL";
2539            case OPL1_0: return "OPL-1.0";
2540            case OSETPL2_1: return "OSET-PL-2.1";
2541            case OSL1_0: return "OSL-1.0";
2542            case OSL1_1: return "OSL-1.1";
2543            case OSL2_0: return "OSL-2.0";
2544            case OSL2_1: return "OSL-2.1";
2545            case OSL3_0: return "OSL-3.0";
2546            case PDDL1_0: return "PDDL-1.0";
2547            case PHP3_0: return "PHP-3.0";
2548            case PHP3_01: return "PHP-3.01";
2549            case PLEXUS: return "Plexus";
2550            case POSTGRESQL: return "PostgreSQL";
2551            case PSFRAG: return "psfrag";
2552            case PSUTILS: return "psutils";
2553            case PYTHON2_0: return "Python-2.0";
2554            case QHULL: return "Qhull";
2555            case QPL1_0: return "QPL-1.0";
2556            case RDISC: return "Rdisc";
2557            case RHECOS1_1: return "RHeCos-1.1";
2558            case RPL1_1: return "RPL-1.1";
2559            case RPL1_5: return "RPL-1.5";
2560            case RPSL1_0: return "RPSL-1.0";
2561            case RSAMD: return "RSA-MD";
2562            case RSCPL: return "RSCPL";
2563            case RUBY: return "Ruby";
2564            case SAXPD: return "SAX-PD";
2565            case SAXPATH: return "Saxpath";
2566            case SCEA: return "SCEA";
2567            case SENDMAIL: return "Sendmail";
2568            case SGIB1_0: return "SGI-B-1.0";
2569            case SGIB1_1: return "SGI-B-1.1";
2570            case SGIB2_0: return "SGI-B-2.0";
2571            case SIMPL2_0: return "SimPL-2.0";
2572            case SISSL1_2: return "SISSL-1.2";
2573            case SISSL: return "SISSL";
2574            case SLEEPYCAT: return "Sleepycat";
2575            case SMLNJ: return "SMLNJ";
2576            case SMPPL: return "SMPPL";
2577            case SNIA: return "SNIA";
2578            case SPENCER86: return "Spencer-86";
2579            case SPENCER94: return "Spencer-94";
2580            case SPENCER99: return "Spencer-99";
2581            case SPL1_0: return "SPL-1.0";
2582            case SUGARCRM1_1_3: return "SugarCRM-1.1.3";
2583            case SWL: return "SWL";
2584            case TCL: return "TCL";
2585            case TCPWRAPPERS: return "TCP-wrappers";
2586            case TMATE: return "TMate";
2587            case TORQUE1_1: return "TORQUE-1.1";
2588            case TOSL: return "TOSL";
2589            case UNICODEDFS2015: return "Unicode-DFS-2015";
2590            case UNICODEDFS2016: return "Unicode-DFS-2016";
2591            case UNICODETOU: return "Unicode-TOU";
2592            case UNLICENSE: return "Unlicense";
2593            case UPL1_0: return "UPL-1.0";
2594            case VIM: return "Vim";
2595            case VOSTROM: return "VOSTROM";
2596            case VSL1_0: return "VSL-1.0";
2597            case W3C19980720: return "W3C-19980720";
2598            case W3C20150513: return "W3C-20150513";
2599            case W3C: return "W3C";
2600            case WATCOM1_0: return "Watcom-1.0";
2601            case WSUIPA: return "Wsuipa";
2602            case WTFPL: return "WTFPL";
2603            case X11: return "X11";
2604            case XEROX: return "Xerox";
2605            case XFREE861_1: return "XFree86-1.1";
2606            case XINETD: return "xinetd";
2607            case XNET: return "Xnet";
2608            case XPP: return "xpp";
2609            case XSKAT: return "XSkat";
2610            case YPL1_0: return "YPL-1.0";
2611            case YPL1_1: return "YPL-1.1";
2612            case ZED: return "Zed";
2613            case ZEND2_0: return "Zend-2.0";
2614            case ZIMBRA1_3: return "Zimbra-1.3";
2615            case ZIMBRA1_4: return "Zimbra-1.4";
2616            case ZLIBACKNOWLEDGEMENT: return "zlib-acknowledgement";
2617            case ZLIB: return "Zlib";
2618            case ZPL1_1: return "ZPL-1.1";
2619            case ZPL2_0: return "ZPL-2.0";
2620            case ZPL2_1: return "ZPL-2.1";
2621            case NULL: return null;
2622            default: return "?";
2623          }
2624        }
2625        public String getSystem() {
2626          switch (this) {
2627            case NOTOPENSOURCE: return "http://hl7.org/fhir/spdx-license";
2628            case _0BSD: return "http://hl7.org/fhir/spdx-license";
2629            case AAL: return "http://hl7.org/fhir/spdx-license";
2630            case ABSTYLES: return "http://hl7.org/fhir/spdx-license";
2631            case ADOBE2006: return "http://hl7.org/fhir/spdx-license";
2632            case ADOBEGLYPH: return "http://hl7.org/fhir/spdx-license";
2633            case ADSL: return "http://hl7.org/fhir/spdx-license";
2634            case AFL1_1: return "http://hl7.org/fhir/spdx-license";
2635            case AFL1_2: return "http://hl7.org/fhir/spdx-license";
2636            case AFL2_0: return "http://hl7.org/fhir/spdx-license";
2637            case AFL2_1: return "http://hl7.org/fhir/spdx-license";
2638            case AFL3_0: return "http://hl7.org/fhir/spdx-license";
2639            case AFMPARSE: return "http://hl7.org/fhir/spdx-license";
2640            case AGPL1_0ONLY: return "http://hl7.org/fhir/spdx-license";
2641            case AGPL1_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2642            case AGPL3_0ONLY: return "http://hl7.org/fhir/spdx-license";
2643            case AGPL3_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2644            case ALADDIN: return "http://hl7.org/fhir/spdx-license";
2645            case AMDPLPA: return "http://hl7.org/fhir/spdx-license";
2646            case AML: return "http://hl7.org/fhir/spdx-license";
2647            case AMPAS: return "http://hl7.org/fhir/spdx-license";
2648            case ANTLRPD: return "http://hl7.org/fhir/spdx-license";
2649            case APACHE1_0: return "http://hl7.org/fhir/spdx-license";
2650            case APACHE1_1: return "http://hl7.org/fhir/spdx-license";
2651            case APACHE2_0: return "http://hl7.org/fhir/spdx-license";
2652            case APAFML: return "http://hl7.org/fhir/spdx-license";
2653            case APL1_0: return "http://hl7.org/fhir/spdx-license";
2654            case APSL1_0: return "http://hl7.org/fhir/spdx-license";
2655            case APSL1_1: return "http://hl7.org/fhir/spdx-license";
2656            case APSL1_2: return "http://hl7.org/fhir/spdx-license";
2657            case APSL2_0: return "http://hl7.org/fhir/spdx-license";
2658            case ARTISTIC1_0CL8: return "http://hl7.org/fhir/spdx-license";
2659            case ARTISTIC1_0PERL: return "http://hl7.org/fhir/spdx-license";
2660            case ARTISTIC1_0: return "http://hl7.org/fhir/spdx-license";
2661            case ARTISTIC2_0: return "http://hl7.org/fhir/spdx-license";
2662            case BAHYPH: return "http://hl7.org/fhir/spdx-license";
2663            case BARR: return "http://hl7.org/fhir/spdx-license";
2664            case BEERWARE: return "http://hl7.org/fhir/spdx-license";
2665            case BITTORRENT1_0: return "http://hl7.org/fhir/spdx-license";
2666            case BITTORRENT1_1: return "http://hl7.org/fhir/spdx-license";
2667            case BORCEUX: return "http://hl7.org/fhir/spdx-license";
2668            case BSD1CLAUSE: return "http://hl7.org/fhir/spdx-license";
2669            case BSD2CLAUSEFREEBSD: return "http://hl7.org/fhir/spdx-license";
2670            case BSD2CLAUSENETBSD: return "http://hl7.org/fhir/spdx-license";
2671            case BSD2CLAUSEPATENT: return "http://hl7.org/fhir/spdx-license";
2672            case BSD2CLAUSE: return "http://hl7.org/fhir/spdx-license";
2673            case BSD3CLAUSEATTRIBUTION: return "http://hl7.org/fhir/spdx-license";
2674            case BSD3CLAUSECLEAR: return "http://hl7.org/fhir/spdx-license";
2675            case BSD3CLAUSELBNL: return "http://hl7.org/fhir/spdx-license";
2676            case BSD3CLAUSENONUCLEARLICENSE2014: return "http://hl7.org/fhir/spdx-license";
2677            case BSD3CLAUSENONUCLEARLICENSE: return "http://hl7.org/fhir/spdx-license";
2678            case BSD3CLAUSENONUCLEARWARRANTY: return "http://hl7.org/fhir/spdx-license";
2679            case BSD3CLAUSE: return "http://hl7.org/fhir/spdx-license";
2680            case BSD4CLAUSEUC: return "http://hl7.org/fhir/spdx-license";
2681            case BSD4CLAUSE: return "http://hl7.org/fhir/spdx-license";
2682            case BSDPROTECTION: return "http://hl7.org/fhir/spdx-license";
2683            case BSDSOURCECODE: return "http://hl7.org/fhir/spdx-license";
2684            case BSL1_0: return "http://hl7.org/fhir/spdx-license";
2685            case BZIP21_0_5: return "http://hl7.org/fhir/spdx-license";
2686            case BZIP21_0_6: return "http://hl7.org/fhir/spdx-license";
2687            case CALDERA: return "http://hl7.org/fhir/spdx-license";
2688            case CATOSL1_1: return "http://hl7.org/fhir/spdx-license";
2689            case CCBY1_0: return "http://hl7.org/fhir/spdx-license";
2690            case CCBY2_0: return "http://hl7.org/fhir/spdx-license";
2691            case CCBY2_5: return "http://hl7.org/fhir/spdx-license";
2692            case CCBY3_0: return "http://hl7.org/fhir/spdx-license";
2693            case CCBY4_0: return "http://hl7.org/fhir/spdx-license";
2694            case CCBYNC1_0: return "http://hl7.org/fhir/spdx-license";
2695            case CCBYNC2_0: return "http://hl7.org/fhir/spdx-license";
2696            case CCBYNC2_5: return "http://hl7.org/fhir/spdx-license";
2697            case CCBYNC3_0: return "http://hl7.org/fhir/spdx-license";
2698            case CCBYNC4_0: return "http://hl7.org/fhir/spdx-license";
2699            case CCBYNCND1_0: return "http://hl7.org/fhir/spdx-license";
2700            case CCBYNCND2_0: return "http://hl7.org/fhir/spdx-license";
2701            case CCBYNCND2_5: return "http://hl7.org/fhir/spdx-license";
2702            case CCBYNCND3_0: return "http://hl7.org/fhir/spdx-license";
2703            case CCBYNCND4_0: return "http://hl7.org/fhir/spdx-license";
2704            case CCBYNCSA1_0: return "http://hl7.org/fhir/spdx-license";
2705            case CCBYNCSA2_0: return "http://hl7.org/fhir/spdx-license";
2706            case CCBYNCSA2_5: return "http://hl7.org/fhir/spdx-license";
2707            case CCBYNCSA3_0: return "http://hl7.org/fhir/spdx-license";
2708            case CCBYNCSA4_0: return "http://hl7.org/fhir/spdx-license";
2709            case CCBYND1_0: return "http://hl7.org/fhir/spdx-license";
2710            case CCBYND2_0: return "http://hl7.org/fhir/spdx-license";
2711            case CCBYND2_5: return "http://hl7.org/fhir/spdx-license";
2712            case CCBYND3_0: return "http://hl7.org/fhir/spdx-license";
2713            case CCBYND4_0: return "http://hl7.org/fhir/spdx-license";
2714            case CCBYSA1_0: return "http://hl7.org/fhir/spdx-license";
2715            case CCBYSA2_0: return "http://hl7.org/fhir/spdx-license";
2716            case CCBYSA2_5: return "http://hl7.org/fhir/spdx-license";
2717            case CCBYSA3_0: return "http://hl7.org/fhir/spdx-license";
2718            case CCBYSA4_0: return "http://hl7.org/fhir/spdx-license";
2719            case CC01_0: return "http://hl7.org/fhir/spdx-license";
2720            case CDDL1_0: return "http://hl7.org/fhir/spdx-license";
2721            case CDDL1_1: return "http://hl7.org/fhir/spdx-license";
2722            case CDLAPERMISSIVE1_0: return "http://hl7.org/fhir/spdx-license";
2723            case CDLASHARING1_0: return "http://hl7.org/fhir/spdx-license";
2724            case CECILL1_0: return "http://hl7.org/fhir/spdx-license";
2725            case CECILL1_1: return "http://hl7.org/fhir/spdx-license";
2726            case CECILL2_0: return "http://hl7.org/fhir/spdx-license";
2727            case CECILL2_1: return "http://hl7.org/fhir/spdx-license";
2728            case CECILLB: return "http://hl7.org/fhir/spdx-license";
2729            case CECILLC: return "http://hl7.org/fhir/spdx-license";
2730            case CLARTISTIC: return "http://hl7.org/fhir/spdx-license";
2731            case CNRIJYTHON: return "http://hl7.org/fhir/spdx-license";
2732            case CNRIPYTHONGPLCOMPATIBLE: return "http://hl7.org/fhir/spdx-license";
2733            case CNRIPYTHON: return "http://hl7.org/fhir/spdx-license";
2734            case CONDOR1_1: return "http://hl7.org/fhir/spdx-license";
2735            case CPAL1_0: return "http://hl7.org/fhir/spdx-license";
2736            case CPL1_0: return "http://hl7.org/fhir/spdx-license";
2737            case CPOL1_02: return "http://hl7.org/fhir/spdx-license";
2738            case CROSSWORD: return "http://hl7.org/fhir/spdx-license";
2739            case CRYSTALSTACKER: return "http://hl7.org/fhir/spdx-license";
2740            case CUAOPL1_0: return "http://hl7.org/fhir/spdx-license";
2741            case CUBE: return "http://hl7.org/fhir/spdx-license";
2742            case CURL: return "http://hl7.org/fhir/spdx-license";
2743            case DFSL1_0: return "http://hl7.org/fhir/spdx-license";
2744            case DIFFMARK: return "http://hl7.org/fhir/spdx-license";
2745            case DOC: return "http://hl7.org/fhir/spdx-license";
2746            case DOTSEQN: return "http://hl7.org/fhir/spdx-license";
2747            case DSDP: return "http://hl7.org/fhir/spdx-license";
2748            case DVIPDFM: return "http://hl7.org/fhir/spdx-license";
2749            case ECL1_0: return "http://hl7.org/fhir/spdx-license";
2750            case ECL2_0: return "http://hl7.org/fhir/spdx-license";
2751            case EFL1_0: return "http://hl7.org/fhir/spdx-license";
2752            case EFL2_0: return "http://hl7.org/fhir/spdx-license";
2753            case EGENIX: return "http://hl7.org/fhir/spdx-license";
2754            case ENTESSA: return "http://hl7.org/fhir/spdx-license";
2755            case EPL1_0: return "http://hl7.org/fhir/spdx-license";
2756            case EPL2_0: return "http://hl7.org/fhir/spdx-license";
2757            case ERLPL1_1: return "http://hl7.org/fhir/spdx-license";
2758            case EUDATAGRID: return "http://hl7.org/fhir/spdx-license";
2759            case EUPL1_0: return "http://hl7.org/fhir/spdx-license";
2760            case EUPL1_1: return "http://hl7.org/fhir/spdx-license";
2761            case EUPL1_2: return "http://hl7.org/fhir/spdx-license";
2762            case EUROSYM: return "http://hl7.org/fhir/spdx-license";
2763            case FAIR: return "http://hl7.org/fhir/spdx-license";
2764            case FRAMEWORX1_0: return "http://hl7.org/fhir/spdx-license";
2765            case FREEIMAGE: return "http://hl7.org/fhir/spdx-license";
2766            case FSFAP: return "http://hl7.org/fhir/spdx-license";
2767            case FSFUL: return "http://hl7.org/fhir/spdx-license";
2768            case FSFULLR: return "http://hl7.org/fhir/spdx-license";
2769            case FTL: return "http://hl7.org/fhir/spdx-license";
2770            case GFDL1_1ONLY: return "http://hl7.org/fhir/spdx-license";
2771            case GFDL1_1ORLATER: return "http://hl7.org/fhir/spdx-license";
2772            case GFDL1_2ONLY: return "http://hl7.org/fhir/spdx-license";
2773            case GFDL1_2ORLATER: return "http://hl7.org/fhir/spdx-license";
2774            case GFDL1_3ONLY: return "http://hl7.org/fhir/spdx-license";
2775            case GFDL1_3ORLATER: return "http://hl7.org/fhir/spdx-license";
2776            case GIFTWARE: return "http://hl7.org/fhir/spdx-license";
2777            case GL2PS: return "http://hl7.org/fhir/spdx-license";
2778            case GLIDE: return "http://hl7.org/fhir/spdx-license";
2779            case GLULXE: return "http://hl7.org/fhir/spdx-license";
2780            case GNUPLOT: return "http://hl7.org/fhir/spdx-license";
2781            case GPL1_0ONLY: return "http://hl7.org/fhir/spdx-license";
2782            case GPL1_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2783            case GPL2_0ONLY: return "http://hl7.org/fhir/spdx-license";
2784            case GPL2_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2785            case GPL3_0ONLY: return "http://hl7.org/fhir/spdx-license";
2786            case GPL3_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2787            case GSOAP1_3B: return "http://hl7.org/fhir/spdx-license";
2788            case HASKELLREPORT: return "http://hl7.org/fhir/spdx-license";
2789            case HPND: return "http://hl7.org/fhir/spdx-license";
2790            case IBMPIBS: return "http://hl7.org/fhir/spdx-license";
2791            case ICU: return "http://hl7.org/fhir/spdx-license";
2792            case IJG: return "http://hl7.org/fhir/spdx-license";
2793            case IMAGEMAGICK: return "http://hl7.org/fhir/spdx-license";
2794            case IMATIX: return "http://hl7.org/fhir/spdx-license";
2795            case IMLIB2: return "http://hl7.org/fhir/spdx-license";
2796            case INFOZIP: return "http://hl7.org/fhir/spdx-license";
2797            case INTELACPI: return "http://hl7.org/fhir/spdx-license";
2798            case INTEL: return "http://hl7.org/fhir/spdx-license";
2799            case INTERBASE1_0: return "http://hl7.org/fhir/spdx-license";
2800            case IPA: return "http://hl7.org/fhir/spdx-license";
2801            case IPL1_0: return "http://hl7.org/fhir/spdx-license";
2802            case ISC: return "http://hl7.org/fhir/spdx-license";
2803            case JASPER2_0: return "http://hl7.org/fhir/spdx-license";
2804            case JSON: return "http://hl7.org/fhir/spdx-license";
2805            case LAL1_2: return "http://hl7.org/fhir/spdx-license";
2806            case LAL1_3: return "http://hl7.org/fhir/spdx-license";
2807            case LATEX2E: return "http://hl7.org/fhir/spdx-license";
2808            case LEPTONICA: return "http://hl7.org/fhir/spdx-license";
2809            case LGPL2_0ONLY: return "http://hl7.org/fhir/spdx-license";
2810            case LGPL2_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2811            case LGPL2_1ONLY: return "http://hl7.org/fhir/spdx-license";
2812            case LGPL2_1ORLATER: return "http://hl7.org/fhir/spdx-license";
2813            case LGPL3_0ONLY: return "http://hl7.org/fhir/spdx-license";
2814            case LGPL3_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2815            case LGPLLR: return "http://hl7.org/fhir/spdx-license";
2816            case LIBPNG: return "http://hl7.org/fhir/spdx-license";
2817            case LIBTIFF: return "http://hl7.org/fhir/spdx-license";
2818            case LILIQP1_1: return "http://hl7.org/fhir/spdx-license";
2819            case LILIQR1_1: return "http://hl7.org/fhir/spdx-license";
2820            case LILIQRPLUS1_1: return "http://hl7.org/fhir/spdx-license";
2821            case LINUXOPENIB: return "http://hl7.org/fhir/spdx-license";
2822            case LPL1_0: return "http://hl7.org/fhir/spdx-license";
2823            case LPL1_02: return "http://hl7.org/fhir/spdx-license";
2824            case LPPL1_0: return "http://hl7.org/fhir/spdx-license";
2825            case LPPL1_1: return "http://hl7.org/fhir/spdx-license";
2826            case LPPL1_2: return "http://hl7.org/fhir/spdx-license";
2827            case LPPL1_3A: return "http://hl7.org/fhir/spdx-license";
2828            case LPPL1_3C: return "http://hl7.org/fhir/spdx-license";
2829            case MAKEINDEX: return "http://hl7.org/fhir/spdx-license";
2830            case MIROS: return "http://hl7.org/fhir/spdx-license";
2831            case MIT0: return "http://hl7.org/fhir/spdx-license";
2832            case MITADVERTISING: return "http://hl7.org/fhir/spdx-license";
2833            case MITCMU: return "http://hl7.org/fhir/spdx-license";
2834            case MITENNA: return "http://hl7.org/fhir/spdx-license";
2835            case MITFEH: return "http://hl7.org/fhir/spdx-license";
2836            case MIT: return "http://hl7.org/fhir/spdx-license";
2837            case MITNFA: return "http://hl7.org/fhir/spdx-license";
2838            case MOTOSOTO: return "http://hl7.org/fhir/spdx-license";
2839            case MPICH2: return "http://hl7.org/fhir/spdx-license";
2840            case MPL1_0: return "http://hl7.org/fhir/spdx-license";
2841            case MPL1_1: return "http://hl7.org/fhir/spdx-license";
2842            case MPL2_0NOCOPYLEFTEXCEPTION: return "http://hl7.org/fhir/spdx-license";
2843            case MPL2_0: return "http://hl7.org/fhir/spdx-license";
2844            case MSPL: return "http://hl7.org/fhir/spdx-license";
2845            case MSRL: return "http://hl7.org/fhir/spdx-license";
2846            case MTLL: return "http://hl7.org/fhir/spdx-license";
2847            case MULTICS: return "http://hl7.org/fhir/spdx-license";
2848            case MUP: return "http://hl7.org/fhir/spdx-license";
2849            case NASA1_3: return "http://hl7.org/fhir/spdx-license";
2850            case NAUMEN: return "http://hl7.org/fhir/spdx-license";
2851            case NBPL1_0: return "http://hl7.org/fhir/spdx-license";
2852            case NCSA: return "http://hl7.org/fhir/spdx-license";
2853            case NETSNMP: return "http://hl7.org/fhir/spdx-license";
2854            case NETCDF: return "http://hl7.org/fhir/spdx-license";
2855            case NEWSLETR: return "http://hl7.org/fhir/spdx-license";
2856            case NGPL: return "http://hl7.org/fhir/spdx-license";
2857            case NLOD1_0: return "http://hl7.org/fhir/spdx-license";
2858            case NLPL: return "http://hl7.org/fhir/spdx-license";
2859            case NOKIA: return "http://hl7.org/fhir/spdx-license";
2860            case NOSL: return "http://hl7.org/fhir/spdx-license";
2861            case NOWEB: return "http://hl7.org/fhir/spdx-license";
2862            case NPL1_0: return "http://hl7.org/fhir/spdx-license";
2863            case NPL1_1: return "http://hl7.org/fhir/spdx-license";
2864            case NPOSL3_0: return "http://hl7.org/fhir/spdx-license";
2865            case NRL: return "http://hl7.org/fhir/spdx-license";
2866            case NTP: return "http://hl7.org/fhir/spdx-license";
2867            case OCCTPL: return "http://hl7.org/fhir/spdx-license";
2868            case OCLC2_0: return "http://hl7.org/fhir/spdx-license";
2869            case ODBL1_0: return "http://hl7.org/fhir/spdx-license";
2870            case OFL1_0: return "http://hl7.org/fhir/spdx-license";
2871            case OFL1_1: return "http://hl7.org/fhir/spdx-license";
2872            case OGTSL: return "http://hl7.org/fhir/spdx-license";
2873            case OLDAP1_1: return "http://hl7.org/fhir/spdx-license";
2874            case OLDAP1_2: return "http://hl7.org/fhir/spdx-license";
2875            case OLDAP1_3: return "http://hl7.org/fhir/spdx-license";
2876            case OLDAP1_4: return "http://hl7.org/fhir/spdx-license";
2877            case OLDAP2_0_1: return "http://hl7.org/fhir/spdx-license";
2878            case OLDAP2_0: return "http://hl7.org/fhir/spdx-license";
2879            case OLDAP2_1: return "http://hl7.org/fhir/spdx-license";
2880            case OLDAP2_2_1: return "http://hl7.org/fhir/spdx-license";
2881            case OLDAP2_2_2: return "http://hl7.org/fhir/spdx-license";
2882            case OLDAP2_2: return "http://hl7.org/fhir/spdx-license";
2883            case OLDAP2_3: return "http://hl7.org/fhir/spdx-license";
2884            case OLDAP2_4: return "http://hl7.org/fhir/spdx-license";
2885            case OLDAP2_5: return "http://hl7.org/fhir/spdx-license";
2886            case OLDAP2_6: return "http://hl7.org/fhir/spdx-license";
2887            case OLDAP2_7: return "http://hl7.org/fhir/spdx-license";
2888            case OLDAP2_8: return "http://hl7.org/fhir/spdx-license";
2889            case OML: return "http://hl7.org/fhir/spdx-license";
2890            case OPENSSL: return "http://hl7.org/fhir/spdx-license";
2891            case OPL1_0: return "http://hl7.org/fhir/spdx-license";
2892            case OSETPL2_1: return "http://hl7.org/fhir/spdx-license";
2893            case OSL1_0: return "http://hl7.org/fhir/spdx-license";
2894            case OSL1_1: return "http://hl7.org/fhir/spdx-license";
2895            case OSL2_0: return "http://hl7.org/fhir/spdx-license";
2896            case OSL2_1: return "http://hl7.org/fhir/spdx-license";
2897            case OSL3_0: return "http://hl7.org/fhir/spdx-license";
2898            case PDDL1_0: return "http://hl7.org/fhir/spdx-license";
2899            case PHP3_0: return "http://hl7.org/fhir/spdx-license";
2900            case PHP3_01: return "http://hl7.org/fhir/spdx-license";
2901            case PLEXUS: return "http://hl7.org/fhir/spdx-license";
2902            case POSTGRESQL: return "http://hl7.org/fhir/spdx-license";
2903            case PSFRAG: return "http://hl7.org/fhir/spdx-license";
2904            case PSUTILS: return "http://hl7.org/fhir/spdx-license";
2905            case PYTHON2_0: return "http://hl7.org/fhir/spdx-license";
2906            case QHULL: return "http://hl7.org/fhir/spdx-license";
2907            case QPL1_0: return "http://hl7.org/fhir/spdx-license";
2908            case RDISC: return "http://hl7.org/fhir/spdx-license";
2909            case RHECOS1_1: return "http://hl7.org/fhir/spdx-license";
2910            case RPL1_1: return "http://hl7.org/fhir/spdx-license";
2911            case RPL1_5: return "http://hl7.org/fhir/spdx-license";
2912            case RPSL1_0: return "http://hl7.org/fhir/spdx-license";
2913            case RSAMD: return "http://hl7.org/fhir/spdx-license";
2914            case RSCPL: return "http://hl7.org/fhir/spdx-license";
2915            case RUBY: return "http://hl7.org/fhir/spdx-license";
2916            case SAXPD: return "http://hl7.org/fhir/spdx-license";
2917            case SAXPATH: return "http://hl7.org/fhir/spdx-license";
2918            case SCEA: return "http://hl7.org/fhir/spdx-license";
2919            case SENDMAIL: return "http://hl7.org/fhir/spdx-license";
2920            case SGIB1_0: return "http://hl7.org/fhir/spdx-license";
2921            case SGIB1_1: return "http://hl7.org/fhir/spdx-license";
2922            case SGIB2_0: return "http://hl7.org/fhir/spdx-license";
2923            case SIMPL2_0: return "http://hl7.org/fhir/spdx-license";
2924            case SISSL1_2: return "http://hl7.org/fhir/spdx-license";
2925            case SISSL: return "http://hl7.org/fhir/spdx-license";
2926            case SLEEPYCAT: return "http://hl7.org/fhir/spdx-license";
2927            case SMLNJ: return "http://hl7.org/fhir/spdx-license";
2928            case SMPPL: return "http://hl7.org/fhir/spdx-license";
2929            case SNIA: return "http://hl7.org/fhir/spdx-license";
2930            case SPENCER86: return "http://hl7.org/fhir/spdx-license";
2931            case SPENCER94: return "http://hl7.org/fhir/spdx-license";
2932            case SPENCER99: return "http://hl7.org/fhir/spdx-license";
2933            case SPL1_0: return "http://hl7.org/fhir/spdx-license";
2934            case SUGARCRM1_1_3: return "http://hl7.org/fhir/spdx-license";
2935            case SWL: return "http://hl7.org/fhir/spdx-license";
2936            case TCL: return "http://hl7.org/fhir/spdx-license";
2937            case TCPWRAPPERS: return "http://hl7.org/fhir/spdx-license";
2938            case TMATE: return "http://hl7.org/fhir/spdx-license";
2939            case TORQUE1_1: return "http://hl7.org/fhir/spdx-license";
2940            case TOSL: return "http://hl7.org/fhir/spdx-license";
2941            case UNICODEDFS2015: return "http://hl7.org/fhir/spdx-license";
2942            case UNICODEDFS2016: return "http://hl7.org/fhir/spdx-license";
2943            case UNICODETOU: return "http://hl7.org/fhir/spdx-license";
2944            case UNLICENSE: return "http://hl7.org/fhir/spdx-license";
2945            case UPL1_0: return "http://hl7.org/fhir/spdx-license";
2946            case VIM: return "http://hl7.org/fhir/spdx-license";
2947            case VOSTROM: return "http://hl7.org/fhir/spdx-license";
2948            case VSL1_0: return "http://hl7.org/fhir/spdx-license";
2949            case W3C19980720: return "http://hl7.org/fhir/spdx-license";
2950            case W3C20150513: return "http://hl7.org/fhir/spdx-license";
2951            case W3C: return "http://hl7.org/fhir/spdx-license";
2952            case WATCOM1_0: return "http://hl7.org/fhir/spdx-license";
2953            case WSUIPA: return "http://hl7.org/fhir/spdx-license";
2954            case WTFPL: return "http://hl7.org/fhir/spdx-license";
2955            case X11: return "http://hl7.org/fhir/spdx-license";
2956            case XEROX: return "http://hl7.org/fhir/spdx-license";
2957            case XFREE861_1: return "http://hl7.org/fhir/spdx-license";
2958            case XINETD: return "http://hl7.org/fhir/spdx-license";
2959            case XNET: return "http://hl7.org/fhir/spdx-license";
2960            case XPP: return "http://hl7.org/fhir/spdx-license";
2961            case XSKAT: return "http://hl7.org/fhir/spdx-license";
2962            case YPL1_0: return "http://hl7.org/fhir/spdx-license";
2963            case YPL1_1: return "http://hl7.org/fhir/spdx-license";
2964            case ZED: return "http://hl7.org/fhir/spdx-license";
2965            case ZEND2_0: return "http://hl7.org/fhir/spdx-license";
2966            case ZIMBRA1_3: return "http://hl7.org/fhir/spdx-license";
2967            case ZIMBRA1_4: return "http://hl7.org/fhir/spdx-license";
2968            case ZLIBACKNOWLEDGEMENT: return "http://hl7.org/fhir/spdx-license";
2969            case ZLIB: return "http://hl7.org/fhir/spdx-license";
2970            case ZPL1_1: return "http://hl7.org/fhir/spdx-license";
2971            case ZPL2_0: return "http://hl7.org/fhir/spdx-license";
2972            case ZPL2_1: return "http://hl7.org/fhir/spdx-license";
2973            case NULL: return null;
2974            default: return "?";
2975          }
2976        }
2977        public String getDefinition() {
2978          switch (this) {
2979            case NOTOPENSOURCE: return "Not an open source license.";
2980            case _0BSD: return "BSD Zero Clause License.";
2981            case AAL: return "Attribution Assurance License.";
2982            case ABSTYLES: return "Abstyles License.";
2983            case ADOBE2006: return "Adobe Systems Incorporated Source Code License Agreement.";
2984            case ADOBEGLYPH: return "Adobe Glyph List License.";
2985            case ADSL: return "Amazon Digital Services License.";
2986            case AFL1_1: return "Academic Free License v1.1.";
2987            case AFL1_2: return "Academic Free License v1.2.";
2988            case AFL2_0: return "Academic Free License v2.0.";
2989            case AFL2_1: return "Academic Free License v2.1.";
2990            case AFL3_0: return "Academic Free License v3.0.";
2991            case AFMPARSE: return "Afmparse License.";
2992            case AGPL1_0ONLY: return "Affero General Public License v1.0 only.";
2993            case AGPL1_0ORLATER: return "Affero General Public License v1.0 or later.";
2994            case AGPL3_0ONLY: return "GNU Affero General Public License v3.0 only.";
2995            case AGPL3_0ORLATER: return "GNU Affero General Public License v3.0 or later.";
2996            case ALADDIN: return "Aladdin Free Public License.";
2997            case AMDPLPA: return "AMD's plpa_map.c License.";
2998            case AML: return "Apple MIT License.";
2999            case AMPAS: return "Academy of Motion Picture Arts and Sciences BSD.";
3000            case ANTLRPD: return "ANTLR Software Rights Notice.";
3001            case APACHE1_0: return "Apache License 1.0.";
3002            case APACHE1_1: return "Apache License 1.1.";
3003            case APACHE2_0: return "Apache License 2.0.";
3004            case APAFML: return "Adobe Postscript AFM License.";
3005            case APL1_0: return "Adaptive Public License 1.0.";
3006            case APSL1_0: return "Apple Public Source License 1.0.";
3007            case APSL1_1: return "Apple Public Source License 1.1.";
3008            case APSL1_2: return "Apple Public Source License 1.2.";
3009            case APSL2_0: return "Apple Public Source License 2.0.";
3010            case ARTISTIC1_0CL8: return "Artistic License 1.0 w/clause 8.";
3011            case ARTISTIC1_0PERL: return "Artistic License 1.0 (Perl).";
3012            case ARTISTIC1_0: return "Artistic License 1.0.";
3013            case ARTISTIC2_0: return "Artistic License 2.0.";
3014            case BAHYPH: return "Bahyph License.";
3015            case BARR: return "Barr License.";
3016            case BEERWARE: return "Beerware License.";
3017            case BITTORRENT1_0: return "BitTorrent Open Source License v1.0.";
3018            case BITTORRENT1_1: return "BitTorrent Open Source License v1.1.";
3019            case BORCEUX: return "Borceux license.";
3020            case BSD1CLAUSE: return "BSD 1-Clause License.";
3021            case BSD2CLAUSEFREEBSD: return "BSD 2-Clause FreeBSD License.";
3022            case BSD2CLAUSENETBSD: return "BSD 2-Clause NetBSD License.";
3023            case BSD2CLAUSEPATENT: return "BSD-2-Clause Plus Patent License.";
3024            case BSD2CLAUSE: return "BSD 2-Clause \"Simplified\" License.";
3025            case BSD3CLAUSEATTRIBUTION: return "BSD with attribution.";
3026            case BSD3CLAUSECLEAR: return "BSD 3-Clause Clear License.";
3027            case BSD3CLAUSELBNL: return "Lawrence Berkeley National Labs BSD variant license.";
3028            case BSD3CLAUSENONUCLEARLICENSE2014: return "BSD 3-Clause No Nuclear License 2014.";
3029            case BSD3CLAUSENONUCLEARLICENSE: return "BSD 3-Clause No Nuclear License.";
3030            case BSD3CLAUSENONUCLEARWARRANTY: return "BSD 3-Clause No Nuclear Warranty.";
3031            case BSD3CLAUSE: return "BSD 3-Clause \"New\" or \"Revised\" License.";
3032            case BSD4CLAUSEUC: return "BSD-4-Clause (University of California-Specific).";
3033            case BSD4CLAUSE: return "BSD 4-Clause \"Original\" or \"Old\" License.";
3034            case BSDPROTECTION: return "BSD Protection License.";
3035            case BSDSOURCECODE: return "BSD Source Code Attribution.";
3036            case BSL1_0: return "Boost Software License 1.0.";
3037            case BZIP21_0_5: return "bzip2 and libbzip2 License v1.0.5.";
3038            case BZIP21_0_6: return "bzip2 and libbzip2 License v1.0.6.";
3039            case CALDERA: return "Caldera License.";
3040            case CATOSL1_1: return "Computer Associates Trusted Open Source License 1.1.";
3041            case CCBY1_0: return "Creative Commons Attribution 1.0 Generic.";
3042            case CCBY2_0: return "Creative Commons Attribution 2.0 Generic.";
3043            case CCBY2_5: return "Creative Commons Attribution 2.5 Generic.";
3044            case CCBY3_0: return "Creative Commons Attribution 3.0 Unported.";
3045            case CCBY4_0: return "Creative Commons Attribution 4.0 International.";
3046            case CCBYNC1_0: return "Creative Commons Attribution Non Commercial 1.0 Generic.";
3047            case CCBYNC2_0: return "Creative Commons Attribution Non Commercial 2.0 Generic.";
3048            case CCBYNC2_5: return "Creative Commons Attribution Non Commercial 2.5 Generic.";
3049            case CCBYNC3_0: return "Creative Commons Attribution Non Commercial 3.0 Unported.";
3050            case CCBYNC4_0: return "Creative Commons Attribution Non Commercial 4.0 International.";
3051            case CCBYNCND1_0: return "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic.";
3052            case CCBYNCND2_0: return "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic.";
3053            case CCBYNCND2_5: return "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic.";
3054            case CCBYNCND3_0: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported.";
3055            case CCBYNCND4_0: return "Creative Commons Attribution Non Commercial No Derivatives 4.0 International.";
3056            case CCBYNCSA1_0: return "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic.";
3057            case CCBYNCSA2_0: return "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic.";
3058            case CCBYNCSA2_5: return "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic.";
3059            case CCBYNCSA3_0: return "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported.";
3060            case CCBYNCSA4_0: return "Creative Commons Attribution Non Commercial Share Alike 4.0 International.";
3061            case CCBYND1_0: return "Creative Commons Attribution No Derivatives 1.0 Generic.";
3062            case CCBYND2_0: return "Creative Commons Attribution No Derivatives 2.0 Generic.";
3063            case CCBYND2_5: return "Creative Commons Attribution No Derivatives 2.5 Generic.";
3064            case CCBYND3_0: return "Creative Commons Attribution No Derivatives 3.0 Unported.";
3065            case CCBYND4_0: return "Creative Commons Attribution No Derivatives 4.0 International.";
3066            case CCBYSA1_0: return "Creative Commons Attribution Share Alike 1.0 Generic.";
3067            case CCBYSA2_0: return "Creative Commons Attribution Share Alike 2.0 Generic.";
3068            case CCBYSA2_5: return "Creative Commons Attribution Share Alike 2.5 Generic.";
3069            case CCBYSA3_0: return "Creative Commons Attribution Share Alike 3.0 Unported.";
3070            case CCBYSA4_0: return "Creative Commons Attribution Share Alike 4.0 International.";
3071            case CC01_0: return "Creative Commons Zero v1.0 Universal.";
3072            case CDDL1_0: return "Common Development and Distribution License 1.0.";
3073            case CDDL1_1: return "Common Development and Distribution License 1.1.";
3074            case CDLAPERMISSIVE1_0: return "Community Data License Agreement Permissive 1.0.";
3075            case CDLASHARING1_0: return "Community Data License Agreement Sharing 1.0.";
3076            case CECILL1_0: return "CeCILL Free Software License Agreement v1.0.";
3077            case CECILL1_1: return "CeCILL Free Software License Agreement v1.1.";
3078            case CECILL2_0: return "CeCILL Free Software License Agreement v2.0.";
3079            case CECILL2_1: return "CeCILL Free Software License Agreement v2.1.";
3080            case CECILLB: return "CeCILL-B Free Software License Agreement.";
3081            case CECILLC: return "CeCILL-C Free Software License Agreement.";
3082            case CLARTISTIC: return "Clarified Artistic License.";
3083            case CNRIJYTHON: return "CNRI Jython License.";
3084            case CNRIPYTHONGPLCOMPATIBLE: return "CNRI Python Open Source GPL Compatible License Agreement.";
3085            case CNRIPYTHON: return "CNRI Python License.";
3086            case CONDOR1_1: return "Condor Public License v1.1.";
3087            case CPAL1_0: return "Common Public Attribution License 1.0.";
3088            case CPL1_0: return "Common Public License 1.0.";
3089            case CPOL1_02: return "Code Project Open License 1.02.";
3090            case CROSSWORD: return "Crossword License.";
3091            case CRYSTALSTACKER: return "CrystalStacker License.";
3092            case CUAOPL1_0: return "CUA Office Public License v1.0.";
3093            case CUBE: return "Cube License.";
3094            case CURL: return "curl License.";
3095            case DFSL1_0: return "Deutsche Freie Software Lizenz.";
3096            case DIFFMARK: return "diffmark license.";
3097            case DOC: return "DOC License.";
3098            case DOTSEQN: return "Dotseqn License.";
3099            case DSDP: return "DSDP License.";
3100            case DVIPDFM: return "dvipdfm License.";
3101            case ECL1_0: return "Educational Community License v1.0.";
3102            case ECL2_0: return "Educational Community License v2.0.";
3103            case EFL1_0: return "Eiffel Forum License v1.0.";
3104            case EFL2_0: return "Eiffel Forum License v2.0.";
3105            case EGENIX: return "eGenix.com Public License 1.1.0.";
3106            case ENTESSA: return "Entessa Public License v1.0.";
3107            case EPL1_0: return "Eclipse Public License 1.0.";
3108            case EPL2_0: return "Eclipse Public License 2.0.";
3109            case ERLPL1_1: return "Erlang Public License v1.1.";
3110            case EUDATAGRID: return "EU DataGrid Software License.";
3111            case EUPL1_0: return "European Union Public License 1.0.";
3112            case EUPL1_1: return "European Union Public License 1.1.";
3113            case EUPL1_2: return "European Union Public License 1.2.";
3114            case EUROSYM: return "Eurosym License.";
3115            case FAIR: return "Fair License.";
3116            case FRAMEWORX1_0: return "Frameworx Open License 1.0.";
3117            case FREEIMAGE: return "FreeImage Public License v1.0.";
3118            case FSFAP: return "FSF All Permissive License.";
3119            case FSFUL: return "FSF Unlimited License.";
3120            case FSFULLR: return "FSF Unlimited License (with License Retention).";
3121            case FTL: return "Freetype Project License.";
3122            case GFDL1_1ONLY: return "GNU Free Documentation License v1.1 only.";
3123            case GFDL1_1ORLATER: return "GNU Free Documentation License v1.1 or later.";
3124            case GFDL1_2ONLY: return "GNU Free Documentation License v1.2 only.";
3125            case GFDL1_2ORLATER: return "GNU Free Documentation License v1.2 or later.";
3126            case GFDL1_3ONLY: return "GNU Free Documentation License v1.3 only.";
3127            case GFDL1_3ORLATER: return "GNU Free Documentation License v1.3 or later.";
3128            case GIFTWARE: return "Giftware License.";
3129            case GL2PS: return "GL2PS License.";
3130            case GLIDE: return "3dfx Glide License.";
3131            case GLULXE: return "Glulxe License.";
3132            case GNUPLOT: return "gnuplot License.";
3133            case GPL1_0ONLY: return "GNU General Public License v1.0 only.";
3134            case GPL1_0ORLATER: return "GNU General Public License v1.0 or later.";
3135            case GPL2_0ONLY: return "GNU General Public License v2.0 only.";
3136            case GPL2_0ORLATER: return "GNU General Public License v2.0 or later.";
3137            case GPL3_0ONLY: return "GNU General Public License v3.0 only.";
3138            case GPL3_0ORLATER: return "GNU General Public License v3.0 or later.";
3139            case GSOAP1_3B: return "gSOAP Public License v1.3b.";
3140            case HASKELLREPORT: return "Haskell Language Report License.";
3141            case HPND: return "Historical Permission Notice and Disclaimer.";
3142            case IBMPIBS: return "IBM PowerPC Initialization and Boot Software.";
3143            case ICU: return "ICU License.";
3144            case IJG: return "Independent JPEG Group License.";
3145            case IMAGEMAGICK: return "ImageMagick License.";
3146            case IMATIX: return "iMatix Standard Function Library Agreement.";
3147            case IMLIB2: return "Imlib2 License.";
3148            case INFOZIP: return "Info-ZIP License.";
3149            case INTELACPI: return "Intel ACPI Software License Agreement.";
3150            case INTEL: return "Intel Open Source License.";
3151            case INTERBASE1_0: return "Interbase Public License v1.0.";
3152            case IPA: return "IPA Font License.";
3153            case IPL1_0: return "IBM Public License v1.0.";
3154            case ISC: return "ISC License.";
3155            case JASPER2_0: return "JasPer License.";
3156            case JSON: return "JSON License.";
3157            case LAL1_2: return "Licence Art Libre 1.2.";
3158            case LAL1_3: return "Licence Art Libre 1.3.";
3159            case LATEX2E: return "Latex2e License.";
3160            case LEPTONICA: return "Leptonica License.";
3161            case LGPL2_0ONLY: return "GNU Library General Public License v2 only.";
3162            case LGPL2_0ORLATER: return "GNU Library General Public License v2 or later.";
3163            case LGPL2_1ONLY: return "GNU Lesser General Public License v2.1 only.";
3164            case LGPL2_1ORLATER: return "GNU Lesser General Public License v2.1 or later.";
3165            case LGPL3_0ONLY: return "GNU Lesser General Public License v3.0 only.";
3166            case LGPL3_0ORLATER: return "GNU Lesser General Public License v3.0 or later.";
3167            case LGPLLR: return "Lesser General Public License For Linguistic Resources.";
3168            case LIBPNG: return "libpng License.";
3169            case LIBTIFF: return "libtiff License.";
3170            case LILIQP1_1: return "Licence Libre du Québec ? Permissive version 1.1.";
3171            case LILIQR1_1: return "Licence Libre du Québec ? Réciprocité version 1.1.";
3172            case LILIQRPLUS1_1: return "Licence Libre du Québec ? Réciprocité forte version 1.1.";
3173            case LINUXOPENIB: return "Linux Kernel Variant of OpenIB.org license.";
3174            case LPL1_0: return "Lucent Public License Version 1.0.";
3175            case LPL1_02: return "Lucent Public License v1.02.";
3176            case LPPL1_0: return "LaTeX Project Public License v1.0.";
3177            case LPPL1_1: return "LaTeX Project Public License v1.1.";
3178            case LPPL1_2: return "LaTeX Project Public License v1.2.";
3179            case LPPL1_3A: return "LaTeX Project Public License v1.3a.";
3180            case LPPL1_3C: return "LaTeX Project Public License v1.3c.";
3181            case MAKEINDEX: return "MakeIndex License.";
3182            case MIROS: return "MirOS License.";
3183            case MIT0: return "MIT No Attribution.";
3184            case MITADVERTISING: return "Enlightenment License (e16).";
3185            case MITCMU: return "CMU License.";
3186            case MITENNA: return "enna License.";
3187            case MITFEH: return "feh License.";
3188            case MIT: return "MIT License.";
3189            case MITNFA: return "MIT +no-false-attribs license.";
3190            case MOTOSOTO: return "Motosoto License.";
3191            case MPICH2: return "mpich2 License.";
3192            case MPL1_0: return "Mozilla Public License 1.0.";
3193            case MPL1_1: return "Mozilla Public License 1.1.";
3194            case MPL2_0NOCOPYLEFTEXCEPTION: return "Mozilla Public License 2.0 (no copyleft exception).";
3195            case MPL2_0: return "Mozilla Public License 2.0.";
3196            case MSPL: return "Microsoft Public License.";
3197            case MSRL: return "Microsoft Reciprocal License.";
3198            case MTLL: return "Matrix Template Library License.";
3199            case MULTICS: return "Multics License.";
3200            case MUP: return "Mup License.";
3201            case NASA1_3: return "NASA Open Source Agreement 1.3.";
3202            case NAUMEN: return "Naumen Public License.";
3203            case NBPL1_0: return "Net Boolean Public License v1.";
3204            case NCSA: return "University of Illinois/NCSA Open Source License.";
3205            case NETSNMP: return "Net-SNMP License.";
3206            case NETCDF: return "NetCDF license.";
3207            case NEWSLETR: return "Newsletr License.";
3208            case NGPL: return "Nethack General Public License.";
3209            case NLOD1_0: return "Norwegian Licence for Open Government Data.";
3210            case NLPL: return "No Limit Public License.";
3211            case NOKIA: return "Nokia Open Source License.";
3212            case NOSL: return "Netizen Open Source License.";
3213            case NOWEB: return "Noweb License.";
3214            case NPL1_0: return "Netscape Public License v1.0.";
3215            case NPL1_1: return "Netscape Public License v1.1.";
3216            case NPOSL3_0: return "Non-Profit Open Software License 3.0.";
3217            case NRL: return "NRL License.";
3218            case NTP: return "NTP License.";
3219            case OCCTPL: return "Open CASCADE Technology Public License.";
3220            case OCLC2_0: return "OCLC Research Public License 2.0.";
3221            case ODBL1_0: return "ODC Open Database License v1.0.";
3222            case OFL1_0: return "SIL Open Font License 1.0.";
3223            case OFL1_1: return "SIL Open Font License 1.1.";
3224            case OGTSL: return "Open Group Test Suite License.";
3225            case OLDAP1_1: return "Open LDAP Public License v1.1.";
3226            case OLDAP1_2: return "Open LDAP Public License v1.2.";
3227            case OLDAP1_3: return "Open LDAP Public License v1.3.";
3228            case OLDAP1_4: return "Open LDAP Public License v1.4.";
3229            case OLDAP2_0_1: return "Open LDAP Public License v2.0.1.";
3230            case OLDAP2_0: return "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B).";
3231            case OLDAP2_1: return "Open LDAP Public License v2.1.";
3232            case OLDAP2_2_1: return "Open LDAP Public License v2.2.1.";
3233            case OLDAP2_2_2: return "Open LDAP Public License 2.2.2.";
3234            case OLDAP2_2: return "Open LDAP Public License v2.2.";
3235            case OLDAP2_3: return "Open LDAP Public License v2.3.";
3236            case OLDAP2_4: return "Open LDAP Public License v2.4.";
3237            case OLDAP2_5: return "Open LDAP Public License v2.5.";
3238            case OLDAP2_6: return "Open LDAP Public License v2.6.";
3239            case OLDAP2_7: return "Open LDAP Public License v2.7.";
3240            case OLDAP2_8: return "Open LDAP Public License v2.8.";
3241            case OML: return "Open Market License.";
3242            case OPENSSL: return "OpenSSL License.";
3243            case OPL1_0: return "Open Public License v1.0.";
3244            case OSETPL2_1: return "OSET Public License version 2.1.";
3245            case OSL1_0: return "Open Software License 1.0.";
3246            case OSL1_1: return "Open Software License 1.1.";
3247            case OSL2_0: return "Open Software License 2.0.";
3248            case OSL2_1: return "Open Software License 2.1.";
3249            case OSL3_0: return "Open Software License 3.0.";
3250            case PDDL1_0: return "ODC Public Domain Dedication & License 1.0.";
3251            case PHP3_0: return "PHP License v3.0.";
3252            case PHP3_01: return "PHP License v3.01.";
3253            case PLEXUS: return "Plexus Classworlds License.";
3254            case POSTGRESQL: return "PostgreSQL License.";
3255            case PSFRAG: return "psfrag License.";
3256            case PSUTILS: return "psutils License.";
3257            case PYTHON2_0: return "Python License 2.0.";
3258            case QHULL: return "Qhull License.";
3259            case QPL1_0: return "Q Public License 1.0.";
3260            case RDISC: return "Rdisc License.";
3261            case RHECOS1_1: return "Red Hat eCos Public License v1.1.";
3262            case RPL1_1: return "Reciprocal Public License 1.1.";
3263            case RPL1_5: return "Reciprocal Public License 1.5.";
3264            case RPSL1_0: return "RealNetworks Public Source License v1.0.";
3265            case RSAMD: return "RSA Message-Digest License.";
3266            case RSCPL: return "Ricoh Source Code Public License.";
3267            case RUBY: return "Ruby License.";
3268            case SAXPD: return "Sax Public Domain Notice.";
3269            case SAXPATH: return "Saxpath License.";
3270            case SCEA: return "SCEA Shared Source License.";
3271            case SENDMAIL: return "Sendmail License.";
3272            case SGIB1_0: return "SGI Free Software License B v1.0.";
3273            case SGIB1_1: return "SGI Free Software License B v1.1.";
3274            case SGIB2_0: return "SGI Free Software License B v2.0.";
3275            case SIMPL2_0: return "Simple Public License 2.0.";
3276            case SISSL1_2: return "Sun Industry Standards Source License v1.2.";
3277            case SISSL: return "Sun Industry Standards Source License v1.1.";
3278            case SLEEPYCAT: return "Sleepycat License.";
3279            case SMLNJ: return "Standard ML of New Jersey License.";
3280            case SMPPL: return "Secure Messaging Protocol Public License.";
3281            case SNIA: return "SNIA Public License 1.1.";
3282            case SPENCER86: return "Spencer License 86.";
3283            case SPENCER94: return "Spencer License 94.";
3284            case SPENCER99: return "Spencer License 99.";
3285            case SPL1_0: return "Sun Public License v1.0.";
3286            case SUGARCRM1_1_3: return "SugarCRM Public License v1.1.3.";
3287            case SWL: return "Scheme Widget Library (SWL) Software License Agreement.";
3288            case TCL: return "TCL/TK License.";
3289            case TCPWRAPPERS: return "TCP Wrappers License.";
3290            case TMATE: return "TMate Open Source License.";
3291            case TORQUE1_1: return "TORQUE v2.5+ Software License v1.1.";
3292            case TOSL: return "Trusster Open Source License.";
3293            case UNICODEDFS2015: return "Unicode License Agreement - Data Files and Software (2015).";
3294            case UNICODEDFS2016: return "Unicode License Agreement - Data Files and Software (2016).";
3295            case UNICODETOU: return "Unicode Terms of Use.";
3296            case UNLICENSE: return "The Unlicense.";
3297            case UPL1_0: return "Universal Permissive License v1.0.";
3298            case VIM: return "Vim License.";
3299            case VOSTROM: return "VOSTROM Public License for Open Source.";
3300            case VSL1_0: return "Vovida Software License v1.0.";
3301            case W3C19980720: return "W3C Software Notice and License (1998-07-20).";
3302            case W3C20150513: return "W3C Software Notice and Document License (2015-05-13).";
3303            case W3C: return "W3C Software Notice and License (2002-12-31).";
3304            case WATCOM1_0: return "Sybase Open Watcom Public License 1.0.";
3305            case WSUIPA: return "Wsuipa License.";
3306            case WTFPL: return "Do What The F*ck You Want To Public License.";
3307            case X11: return "X11 License.";
3308            case XEROX: return "Xerox License.";
3309            case XFREE861_1: return "XFree86 License 1.1.";
3310            case XINETD: return "xinetd License.";
3311            case XNET: return "X.Net License.";
3312            case XPP: return "XPP License.";
3313            case XSKAT: return "XSkat License.";
3314            case YPL1_0: return "Yahoo! Public License v1.0.";
3315            case YPL1_1: return "Yahoo! Public License v1.1.";
3316            case ZED: return "Zed License.";
3317            case ZEND2_0: return "Zend License v2.0.";
3318            case ZIMBRA1_3: return "Zimbra Public License v1.3.";
3319            case ZIMBRA1_4: return "Zimbra Public License v1.4.";
3320            case ZLIBACKNOWLEDGEMENT: return "zlib/libpng License with Acknowledgement.";
3321            case ZLIB: return "zlib License.";
3322            case ZPL1_1: return "Zope Public License 1.1.";
3323            case ZPL2_0: return "Zope Public License 2.0.";
3324            case ZPL2_1: return "Zope Public License 2.1.";
3325            case NULL: return null;
3326            default: return "?";
3327          }
3328        }
3329        public String getDisplay() {
3330          switch (this) {
3331            case NOTOPENSOURCE: return "Not open source";
3332            case _0BSD: return "BSD Zero Clause License";
3333            case AAL: return "Attribution Assurance License";
3334            case ABSTYLES: return "Abstyles License";
3335            case ADOBE2006: return "Adobe Systems Incorporated Source Code License Agreement";
3336            case ADOBEGLYPH: return "Adobe Glyph List License";
3337            case ADSL: return "Amazon Digital Services License";
3338            case AFL1_1: return "Academic Free License v1.1";
3339            case AFL1_2: return "Academic Free License v1.2";
3340            case AFL2_0: return "Academic Free License v2.0";
3341            case AFL2_1: return "Academic Free License v2.1";
3342            case AFL3_0: return "Academic Free License v3.0";
3343            case AFMPARSE: return "Afmparse License";
3344            case AGPL1_0ONLY: return "Affero General Public License v1.0 only";
3345            case AGPL1_0ORLATER: return "Affero General Public License v1.0 or later";
3346            case AGPL3_0ONLY: return "GNU Affero General Public License v3.0 only";
3347            case AGPL3_0ORLATER: return "GNU Affero General Public License v3.0 or later";
3348            case ALADDIN: return "Aladdin Free Public License";
3349            case AMDPLPA: return "AMD's plpa_map.c License";
3350            case AML: return "Apple MIT License";
3351            case AMPAS: return "Academy of Motion Picture Arts and Sciences BSD";
3352            case ANTLRPD: return "ANTLR Software Rights Notice";
3353            case APACHE1_0: return "Apache License 1.0";
3354            case APACHE1_1: return "Apache License 1.1";
3355            case APACHE2_0: return "Apache License 2.0";
3356            case APAFML: return "Adobe Postscript AFM License";
3357            case APL1_0: return "Adaptive Public License 1.0";
3358            case APSL1_0: return "Apple Public Source License 1.0";
3359            case APSL1_1: return "Apple Public Source License 1.1";
3360            case APSL1_2: return "Apple Public Source License 1.2";
3361            case APSL2_0: return "Apple Public Source License 2.0";
3362            case ARTISTIC1_0CL8: return "Artistic License 1.0 w/clause 8";
3363            case ARTISTIC1_0PERL: return "Artistic License 1.0 (Perl)";
3364            case ARTISTIC1_0: return "Artistic License 1.0";
3365            case ARTISTIC2_0: return "Artistic License 2.0";
3366            case BAHYPH: return "Bahyph License";
3367            case BARR: return "Barr License";
3368            case BEERWARE: return "Beerware License";
3369            case BITTORRENT1_0: return "BitTorrent Open Source License v1.0";
3370            case BITTORRENT1_1: return "BitTorrent Open Source License v1.1";
3371            case BORCEUX: return "Borceux license";
3372            case BSD1CLAUSE: return "BSD 1-Clause License";
3373            case BSD2CLAUSEFREEBSD: return "BSD 2-Clause FreeBSD License";
3374            case BSD2CLAUSENETBSD: return "BSD 2-Clause NetBSD License";
3375            case BSD2CLAUSEPATENT: return "BSD-2-Clause Plus Patent License";
3376            case BSD2CLAUSE: return "BSD 2-Clause \"Simplified\" License";
3377            case BSD3CLAUSEATTRIBUTION: return "BSD with attribution";
3378            case BSD3CLAUSECLEAR: return "BSD 3-Clause Clear License";
3379            case BSD3CLAUSELBNL: return "Lawrence Berkeley National Labs BSD variant license";
3380            case BSD3CLAUSENONUCLEARLICENSE2014: return "BSD 3-Clause No Nuclear License 2014";
3381            case BSD3CLAUSENONUCLEARLICENSE: return "BSD 3-Clause No Nuclear License";
3382            case BSD3CLAUSENONUCLEARWARRANTY: return "BSD 3-Clause No Nuclear Warranty";
3383            case BSD3CLAUSE: return "BSD 3-Clause \"New\" or \"Revised\" License";
3384            case BSD4CLAUSEUC: return "BSD-4-Clause (University of California-Specific)";
3385            case BSD4CLAUSE: return "BSD 4-Clause \"Original\" or \"Old\" License";
3386            case BSDPROTECTION: return "BSD Protection License";
3387            case BSDSOURCECODE: return "BSD Source Code Attribution";
3388            case BSL1_0: return "Boost Software License 1.0";
3389            case BZIP21_0_5: return "bzip2 and libbzip2 License v1.0.5";
3390            case BZIP21_0_6: return "bzip2 and libbzip2 License v1.0.6";
3391            case CALDERA: return "Caldera License";
3392            case CATOSL1_1: return "Computer Associates Trusted Open Source License 1.1";
3393            case CCBY1_0: return "Creative Commons Attribution 1.0 Generic";
3394            case CCBY2_0: return "Creative Commons Attribution 2.0 Generic";
3395            case CCBY2_5: return "Creative Commons Attribution 2.5 Generic";
3396            case CCBY3_0: return "Creative Commons Attribution 3.0 Unported";
3397            case CCBY4_0: return "Creative Commons Attribution 4.0 International";
3398            case CCBYNC1_0: return "Creative Commons Attribution Non Commercial 1.0 Generic";
3399            case CCBYNC2_0: return "Creative Commons Attribution Non Commercial 2.0 Generic";
3400            case CCBYNC2_5: return "Creative Commons Attribution Non Commercial 2.5 Generic";
3401            case CCBYNC3_0: return "Creative Commons Attribution Non Commercial 3.0 Unported";
3402            case CCBYNC4_0: return "Creative Commons Attribution Non Commercial 4.0 International";
3403            case CCBYNCND1_0: return "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic";
3404            case CCBYNCND2_0: return "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic";
3405            case CCBYNCND2_5: return "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic";
3406            case CCBYNCND3_0: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported";
3407            case CCBYNCND4_0: return "Creative Commons Attribution Non Commercial No Derivatives 4.0 International";
3408            case CCBYNCSA1_0: return "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic";
3409            case CCBYNCSA2_0: return "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic";
3410            case CCBYNCSA2_5: return "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic";
3411            case CCBYNCSA3_0: return "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported";
3412            case CCBYNCSA4_0: return "Creative Commons Attribution Non Commercial Share Alike 4.0 International";
3413            case CCBYND1_0: return "Creative Commons Attribution No Derivatives 1.0 Generic";
3414            case CCBYND2_0: return "Creative Commons Attribution No Derivatives 2.0 Generic";
3415            case CCBYND2_5: return "Creative Commons Attribution No Derivatives 2.5 Generic";
3416            case CCBYND3_0: return "Creative Commons Attribution No Derivatives 3.0 Unported";
3417            case CCBYND4_0: return "Creative Commons Attribution No Derivatives 4.0 International";
3418            case CCBYSA1_0: return "Creative Commons Attribution Share Alike 1.0 Generic";
3419            case CCBYSA2_0: return "Creative Commons Attribution Share Alike 2.0 Generic";
3420            case CCBYSA2_5: return "Creative Commons Attribution Share Alike 2.5 Generic";
3421            case CCBYSA3_0: return "Creative Commons Attribution Share Alike 3.0 Unported";
3422            case CCBYSA4_0: return "Creative Commons Attribution Share Alike 4.0 International";
3423            case CC01_0: return "Creative Commons Zero v1.0 Universal";
3424            case CDDL1_0: return "Common Development and Distribution License 1.0";
3425            case CDDL1_1: return "Common Development and Distribution License 1.1";
3426            case CDLAPERMISSIVE1_0: return "Community Data License Agreement Permissive 1.0";
3427            case CDLASHARING1_0: return "Community Data License Agreement Sharing 1.0";
3428            case CECILL1_0: return "CeCILL Free Software License Agreement v1.0";
3429            case CECILL1_1: return "CeCILL Free Software License Agreement v1.1";
3430            case CECILL2_0: return "CeCILL Free Software License Agreement v2.0";
3431            case CECILL2_1: return "CeCILL Free Software License Agreement v2.1";
3432            case CECILLB: return "CeCILL-B Free Software License Agreement";
3433            case CECILLC: return "CeCILL-C Free Software License Agreement";
3434            case CLARTISTIC: return "Clarified Artistic License";
3435            case CNRIJYTHON: return "CNRI Jython License";
3436            case CNRIPYTHONGPLCOMPATIBLE: return "CNRI Python Open Source GPL Compatible License Agreement";
3437            case CNRIPYTHON: return "CNRI Python License";
3438            case CONDOR1_1: return "Condor Public License v1.1";
3439            case CPAL1_0: return "Common Public Attribution License 1.0";
3440            case CPL1_0: return "Common Public License 1.0";
3441            case CPOL1_02: return "Code Project Open License 1.02";
3442            case CROSSWORD: return "Crossword License";
3443            case CRYSTALSTACKER: return "CrystalStacker License";
3444            case CUAOPL1_0: return "CUA Office Public License v1.0";
3445            case CUBE: return "Cube License";
3446            case CURL: return "curl License";
3447            case DFSL1_0: return "Deutsche Freie Software Lizenz";
3448            case DIFFMARK: return "diffmark license";
3449            case DOC: return "DOC License";
3450            case DOTSEQN: return "Dotseqn License";
3451            case DSDP: return "DSDP License";
3452            case DVIPDFM: return "dvipdfm License";
3453            case ECL1_0: return "Educational Community License v1.0";
3454            case ECL2_0: return "Educational Community License v2.0";
3455            case EFL1_0: return "Eiffel Forum License v1.0";
3456            case EFL2_0: return "Eiffel Forum License v2.0";
3457            case EGENIX: return "eGenix.com Public License 1.1.0";
3458            case ENTESSA: return "Entessa Public License v1.0";
3459            case EPL1_0: return "Eclipse Public License 1.0";
3460            case EPL2_0: return "Eclipse Public License 2.0";
3461            case ERLPL1_1: return "Erlang Public License v1.1";
3462            case EUDATAGRID: return "EU DataGrid Software License";
3463            case EUPL1_0: return "European Union Public License 1.0";
3464            case EUPL1_1: return "European Union Public License 1.1";
3465            case EUPL1_2: return "European Union Public License 1.2";
3466            case EUROSYM: return "Eurosym License";
3467            case FAIR: return "Fair License";
3468            case FRAMEWORX1_0: return "Frameworx Open License 1.0";
3469            case FREEIMAGE: return "FreeImage Public License v1.0";
3470            case FSFAP: return "FSF All Permissive License";
3471            case FSFUL: return "FSF Unlimited License";
3472            case FSFULLR: return "FSF Unlimited License (with License Retention)";
3473            case FTL: return "Freetype Project License";
3474            case GFDL1_1ONLY: return "GNU Free Documentation License v1.1 only";
3475            case GFDL1_1ORLATER: return "GNU Free Documentation License v1.1 or later";
3476            case GFDL1_2ONLY: return "GNU Free Documentation License v1.2 only";
3477            case GFDL1_2ORLATER: return "GNU Free Documentation License v1.2 or later";
3478            case GFDL1_3ONLY: return "GNU Free Documentation License v1.3 only";
3479            case GFDL1_3ORLATER: return "GNU Free Documentation License v1.3 or later";
3480            case GIFTWARE: return "Giftware License";
3481            case GL2PS: return "GL2PS License";
3482            case GLIDE: return "3dfx Glide License";
3483            case GLULXE: return "Glulxe License";
3484            case GNUPLOT: return "gnuplot License";
3485            case GPL1_0ONLY: return "GNU General Public License v1.0 only";
3486            case GPL1_0ORLATER: return "GNU General Public License v1.0 or later";
3487            case GPL2_0ONLY: return "GNU General Public License v2.0 only";
3488            case GPL2_0ORLATER: return "GNU General Public License v2.0 or later";
3489            case GPL3_0ONLY: return "GNU General Public License v3.0 only";
3490            case GPL3_0ORLATER: return "GNU General Public License v3.0 or later";
3491            case GSOAP1_3B: return "gSOAP Public License v1.3b";
3492            case HASKELLREPORT: return "Haskell Language Report License";
3493            case HPND: return "Historical Permission Notice and Disclaimer";
3494            case IBMPIBS: return "IBM PowerPC Initialization and Boot Software";
3495            case ICU: return "ICU License";
3496            case IJG: return "Independent JPEG Group License";
3497            case IMAGEMAGICK: return "ImageMagick License";
3498            case IMATIX: return "iMatix Standard Function Library Agreement";
3499            case IMLIB2: return "Imlib2 License";
3500            case INFOZIP: return "Info-ZIP License";
3501            case INTELACPI: return "Intel ACPI Software License Agreement";
3502            case INTEL: return "Intel Open Source License";
3503            case INTERBASE1_0: return "Interbase Public License v1.0";
3504            case IPA: return "IPA Font License";
3505            case IPL1_0: return "IBM Public License v1.0";
3506            case ISC: return "ISC License";
3507            case JASPER2_0: return "JasPer License";
3508            case JSON: return "JSON License";
3509            case LAL1_2: return "Licence Art Libre 1.2";
3510            case LAL1_3: return "Licence Art Libre 1.3";
3511            case LATEX2E: return "Latex2e License";
3512            case LEPTONICA: return "Leptonica License";
3513            case LGPL2_0ONLY: return "GNU Library General Public License v2 only";
3514            case LGPL2_0ORLATER: return "GNU Library General Public License v2 or later";
3515            case LGPL2_1ONLY: return "GNU Lesser General Public License v2.1 only";
3516            case LGPL2_1ORLATER: return "GNU Lesser General Public License v2.1 or later";
3517            case LGPL3_0ONLY: return "GNU Lesser General Public License v3.0 only";
3518            case LGPL3_0ORLATER: return "GNU Lesser General Public License v3.0 or later";
3519            case LGPLLR: return "Lesser General Public License For Linguistic Resources";
3520            case LIBPNG: return "libpng License";
3521            case LIBTIFF: return "libtiff License";
3522            case LILIQP1_1: return "Licence Libre du Québec ? Permissive version 1.1";
3523            case LILIQR1_1: return "Licence Libre du Québec ? Réciprocité version 1.1";
3524            case LILIQRPLUS1_1: return "Licence Libre du Québec ? Réciprocité forte version 1.1";
3525            case LINUXOPENIB: return "Linux Kernel Variant of OpenIB.org license";
3526            case LPL1_0: return "Lucent Public License Version 1.0";
3527            case LPL1_02: return "Lucent Public License v1.02";
3528            case LPPL1_0: return "LaTeX Project Public License v1.0";
3529            case LPPL1_1: return "LaTeX Project Public License v1.1";
3530            case LPPL1_2: return "LaTeX Project Public License v1.2";
3531            case LPPL1_3A: return "LaTeX Project Public License v1.3a";
3532            case LPPL1_3C: return "LaTeX Project Public License v1.3c";
3533            case MAKEINDEX: return "MakeIndex License";
3534            case MIROS: return "MirOS License";
3535            case MIT0: return "MIT No Attribution";
3536            case MITADVERTISING: return "Enlightenment License (e16)";
3537            case MITCMU: return "CMU License";
3538            case MITENNA: return "enna License";
3539            case MITFEH: return "feh License";
3540            case MIT: return "MIT License";
3541            case MITNFA: return "MIT +no-false-attribs license";
3542            case MOTOSOTO: return "Motosoto License";
3543            case MPICH2: return "mpich2 License";
3544            case MPL1_0: return "Mozilla Public License 1.0";
3545            case MPL1_1: return "Mozilla Public License 1.1";
3546            case MPL2_0NOCOPYLEFTEXCEPTION: return "Mozilla Public License 2.0 (no copyleft exception)";
3547            case MPL2_0: return "Mozilla Public License 2.0";
3548            case MSPL: return "Microsoft Public License";
3549            case MSRL: return "Microsoft Reciprocal License";
3550            case MTLL: return "Matrix Template Library License";
3551            case MULTICS: return "Multics License";
3552            case MUP: return "Mup License";
3553            case NASA1_3: return "NASA Open Source Agreement 1.3";
3554            case NAUMEN: return "Naumen Public License";
3555            case NBPL1_0: return "Net Boolean Public License v1";
3556            case NCSA: return "University of Illinois/NCSA Open Source License";
3557            case NETSNMP: return "Net-SNMP License";
3558            case NETCDF: return "NetCDF license";
3559            case NEWSLETR: return "Newsletr License";
3560            case NGPL: return "Nethack General Public License";
3561            case NLOD1_0: return "Norwegian Licence for Open Government Data";
3562            case NLPL: return "No Limit Public License";
3563            case NOKIA: return "Nokia Open Source License";
3564            case NOSL: return "Netizen Open Source License";
3565            case NOWEB: return "Noweb License";
3566            case NPL1_0: return "Netscape Public License v1.0";
3567            case NPL1_1: return "Netscape Public License v1.1";
3568            case NPOSL3_0: return "Non-Profit Open Software License 3.0";
3569            case NRL: return "NRL License";
3570            case NTP: return "NTP License";
3571            case OCCTPL: return "Open CASCADE Technology Public License";
3572            case OCLC2_0: return "OCLC Research Public License 2.0";
3573            case ODBL1_0: return "ODC Open Database License v1.0";
3574            case OFL1_0: return "SIL Open Font License 1.0";
3575            case OFL1_1: return "SIL Open Font License 1.1";
3576            case OGTSL: return "Open Group Test Suite License";
3577            case OLDAP1_1: return "Open LDAP Public License v1.1";
3578            case OLDAP1_2: return "Open LDAP Public License v1.2";
3579            case OLDAP1_3: return "Open LDAP Public License v1.3";
3580            case OLDAP1_4: return "Open LDAP Public License v1.4";
3581            case OLDAP2_0_1: return "Open LDAP Public License v2.0.1";
3582            case OLDAP2_0: return "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)";
3583            case OLDAP2_1: return "Open LDAP Public License v2.1";
3584            case OLDAP2_2_1: return "Open LDAP Public License v2.2.1";
3585            case OLDAP2_2_2: return "Open LDAP Public License 2.2.2";
3586            case OLDAP2_2: return "Open LDAP Public License v2.2";
3587            case OLDAP2_3: return "Open LDAP Public License v2.3";
3588            case OLDAP2_4: return "Open LDAP Public License v2.4";
3589            case OLDAP2_5: return "Open LDAP Public License v2.5";
3590            case OLDAP2_6: return "Open LDAP Public License v2.6";
3591            case OLDAP2_7: return "Open LDAP Public License v2.7";
3592            case OLDAP2_8: return "Open LDAP Public License v2.8";
3593            case OML: return "Open Market License";
3594            case OPENSSL: return "OpenSSL License";
3595            case OPL1_0: return "Open Public License v1.0";
3596            case OSETPL2_1: return "OSET Public License version 2.1";
3597            case OSL1_0: return "Open Software License 1.0";
3598            case OSL1_1: return "Open Software License 1.1";
3599            case OSL2_0: return "Open Software License 2.0";
3600            case OSL2_1: return "Open Software License 2.1";
3601            case OSL3_0: return "Open Software License 3.0";
3602            case PDDL1_0: return "ODC Public Domain Dedication & License 1.0";
3603            case PHP3_0: return "PHP License v3.0";
3604            case PHP3_01: return "PHP License v3.01";
3605            case PLEXUS: return "Plexus Classworlds License";
3606            case POSTGRESQL: return "PostgreSQL License";
3607            case PSFRAG: return "psfrag License";
3608            case PSUTILS: return "psutils License";
3609            case PYTHON2_0: return "Python License 2.0";
3610            case QHULL: return "Qhull License";
3611            case QPL1_0: return "Q Public License 1.0";
3612            case RDISC: return "Rdisc License";
3613            case RHECOS1_1: return "Red Hat eCos Public License v1.1";
3614            case RPL1_1: return "Reciprocal Public License 1.1";
3615            case RPL1_5: return "Reciprocal Public License 1.5";
3616            case RPSL1_0: return "RealNetworks Public Source License v1.0";
3617            case RSAMD: return "RSA Message-Digest License";
3618            case RSCPL: return "Ricoh Source Code Public License";
3619            case RUBY: return "Ruby License";
3620            case SAXPD: return "Sax Public Domain Notice";
3621            case SAXPATH: return "Saxpath License";
3622            case SCEA: return "SCEA Shared Source License";
3623            case SENDMAIL: return "Sendmail License";
3624            case SGIB1_0: return "SGI Free Software License B v1.0";
3625            case SGIB1_1: return "SGI Free Software License B v1.1";
3626            case SGIB2_0: return "SGI Free Software License B v2.0";
3627            case SIMPL2_0: return "Simple Public License 2.0";
3628            case SISSL1_2: return "Sun Industry Standards Source License v1.2";
3629            case SISSL: return "Sun Industry Standards Source License v1.1";
3630            case SLEEPYCAT: return "Sleepycat License";
3631            case SMLNJ: return "Standard ML of New Jersey License";
3632            case SMPPL: return "Secure Messaging Protocol Public License";
3633            case SNIA: return "SNIA Public License 1.1";
3634            case SPENCER86: return "Spencer License 86";
3635            case SPENCER94: return "Spencer License 94";
3636            case SPENCER99: return "Spencer License 99";
3637            case SPL1_0: return "Sun Public License v1.0";
3638            case SUGARCRM1_1_3: return "SugarCRM Public License v1.1.3";
3639            case SWL: return "Scheme Widget Library (SWL) Software License Agreement";
3640            case TCL: return "TCL/TK License";
3641            case TCPWRAPPERS: return "TCP Wrappers License";
3642            case TMATE: return "TMate Open Source License";
3643            case TORQUE1_1: return "TORQUE v2.5+ Software License v1.1";
3644            case TOSL: return "Trusster Open Source License";
3645            case UNICODEDFS2015: return "Unicode License Agreement - Data Files and Software (2015)";
3646            case UNICODEDFS2016: return "Unicode License Agreement - Data Files and Software (2016)";
3647            case UNICODETOU: return "Unicode Terms of Use";
3648            case UNLICENSE: return "The Unlicense";
3649            case UPL1_0: return "Universal Permissive License v1.0";
3650            case VIM: return "Vim License";
3651            case VOSTROM: return "VOSTROM Public License for Open Source";
3652            case VSL1_0: return "Vovida Software License v1.0";
3653            case W3C19980720: return "W3C Software Notice and License (1998-07-20)";
3654            case W3C20150513: return "W3C Software Notice and Document License (2015-05-13)";
3655            case W3C: return "W3C Software Notice and License (2002-12-31)";
3656            case WATCOM1_0: return "Sybase Open Watcom Public License 1.0";
3657            case WSUIPA: return "Wsuipa License";
3658            case WTFPL: return "Do What The F*ck You Want To Public License";
3659            case X11: return "X11 License";
3660            case XEROX: return "Xerox License";
3661            case XFREE861_1: return "XFree86 License 1.1";
3662            case XINETD: return "xinetd License";
3663            case XNET: return "X.Net License";
3664            case XPP: return "XPP License";
3665            case XSKAT: return "XSkat License";
3666            case YPL1_0: return "Yahoo! Public License v1.0";
3667            case YPL1_1: return "Yahoo! Public License v1.1";
3668            case ZED: return "Zed License";
3669            case ZEND2_0: return "Zend License v2.0";
3670            case ZIMBRA1_3: return "Zimbra Public License v1.3";
3671            case ZIMBRA1_4: return "Zimbra Public License v1.4";
3672            case ZLIBACKNOWLEDGEMENT: return "zlib/libpng License with Acknowledgement";
3673            case ZLIB: return "zlib License";
3674            case ZPL1_1: return "Zope Public License 1.1";
3675            case ZPL2_0: return "Zope Public License 2.0";
3676            case ZPL2_1: return "Zope Public License 2.1";
3677            case NULL: return null;
3678            default: return "?";
3679          }
3680        }
3681    }
3682
3683  public static class SPDXLicenseEnumFactory implements EnumFactory<SPDXLicense> {
3684    public SPDXLicense fromCode(String codeString) throws IllegalArgumentException {
3685      if (codeString == null || "".equals(codeString))
3686            if (codeString == null || "".equals(codeString))
3687                return null;
3688        if ("not-open-source".equals(codeString))
3689          return SPDXLicense.NOTOPENSOURCE;
3690        if ("0BSD".equals(codeString))
3691          return SPDXLicense._0BSD;
3692        if ("AAL".equals(codeString))
3693          return SPDXLicense.AAL;
3694        if ("Abstyles".equals(codeString))
3695          return SPDXLicense.ABSTYLES;
3696        if ("Adobe-2006".equals(codeString))
3697          return SPDXLicense.ADOBE2006;
3698        if ("Adobe-Glyph".equals(codeString))
3699          return SPDXLicense.ADOBEGLYPH;
3700        if ("ADSL".equals(codeString))
3701          return SPDXLicense.ADSL;
3702        if ("AFL-1.1".equals(codeString))
3703          return SPDXLicense.AFL1_1;
3704        if ("AFL-1.2".equals(codeString))
3705          return SPDXLicense.AFL1_2;
3706        if ("AFL-2.0".equals(codeString))
3707          return SPDXLicense.AFL2_0;
3708        if ("AFL-2.1".equals(codeString))
3709          return SPDXLicense.AFL2_1;
3710        if ("AFL-3.0".equals(codeString))
3711          return SPDXLicense.AFL3_0;
3712        if ("Afmparse".equals(codeString))
3713          return SPDXLicense.AFMPARSE;
3714        if ("AGPL-1.0-only".equals(codeString))
3715          return SPDXLicense.AGPL1_0ONLY;
3716        if ("AGPL-1.0-or-later".equals(codeString))
3717          return SPDXLicense.AGPL1_0ORLATER;
3718        if ("AGPL-3.0-only".equals(codeString))
3719          return SPDXLicense.AGPL3_0ONLY;
3720        if ("AGPL-3.0-or-later".equals(codeString))
3721          return SPDXLicense.AGPL3_0ORLATER;
3722        if ("Aladdin".equals(codeString))
3723          return SPDXLicense.ALADDIN;
3724        if ("AMDPLPA".equals(codeString))
3725          return SPDXLicense.AMDPLPA;
3726        if ("AML".equals(codeString))
3727          return SPDXLicense.AML;
3728        if ("AMPAS".equals(codeString))
3729          return SPDXLicense.AMPAS;
3730        if ("ANTLR-PD".equals(codeString))
3731          return SPDXLicense.ANTLRPD;
3732        if ("Apache-1.0".equals(codeString))
3733          return SPDXLicense.APACHE1_0;
3734        if ("Apache-1.1".equals(codeString))
3735          return SPDXLicense.APACHE1_1;
3736        if ("Apache-2.0".equals(codeString))
3737          return SPDXLicense.APACHE2_0;
3738        if ("APAFML".equals(codeString))
3739          return SPDXLicense.APAFML;
3740        if ("APL-1.0".equals(codeString))
3741          return SPDXLicense.APL1_0;
3742        if ("APSL-1.0".equals(codeString))
3743          return SPDXLicense.APSL1_0;
3744        if ("APSL-1.1".equals(codeString))
3745          return SPDXLicense.APSL1_1;
3746        if ("APSL-1.2".equals(codeString))
3747          return SPDXLicense.APSL1_2;
3748        if ("APSL-2.0".equals(codeString))
3749          return SPDXLicense.APSL2_0;
3750        if ("Artistic-1.0-cl8".equals(codeString))
3751          return SPDXLicense.ARTISTIC1_0CL8;
3752        if ("Artistic-1.0-Perl".equals(codeString))
3753          return SPDXLicense.ARTISTIC1_0PERL;
3754        if ("Artistic-1.0".equals(codeString))
3755          return SPDXLicense.ARTISTIC1_0;
3756        if ("Artistic-2.0".equals(codeString))
3757          return SPDXLicense.ARTISTIC2_0;
3758        if ("Bahyph".equals(codeString))
3759          return SPDXLicense.BAHYPH;
3760        if ("Barr".equals(codeString))
3761          return SPDXLicense.BARR;
3762        if ("Beerware".equals(codeString))
3763          return SPDXLicense.BEERWARE;
3764        if ("BitTorrent-1.0".equals(codeString))
3765          return SPDXLicense.BITTORRENT1_0;
3766        if ("BitTorrent-1.1".equals(codeString))
3767          return SPDXLicense.BITTORRENT1_1;
3768        if ("Borceux".equals(codeString))
3769          return SPDXLicense.BORCEUX;
3770        if ("BSD-1-Clause".equals(codeString))
3771          return SPDXLicense.BSD1CLAUSE;
3772        if ("BSD-2-Clause-FreeBSD".equals(codeString))
3773          return SPDXLicense.BSD2CLAUSEFREEBSD;
3774        if ("BSD-2-Clause-NetBSD".equals(codeString))
3775          return SPDXLicense.BSD2CLAUSENETBSD;
3776        if ("BSD-2-Clause-Patent".equals(codeString))
3777          return SPDXLicense.BSD2CLAUSEPATENT;
3778        if ("BSD-2-Clause".equals(codeString))
3779          return SPDXLicense.BSD2CLAUSE;
3780        if ("BSD-3-Clause-Attribution".equals(codeString))
3781          return SPDXLicense.BSD3CLAUSEATTRIBUTION;
3782        if ("BSD-3-Clause-Clear".equals(codeString))
3783          return SPDXLicense.BSD3CLAUSECLEAR;
3784        if ("BSD-3-Clause-LBNL".equals(codeString))
3785          return SPDXLicense.BSD3CLAUSELBNL;
3786        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
3787          return SPDXLicense.BSD3CLAUSENONUCLEARLICENSE2014;
3788        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
3789          return SPDXLicense.BSD3CLAUSENONUCLEARLICENSE;
3790        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
3791          return SPDXLicense.BSD3CLAUSENONUCLEARWARRANTY;
3792        if ("BSD-3-Clause".equals(codeString))
3793          return SPDXLicense.BSD3CLAUSE;
3794        if ("BSD-4-Clause-UC".equals(codeString))
3795          return SPDXLicense.BSD4CLAUSEUC;
3796        if ("BSD-4-Clause".equals(codeString))
3797          return SPDXLicense.BSD4CLAUSE;
3798        if ("BSD-Protection".equals(codeString))
3799          return SPDXLicense.BSDPROTECTION;
3800        if ("BSD-Source-Code".equals(codeString))
3801          return SPDXLicense.BSDSOURCECODE;
3802        if ("BSL-1.0".equals(codeString))
3803          return SPDXLicense.BSL1_0;
3804        if ("bzip2-1.0.5".equals(codeString))
3805          return SPDXLicense.BZIP21_0_5;
3806        if ("bzip2-1.0.6".equals(codeString))
3807          return SPDXLicense.BZIP21_0_6;
3808        if ("Caldera".equals(codeString))
3809          return SPDXLicense.CALDERA;
3810        if ("CATOSL-1.1".equals(codeString))
3811          return SPDXLicense.CATOSL1_1;
3812        if ("CC-BY-1.0".equals(codeString))
3813          return SPDXLicense.CCBY1_0;
3814        if ("CC-BY-2.0".equals(codeString))
3815          return SPDXLicense.CCBY2_0;
3816        if ("CC-BY-2.5".equals(codeString))
3817          return SPDXLicense.CCBY2_5;
3818        if ("CC-BY-3.0".equals(codeString))
3819          return SPDXLicense.CCBY3_0;
3820        if ("CC-BY-4.0".equals(codeString))
3821          return SPDXLicense.CCBY4_0;
3822        if ("CC-BY-NC-1.0".equals(codeString))
3823          return SPDXLicense.CCBYNC1_0;
3824        if ("CC-BY-NC-2.0".equals(codeString))
3825          return SPDXLicense.CCBYNC2_0;
3826        if ("CC-BY-NC-2.5".equals(codeString))
3827          return SPDXLicense.CCBYNC2_5;
3828        if ("CC-BY-NC-3.0".equals(codeString))
3829          return SPDXLicense.CCBYNC3_0;
3830        if ("CC-BY-NC-4.0".equals(codeString))
3831          return SPDXLicense.CCBYNC4_0;
3832        if ("CC-BY-NC-ND-1.0".equals(codeString))
3833          return SPDXLicense.CCBYNCND1_0;
3834        if ("CC-BY-NC-ND-2.0".equals(codeString))
3835          return SPDXLicense.CCBYNCND2_0;
3836        if ("CC-BY-NC-ND-2.5".equals(codeString))
3837          return SPDXLicense.CCBYNCND2_5;
3838        if ("CC-BY-NC-ND-3.0".equals(codeString))
3839          return SPDXLicense.CCBYNCND3_0;
3840        if ("CC-BY-NC-ND-4.0".equals(codeString))
3841          return SPDXLicense.CCBYNCND4_0;
3842        if ("CC-BY-NC-SA-1.0".equals(codeString))
3843          return SPDXLicense.CCBYNCSA1_0;
3844        if ("CC-BY-NC-SA-2.0".equals(codeString))
3845          return SPDXLicense.CCBYNCSA2_0;
3846        if ("CC-BY-NC-SA-2.5".equals(codeString))
3847          return SPDXLicense.CCBYNCSA2_5;
3848        if ("CC-BY-NC-SA-3.0".equals(codeString))
3849          return SPDXLicense.CCBYNCSA3_0;
3850        if ("CC-BY-NC-SA-4.0".equals(codeString))
3851          return SPDXLicense.CCBYNCSA4_0;
3852        if ("CC-BY-ND-1.0".equals(codeString))
3853          return SPDXLicense.CCBYND1_0;
3854        if ("CC-BY-ND-2.0".equals(codeString))
3855          return SPDXLicense.CCBYND2_0;
3856        if ("CC-BY-ND-2.5".equals(codeString))
3857          return SPDXLicense.CCBYND2_5;
3858        if ("CC-BY-ND-3.0".equals(codeString))
3859          return SPDXLicense.CCBYND3_0;
3860        if ("CC-BY-ND-4.0".equals(codeString))
3861          return SPDXLicense.CCBYND4_0;
3862        if ("CC-BY-SA-1.0".equals(codeString))
3863          return SPDXLicense.CCBYSA1_0;
3864        if ("CC-BY-SA-2.0".equals(codeString))
3865          return SPDXLicense.CCBYSA2_0;
3866        if ("CC-BY-SA-2.5".equals(codeString))
3867          return SPDXLicense.CCBYSA2_5;
3868        if ("CC-BY-SA-3.0".equals(codeString))
3869          return SPDXLicense.CCBYSA3_0;
3870        if ("CC-BY-SA-4.0".equals(codeString))
3871          return SPDXLicense.CCBYSA4_0;
3872        if ("CC0-1.0".equals(codeString))
3873          return SPDXLicense.CC01_0;
3874        if ("CDDL-1.0".equals(codeString))
3875          return SPDXLicense.CDDL1_0;
3876        if ("CDDL-1.1".equals(codeString))
3877          return SPDXLicense.CDDL1_1;
3878        if ("CDLA-Permissive-1.0".equals(codeString))
3879          return SPDXLicense.CDLAPERMISSIVE1_0;
3880        if ("CDLA-Sharing-1.0".equals(codeString))
3881          return SPDXLicense.CDLASHARING1_0;
3882        if ("CECILL-1.0".equals(codeString))
3883          return SPDXLicense.CECILL1_0;
3884        if ("CECILL-1.1".equals(codeString))
3885          return SPDXLicense.CECILL1_1;
3886        if ("CECILL-2.0".equals(codeString))
3887          return SPDXLicense.CECILL2_0;
3888        if ("CECILL-2.1".equals(codeString))
3889          return SPDXLicense.CECILL2_1;
3890        if ("CECILL-B".equals(codeString))
3891          return SPDXLicense.CECILLB;
3892        if ("CECILL-C".equals(codeString))
3893          return SPDXLicense.CECILLC;
3894        if ("ClArtistic".equals(codeString))
3895          return SPDXLicense.CLARTISTIC;
3896        if ("CNRI-Jython".equals(codeString))
3897          return SPDXLicense.CNRIJYTHON;
3898        if ("CNRI-Python-GPL-Compatible".equals(codeString))
3899          return SPDXLicense.CNRIPYTHONGPLCOMPATIBLE;
3900        if ("CNRI-Python".equals(codeString))
3901          return SPDXLicense.CNRIPYTHON;
3902        if ("Condor-1.1".equals(codeString))
3903          return SPDXLicense.CONDOR1_1;
3904        if ("CPAL-1.0".equals(codeString))
3905          return SPDXLicense.CPAL1_0;
3906        if ("CPL-1.0".equals(codeString))
3907          return SPDXLicense.CPL1_0;
3908        if ("CPOL-1.02".equals(codeString))
3909          return SPDXLicense.CPOL1_02;
3910        if ("Crossword".equals(codeString))
3911          return SPDXLicense.CROSSWORD;
3912        if ("CrystalStacker".equals(codeString))
3913          return SPDXLicense.CRYSTALSTACKER;
3914        if ("CUA-OPL-1.0".equals(codeString))
3915          return SPDXLicense.CUAOPL1_0;
3916        if ("Cube".equals(codeString))
3917          return SPDXLicense.CUBE;
3918        if ("curl".equals(codeString))
3919          return SPDXLicense.CURL;
3920        if ("D-FSL-1.0".equals(codeString))
3921          return SPDXLicense.DFSL1_0;
3922        if ("diffmark".equals(codeString))
3923          return SPDXLicense.DIFFMARK;
3924        if ("DOC".equals(codeString))
3925          return SPDXLicense.DOC;
3926        if ("Dotseqn".equals(codeString))
3927          return SPDXLicense.DOTSEQN;
3928        if ("DSDP".equals(codeString))
3929          return SPDXLicense.DSDP;
3930        if ("dvipdfm".equals(codeString))
3931          return SPDXLicense.DVIPDFM;
3932        if ("ECL-1.0".equals(codeString))
3933          return SPDXLicense.ECL1_0;
3934        if ("ECL-2.0".equals(codeString))
3935          return SPDXLicense.ECL2_0;
3936        if ("EFL-1.0".equals(codeString))
3937          return SPDXLicense.EFL1_0;
3938        if ("EFL-2.0".equals(codeString))
3939          return SPDXLicense.EFL2_0;
3940        if ("eGenix".equals(codeString))
3941          return SPDXLicense.EGENIX;
3942        if ("Entessa".equals(codeString))
3943          return SPDXLicense.ENTESSA;
3944        if ("EPL-1.0".equals(codeString))
3945          return SPDXLicense.EPL1_0;
3946        if ("EPL-2.0".equals(codeString))
3947          return SPDXLicense.EPL2_0;
3948        if ("ErlPL-1.1".equals(codeString))
3949          return SPDXLicense.ERLPL1_1;
3950        if ("EUDatagrid".equals(codeString))
3951          return SPDXLicense.EUDATAGRID;
3952        if ("EUPL-1.0".equals(codeString))
3953          return SPDXLicense.EUPL1_0;
3954        if ("EUPL-1.1".equals(codeString))
3955          return SPDXLicense.EUPL1_1;
3956        if ("EUPL-1.2".equals(codeString))
3957          return SPDXLicense.EUPL1_2;
3958        if ("Eurosym".equals(codeString))
3959          return SPDXLicense.EUROSYM;
3960        if ("Fair".equals(codeString))
3961          return SPDXLicense.FAIR;
3962        if ("Frameworx-1.0".equals(codeString))
3963          return SPDXLicense.FRAMEWORX1_0;
3964        if ("FreeImage".equals(codeString))
3965          return SPDXLicense.FREEIMAGE;
3966        if ("FSFAP".equals(codeString))
3967          return SPDXLicense.FSFAP;
3968        if ("FSFUL".equals(codeString))
3969          return SPDXLicense.FSFUL;
3970        if ("FSFULLR".equals(codeString))
3971          return SPDXLicense.FSFULLR;
3972        if ("FTL".equals(codeString))
3973          return SPDXLicense.FTL;
3974        if ("GFDL-1.1-only".equals(codeString))
3975          return SPDXLicense.GFDL1_1ONLY;
3976        if ("GFDL-1.1-or-later".equals(codeString))
3977          return SPDXLicense.GFDL1_1ORLATER;
3978        if ("GFDL-1.2-only".equals(codeString))
3979          return SPDXLicense.GFDL1_2ONLY;
3980        if ("GFDL-1.2-or-later".equals(codeString))
3981          return SPDXLicense.GFDL1_2ORLATER;
3982        if ("GFDL-1.3-only".equals(codeString))
3983          return SPDXLicense.GFDL1_3ONLY;
3984        if ("GFDL-1.3-or-later".equals(codeString))
3985          return SPDXLicense.GFDL1_3ORLATER;
3986        if ("Giftware".equals(codeString))
3987          return SPDXLicense.GIFTWARE;
3988        if ("GL2PS".equals(codeString))
3989          return SPDXLicense.GL2PS;
3990        if ("Glide".equals(codeString))
3991          return SPDXLicense.GLIDE;
3992        if ("Glulxe".equals(codeString))
3993          return SPDXLicense.GLULXE;
3994        if ("gnuplot".equals(codeString))
3995          return SPDXLicense.GNUPLOT;
3996        if ("GPL-1.0-only".equals(codeString))
3997          return SPDXLicense.GPL1_0ONLY;
3998        if ("GPL-1.0-or-later".equals(codeString))
3999          return SPDXLicense.GPL1_0ORLATER;
4000        if ("GPL-2.0-only".equals(codeString))
4001          return SPDXLicense.GPL2_0ONLY;
4002        if ("GPL-2.0-or-later".equals(codeString))
4003          return SPDXLicense.GPL2_0ORLATER;
4004        if ("GPL-3.0-only".equals(codeString))
4005          return SPDXLicense.GPL3_0ONLY;
4006        if ("GPL-3.0-or-later".equals(codeString))
4007          return SPDXLicense.GPL3_0ORLATER;
4008        if ("gSOAP-1.3b".equals(codeString))
4009          return SPDXLicense.GSOAP1_3B;
4010        if ("HaskellReport".equals(codeString))
4011          return SPDXLicense.HASKELLREPORT;
4012        if ("HPND".equals(codeString))
4013          return SPDXLicense.HPND;
4014        if ("IBM-pibs".equals(codeString))
4015          return SPDXLicense.IBMPIBS;
4016        if ("ICU".equals(codeString))
4017          return SPDXLicense.ICU;
4018        if ("IJG".equals(codeString))
4019          return SPDXLicense.IJG;
4020        if ("ImageMagick".equals(codeString))
4021          return SPDXLicense.IMAGEMAGICK;
4022        if ("iMatix".equals(codeString))
4023          return SPDXLicense.IMATIX;
4024        if ("Imlib2".equals(codeString))
4025          return SPDXLicense.IMLIB2;
4026        if ("Info-ZIP".equals(codeString))
4027          return SPDXLicense.INFOZIP;
4028        if ("Intel-ACPI".equals(codeString))
4029          return SPDXLicense.INTELACPI;
4030        if ("Intel".equals(codeString))
4031          return SPDXLicense.INTEL;
4032        if ("Interbase-1.0".equals(codeString))
4033          return SPDXLicense.INTERBASE1_0;
4034        if ("IPA".equals(codeString))
4035          return SPDXLicense.IPA;
4036        if ("IPL-1.0".equals(codeString))
4037          return SPDXLicense.IPL1_0;
4038        if ("ISC".equals(codeString))
4039          return SPDXLicense.ISC;
4040        if ("JasPer-2.0".equals(codeString))
4041          return SPDXLicense.JASPER2_0;
4042        if ("JSON".equals(codeString))
4043          return SPDXLicense.JSON;
4044        if ("LAL-1.2".equals(codeString))
4045          return SPDXLicense.LAL1_2;
4046        if ("LAL-1.3".equals(codeString))
4047          return SPDXLicense.LAL1_3;
4048        if ("Latex2e".equals(codeString))
4049          return SPDXLicense.LATEX2E;
4050        if ("Leptonica".equals(codeString))
4051          return SPDXLicense.LEPTONICA;
4052        if ("LGPL-2.0-only".equals(codeString))
4053          return SPDXLicense.LGPL2_0ONLY;
4054        if ("LGPL-2.0-or-later".equals(codeString))
4055          return SPDXLicense.LGPL2_0ORLATER;
4056        if ("LGPL-2.1-only".equals(codeString))
4057          return SPDXLicense.LGPL2_1ONLY;
4058        if ("LGPL-2.1-or-later".equals(codeString))
4059          return SPDXLicense.LGPL2_1ORLATER;
4060        if ("LGPL-3.0-only".equals(codeString))
4061          return SPDXLicense.LGPL3_0ONLY;
4062        if ("LGPL-3.0-or-later".equals(codeString))
4063          return SPDXLicense.LGPL3_0ORLATER;
4064        if ("LGPLLR".equals(codeString))
4065          return SPDXLicense.LGPLLR;
4066        if ("Libpng".equals(codeString))
4067          return SPDXLicense.LIBPNG;
4068        if ("libtiff".equals(codeString))
4069          return SPDXLicense.LIBTIFF;
4070        if ("LiLiQ-P-1.1".equals(codeString))
4071          return SPDXLicense.LILIQP1_1;
4072        if ("LiLiQ-R-1.1".equals(codeString))
4073          return SPDXLicense.LILIQR1_1;
4074        if ("LiLiQ-Rplus-1.1".equals(codeString))
4075          return SPDXLicense.LILIQRPLUS1_1;
4076        if ("Linux-OpenIB".equals(codeString))
4077          return SPDXLicense.LINUXOPENIB;
4078        if ("LPL-1.0".equals(codeString))
4079          return SPDXLicense.LPL1_0;
4080        if ("LPL-1.02".equals(codeString))
4081          return SPDXLicense.LPL1_02;
4082        if ("LPPL-1.0".equals(codeString))
4083          return SPDXLicense.LPPL1_0;
4084        if ("LPPL-1.1".equals(codeString))
4085          return SPDXLicense.LPPL1_1;
4086        if ("LPPL-1.2".equals(codeString))
4087          return SPDXLicense.LPPL1_2;
4088        if ("LPPL-1.3a".equals(codeString))
4089          return SPDXLicense.LPPL1_3A;
4090        if ("LPPL-1.3c".equals(codeString))
4091          return SPDXLicense.LPPL1_3C;
4092        if ("MakeIndex".equals(codeString))
4093          return SPDXLicense.MAKEINDEX;
4094        if ("MirOS".equals(codeString))
4095          return SPDXLicense.MIROS;
4096        if ("MIT-0".equals(codeString))
4097          return SPDXLicense.MIT0;
4098        if ("MIT-advertising".equals(codeString))
4099          return SPDXLicense.MITADVERTISING;
4100        if ("MIT-CMU".equals(codeString))
4101          return SPDXLicense.MITCMU;
4102        if ("MIT-enna".equals(codeString))
4103          return SPDXLicense.MITENNA;
4104        if ("MIT-feh".equals(codeString))
4105          return SPDXLicense.MITFEH;
4106        if ("MIT".equals(codeString))
4107          return SPDXLicense.MIT;
4108        if ("MITNFA".equals(codeString))
4109          return SPDXLicense.MITNFA;
4110        if ("Motosoto".equals(codeString))
4111          return SPDXLicense.MOTOSOTO;
4112        if ("mpich2".equals(codeString))
4113          return SPDXLicense.MPICH2;
4114        if ("MPL-1.0".equals(codeString))
4115          return SPDXLicense.MPL1_0;
4116        if ("MPL-1.1".equals(codeString))
4117          return SPDXLicense.MPL1_1;
4118        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
4119          return SPDXLicense.MPL2_0NOCOPYLEFTEXCEPTION;
4120        if ("MPL-2.0".equals(codeString))
4121          return SPDXLicense.MPL2_0;
4122        if ("MS-PL".equals(codeString))
4123          return SPDXLicense.MSPL;
4124        if ("MS-RL".equals(codeString))
4125          return SPDXLicense.MSRL;
4126        if ("MTLL".equals(codeString))
4127          return SPDXLicense.MTLL;
4128        if ("Multics".equals(codeString))
4129          return SPDXLicense.MULTICS;
4130        if ("Mup".equals(codeString))
4131          return SPDXLicense.MUP;
4132        if ("NASA-1.3".equals(codeString))
4133          return SPDXLicense.NASA1_3;
4134        if ("Naumen".equals(codeString))
4135          return SPDXLicense.NAUMEN;
4136        if ("NBPL-1.0".equals(codeString))
4137          return SPDXLicense.NBPL1_0;
4138        if ("NCSA".equals(codeString))
4139          return SPDXLicense.NCSA;
4140        if ("Net-SNMP".equals(codeString))
4141          return SPDXLicense.NETSNMP;
4142        if ("NetCDF".equals(codeString))
4143          return SPDXLicense.NETCDF;
4144        if ("Newsletr".equals(codeString))
4145          return SPDXLicense.NEWSLETR;
4146        if ("NGPL".equals(codeString))
4147          return SPDXLicense.NGPL;
4148        if ("NLOD-1.0".equals(codeString))
4149          return SPDXLicense.NLOD1_0;
4150        if ("NLPL".equals(codeString))
4151          return SPDXLicense.NLPL;
4152        if ("Nokia".equals(codeString))
4153          return SPDXLicense.NOKIA;
4154        if ("NOSL".equals(codeString))
4155          return SPDXLicense.NOSL;
4156        if ("Noweb".equals(codeString))
4157          return SPDXLicense.NOWEB;
4158        if ("NPL-1.0".equals(codeString))
4159          return SPDXLicense.NPL1_0;
4160        if ("NPL-1.1".equals(codeString))
4161          return SPDXLicense.NPL1_1;
4162        if ("NPOSL-3.0".equals(codeString))
4163          return SPDXLicense.NPOSL3_0;
4164        if ("NRL".equals(codeString))
4165          return SPDXLicense.NRL;
4166        if ("NTP".equals(codeString))
4167          return SPDXLicense.NTP;
4168        if ("OCCT-PL".equals(codeString))
4169          return SPDXLicense.OCCTPL;
4170        if ("OCLC-2.0".equals(codeString))
4171          return SPDXLicense.OCLC2_0;
4172        if ("ODbL-1.0".equals(codeString))
4173          return SPDXLicense.ODBL1_0;
4174        if ("OFL-1.0".equals(codeString))
4175          return SPDXLicense.OFL1_0;
4176        if ("OFL-1.1".equals(codeString))
4177          return SPDXLicense.OFL1_1;
4178        if ("OGTSL".equals(codeString))
4179          return SPDXLicense.OGTSL;
4180        if ("OLDAP-1.1".equals(codeString))
4181          return SPDXLicense.OLDAP1_1;
4182        if ("OLDAP-1.2".equals(codeString))
4183          return SPDXLicense.OLDAP1_2;
4184        if ("OLDAP-1.3".equals(codeString))
4185          return SPDXLicense.OLDAP1_3;
4186        if ("OLDAP-1.4".equals(codeString))
4187          return SPDXLicense.OLDAP1_4;
4188        if ("OLDAP-2.0.1".equals(codeString))
4189          return SPDXLicense.OLDAP2_0_1;
4190        if ("OLDAP-2.0".equals(codeString))
4191          return SPDXLicense.OLDAP2_0;
4192        if ("OLDAP-2.1".equals(codeString))
4193          return SPDXLicense.OLDAP2_1;
4194        if ("OLDAP-2.2.1".equals(codeString))
4195          return SPDXLicense.OLDAP2_2_1;
4196        if ("OLDAP-2.2.2".equals(codeString))
4197          return SPDXLicense.OLDAP2_2_2;
4198        if ("OLDAP-2.2".equals(codeString))
4199          return SPDXLicense.OLDAP2_2;
4200        if ("OLDAP-2.3".equals(codeString))
4201          return SPDXLicense.OLDAP2_3;
4202        if ("OLDAP-2.4".equals(codeString))
4203          return SPDXLicense.OLDAP2_4;
4204        if ("OLDAP-2.5".equals(codeString))
4205          return SPDXLicense.OLDAP2_5;
4206        if ("OLDAP-2.6".equals(codeString))
4207          return SPDXLicense.OLDAP2_6;
4208        if ("OLDAP-2.7".equals(codeString))
4209          return SPDXLicense.OLDAP2_7;
4210        if ("OLDAP-2.8".equals(codeString))
4211          return SPDXLicense.OLDAP2_8;
4212        if ("OML".equals(codeString))
4213          return SPDXLicense.OML;
4214        if ("OpenSSL".equals(codeString))
4215          return SPDXLicense.OPENSSL;
4216        if ("OPL-1.0".equals(codeString))
4217          return SPDXLicense.OPL1_0;
4218        if ("OSET-PL-2.1".equals(codeString))
4219          return SPDXLicense.OSETPL2_1;
4220        if ("OSL-1.0".equals(codeString))
4221          return SPDXLicense.OSL1_0;
4222        if ("OSL-1.1".equals(codeString))
4223          return SPDXLicense.OSL1_1;
4224        if ("OSL-2.0".equals(codeString))
4225          return SPDXLicense.OSL2_0;
4226        if ("OSL-2.1".equals(codeString))
4227          return SPDXLicense.OSL2_1;
4228        if ("OSL-3.0".equals(codeString))
4229          return SPDXLicense.OSL3_0;
4230        if ("PDDL-1.0".equals(codeString))
4231          return SPDXLicense.PDDL1_0;
4232        if ("PHP-3.0".equals(codeString))
4233          return SPDXLicense.PHP3_0;
4234        if ("PHP-3.01".equals(codeString))
4235          return SPDXLicense.PHP3_01;
4236        if ("Plexus".equals(codeString))
4237          return SPDXLicense.PLEXUS;
4238        if ("PostgreSQL".equals(codeString))
4239          return SPDXLicense.POSTGRESQL;
4240        if ("psfrag".equals(codeString))
4241          return SPDXLicense.PSFRAG;
4242        if ("psutils".equals(codeString))
4243          return SPDXLicense.PSUTILS;
4244        if ("Python-2.0".equals(codeString))
4245          return SPDXLicense.PYTHON2_0;
4246        if ("Qhull".equals(codeString))
4247          return SPDXLicense.QHULL;
4248        if ("QPL-1.0".equals(codeString))
4249          return SPDXLicense.QPL1_0;
4250        if ("Rdisc".equals(codeString))
4251          return SPDXLicense.RDISC;
4252        if ("RHeCos-1.1".equals(codeString))
4253          return SPDXLicense.RHECOS1_1;
4254        if ("RPL-1.1".equals(codeString))
4255          return SPDXLicense.RPL1_1;
4256        if ("RPL-1.5".equals(codeString))
4257          return SPDXLicense.RPL1_5;
4258        if ("RPSL-1.0".equals(codeString))
4259          return SPDXLicense.RPSL1_0;
4260        if ("RSA-MD".equals(codeString))
4261          return SPDXLicense.RSAMD;
4262        if ("RSCPL".equals(codeString))
4263          return SPDXLicense.RSCPL;
4264        if ("Ruby".equals(codeString))
4265          return SPDXLicense.RUBY;
4266        if ("SAX-PD".equals(codeString))
4267          return SPDXLicense.SAXPD;
4268        if ("Saxpath".equals(codeString))
4269          return SPDXLicense.SAXPATH;
4270        if ("SCEA".equals(codeString))
4271          return SPDXLicense.SCEA;
4272        if ("Sendmail".equals(codeString))
4273          return SPDXLicense.SENDMAIL;
4274        if ("SGI-B-1.0".equals(codeString))
4275          return SPDXLicense.SGIB1_0;
4276        if ("SGI-B-1.1".equals(codeString))
4277          return SPDXLicense.SGIB1_1;
4278        if ("SGI-B-2.0".equals(codeString))
4279          return SPDXLicense.SGIB2_0;
4280        if ("SimPL-2.0".equals(codeString))
4281          return SPDXLicense.SIMPL2_0;
4282        if ("SISSL-1.2".equals(codeString))
4283          return SPDXLicense.SISSL1_2;
4284        if ("SISSL".equals(codeString))
4285          return SPDXLicense.SISSL;
4286        if ("Sleepycat".equals(codeString))
4287          return SPDXLicense.SLEEPYCAT;
4288        if ("SMLNJ".equals(codeString))
4289          return SPDXLicense.SMLNJ;
4290        if ("SMPPL".equals(codeString))
4291          return SPDXLicense.SMPPL;
4292        if ("SNIA".equals(codeString))
4293          return SPDXLicense.SNIA;
4294        if ("Spencer-86".equals(codeString))
4295          return SPDXLicense.SPENCER86;
4296        if ("Spencer-94".equals(codeString))
4297          return SPDXLicense.SPENCER94;
4298        if ("Spencer-99".equals(codeString))
4299          return SPDXLicense.SPENCER99;
4300        if ("SPL-1.0".equals(codeString))
4301          return SPDXLicense.SPL1_0;
4302        if ("SugarCRM-1.1.3".equals(codeString))
4303          return SPDXLicense.SUGARCRM1_1_3;
4304        if ("SWL".equals(codeString))
4305          return SPDXLicense.SWL;
4306        if ("TCL".equals(codeString))
4307          return SPDXLicense.TCL;
4308        if ("TCP-wrappers".equals(codeString))
4309          return SPDXLicense.TCPWRAPPERS;
4310        if ("TMate".equals(codeString))
4311          return SPDXLicense.TMATE;
4312        if ("TORQUE-1.1".equals(codeString))
4313          return SPDXLicense.TORQUE1_1;
4314        if ("TOSL".equals(codeString))
4315          return SPDXLicense.TOSL;
4316        if ("Unicode-DFS-2015".equals(codeString))
4317          return SPDXLicense.UNICODEDFS2015;
4318        if ("Unicode-DFS-2016".equals(codeString))
4319          return SPDXLicense.UNICODEDFS2016;
4320        if ("Unicode-TOU".equals(codeString))
4321          return SPDXLicense.UNICODETOU;
4322        if ("Unlicense".equals(codeString))
4323          return SPDXLicense.UNLICENSE;
4324        if ("UPL-1.0".equals(codeString))
4325          return SPDXLicense.UPL1_0;
4326        if ("Vim".equals(codeString))
4327          return SPDXLicense.VIM;
4328        if ("VOSTROM".equals(codeString))
4329          return SPDXLicense.VOSTROM;
4330        if ("VSL-1.0".equals(codeString))
4331          return SPDXLicense.VSL1_0;
4332        if ("W3C-19980720".equals(codeString))
4333          return SPDXLicense.W3C19980720;
4334        if ("W3C-20150513".equals(codeString))
4335          return SPDXLicense.W3C20150513;
4336        if ("W3C".equals(codeString))
4337          return SPDXLicense.W3C;
4338        if ("Watcom-1.0".equals(codeString))
4339          return SPDXLicense.WATCOM1_0;
4340        if ("Wsuipa".equals(codeString))
4341          return SPDXLicense.WSUIPA;
4342        if ("WTFPL".equals(codeString))
4343          return SPDXLicense.WTFPL;
4344        if ("X11".equals(codeString))
4345          return SPDXLicense.X11;
4346        if ("Xerox".equals(codeString))
4347          return SPDXLicense.XEROX;
4348        if ("XFree86-1.1".equals(codeString))
4349          return SPDXLicense.XFREE861_1;
4350        if ("xinetd".equals(codeString))
4351          return SPDXLicense.XINETD;
4352        if ("Xnet".equals(codeString))
4353          return SPDXLicense.XNET;
4354        if ("xpp".equals(codeString))
4355          return SPDXLicense.XPP;
4356        if ("XSkat".equals(codeString))
4357          return SPDXLicense.XSKAT;
4358        if ("YPL-1.0".equals(codeString))
4359          return SPDXLicense.YPL1_0;
4360        if ("YPL-1.1".equals(codeString))
4361          return SPDXLicense.YPL1_1;
4362        if ("Zed".equals(codeString))
4363          return SPDXLicense.ZED;
4364        if ("Zend-2.0".equals(codeString))
4365          return SPDXLicense.ZEND2_0;
4366        if ("Zimbra-1.3".equals(codeString))
4367          return SPDXLicense.ZIMBRA1_3;
4368        if ("Zimbra-1.4".equals(codeString))
4369          return SPDXLicense.ZIMBRA1_4;
4370        if ("zlib-acknowledgement".equals(codeString))
4371          return SPDXLicense.ZLIBACKNOWLEDGEMENT;
4372        if ("Zlib".equals(codeString))
4373          return SPDXLicense.ZLIB;
4374        if ("ZPL-1.1".equals(codeString))
4375          return SPDXLicense.ZPL1_1;
4376        if ("ZPL-2.0".equals(codeString))
4377          return SPDXLicense.ZPL2_0;
4378        if ("ZPL-2.1".equals(codeString))
4379          return SPDXLicense.ZPL2_1;
4380        throw new IllegalArgumentException("Unknown SPDXLicense code '"+codeString+"'");
4381        }
4382        public Enumeration<SPDXLicense> fromType(Base code) throws FHIRException {
4383          if (code == null)
4384            return null;
4385          if (code.isEmpty())
4386            return new Enumeration<SPDXLicense>(this);
4387          String codeString = ((PrimitiveType) code).asStringValue();
4388          if (codeString == null || "".equals(codeString))
4389            return null;
4390        if ("not-open-source".equals(codeString))
4391          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOTOPENSOURCE);
4392        if ("0BSD".equals(codeString))
4393          return new Enumeration<SPDXLicense>(this, SPDXLicense._0BSD);
4394        if ("AAL".equals(codeString))
4395          return new Enumeration<SPDXLicense>(this, SPDXLicense.AAL);
4396        if ("Abstyles".equals(codeString))
4397          return new Enumeration<SPDXLicense>(this, SPDXLicense.ABSTYLES);
4398        if ("Adobe-2006".equals(codeString))
4399          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADOBE2006);
4400        if ("Adobe-Glyph".equals(codeString))
4401          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADOBEGLYPH);
4402        if ("ADSL".equals(codeString))
4403          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADSL);
4404        if ("AFL-1.1".equals(codeString))
4405          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL1_1);
4406        if ("AFL-1.2".equals(codeString))
4407          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL1_2);
4408        if ("AFL-2.0".equals(codeString))
4409          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL2_0);
4410        if ("AFL-2.1".equals(codeString))
4411          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL2_1);
4412        if ("AFL-3.0".equals(codeString))
4413          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL3_0);
4414        if ("Afmparse".equals(codeString))
4415          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFMPARSE);
4416        if ("AGPL-1.0-only".equals(codeString))
4417          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL1_0ONLY);
4418        if ("AGPL-1.0-or-later".equals(codeString))
4419          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL1_0ORLATER);
4420        if ("AGPL-3.0-only".equals(codeString))
4421          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL3_0ONLY);
4422        if ("AGPL-3.0-or-later".equals(codeString))
4423          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL3_0ORLATER);
4424        if ("Aladdin".equals(codeString))
4425          return new Enumeration<SPDXLicense>(this, SPDXLicense.ALADDIN);
4426        if ("AMDPLPA".equals(codeString))
4427          return new Enumeration<SPDXLicense>(this, SPDXLicense.AMDPLPA);
4428        if ("AML".equals(codeString))
4429          return new Enumeration<SPDXLicense>(this, SPDXLicense.AML);
4430        if ("AMPAS".equals(codeString))
4431          return new Enumeration<SPDXLicense>(this, SPDXLicense.AMPAS);
4432        if ("ANTLR-PD".equals(codeString))
4433          return new Enumeration<SPDXLicense>(this, SPDXLicense.ANTLRPD);
4434        if ("Apache-1.0".equals(codeString))
4435          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE1_0);
4436        if ("Apache-1.1".equals(codeString))
4437          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE1_1);
4438        if ("Apache-2.0".equals(codeString))
4439          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE2_0);
4440        if ("APAFML".equals(codeString))
4441          return new Enumeration<SPDXLicense>(this, SPDXLicense.APAFML);
4442        if ("APL-1.0".equals(codeString))
4443          return new Enumeration<SPDXLicense>(this, SPDXLicense.APL1_0);
4444        if ("APSL-1.0".equals(codeString))
4445          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL1_0);
4446        if ("APSL-1.1".equals(codeString))
4447          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL1_1);
4448        if ("APSL-1.2".equals(codeString))
4449          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL1_2);
4450        if ("APSL-2.0".equals(codeString))
4451          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL2_0);
4452        if ("Artistic-1.0-cl8".equals(codeString))
4453          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC1_0CL8);
4454        if ("Artistic-1.0-Perl".equals(codeString))
4455          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC1_0PERL);
4456        if ("Artistic-1.0".equals(codeString))
4457          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC1_0);
4458        if ("Artistic-2.0".equals(codeString))
4459          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC2_0);
4460        if ("Bahyph".equals(codeString))
4461          return new Enumeration<SPDXLicense>(this, SPDXLicense.BAHYPH);
4462        if ("Barr".equals(codeString))
4463          return new Enumeration<SPDXLicense>(this, SPDXLicense.BARR);
4464        if ("Beerware".equals(codeString))
4465          return new Enumeration<SPDXLicense>(this, SPDXLicense.BEERWARE);
4466        if ("BitTorrent-1.0".equals(codeString))
4467          return new Enumeration<SPDXLicense>(this, SPDXLicense.BITTORRENT1_0);
4468        if ("BitTorrent-1.1".equals(codeString))
4469          return new Enumeration<SPDXLicense>(this, SPDXLicense.BITTORRENT1_1);
4470        if ("Borceux".equals(codeString))
4471          return new Enumeration<SPDXLicense>(this, SPDXLicense.BORCEUX);
4472        if ("BSD-1-Clause".equals(codeString))
4473          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD1CLAUSE);
4474        if ("BSD-2-Clause-FreeBSD".equals(codeString))
4475          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSEFREEBSD);
4476        if ("BSD-2-Clause-NetBSD".equals(codeString))
4477          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSENETBSD);
4478        if ("BSD-2-Clause-Patent".equals(codeString))
4479          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSEPATENT);
4480        if ("BSD-2-Clause".equals(codeString))
4481          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSE);
4482        if ("BSD-3-Clause-Attribution".equals(codeString))
4483          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSEATTRIBUTION);
4484        if ("BSD-3-Clause-Clear".equals(codeString))
4485          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSECLEAR);
4486        if ("BSD-3-Clause-LBNL".equals(codeString))
4487          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSELBNL);
4488        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
4489          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSENONUCLEARLICENSE2014);
4490        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
4491          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSENONUCLEARLICENSE);
4492        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
4493          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSENONUCLEARWARRANTY);
4494        if ("BSD-3-Clause".equals(codeString))
4495          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSE);
4496        if ("BSD-4-Clause-UC".equals(codeString))
4497          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD4CLAUSEUC);
4498        if ("BSD-4-Clause".equals(codeString))
4499          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD4CLAUSE);
4500        if ("BSD-Protection".equals(codeString))
4501          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSDPROTECTION);
4502        if ("BSD-Source-Code".equals(codeString))
4503          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSDSOURCECODE);
4504        if ("BSL-1.0".equals(codeString))
4505          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSL1_0);
4506        if ("bzip2-1.0.5".equals(codeString))
4507          return new Enumeration<SPDXLicense>(this, SPDXLicense.BZIP21_0_5);
4508        if ("bzip2-1.0.6".equals(codeString))
4509          return new Enumeration<SPDXLicense>(this, SPDXLicense.BZIP21_0_6);
4510        if ("Caldera".equals(codeString))
4511          return new Enumeration<SPDXLicense>(this, SPDXLicense.CALDERA);
4512        if ("CATOSL-1.1".equals(codeString))
4513          return new Enumeration<SPDXLicense>(this, SPDXLicense.CATOSL1_1);
4514        if ("CC-BY-1.0".equals(codeString))
4515          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY1_0);
4516        if ("CC-BY-2.0".equals(codeString))
4517          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY2_0);
4518        if ("CC-BY-2.5".equals(codeString))
4519          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY2_5);
4520        if ("CC-BY-3.0".equals(codeString))
4521          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY3_0);
4522        if ("CC-BY-4.0".equals(codeString))
4523          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY4_0);
4524        if ("CC-BY-NC-1.0".equals(codeString))
4525          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC1_0);
4526        if ("CC-BY-NC-2.0".equals(codeString))
4527          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC2_0);
4528        if ("CC-BY-NC-2.5".equals(codeString))
4529          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC2_5);
4530        if ("CC-BY-NC-3.0".equals(codeString))
4531          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC3_0);
4532        if ("CC-BY-NC-4.0".equals(codeString))
4533          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC4_0);
4534        if ("CC-BY-NC-ND-1.0".equals(codeString))
4535          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND1_0);
4536        if ("CC-BY-NC-ND-2.0".equals(codeString))
4537          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND2_0);
4538        if ("CC-BY-NC-ND-2.5".equals(codeString))
4539          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND2_5);
4540        if ("CC-BY-NC-ND-3.0".equals(codeString))
4541          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND3_0);
4542        if ("CC-BY-NC-ND-4.0".equals(codeString))
4543          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND4_0);
4544        if ("CC-BY-NC-SA-1.0".equals(codeString))
4545          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA1_0);
4546        if ("CC-BY-NC-SA-2.0".equals(codeString))
4547          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA2_0);
4548        if ("CC-BY-NC-SA-2.5".equals(codeString))
4549          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA2_5);
4550        if ("CC-BY-NC-SA-3.0".equals(codeString))
4551          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA3_0);
4552        if ("CC-BY-NC-SA-4.0".equals(codeString))
4553          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA4_0);
4554        if ("CC-BY-ND-1.0".equals(codeString))
4555          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND1_0);
4556        if ("CC-BY-ND-2.0".equals(codeString))
4557          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND2_0);
4558        if ("CC-BY-ND-2.5".equals(codeString))
4559          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND2_5);
4560        if ("CC-BY-ND-3.0".equals(codeString))
4561          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND3_0);
4562        if ("CC-BY-ND-4.0".equals(codeString))
4563          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND4_0);
4564        if ("CC-BY-SA-1.0".equals(codeString))
4565          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA1_0);
4566        if ("CC-BY-SA-2.0".equals(codeString))
4567          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA2_0);
4568        if ("CC-BY-SA-2.5".equals(codeString))
4569          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA2_5);
4570        if ("CC-BY-SA-3.0".equals(codeString))
4571          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA3_0);
4572        if ("CC-BY-SA-4.0".equals(codeString))
4573          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA4_0);
4574        if ("CC0-1.0".equals(codeString))
4575          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC01_0);
4576        if ("CDDL-1.0".equals(codeString))
4577          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDDL1_0);
4578        if ("CDDL-1.1".equals(codeString))
4579          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDDL1_1);
4580        if ("CDLA-Permissive-1.0".equals(codeString))
4581          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLAPERMISSIVE1_0);
4582        if ("CDLA-Sharing-1.0".equals(codeString))
4583          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLASHARING1_0);
4584        if ("CECILL-1.0".equals(codeString))
4585          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL1_0);
4586        if ("CECILL-1.1".equals(codeString))
4587          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL1_1);
4588        if ("CECILL-2.0".equals(codeString))
4589          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL2_0);
4590        if ("CECILL-2.1".equals(codeString))
4591          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL2_1);
4592        if ("CECILL-B".equals(codeString))
4593          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILLB);
4594        if ("CECILL-C".equals(codeString))
4595          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILLC);
4596        if ("ClArtistic".equals(codeString))
4597          return new Enumeration<SPDXLicense>(this, SPDXLicense.CLARTISTIC);
4598        if ("CNRI-Jython".equals(codeString))
4599          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRIJYTHON);
4600        if ("CNRI-Python-GPL-Compatible".equals(codeString))
4601          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRIPYTHONGPLCOMPATIBLE);
4602        if ("CNRI-Python".equals(codeString))
4603          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRIPYTHON);
4604        if ("Condor-1.1".equals(codeString))
4605          return new Enumeration<SPDXLicense>(this, SPDXLicense.CONDOR1_1);
4606        if ("CPAL-1.0".equals(codeString))
4607          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPAL1_0);
4608        if ("CPL-1.0".equals(codeString))
4609          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPL1_0);
4610        if ("CPOL-1.02".equals(codeString))
4611          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPOL1_02);
4612        if ("Crossword".equals(codeString))
4613          return new Enumeration<SPDXLicense>(this, SPDXLicense.CROSSWORD);
4614        if ("CrystalStacker".equals(codeString))
4615          return new Enumeration<SPDXLicense>(this, SPDXLicense.CRYSTALSTACKER);
4616        if ("CUA-OPL-1.0".equals(codeString))
4617          return new Enumeration<SPDXLicense>(this, SPDXLicense.CUAOPL1_0);
4618        if ("Cube".equals(codeString))
4619          return new Enumeration<SPDXLicense>(this, SPDXLicense.CUBE);
4620        if ("curl".equals(codeString))
4621          return new Enumeration<SPDXLicense>(this, SPDXLicense.CURL);
4622        if ("D-FSL-1.0".equals(codeString))
4623          return new Enumeration<SPDXLicense>(this, SPDXLicense.DFSL1_0);
4624        if ("diffmark".equals(codeString))
4625          return new Enumeration<SPDXLicense>(this, SPDXLicense.DIFFMARK);
4626        if ("DOC".equals(codeString))
4627          return new Enumeration<SPDXLicense>(this, SPDXLicense.DOC);
4628        if ("Dotseqn".equals(codeString))
4629          return new Enumeration<SPDXLicense>(this, SPDXLicense.DOTSEQN);
4630        if ("DSDP".equals(codeString))
4631          return new Enumeration<SPDXLicense>(this, SPDXLicense.DSDP);
4632        if ("dvipdfm".equals(codeString))
4633          return new Enumeration<SPDXLicense>(this, SPDXLicense.DVIPDFM);
4634        if ("ECL-1.0".equals(codeString))
4635          return new Enumeration<SPDXLicense>(this, SPDXLicense.ECL1_0);
4636        if ("ECL-2.0".equals(codeString))
4637          return new Enumeration<SPDXLicense>(this, SPDXLicense.ECL2_0);
4638        if ("EFL-1.0".equals(codeString))
4639          return new Enumeration<SPDXLicense>(this, SPDXLicense.EFL1_0);
4640        if ("EFL-2.0".equals(codeString))
4641          return new Enumeration<SPDXLicense>(this, SPDXLicense.EFL2_0);
4642        if ("eGenix".equals(codeString))
4643          return new Enumeration<SPDXLicense>(this, SPDXLicense.EGENIX);
4644        if ("Entessa".equals(codeString))
4645          return new Enumeration<SPDXLicense>(this, SPDXLicense.ENTESSA);
4646        if ("EPL-1.0".equals(codeString))
4647          return new Enumeration<SPDXLicense>(this, SPDXLicense.EPL1_0);
4648        if ("EPL-2.0".equals(codeString))
4649          return new Enumeration<SPDXLicense>(this, SPDXLicense.EPL2_0);
4650        if ("ErlPL-1.1".equals(codeString))
4651          return new Enumeration<SPDXLicense>(this, SPDXLicense.ERLPL1_1);
4652        if ("EUDatagrid".equals(codeString))
4653          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUDATAGRID);
4654        if ("EUPL-1.0".equals(codeString))
4655          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL1_0);
4656        if ("EUPL-1.1".equals(codeString))
4657          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL1_1);
4658        if ("EUPL-1.2".equals(codeString))
4659          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL1_2);
4660        if ("Eurosym".equals(codeString))
4661          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUROSYM);
4662        if ("Fair".equals(codeString))
4663          return new Enumeration<SPDXLicense>(this, SPDXLicense.FAIR);
4664        if ("Frameworx-1.0".equals(codeString))
4665          return new Enumeration<SPDXLicense>(this, SPDXLicense.FRAMEWORX1_0);
4666        if ("FreeImage".equals(codeString))
4667          return new Enumeration<SPDXLicense>(this, SPDXLicense.FREEIMAGE);
4668        if ("FSFAP".equals(codeString))
4669          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFAP);
4670        if ("FSFUL".equals(codeString))
4671          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFUL);
4672        if ("FSFULLR".equals(codeString))
4673          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFULLR);
4674        if ("FTL".equals(codeString))
4675          return new Enumeration<SPDXLicense>(this, SPDXLicense.FTL);
4676        if ("GFDL-1.1-only".equals(codeString))
4677          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_1ONLY);
4678        if ("GFDL-1.1-or-later".equals(codeString))
4679          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_1ORLATER);
4680        if ("GFDL-1.2-only".equals(codeString))
4681          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_2ONLY);
4682        if ("GFDL-1.2-or-later".equals(codeString))
4683          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_2ORLATER);
4684        if ("GFDL-1.3-only".equals(codeString))
4685          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_3ONLY);
4686        if ("GFDL-1.3-or-later".equals(codeString))
4687          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_3ORLATER);
4688        if ("Giftware".equals(codeString))
4689          return new Enumeration<SPDXLicense>(this, SPDXLicense.GIFTWARE);
4690        if ("GL2PS".equals(codeString))
4691          return new Enumeration<SPDXLicense>(this, SPDXLicense.GL2PS);
4692        if ("Glide".equals(codeString))
4693          return new Enumeration<SPDXLicense>(this, SPDXLicense.GLIDE);
4694        if ("Glulxe".equals(codeString))
4695          return new Enumeration<SPDXLicense>(this, SPDXLicense.GLULXE);
4696        if ("gnuplot".equals(codeString))
4697          return new Enumeration<SPDXLicense>(this, SPDXLicense.GNUPLOT);
4698        if ("GPL-1.0-only".equals(codeString))
4699          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL1_0ONLY);
4700        if ("GPL-1.0-or-later".equals(codeString))
4701          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL1_0ORLATER);
4702        if ("GPL-2.0-only".equals(codeString))
4703          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL2_0ONLY);
4704        if ("GPL-2.0-or-later".equals(codeString))
4705          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL2_0ORLATER);
4706        if ("GPL-3.0-only".equals(codeString))
4707          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL3_0ONLY);
4708        if ("GPL-3.0-or-later".equals(codeString))
4709          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL3_0ORLATER);
4710        if ("gSOAP-1.3b".equals(codeString))
4711          return new Enumeration<SPDXLicense>(this, SPDXLicense.GSOAP1_3B);
4712        if ("HaskellReport".equals(codeString))
4713          return new Enumeration<SPDXLicense>(this, SPDXLicense.HASKELLREPORT);
4714        if ("HPND".equals(codeString))
4715          return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND);
4716        if ("IBM-pibs".equals(codeString))
4717          return new Enumeration<SPDXLicense>(this, SPDXLicense.IBMPIBS);
4718        if ("ICU".equals(codeString))
4719          return new Enumeration<SPDXLicense>(this, SPDXLicense.ICU);
4720        if ("IJG".equals(codeString))
4721          return new Enumeration<SPDXLicense>(this, SPDXLicense.IJG);
4722        if ("ImageMagick".equals(codeString))
4723          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMAGEMAGICK);
4724        if ("iMatix".equals(codeString))
4725          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMATIX);
4726        if ("Imlib2".equals(codeString))
4727          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMLIB2);
4728        if ("Info-ZIP".equals(codeString))
4729          return new Enumeration<SPDXLicense>(this, SPDXLicense.INFOZIP);
4730        if ("Intel-ACPI".equals(codeString))
4731          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTELACPI);
4732        if ("Intel".equals(codeString))
4733          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTEL);
4734        if ("Interbase-1.0".equals(codeString))
4735          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTERBASE1_0);
4736        if ("IPA".equals(codeString))
4737          return new Enumeration<SPDXLicense>(this, SPDXLicense.IPA);
4738        if ("IPL-1.0".equals(codeString))
4739          return new Enumeration<SPDXLicense>(this, SPDXLicense.IPL1_0);
4740        if ("ISC".equals(codeString))
4741          return new Enumeration<SPDXLicense>(this, SPDXLicense.ISC);
4742        if ("JasPer-2.0".equals(codeString))
4743          return new Enumeration<SPDXLicense>(this, SPDXLicense.JASPER2_0);
4744        if ("JSON".equals(codeString))
4745          return new Enumeration<SPDXLicense>(this, SPDXLicense.JSON);
4746        if ("LAL-1.2".equals(codeString))
4747          return new Enumeration<SPDXLicense>(this, SPDXLicense.LAL1_2);
4748        if ("LAL-1.3".equals(codeString))
4749          return new Enumeration<SPDXLicense>(this, SPDXLicense.LAL1_3);
4750        if ("Latex2e".equals(codeString))
4751          return new Enumeration<SPDXLicense>(this, SPDXLicense.LATEX2E);
4752        if ("Leptonica".equals(codeString))
4753          return new Enumeration<SPDXLicense>(this, SPDXLicense.LEPTONICA);
4754        if ("LGPL-2.0-only".equals(codeString))
4755          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_0ONLY);
4756        if ("LGPL-2.0-or-later".equals(codeString))
4757          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_0ORLATER);
4758        if ("LGPL-2.1-only".equals(codeString))
4759          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_1ONLY);
4760        if ("LGPL-2.1-or-later".equals(codeString))
4761          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_1ORLATER);
4762        if ("LGPL-3.0-only".equals(codeString))
4763          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL3_0ONLY);
4764        if ("LGPL-3.0-or-later".equals(codeString))
4765          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL3_0ORLATER);
4766        if ("LGPLLR".equals(codeString))
4767          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPLLR);
4768        if ("Libpng".equals(codeString))
4769          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBPNG);
4770        if ("libtiff".equals(codeString))
4771          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBTIFF);
4772        if ("LiLiQ-P-1.1".equals(codeString))
4773          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQP1_1);
4774        if ("LiLiQ-R-1.1".equals(codeString))
4775          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQR1_1);
4776        if ("LiLiQ-Rplus-1.1".equals(codeString))
4777          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQRPLUS1_1);
4778        if ("Linux-OpenIB".equals(codeString))
4779          return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUXOPENIB);
4780        if ("LPL-1.0".equals(codeString))
4781          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPL1_0);
4782        if ("LPL-1.02".equals(codeString))
4783          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPL1_02);
4784        if ("LPPL-1.0".equals(codeString))
4785          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_0);
4786        if ("LPPL-1.1".equals(codeString))
4787          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_1);
4788        if ("LPPL-1.2".equals(codeString))
4789          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_2);
4790        if ("LPPL-1.3a".equals(codeString))
4791          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_3A);
4792        if ("LPPL-1.3c".equals(codeString))
4793          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_3C);
4794        if ("MakeIndex".equals(codeString))
4795          return new Enumeration<SPDXLicense>(this, SPDXLicense.MAKEINDEX);
4796        if ("MirOS".equals(codeString))
4797          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIROS);
4798        if ("MIT-0".equals(codeString))
4799          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT0);
4800        if ("MIT-advertising".equals(codeString))
4801          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITADVERTISING);
4802        if ("MIT-CMU".equals(codeString))
4803          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITCMU);
4804        if ("MIT-enna".equals(codeString))
4805          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITENNA);
4806        if ("MIT-feh".equals(codeString))
4807          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITFEH);
4808        if ("MIT".equals(codeString))
4809          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT);
4810        if ("MITNFA".equals(codeString))
4811          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITNFA);
4812        if ("Motosoto".equals(codeString))
4813          return new Enumeration<SPDXLicense>(this, SPDXLicense.MOTOSOTO);
4814        if ("mpich2".equals(codeString))
4815          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPICH2);
4816        if ("MPL-1.0".equals(codeString))
4817          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL1_0);
4818        if ("MPL-1.1".equals(codeString))
4819          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL1_1);
4820        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
4821          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL2_0NOCOPYLEFTEXCEPTION);
4822        if ("MPL-2.0".equals(codeString))
4823          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL2_0);
4824        if ("MS-PL".equals(codeString))
4825          return new Enumeration<SPDXLicense>(this, SPDXLicense.MSPL);
4826        if ("MS-RL".equals(codeString))
4827          return new Enumeration<SPDXLicense>(this, SPDXLicense.MSRL);
4828        if ("MTLL".equals(codeString))
4829          return new Enumeration<SPDXLicense>(this, SPDXLicense.MTLL);
4830        if ("Multics".equals(codeString))
4831          return new Enumeration<SPDXLicense>(this, SPDXLicense.MULTICS);
4832        if ("Mup".equals(codeString))
4833          return new Enumeration<SPDXLicense>(this, SPDXLicense.MUP);
4834        if ("NASA-1.3".equals(codeString))
4835          return new Enumeration<SPDXLicense>(this, SPDXLicense.NASA1_3);
4836        if ("Naumen".equals(codeString))
4837          return new Enumeration<SPDXLicense>(this, SPDXLicense.NAUMEN);
4838        if ("NBPL-1.0".equals(codeString))
4839          return new Enumeration<SPDXLicense>(this, SPDXLicense.NBPL1_0);
4840        if ("NCSA".equals(codeString))
4841          return new Enumeration<SPDXLicense>(this, SPDXLicense.NCSA);
4842        if ("Net-SNMP".equals(codeString))
4843          return new Enumeration<SPDXLicense>(this, SPDXLicense.NETSNMP);
4844        if ("NetCDF".equals(codeString))
4845          return new Enumeration<SPDXLicense>(this, SPDXLicense.NETCDF);
4846        if ("Newsletr".equals(codeString))
4847          return new Enumeration<SPDXLicense>(this, SPDXLicense.NEWSLETR);
4848        if ("NGPL".equals(codeString))
4849          return new Enumeration<SPDXLicense>(this, SPDXLicense.NGPL);
4850        if ("NLOD-1.0".equals(codeString))
4851          return new Enumeration<SPDXLicense>(this, SPDXLicense.NLOD1_0);
4852        if ("NLPL".equals(codeString))
4853          return new Enumeration<SPDXLicense>(this, SPDXLicense.NLPL);
4854        if ("Nokia".equals(codeString))
4855          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOKIA);
4856        if ("NOSL".equals(codeString))
4857          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOSL);
4858        if ("Noweb".equals(codeString))
4859          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOWEB);
4860        if ("NPL-1.0".equals(codeString))
4861          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPL1_0);
4862        if ("NPL-1.1".equals(codeString))
4863          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPL1_1);
4864        if ("NPOSL-3.0".equals(codeString))
4865          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPOSL3_0);
4866        if ("NRL".equals(codeString))
4867          return new Enumeration<SPDXLicense>(this, SPDXLicense.NRL);
4868        if ("NTP".equals(codeString))
4869          return new Enumeration<SPDXLicense>(this, SPDXLicense.NTP);
4870        if ("OCCT-PL".equals(codeString))
4871          return new Enumeration<SPDXLicense>(this, SPDXLicense.OCCTPL);
4872        if ("OCLC-2.0".equals(codeString))
4873          return new Enumeration<SPDXLicense>(this, SPDXLicense.OCLC2_0);
4874        if ("ODbL-1.0".equals(codeString))
4875          return new Enumeration<SPDXLicense>(this, SPDXLicense.ODBL1_0);
4876        if ("OFL-1.0".equals(codeString))
4877          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL1_0);
4878        if ("OFL-1.1".equals(codeString))
4879          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL1_1);
4880        if ("OGTSL".equals(codeString))
4881          return new Enumeration<SPDXLicense>(this, SPDXLicense.OGTSL);
4882        if ("OLDAP-1.1".equals(codeString))
4883          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_1);
4884        if ("OLDAP-1.2".equals(codeString))
4885          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_2);
4886        if ("OLDAP-1.3".equals(codeString))
4887          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_3);
4888        if ("OLDAP-1.4".equals(codeString))
4889          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_4);
4890        if ("OLDAP-2.0.1".equals(codeString))
4891          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_0_1);
4892        if ("OLDAP-2.0".equals(codeString))
4893          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_0);
4894        if ("OLDAP-2.1".equals(codeString))
4895          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_1);
4896        if ("OLDAP-2.2.1".equals(codeString))
4897          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_2_1);
4898        if ("OLDAP-2.2.2".equals(codeString))
4899          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_2_2);
4900        if ("OLDAP-2.2".equals(codeString))
4901          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_2);
4902        if ("OLDAP-2.3".equals(codeString))
4903          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_3);
4904        if ("OLDAP-2.4".equals(codeString))
4905          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_4);
4906        if ("OLDAP-2.5".equals(codeString))
4907          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_5);
4908        if ("OLDAP-2.6".equals(codeString))
4909          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_6);
4910        if ("OLDAP-2.7".equals(codeString))
4911          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_7);
4912        if ("OLDAP-2.8".equals(codeString))
4913          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_8);
4914        if ("OML".equals(codeString))
4915          return new Enumeration<SPDXLicense>(this, SPDXLicense.OML);
4916        if ("OpenSSL".equals(codeString))
4917          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPENSSL);
4918        if ("OPL-1.0".equals(codeString))
4919          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPL1_0);
4920        if ("OSET-PL-2.1".equals(codeString))
4921          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSETPL2_1);
4922        if ("OSL-1.0".equals(codeString))
4923          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL1_0);
4924        if ("OSL-1.1".equals(codeString))
4925          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL1_1);
4926        if ("OSL-2.0".equals(codeString))
4927          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL2_0);
4928        if ("OSL-2.1".equals(codeString))
4929          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL2_1);
4930        if ("OSL-3.0".equals(codeString))
4931          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL3_0);
4932        if ("PDDL-1.0".equals(codeString))
4933          return new Enumeration<SPDXLicense>(this, SPDXLicense.PDDL1_0);
4934        if ("PHP-3.0".equals(codeString))
4935          return new Enumeration<SPDXLicense>(this, SPDXLicense.PHP3_0);
4936        if ("PHP-3.01".equals(codeString))
4937          return new Enumeration<SPDXLicense>(this, SPDXLicense.PHP3_01);
4938        if ("Plexus".equals(codeString))
4939          return new Enumeration<SPDXLicense>(this, SPDXLicense.PLEXUS);
4940        if ("PostgreSQL".equals(codeString))
4941          return new Enumeration<SPDXLicense>(this, SPDXLicense.POSTGRESQL);
4942        if ("psfrag".equals(codeString))
4943          return new Enumeration<SPDXLicense>(this, SPDXLicense.PSFRAG);
4944        if ("psutils".equals(codeString))
4945          return new Enumeration<SPDXLicense>(this, SPDXLicense.PSUTILS);
4946        if ("Python-2.0".equals(codeString))
4947          return new Enumeration<SPDXLicense>(this, SPDXLicense.PYTHON2_0);
4948        if ("Qhull".equals(codeString))
4949          return new Enumeration<SPDXLicense>(this, SPDXLicense.QHULL);
4950        if ("QPL-1.0".equals(codeString))
4951          return new Enumeration<SPDXLicense>(this, SPDXLicense.QPL1_0);
4952        if ("Rdisc".equals(codeString))
4953          return new Enumeration<SPDXLicense>(this, SPDXLicense.RDISC);
4954        if ("RHeCos-1.1".equals(codeString))
4955          return new Enumeration<SPDXLicense>(this, SPDXLicense.RHECOS1_1);
4956        if ("RPL-1.1".equals(codeString))
4957          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPL1_1);
4958        if ("RPL-1.5".equals(codeString))
4959          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPL1_5);
4960        if ("RPSL-1.0".equals(codeString))
4961          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPSL1_0);
4962        if ("RSA-MD".equals(codeString))
4963          return new Enumeration<SPDXLicense>(this, SPDXLicense.RSAMD);
4964        if ("RSCPL".equals(codeString))
4965          return new Enumeration<SPDXLicense>(this, SPDXLicense.RSCPL);
4966        if ("Ruby".equals(codeString))
4967          return new Enumeration<SPDXLicense>(this, SPDXLicense.RUBY);
4968        if ("SAX-PD".equals(codeString))
4969          return new Enumeration<SPDXLicense>(this, SPDXLicense.SAXPD);
4970        if ("Saxpath".equals(codeString))
4971          return new Enumeration<SPDXLicense>(this, SPDXLicense.SAXPATH);
4972        if ("SCEA".equals(codeString))
4973          return new Enumeration<SPDXLicense>(this, SPDXLicense.SCEA);
4974        if ("Sendmail".equals(codeString))
4975          return new Enumeration<SPDXLicense>(this, SPDXLicense.SENDMAIL);
4976        if ("SGI-B-1.0".equals(codeString))
4977          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGIB1_0);
4978        if ("SGI-B-1.1".equals(codeString))
4979          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGIB1_1);
4980        if ("SGI-B-2.0".equals(codeString))
4981          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGIB2_0);
4982        if ("SimPL-2.0".equals(codeString))
4983          return new Enumeration<SPDXLicense>(this, SPDXLicense.SIMPL2_0);
4984        if ("SISSL-1.2".equals(codeString))
4985          return new Enumeration<SPDXLicense>(this, SPDXLicense.SISSL1_2);
4986        if ("SISSL".equals(codeString))
4987          return new Enumeration<SPDXLicense>(this, SPDXLicense.SISSL);
4988        if ("Sleepycat".equals(codeString))
4989          return new Enumeration<SPDXLicense>(this, SPDXLicense.SLEEPYCAT);
4990        if ("SMLNJ".equals(codeString))
4991          return new Enumeration<SPDXLicense>(this, SPDXLicense.SMLNJ);
4992        if ("SMPPL".equals(codeString))
4993          return new Enumeration<SPDXLicense>(this, SPDXLicense.SMPPL);
4994        if ("SNIA".equals(codeString))
4995          return new Enumeration<SPDXLicense>(this, SPDXLicense.SNIA);
4996        if ("Spencer-86".equals(codeString))
4997          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER86);
4998        if ("Spencer-94".equals(codeString))
4999          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER94);
5000        if ("Spencer-99".equals(codeString))
5001          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER99);
5002        if ("SPL-1.0".equals(codeString))
5003          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPL1_0);
5004        if ("SugarCRM-1.1.3".equals(codeString))
5005          return new Enumeration<SPDXLicense>(this, SPDXLicense.SUGARCRM1_1_3);
5006        if ("SWL".equals(codeString))
5007          return new Enumeration<SPDXLicense>(this, SPDXLicense.SWL);
5008        if ("TCL".equals(codeString))
5009          return new Enumeration<SPDXLicense>(this, SPDXLicense.TCL);
5010        if ("TCP-wrappers".equals(codeString))
5011          return new Enumeration<SPDXLicense>(this, SPDXLicense.TCPWRAPPERS);
5012        if ("TMate".equals(codeString))
5013          return new Enumeration<SPDXLicense>(this, SPDXLicense.TMATE);
5014        if ("TORQUE-1.1".equals(codeString))
5015          return new Enumeration<SPDXLicense>(this, SPDXLicense.TORQUE1_1);
5016        if ("TOSL".equals(codeString))
5017          return new Enumeration<SPDXLicense>(this, SPDXLicense.TOSL);
5018        if ("Unicode-DFS-2015".equals(codeString))
5019          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODEDFS2015);
5020        if ("Unicode-DFS-2016".equals(codeString))
5021          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODEDFS2016);
5022        if ("Unicode-TOU".equals(codeString))
5023          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODETOU);
5024        if ("Unlicense".equals(codeString))
5025          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNLICENSE);
5026        if ("UPL-1.0".equals(codeString))
5027          return new Enumeration<SPDXLicense>(this, SPDXLicense.UPL1_0);
5028        if ("Vim".equals(codeString))
5029          return new Enumeration<SPDXLicense>(this, SPDXLicense.VIM);
5030        if ("VOSTROM".equals(codeString))
5031          return new Enumeration<SPDXLicense>(this, SPDXLicense.VOSTROM);
5032        if ("VSL-1.0".equals(codeString))
5033          return new Enumeration<SPDXLicense>(this, SPDXLicense.VSL1_0);
5034        if ("W3C-19980720".equals(codeString))
5035          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C19980720);
5036        if ("W3C-20150513".equals(codeString))
5037          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C20150513);
5038        if ("W3C".equals(codeString))
5039          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C);
5040        if ("Watcom-1.0".equals(codeString))
5041          return new Enumeration<SPDXLicense>(this, SPDXLicense.WATCOM1_0);
5042        if ("Wsuipa".equals(codeString))
5043          return new Enumeration<SPDXLicense>(this, SPDXLicense.WSUIPA);
5044        if ("WTFPL".equals(codeString))
5045          return new Enumeration<SPDXLicense>(this, SPDXLicense.WTFPL);
5046        if ("X11".equals(codeString))
5047          return new Enumeration<SPDXLicense>(this, SPDXLicense.X11);
5048        if ("Xerox".equals(codeString))
5049          return new Enumeration<SPDXLicense>(this, SPDXLicense.XEROX);
5050        if ("XFree86-1.1".equals(codeString))
5051          return new Enumeration<SPDXLicense>(this, SPDXLicense.XFREE861_1);
5052        if ("xinetd".equals(codeString))
5053          return new Enumeration<SPDXLicense>(this, SPDXLicense.XINETD);
5054        if ("Xnet".equals(codeString))
5055          return new Enumeration<SPDXLicense>(this, SPDXLicense.XNET);
5056        if ("xpp".equals(codeString))
5057          return new Enumeration<SPDXLicense>(this, SPDXLicense.XPP);
5058        if ("XSkat".equals(codeString))
5059          return new Enumeration<SPDXLicense>(this, SPDXLicense.XSKAT);
5060        if ("YPL-1.0".equals(codeString))
5061          return new Enumeration<SPDXLicense>(this, SPDXLicense.YPL1_0);
5062        if ("YPL-1.1".equals(codeString))
5063          return new Enumeration<SPDXLicense>(this, SPDXLicense.YPL1_1);
5064        if ("Zed".equals(codeString))
5065          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZED);
5066        if ("Zend-2.0".equals(codeString))
5067          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZEND2_0);
5068        if ("Zimbra-1.3".equals(codeString))
5069          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZIMBRA1_3);
5070        if ("Zimbra-1.4".equals(codeString))
5071          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZIMBRA1_4);
5072        if ("zlib-acknowledgement".equals(codeString))
5073          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZLIBACKNOWLEDGEMENT);
5074        if ("Zlib".equals(codeString))
5075          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZLIB);
5076        if ("ZPL-1.1".equals(codeString))
5077          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL1_1);
5078        if ("ZPL-2.0".equals(codeString))
5079          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL2_0);
5080        if ("ZPL-2.1".equals(codeString))
5081          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL2_1);
5082        throw new FHIRException("Unknown SPDXLicense code '"+codeString+"'");
5083        }
5084    public String toCode(SPDXLicense code) {
5085      if (code == SPDXLicense.NOTOPENSOURCE)
5086        return "not-open-source";
5087      if (code == SPDXLicense._0BSD)
5088        return "0BSD";
5089      if (code == SPDXLicense.AAL)
5090        return "AAL";
5091      if (code == SPDXLicense.ABSTYLES)
5092        return "Abstyles";
5093      if (code == SPDXLicense.ADOBE2006)
5094        return "Adobe-2006";
5095      if (code == SPDXLicense.ADOBEGLYPH)
5096        return "Adobe-Glyph";
5097      if (code == SPDXLicense.ADSL)
5098        return "ADSL";
5099      if (code == SPDXLicense.AFL1_1)
5100        return "AFL-1.1";
5101      if (code == SPDXLicense.AFL1_2)
5102        return "AFL-1.2";
5103      if (code == SPDXLicense.AFL2_0)
5104        return "AFL-2.0";
5105      if (code == SPDXLicense.AFL2_1)
5106        return "AFL-2.1";
5107      if (code == SPDXLicense.AFL3_0)
5108        return "AFL-3.0";
5109      if (code == SPDXLicense.AFMPARSE)
5110        return "Afmparse";
5111      if (code == SPDXLicense.AGPL1_0ONLY)
5112        return "AGPL-1.0-only";
5113      if (code == SPDXLicense.AGPL1_0ORLATER)
5114        return "AGPL-1.0-or-later";
5115      if (code == SPDXLicense.AGPL3_0ONLY)
5116        return "AGPL-3.0-only";
5117      if (code == SPDXLicense.AGPL3_0ORLATER)
5118        return "AGPL-3.0-or-later";
5119      if (code == SPDXLicense.ALADDIN)
5120        return "Aladdin";
5121      if (code == SPDXLicense.AMDPLPA)
5122        return "AMDPLPA";
5123      if (code == SPDXLicense.AML)
5124        return "AML";
5125      if (code == SPDXLicense.AMPAS)
5126        return "AMPAS";
5127      if (code == SPDXLicense.ANTLRPD)
5128        return "ANTLR-PD";
5129      if (code == SPDXLicense.APACHE1_0)
5130        return "Apache-1.0";
5131      if (code == SPDXLicense.APACHE1_1)
5132        return "Apache-1.1";
5133      if (code == SPDXLicense.APACHE2_0)
5134        return "Apache-2.0";
5135      if (code == SPDXLicense.APAFML)
5136        return "APAFML";
5137      if (code == SPDXLicense.APL1_0)
5138        return "APL-1.0";
5139      if (code == SPDXLicense.APSL1_0)
5140        return "APSL-1.0";
5141      if (code == SPDXLicense.APSL1_1)
5142        return "APSL-1.1";
5143      if (code == SPDXLicense.APSL1_2)
5144        return "APSL-1.2";
5145      if (code == SPDXLicense.APSL2_0)
5146        return "APSL-2.0";
5147      if (code == SPDXLicense.ARTISTIC1_0CL8)
5148        return "Artistic-1.0-cl8";
5149      if (code == SPDXLicense.ARTISTIC1_0PERL)
5150        return "Artistic-1.0-Perl";
5151      if (code == SPDXLicense.ARTISTIC1_0)
5152        return "Artistic-1.0";
5153      if (code == SPDXLicense.ARTISTIC2_0)
5154        return "Artistic-2.0";
5155      if (code == SPDXLicense.BAHYPH)
5156        return "Bahyph";
5157      if (code == SPDXLicense.BARR)
5158        return "Barr";
5159      if (code == SPDXLicense.BEERWARE)
5160        return "Beerware";
5161      if (code == SPDXLicense.BITTORRENT1_0)
5162        return "BitTorrent-1.0";
5163      if (code == SPDXLicense.BITTORRENT1_1)
5164        return "BitTorrent-1.1";
5165      if (code == SPDXLicense.BORCEUX)
5166        return "Borceux";
5167      if (code == SPDXLicense.BSD1CLAUSE)
5168        return "BSD-1-Clause";
5169      if (code == SPDXLicense.BSD2CLAUSEFREEBSD)
5170        return "BSD-2-Clause-FreeBSD";
5171      if (code == SPDXLicense.BSD2CLAUSENETBSD)
5172        return "BSD-2-Clause-NetBSD";
5173      if (code == SPDXLicense.BSD2CLAUSEPATENT)
5174        return "BSD-2-Clause-Patent";
5175      if (code == SPDXLicense.BSD2CLAUSE)
5176        return "BSD-2-Clause";
5177      if (code == SPDXLicense.BSD3CLAUSEATTRIBUTION)
5178        return "BSD-3-Clause-Attribution";
5179      if (code == SPDXLicense.BSD3CLAUSECLEAR)
5180        return "BSD-3-Clause-Clear";
5181      if (code == SPDXLicense.BSD3CLAUSELBNL)
5182        return "BSD-3-Clause-LBNL";
5183      if (code == SPDXLicense.BSD3CLAUSENONUCLEARLICENSE2014)
5184        return "BSD-3-Clause-No-Nuclear-License-2014";
5185      if (code == SPDXLicense.BSD3CLAUSENONUCLEARLICENSE)
5186        return "BSD-3-Clause-No-Nuclear-License";
5187      if (code == SPDXLicense.BSD3CLAUSENONUCLEARWARRANTY)
5188        return "BSD-3-Clause-No-Nuclear-Warranty";
5189      if (code == SPDXLicense.BSD3CLAUSE)
5190        return "BSD-3-Clause";
5191      if (code == SPDXLicense.BSD4CLAUSEUC)
5192        return "BSD-4-Clause-UC";
5193      if (code == SPDXLicense.BSD4CLAUSE)
5194        return "BSD-4-Clause";
5195      if (code == SPDXLicense.BSDPROTECTION)
5196        return "BSD-Protection";
5197      if (code == SPDXLicense.BSDSOURCECODE)
5198        return "BSD-Source-Code";
5199      if (code == SPDXLicense.BSL1_0)
5200        return "BSL-1.0";
5201      if (code == SPDXLicense.BZIP21_0_5)
5202        return "bzip2-1.0.5";
5203      if (code == SPDXLicense.BZIP21_0_6)
5204        return "bzip2-1.0.6";
5205      if (code == SPDXLicense.CALDERA)
5206        return "Caldera";
5207      if (code == SPDXLicense.CATOSL1_1)
5208        return "CATOSL-1.1";
5209      if (code == SPDXLicense.CCBY1_0)
5210        return "CC-BY-1.0";
5211      if (code == SPDXLicense.CCBY2_0)
5212        return "CC-BY-2.0";
5213      if (code == SPDXLicense.CCBY2_5)
5214        return "CC-BY-2.5";
5215      if (code == SPDXLicense.CCBY3_0)
5216        return "CC-BY-3.0";
5217      if (code == SPDXLicense.CCBY4_0)
5218        return "CC-BY-4.0";
5219      if (code == SPDXLicense.CCBYNC1_0)
5220        return "CC-BY-NC-1.0";
5221      if (code == SPDXLicense.CCBYNC2_0)
5222        return "CC-BY-NC-2.0";
5223      if (code == SPDXLicense.CCBYNC2_5)
5224        return "CC-BY-NC-2.5";
5225      if (code == SPDXLicense.CCBYNC3_0)
5226        return "CC-BY-NC-3.0";
5227      if (code == SPDXLicense.CCBYNC4_0)
5228        return "CC-BY-NC-4.0";
5229      if (code == SPDXLicense.CCBYNCND1_0)
5230        return "CC-BY-NC-ND-1.0";
5231      if (code == SPDXLicense.CCBYNCND2_0)
5232        return "CC-BY-NC-ND-2.0";
5233      if (code == SPDXLicense.CCBYNCND2_5)
5234        return "CC-BY-NC-ND-2.5";
5235      if (code == SPDXLicense.CCBYNCND3_0)
5236        return "CC-BY-NC-ND-3.0";
5237      if (code == SPDXLicense.CCBYNCND4_0)
5238        return "CC-BY-NC-ND-4.0";
5239      if (code == SPDXLicense.CCBYNCSA1_0)
5240        return "CC-BY-NC-SA-1.0";
5241      if (code == SPDXLicense.CCBYNCSA2_0)
5242        return "CC-BY-NC-SA-2.0";
5243      if (code == SPDXLicense.CCBYNCSA2_5)
5244        return "CC-BY-NC-SA-2.5";
5245      if (code == SPDXLicense.CCBYNCSA3_0)
5246        return "CC-BY-NC-SA-3.0";
5247      if (code == SPDXLicense.CCBYNCSA4_0)
5248        return "CC-BY-NC-SA-4.0";
5249      if (code == SPDXLicense.CCBYND1_0)
5250        return "CC-BY-ND-1.0";
5251      if (code == SPDXLicense.CCBYND2_0)
5252        return "CC-BY-ND-2.0";
5253      if (code == SPDXLicense.CCBYND2_5)
5254        return "CC-BY-ND-2.5";
5255      if (code == SPDXLicense.CCBYND3_0)
5256        return "CC-BY-ND-3.0";
5257      if (code == SPDXLicense.CCBYND4_0)
5258        return "CC-BY-ND-4.0";
5259      if (code == SPDXLicense.CCBYSA1_0)
5260        return "CC-BY-SA-1.0";
5261      if (code == SPDXLicense.CCBYSA2_0)
5262        return "CC-BY-SA-2.0";
5263      if (code == SPDXLicense.CCBYSA2_5)
5264        return "CC-BY-SA-2.5";
5265      if (code == SPDXLicense.CCBYSA3_0)
5266        return "CC-BY-SA-3.0";
5267      if (code == SPDXLicense.CCBYSA4_0)
5268        return "CC-BY-SA-4.0";
5269      if (code == SPDXLicense.CC01_0)
5270        return "CC0-1.0";
5271      if (code == SPDXLicense.CDDL1_0)
5272        return "CDDL-1.0";
5273      if (code == SPDXLicense.CDDL1_1)
5274        return "CDDL-1.1";
5275      if (code == SPDXLicense.CDLAPERMISSIVE1_0)
5276        return "CDLA-Permissive-1.0";
5277      if (code == SPDXLicense.CDLASHARING1_0)
5278        return "CDLA-Sharing-1.0";
5279      if (code == SPDXLicense.CECILL1_0)
5280        return "CECILL-1.0";
5281      if (code == SPDXLicense.CECILL1_1)
5282        return "CECILL-1.1";
5283      if (code == SPDXLicense.CECILL2_0)
5284        return "CECILL-2.0";
5285      if (code == SPDXLicense.CECILL2_1)
5286        return "CECILL-2.1";
5287      if (code == SPDXLicense.CECILLB)
5288        return "CECILL-B";
5289      if (code == SPDXLicense.CECILLC)
5290        return "CECILL-C";
5291      if (code == SPDXLicense.CLARTISTIC)
5292        return "ClArtistic";
5293      if (code == SPDXLicense.CNRIJYTHON)
5294        return "CNRI-Jython";
5295      if (code == SPDXLicense.CNRIPYTHONGPLCOMPATIBLE)
5296        return "CNRI-Python-GPL-Compatible";
5297      if (code == SPDXLicense.CNRIPYTHON)
5298        return "CNRI-Python";
5299      if (code == SPDXLicense.CONDOR1_1)
5300        return "Condor-1.1";
5301      if (code == SPDXLicense.CPAL1_0)
5302        return "CPAL-1.0";
5303      if (code == SPDXLicense.CPL1_0)
5304        return "CPL-1.0";
5305      if (code == SPDXLicense.CPOL1_02)
5306        return "CPOL-1.02";
5307      if (code == SPDXLicense.CROSSWORD)
5308        return "Crossword";
5309      if (code == SPDXLicense.CRYSTALSTACKER)
5310        return "CrystalStacker";
5311      if (code == SPDXLicense.CUAOPL1_0)
5312        return "CUA-OPL-1.0";
5313      if (code == SPDXLicense.CUBE)
5314        return "Cube";
5315      if (code == SPDXLicense.CURL)
5316        return "curl";
5317      if (code == SPDXLicense.DFSL1_0)
5318        return "D-FSL-1.0";
5319      if (code == SPDXLicense.DIFFMARK)
5320        return "diffmark";
5321      if (code == SPDXLicense.DOC)
5322        return "DOC";
5323      if (code == SPDXLicense.DOTSEQN)
5324        return "Dotseqn";
5325      if (code == SPDXLicense.DSDP)
5326        return "DSDP";
5327      if (code == SPDXLicense.DVIPDFM)
5328        return "dvipdfm";
5329      if (code == SPDXLicense.ECL1_0)
5330        return "ECL-1.0";
5331      if (code == SPDXLicense.ECL2_0)
5332        return "ECL-2.0";
5333      if (code == SPDXLicense.EFL1_0)
5334        return "EFL-1.0";
5335      if (code == SPDXLicense.EFL2_0)
5336        return "EFL-2.0";
5337      if (code == SPDXLicense.EGENIX)
5338        return "eGenix";
5339      if (code == SPDXLicense.ENTESSA)
5340        return "Entessa";
5341      if (code == SPDXLicense.EPL1_0)
5342        return "EPL-1.0";
5343      if (code == SPDXLicense.EPL2_0)
5344        return "EPL-2.0";
5345      if (code == SPDXLicense.ERLPL1_1)
5346        return "ErlPL-1.1";
5347      if (code == SPDXLicense.EUDATAGRID)
5348        return "EUDatagrid";
5349      if (code == SPDXLicense.EUPL1_0)
5350        return "EUPL-1.0";
5351      if (code == SPDXLicense.EUPL1_1)
5352        return "EUPL-1.1";
5353      if (code == SPDXLicense.EUPL1_2)
5354        return "EUPL-1.2";
5355      if (code == SPDXLicense.EUROSYM)
5356        return "Eurosym";
5357      if (code == SPDXLicense.FAIR)
5358        return "Fair";
5359      if (code == SPDXLicense.FRAMEWORX1_0)
5360        return "Frameworx-1.0";
5361      if (code == SPDXLicense.FREEIMAGE)
5362        return "FreeImage";
5363      if (code == SPDXLicense.FSFAP)
5364        return "FSFAP";
5365      if (code == SPDXLicense.FSFUL)
5366        return "FSFUL";
5367      if (code == SPDXLicense.FSFULLR)
5368        return "FSFULLR";
5369      if (code == SPDXLicense.FTL)
5370        return "FTL";
5371      if (code == SPDXLicense.GFDL1_1ONLY)
5372        return "GFDL-1.1-only";
5373      if (code == SPDXLicense.GFDL1_1ORLATER)
5374        return "GFDL-1.1-or-later";
5375      if (code == SPDXLicense.GFDL1_2ONLY)
5376        return "GFDL-1.2-only";
5377      if (code == SPDXLicense.GFDL1_2ORLATER)
5378        return "GFDL-1.2-or-later";
5379      if (code == SPDXLicense.GFDL1_3ONLY)
5380        return "GFDL-1.3-only";
5381      if (code == SPDXLicense.GFDL1_3ORLATER)
5382        return "GFDL-1.3-or-later";
5383      if (code == SPDXLicense.GIFTWARE)
5384        return "Giftware";
5385      if (code == SPDXLicense.GL2PS)
5386        return "GL2PS";
5387      if (code == SPDXLicense.GLIDE)
5388        return "Glide";
5389      if (code == SPDXLicense.GLULXE)
5390        return "Glulxe";
5391      if (code == SPDXLicense.GNUPLOT)
5392        return "gnuplot";
5393      if (code == SPDXLicense.GPL1_0ONLY)
5394        return "GPL-1.0-only";
5395      if (code == SPDXLicense.GPL1_0ORLATER)
5396        return "GPL-1.0-or-later";
5397      if (code == SPDXLicense.GPL2_0ONLY)
5398        return "GPL-2.0-only";
5399      if (code == SPDXLicense.GPL2_0ORLATER)
5400        return "GPL-2.0-or-later";
5401      if (code == SPDXLicense.GPL3_0ONLY)
5402        return "GPL-3.0-only";
5403      if (code == SPDXLicense.GPL3_0ORLATER)
5404        return "GPL-3.0-or-later";
5405      if (code == SPDXLicense.GSOAP1_3B)
5406        return "gSOAP-1.3b";
5407      if (code == SPDXLicense.HASKELLREPORT)
5408        return "HaskellReport";
5409      if (code == SPDXLicense.HPND)
5410        return "HPND";
5411      if (code == SPDXLicense.IBMPIBS)
5412        return "IBM-pibs";
5413      if (code == SPDXLicense.ICU)
5414        return "ICU";
5415      if (code == SPDXLicense.IJG)
5416        return "IJG";
5417      if (code == SPDXLicense.IMAGEMAGICK)
5418        return "ImageMagick";
5419      if (code == SPDXLicense.IMATIX)
5420        return "iMatix";
5421      if (code == SPDXLicense.IMLIB2)
5422        return "Imlib2";
5423      if (code == SPDXLicense.INFOZIP)
5424        return "Info-ZIP";
5425      if (code == SPDXLicense.INTELACPI)
5426        return "Intel-ACPI";
5427      if (code == SPDXLicense.INTEL)
5428        return "Intel";
5429      if (code == SPDXLicense.INTERBASE1_0)
5430        return "Interbase-1.0";
5431      if (code == SPDXLicense.IPA)
5432        return "IPA";
5433      if (code == SPDXLicense.IPL1_0)
5434        return "IPL-1.0";
5435      if (code == SPDXLicense.ISC)
5436        return "ISC";
5437      if (code == SPDXLicense.JASPER2_0)
5438        return "JasPer-2.0";
5439      if (code == SPDXLicense.JSON)
5440        return "JSON";
5441      if (code == SPDXLicense.LAL1_2)
5442        return "LAL-1.2";
5443      if (code == SPDXLicense.LAL1_3)
5444        return "LAL-1.3";
5445      if (code == SPDXLicense.LATEX2E)
5446        return "Latex2e";
5447      if (code == SPDXLicense.LEPTONICA)
5448        return "Leptonica";
5449      if (code == SPDXLicense.LGPL2_0ONLY)
5450        return "LGPL-2.0-only";
5451      if (code == SPDXLicense.LGPL2_0ORLATER)
5452        return "LGPL-2.0-or-later";
5453      if (code == SPDXLicense.LGPL2_1ONLY)
5454        return "LGPL-2.1-only";
5455      if (code == SPDXLicense.LGPL2_1ORLATER)
5456        return "LGPL-2.1-or-later";
5457      if (code == SPDXLicense.LGPL3_0ONLY)
5458        return "LGPL-3.0-only";
5459      if (code == SPDXLicense.LGPL3_0ORLATER)
5460        return "LGPL-3.0-or-later";
5461      if (code == SPDXLicense.LGPLLR)
5462        return "LGPLLR";
5463      if (code == SPDXLicense.LIBPNG)
5464        return "Libpng";
5465      if (code == SPDXLicense.LIBTIFF)
5466        return "libtiff";
5467      if (code == SPDXLicense.LILIQP1_1)
5468        return "LiLiQ-P-1.1";
5469      if (code == SPDXLicense.LILIQR1_1)
5470        return "LiLiQ-R-1.1";
5471      if (code == SPDXLicense.LILIQRPLUS1_1)
5472        return "LiLiQ-Rplus-1.1";
5473      if (code == SPDXLicense.LINUXOPENIB)
5474        return "Linux-OpenIB";
5475      if (code == SPDXLicense.LPL1_0)
5476        return "LPL-1.0";
5477      if (code == SPDXLicense.LPL1_02)
5478        return "LPL-1.02";
5479      if (code == SPDXLicense.LPPL1_0)
5480        return "LPPL-1.0";
5481      if (code == SPDXLicense.LPPL1_1)
5482        return "LPPL-1.1";
5483      if (code == SPDXLicense.LPPL1_2)
5484        return "LPPL-1.2";
5485      if (code == SPDXLicense.LPPL1_3A)
5486        return "LPPL-1.3a";
5487      if (code == SPDXLicense.LPPL1_3C)
5488        return "LPPL-1.3c";
5489      if (code == SPDXLicense.MAKEINDEX)
5490        return "MakeIndex";
5491      if (code == SPDXLicense.MIROS)
5492        return "MirOS";
5493      if (code == SPDXLicense.MIT0)
5494        return "MIT-0";
5495      if (code == SPDXLicense.MITADVERTISING)
5496        return "MIT-advertising";
5497      if (code == SPDXLicense.MITCMU)
5498        return "MIT-CMU";
5499      if (code == SPDXLicense.MITENNA)
5500        return "MIT-enna";
5501      if (code == SPDXLicense.MITFEH)
5502        return "MIT-feh";
5503      if (code == SPDXLicense.MIT)
5504        return "MIT";
5505      if (code == SPDXLicense.MITNFA)
5506        return "MITNFA";
5507      if (code == SPDXLicense.MOTOSOTO)
5508        return "Motosoto";
5509      if (code == SPDXLicense.MPICH2)
5510        return "mpich2";
5511      if (code == SPDXLicense.MPL1_0)
5512        return "MPL-1.0";
5513      if (code == SPDXLicense.MPL1_1)
5514        return "MPL-1.1";
5515      if (code == SPDXLicense.MPL2_0NOCOPYLEFTEXCEPTION)
5516        return "MPL-2.0-no-copyleft-exception";
5517      if (code == SPDXLicense.MPL2_0)
5518        return "MPL-2.0";
5519      if (code == SPDXLicense.MSPL)
5520        return "MS-PL";
5521      if (code == SPDXLicense.MSRL)
5522        return "MS-RL";
5523      if (code == SPDXLicense.MTLL)
5524        return "MTLL";
5525      if (code == SPDXLicense.MULTICS)
5526        return "Multics";
5527      if (code == SPDXLicense.MUP)
5528        return "Mup";
5529      if (code == SPDXLicense.NASA1_3)
5530        return "NASA-1.3";
5531      if (code == SPDXLicense.NAUMEN)
5532        return "Naumen";
5533      if (code == SPDXLicense.NBPL1_0)
5534        return "NBPL-1.0";
5535      if (code == SPDXLicense.NCSA)
5536        return "NCSA";
5537      if (code == SPDXLicense.NETSNMP)
5538        return "Net-SNMP";
5539      if (code == SPDXLicense.NETCDF)
5540        return "NetCDF";
5541      if (code == SPDXLicense.NEWSLETR)
5542        return "Newsletr";
5543      if (code == SPDXLicense.NGPL)
5544        return "NGPL";
5545      if (code == SPDXLicense.NLOD1_0)
5546        return "NLOD-1.0";
5547      if (code == SPDXLicense.NLPL)
5548        return "NLPL";
5549      if (code == SPDXLicense.NOKIA)
5550        return "Nokia";
5551      if (code == SPDXLicense.NOSL)
5552        return "NOSL";
5553      if (code == SPDXLicense.NOWEB)
5554        return "Noweb";
5555      if (code == SPDXLicense.NPL1_0)
5556        return "NPL-1.0";
5557      if (code == SPDXLicense.NPL1_1)
5558        return "NPL-1.1";
5559      if (code == SPDXLicense.NPOSL3_0)
5560        return "NPOSL-3.0";
5561      if (code == SPDXLicense.NRL)
5562        return "NRL";
5563      if (code == SPDXLicense.NTP)
5564        return "NTP";
5565      if (code == SPDXLicense.OCCTPL)
5566        return "OCCT-PL";
5567      if (code == SPDXLicense.OCLC2_0)
5568        return "OCLC-2.0";
5569      if (code == SPDXLicense.ODBL1_0)
5570        return "ODbL-1.0";
5571      if (code == SPDXLicense.OFL1_0)
5572        return "OFL-1.0";
5573      if (code == SPDXLicense.OFL1_1)
5574        return "OFL-1.1";
5575      if (code == SPDXLicense.OGTSL)
5576        return "OGTSL";
5577      if (code == SPDXLicense.OLDAP1_1)
5578        return "OLDAP-1.1";
5579      if (code == SPDXLicense.OLDAP1_2)
5580        return "OLDAP-1.2";
5581      if (code == SPDXLicense.OLDAP1_3)
5582        return "OLDAP-1.3";
5583      if (code == SPDXLicense.OLDAP1_4)
5584        return "OLDAP-1.4";
5585      if (code == SPDXLicense.OLDAP2_0_1)
5586        return "OLDAP-2.0.1";
5587      if (code == SPDXLicense.OLDAP2_0)
5588        return "OLDAP-2.0";
5589      if (code == SPDXLicense.OLDAP2_1)
5590        return "OLDAP-2.1";
5591      if (code == SPDXLicense.OLDAP2_2_1)
5592        return "OLDAP-2.2.1";
5593      if (code == SPDXLicense.OLDAP2_2_2)
5594        return "OLDAP-2.2.2";
5595      if (code == SPDXLicense.OLDAP2_2)
5596        return "OLDAP-2.2";
5597      if (code == SPDXLicense.OLDAP2_3)
5598        return "OLDAP-2.3";
5599      if (code == SPDXLicense.OLDAP2_4)
5600        return "OLDAP-2.4";
5601      if (code == SPDXLicense.OLDAP2_5)
5602        return "OLDAP-2.5";
5603      if (code == SPDXLicense.OLDAP2_6)
5604        return "OLDAP-2.6";
5605      if (code == SPDXLicense.OLDAP2_7)
5606        return "OLDAP-2.7";
5607      if (code == SPDXLicense.OLDAP2_8)
5608        return "OLDAP-2.8";
5609      if (code == SPDXLicense.OML)
5610        return "OML";
5611      if (code == SPDXLicense.OPENSSL)
5612        return "OpenSSL";
5613      if (code == SPDXLicense.OPL1_0)
5614        return "OPL-1.0";
5615      if (code == SPDXLicense.OSETPL2_1)
5616        return "OSET-PL-2.1";
5617      if (code == SPDXLicense.OSL1_0)
5618        return "OSL-1.0";
5619      if (code == SPDXLicense.OSL1_1)
5620        return "OSL-1.1";
5621      if (code == SPDXLicense.OSL2_0)
5622        return "OSL-2.0";
5623      if (code == SPDXLicense.OSL2_1)
5624        return "OSL-2.1";
5625      if (code == SPDXLicense.OSL3_0)
5626        return "OSL-3.0";
5627      if (code == SPDXLicense.PDDL1_0)
5628        return "PDDL-1.0";
5629      if (code == SPDXLicense.PHP3_0)
5630        return "PHP-3.0";
5631      if (code == SPDXLicense.PHP3_01)
5632        return "PHP-3.01";
5633      if (code == SPDXLicense.PLEXUS)
5634        return "Plexus";
5635      if (code == SPDXLicense.POSTGRESQL)
5636        return "PostgreSQL";
5637      if (code == SPDXLicense.PSFRAG)
5638        return "psfrag";
5639      if (code == SPDXLicense.PSUTILS)
5640        return "psutils";
5641      if (code == SPDXLicense.PYTHON2_0)
5642        return "Python-2.0";
5643      if (code == SPDXLicense.QHULL)
5644        return "Qhull";
5645      if (code == SPDXLicense.QPL1_0)
5646        return "QPL-1.0";
5647      if (code == SPDXLicense.RDISC)
5648        return "Rdisc";
5649      if (code == SPDXLicense.RHECOS1_1)
5650        return "RHeCos-1.1";
5651      if (code == SPDXLicense.RPL1_1)
5652        return "RPL-1.1";
5653      if (code == SPDXLicense.RPL1_5)
5654        return "RPL-1.5";
5655      if (code == SPDXLicense.RPSL1_0)
5656        return "RPSL-1.0";
5657      if (code == SPDXLicense.RSAMD)
5658        return "RSA-MD";
5659      if (code == SPDXLicense.RSCPL)
5660        return "RSCPL";
5661      if (code == SPDXLicense.RUBY)
5662        return "Ruby";
5663      if (code == SPDXLicense.SAXPD)
5664        return "SAX-PD";
5665      if (code == SPDXLicense.SAXPATH)
5666        return "Saxpath";
5667      if (code == SPDXLicense.SCEA)
5668        return "SCEA";
5669      if (code == SPDXLicense.SENDMAIL)
5670        return "Sendmail";
5671      if (code == SPDXLicense.SGIB1_0)
5672        return "SGI-B-1.0";
5673      if (code == SPDXLicense.SGIB1_1)
5674        return "SGI-B-1.1";
5675      if (code == SPDXLicense.SGIB2_0)
5676        return "SGI-B-2.0";
5677      if (code == SPDXLicense.SIMPL2_0)
5678        return "SimPL-2.0";
5679      if (code == SPDXLicense.SISSL1_2)
5680        return "SISSL-1.2";
5681      if (code == SPDXLicense.SISSL)
5682        return "SISSL";
5683      if (code == SPDXLicense.SLEEPYCAT)
5684        return "Sleepycat";
5685      if (code == SPDXLicense.SMLNJ)
5686        return "SMLNJ";
5687      if (code == SPDXLicense.SMPPL)
5688        return "SMPPL";
5689      if (code == SPDXLicense.SNIA)
5690        return "SNIA";
5691      if (code == SPDXLicense.SPENCER86)
5692        return "Spencer-86";
5693      if (code == SPDXLicense.SPENCER94)
5694        return "Spencer-94";
5695      if (code == SPDXLicense.SPENCER99)
5696        return "Spencer-99";
5697      if (code == SPDXLicense.SPL1_0)
5698        return "SPL-1.0";
5699      if (code == SPDXLicense.SUGARCRM1_1_3)
5700        return "SugarCRM-1.1.3";
5701      if (code == SPDXLicense.SWL)
5702        return "SWL";
5703      if (code == SPDXLicense.TCL)
5704        return "TCL";
5705      if (code == SPDXLicense.TCPWRAPPERS)
5706        return "TCP-wrappers";
5707      if (code == SPDXLicense.TMATE)
5708        return "TMate";
5709      if (code == SPDXLicense.TORQUE1_1)
5710        return "TORQUE-1.1";
5711      if (code == SPDXLicense.TOSL)
5712        return "TOSL";
5713      if (code == SPDXLicense.UNICODEDFS2015)
5714        return "Unicode-DFS-2015";
5715      if (code == SPDXLicense.UNICODEDFS2016)
5716        return "Unicode-DFS-2016";
5717      if (code == SPDXLicense.UNICODETOU)
5718        return "Unicode-TOU";
5719      if (code == SPDXLicense.UNLICENSE)
5720        return "Unlicense";
5721      if (code == SPDXLicense.UPL1_0)
5722        return "UPL-1.0";
5723      if (code == SPDXLicense.VIM)
5724        return "Vim";
5725      if (code == SPDXLicense.VOSTROM)
5726        return "VOSTROM";
5727      if (code == SPDXLicense.VSL1_0)
5728        return "VSL-1.0";
5729      if (code == SPDXLicense.W3C19980720)
5730        return "W3C-19980720";
5731      if (code == SPDXLicense.W3C20150513)
5732        return "W3C-20150513";
5733      if (code == SPDXLicense.W3C)
5734        return "W3C";
5735      if (code == SPDXLicense.WATCOM1_0)
5736        return "Watcom-1.0";
5737      if (code == SPDXLicense.WSUIPA)
5738        return "Wsuipa";
5739      if (code == SPDXLicense.WTFPL)
5740        return "WTFPL";
5741      if (code == SPDXLicense.X11)
5742        return "X11";
5743      if (code == SPDXLicense.XEROX)
5744        return "Xerox";
5745      if (code == SPDXLicense.XFREE861_1)
5746        return "XFree86-1.1";
5747      if (code == SPDXLicense.XINETD)
5748        return "xinetd";
5749      if (code == SPDXLicense.XNET)
5750        return "Xnet";
5751      if (code == SPDXLicense.XPP)
5752        return "xpp";
5753      if (code == SPDXLicense.XSKAT)
5754        return "XSkat";
5755      if (code == SPDXLicense.YPL1_0)
5756        return "YPL-1.0";
5757      if (code == SPDXLicense.YPL1_1)
5758        return "YPL-1.1";
5759      if (code == SPDXLicense.ZED)
5760        return "Zed";
5761      if (code == SPDXLicense.ZEND2_0)
5762        return "Zend-2.0";
5763      if (code == SPDXLicense.ZIMBRA1_3)
5764        return "Zimbra-1.3";
5765      if (code == SPDXLicense.ZIMBRA1_4)
5766        return "Zimbra-1.4";
5767      if (code == SPDXLicense.ZLIBACKNOWLEDGEMENT)
5768        return "zlib-acknowledgement";
5769      if (code == SPDXLicense.ZLIB)
5770        return "Zlib";
5771      if (code == SPDXLicense.ZPL1_1)
5772        return "ZPL-1.1";
5773      if (code == SPDXLicense.ZPL2_0)
5774        return "ZPL-2.0";
5775      if (code == SPDXLicense.ZPL2_1)
5776        return "ZPL-2.1";
5777      return "?";
5778      }
5779    public String toSystem(SPDXLicense code) {
5780      return code.getSystem();
5781      }
5782    }
5783
5784    @Block()
5785    public static class ImplementationGuideDependsOnComponent extends BackboneElement implements IBaseBackboneElement {
5786        /**
5787         * A canonical reference to the Implementation guide for the dependency.
5788         */
5789        @Child(name = "uri", type = {CanonicalType.class}, order=1, min=1, max=1, modifier=false, summary=true)
5790        @Description(shortDefinition="Identity of the IG that this depends on", formalDefinition="A canonical reference to the Implementation guide for the dependency." )
5791        protected CanonicalType uri;
5792
5793        /**
5794         * The NPM package name for the Implementation Guide that this IG depends on.
5795         */
5796        @Child(name = "packageId", type = {IdType.class}, order=2, min=0, max=1, modifier=false, summary=true)
5797        @Description(shortDefinition="NPM Package name for IG this depends on", formalDefinition="The NPM package name for the Implementation Guide that this IG depends on." )
5798        protected IdType packageId;
5799
5800        /**
5801         * The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
5802         */
5803        @Child(name = "version", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
5804        @Description(shortDefinition="Version of the IG", formalDefinition="The version of the IG that is depended on, when the correct version is required to understand the IG correctly." )
5805        protected StringType version;
5806
5807        private static final long serialVersionUID = -215808797L;
5808
5809    /**
5810     * Constructor
5811     */
5812      public ImplementationGuideDependsOnComponent() {
5813        super();
5814      }
5815
5816    /**
5817     * Constructor
5818     */
5819      public ImplementationGuideDependsOnComponent(String uri) {
5820        super();
5821        this.setUri(uri);
5822      }
5823
5824        /**
5825         * @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
5826         */
5827        public CanonicalType getUriElement() { 
5828          if (this.uri == null)
5829            if (Configuration.errorOnAutoCreate())
5830              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.uri");
5831            else if (Configuration.doAutoCreate())
5832              this.uri = new CanonicalType(); // bb
5833          return this.uri;
5834        }
5835
5836        public boolean hasUriElement() { 
5837          return this.uri != null && !this.uri.isEmpty();
5838        }
5839
5840        public boolean hasUri() { 
5841          return this.uri != null && !this.uri.isEmpty();
5842        }
5843
5844        /**
5845         * @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
5846         */
5847        public ImplementationGuideDependsOnComponent setUriElement(CanonicalType value) { 
5848          this.uri = value;
5849          return this;
5850        }
5851
5852        /**
5853         * @return A canonical reference to the Implementation guide for the dependency.
5854         */
5855        public String getUri() { 
5856          return this.uri == null ? null : this.uri.getValue();
5857        }
5858
5859        /**
5860         * @param value A canonical reference to the Implementation guide for the dependency.
5861         */
5862        public ImplementationGuideDependsOnComponent setUri(String value) { 
5863            if (this.uri == null)
5864              this.uri = new CanonicalType();
5865            this.uri.setValue(value);
5866          return this;
5867        }
5868
5869        /**
5870         * @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
5871         */
5872        public IdType getPackageIdElement() { 
5873          if (this.packageId == null)
5874            if (Configuration.errorOnAutoCreate())
5875              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.packageId");
5876            else if (Configuration.doAutoCreate())
5877              this.packageId = new IdType(); // bb
5878          return this.packageId;
5879        }
5880
5881        public boolean hasPackageIdElement() { 
5882          return this.packageId != null && !this.packageId.isEmpty();
5883        }
5884
5885        public boolean hasPackageId() { 
5886          return this.packageId != null && !this.packageId.isEmpty();
5887        }
5888
5889        /**
5890         * @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
5891         */
5892        public ImplementationGuideDependsOnComponent setPackageIdElement(IdType value) { 
5893          this.packageId = value;
5894          return this;
5895        }
5896
5897        /**
5898         * @return The NPM package name for the Implementation Guide that this IG depends on.
5899         */
5900        public String getPackageId() { 
5901          return this.packageId == null ? null : this.packageId.getValue();
5902        }
5903
5904        /**
5905         * @param value The NPM package name for the Implementation Guide that this IG depends on.
5906         */
5907        public ImplementationGuideDependsOnComponent setPackageId(String value) { 
5908          if (Utilities.noString(value))
5909            this.packageId = null;
5910          else {
5911            if (this.packageId == null)
5912              this.packageId = new IdType();
5913            this.packageId.setValue(value);
5914          }
5915          return this;
5916        }
5917
5918        /**
5919         * @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
5920         */
5921        public StringType getVersionElement() { 
5922          if (this.version == null)
5923            if (Configuration.errorOnAutoCreate())
5924              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.version");
5925            else if (Configuration.doAutoCreate())
5926              this.version = new StringType(); // bb
5927          return this.version;
5928        }
5929
5930        public boolean hasVersionElement() { 
5931          return this.version != null && !this.version.isEmpty();
5932        }
5933
5934        public boolean hasVersion() { 
5935          return this.version != null && !this.version.isEmpty();
5936        }
5937
5938        /**
5939         * @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
5940         */
5941        public ImplementationGuideDependsOnComponent setVersionElement(StringType value) { 
5942          this.version = value;
5943          return this;
5944        }
5945
5946        /**
5947         * @return The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
5948         */
5949        public String getVersion() { 
5950          return this.version == null ? null : this.version.getValue();
5951        }
5952
5953        /**
5954         * @param value The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
5955         */
5956        public ImplementationGuideDependsOnComponent setVersion(String value) { 
5957          if (Utilities.noString(value))
5958            this.version = null;
5959          else {
5960            if (this.version == null)
5961              this.version = new StringType();
5962            this.version.setValue(value);
5963          }
5964          return this;
5965        }
5966
5967        protected void listChildren(List<Property> children) {
5968          super.listChildren(children);
5969          children.add(new Property("uri", "canonical(ImplementationGuide)", "A canonical reference to the Implementation guide for the dependency.", 0, 1, uri));
5970          children.add(new Property("packageId", "id", "The NPM package name for the Implementation Guide that this IG depends on.", 0, 1, packageId));
5971          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));
5972        }
5973
5974        @Override
5975        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
5976          switch (_hash) {
5977          case 116076: /*uri*/  return new Property("uri", "canonical(ImplementationGuide)", "A canonical reference to the Implementation guide for the dependency.", 0, 1, uri);
5978          case 1802060801: /*packageId*/  return new Property("packageId", "id", "The NPM package name for the Implementation Guide that this IG depends on.", 0, 1, packageId);
5979          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);
5980          default: return super.getNamedProperty(_hash, _name, _checkValid);
5981          }
5982
5983        }
5984
5985      @Override
5986      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
5987        switch (hash) {
5988        case 116076: /*uri*/ return this.uri == null ? new Base[0] : new Base[] {this.uri}; // CanonicalType
5989        case 1802060801: /*packageId*/ return this.packageId == null ? new Base[0] : new Base[] {this.packageId}; // IdType
5990        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
5991        default: return super.getProperty(hash, name, checkValid);
5992        }
5993
5994      }
5995
5996      @Override
5997      public Base setProperty(int hash, String name, Base value) throws FHIRException {
5998        switch (hash) {
5999        case 116076: // uri
6000          this.uri = TypeConvertor.castToCanonical(value); // CanonicalType
6001          return value;
6002        case 1802060801: // packageId
6003          this.packageId = TypeConvertor.castToId(value); // IdType
6004          return value;
6005        case 351608024: // version
6006          this.version = TypeConvertor.castToString(value); // StringType
6007          return value;
6008        default: return super.setProperty(hash, name, value);
6009        }
6010
6011      }
6012
6013      @Override
6014      public Base setProperty(String name, Base value) throws FHIRException {
6015        if (name.equals("uri")) {
6016          this.uri = TypeConvertor.castToCanonical(value); // CanonicalType
6017        } else if (name.equals("packageId")) {
6018          this.packageId = TypeConvertor.castToId(value); // IdType
6019        } else if (name.equals("version")) {
6020          this.version = TypeConvertor.castToString(value); // StringType
6021        } else
6022          return super.setProperty(name, value);
6023        return value;
6024      }
6025
6026      @Override
6027      public Base makeProperty(int hash, String name) throws FHIRException {
6028        switch (hash) {
6029        case 116076:  return getUriElement();
6030        case 1802060801:  return getPackageIdElement();
6031        case 351608024:  return getVersionElement();
6032        default: return super.makeProperty(hash, name);
6033        }
6034
6035      }
6036
6037      @Override
6038      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6039        switch (hash) {
6040        case 116076: /*uri*/ return new String[] {"canonical"};
6041        case 1802060801: /*packageId*/ return new String[] {"id"};
6042        case 351608024: /*version*/ return new String[] {"string"};
6043        default: return super.getTypesForProperty(hash, name);
6044        }
6045
6046      }
6047
6048      @Override
6049      public Base addChild(String name) throws FHIRException {
6050        if (name.equals("uri")) {
6051          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.dependsOn.uri");
6052        }
6053        else if (name.equals("packageId")) {
6054          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.dependsOn.packageId");
6055        }
6056        else if (name.equals("version")) {
6057          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.dependsOn.version");
6058        }
6059        else
6060          return super.addChild(name);
6061      }
6062
6063      public ImplementationGuideDependsOnComponent copy() {
6064        ImplementationGuideDependsOnComponent dst = new ImplementationGuideDependsOnComponent();
6065        copyValues(dst);
6066        return dst;
6067      }
6068
6069      public void copyValues(ImplementationGuideDependsOnComponent dst) {
6070        super.copyValues(dst);
6071        dst.uri = uri == null ? null : uri.copy();
6072        dst.packageId = packageId == null ? null : packageId.copy();
6073        dst.version = version == null ? null : version.copy();
6074      }
6075
6076      @Override
6077      public boolean equalsDeep(Base other_) {
6078        if (!super.equalsDeep(other_))
6079          return false;
6080        if (!(other_ instanceof ImplementationGuideDependsOnComponent))
6081          return false;
6082        ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
6083        return compareDeep(uri, o.uri, true) && compareDeep(packageId, o.packageId, true) && compareDeep(version, o.version, true)
6084          ;
6085      }
6086
6087      @Override
6088      public boolean equalsShallow(Base other_) {
6089        if (!super.equalsShallow(other_))
6090          return false;
6091        if (!(other_ instanceof ImplementationGuideDependsOnComponent))
6092          return false;
6093        ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
6094        return compareValues(uri, o.uri, true) && compareValues(packageId, o.packageId, true) && compareValues(version, o.version, true)
6095          ;
6096      }
6097
6098      public boolean isEmpty() {
6099        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(uri, packageId, version
6100          );
6101      }
6102
6103  public String fhirType() {
6104    return "ImplementationGuide.dependsOn";
6105
6106  }
6107
6108  }
6109
6110    @Block()
6111    public static class ImplementationGuideGlobalComponent extends BackboneElement implements IBaseBackboneElement {
6112        /**
6113         * The type of resource that all instances must conform to.
6114         */
6115        @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
6116        @Description(shortDefinition="Type this profile applies to", formalDefinition="The type of resource that all instances must conform to." )
6117        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types")
6118        protected CodeType type;
6119
6120        /**
6121         * A reference to the profile that all instances must conform to.
6122         */
6123        @Child(name = "profile", type = {CanonicalType.class}, order=2, min=1, max=1, modifier=false, summary=true)
6124        @Description(shortDefinition="Profile that all resources must conform to", formalDefinition="A reference to the profile that all instances must conform to." )
6125        protected CanonicalType profile;
6126
6127        private static final long serialVersionUID = 33894666L;
6128
6129    /**
6130     * Constructor
6131     */
6132      public ImplementationGuideGlobalComponent() {
6133        super();
6134      }
6135
6136    /**
6137     * Constructor
6138     */
6139      public ImplementationGuideGlobalComponent(String type, String profile) {
6140        super();
6141        this.setType(type);
6142        this.setProfile(profile);
6143      }
6144
6145        /**
6146         * @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
6147         */
6148        public CodeType getTypeElement() { 
6149          if (this.type == null)
6150            if (Configuration.errorOnAutoCreate())
6151              throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.type");
6152            else if (Configuration.doAutoCreate())
6153              this.type = new CodeType(); // bb
6154          return this.type;
6155        }
6156
6157        public boolean hasTypeElement() { 
6158          return this.type != null && !this.type.isEmpty();
6159        }
6160
6161        public boolean hasType() { 
6162          return this.type != null && !this.type.isEmpty();
6163        }
6164
6165        /**
6166         * @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
6167         */
6168        public ImplementationGuideGlobalComponent setTypeElement(CodeType value) { 
6169          this.type = value;
6170          return this;
6171        }
6172
6173        /**
6174         * @return The type of resource that all instances must conform to.
6175         */
6176        public String getType() { 
6177          return this.type == null ? null : this.type.getValue();
6178        }
6179
6180        /**
6181         * @param value The type of resource that all instances must conform to.
6182         */
6183        public ImplementationGuideGlobalComponent setType(String value) { 
6184            if (this.type == null)
6185              this.type = new CodeType();
6186            this.type.setValue(value);
6187          return this;
6188        }
6189
6190        /**
6191         * @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
6192         */
6193        public CanonicalType getProfileElement() { 
6194          if (this.profile == null)
6195            if (Configuration.errorOnAutoCreate())
6196              throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.profile");
6197            else if (Configuration.doAutoCreate())
6198              this.profile = new CanonicalType(); // bb
6199          return this.profile;
6200        }
6201
6202        public boolean hasProfileElement() { 
6203          return this.profile != null && !this.profile.isEmpty();
6204        }
6205
6206        public boolean hasProfile() { 
6207          return this.profile != null && !this.profile.isEmpty();
6208        }
6209
6210        /**
6211         * @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
6212         */
6213        public ImplementationGuideGlobalComponent setProfileElement(CanonicalType value) { 
6214          this.profile = value;
6215          return this;
6216        }
6217
6218        /**
6219         * @return A reference to the profile that all instances must conform to.
6220         */
6221        public String getProfile() { 
6222          return this.profile == null ? null : this.profile.getValue();
6223        }
6224
6225        /**
6226         * @param value A reference to the profile that all instances must conform to.
6227         */
6228        public ImplementationGuideGlobalComponent setProfile(String value) { 
6229            if (this.profile == null)
6230              this.profile = new CanonicalType();
6231            this.profile.setValue(value);
6232          return this;
6233        }
6234
6235        protected void listChildren(List<Property> children) {
6236          super.listChildren(children);
6237          children.add(new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1, type));
6238          children.add(new Property("profile", "canonical(StructureDefinition)", "A reference to the profile that all instances must conform to.", 0, 1, profile));
6239        }
6240
6241        @Override
6242        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6243          switch (_hash) {
6244          case 3575610: /*type*/  return new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1, type);
6245          case -309425751: /*profile*/  return new Property("profile", "canonical(StructureDefinition)", "A reference to the profile that all instances must conform to.", 0, 1, profile);
6246          default: return super.getNamedProperty(_hash, _name, _checkValid);
6247          }
6248
6249        }
6250
6251      @Override
6252      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6253        switch (hash) {
6254        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeType
6255        case -309425751: /*profile*/ return this.profile == null ? new Base[0] : new Base[] {this.profile}; // CanonicalType
6256        default: return super.getProperty(hash, name, checkValid);
6257        }
6258
6259      }
6260
6261      @Override
6262      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6263        switch (hash) {
6264        case 3575610: // type
6265          this.type = TypeConvertor.castToCode(value); // CodeType
6266          return value;
6267        case -309425751: // profile
6268          this.profile = TypeConvertor.castToCanonical(value); // CanonicalType
6269          return value;
6270        default: return super.setProperty(hash, name, value);
6271        }
6272
6273      }
6274
6275      @Override
6276      public Base setProperty(String name, Base value) throws FHIRException {
6277        if (name.equals("type")) {
6278          this.type = TypeConvertor.castToCode(value); // CodeType
6279        } else if (name.equals("profile")) {
6280          this.profile = TypeConvertor.castToCanonical(value); // CanonicalType
6281        } else
6282          return super.setProperty(name, value);
6283        return value;
6284      }
6285
6286      @Override
6287      public Base makeProperty(int hash, String name) throws FHIRException {
6288        switch (hash) {
6289        case 3575610:  return getTypeElement();
6290        case -309425751:  return getProfileElement();
6291        default: return super.makeProperty(hash, name);
6292        }
6293
6294      }
6295
6296      @Override
6297      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6298        switch (hash) {
6299        case 3575610: /*type*/ return new String[] {"code"};
6300        case -309425751: /*profile*/ return new String[] {"canonical"};
6301        default: return super.getTypesForProperty(hash, name);
6302        }
6303
6304      }
6305
6306      @Override
6307      public Base addChild(String name) throws FHIRException {
6308        if (name.equals("type")) {
6309          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.global.type");
6310        }
6311        else if (name.equals("profile")) {
6312          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.global.profile");
6313        }
6314        else
6315          return super.addChild(name);
6316      }
6317
6318      public ImplementationGuideGlobalComponent copy() {
6319        ImplementationGuideGlobalComponent dst = new ImplementationGuideGlobalComponent();
6320        copyValues(dst);
6321        return dst;
6322      }
6323
6324      public void copyValues(ImplementationGuideGlobalComponent dst) {
6325        super.copyValues(dst);
6326        dst.type = type == null ? null : type.copy();
6327        dst.profile = profile == null ? null : profile.copy();
6328      }
6329
6330      @Override
6331      public boolean equalsDeep(Base other_) {
6332        if (!super.equalsDeep(other_))
6333          return false;
6334        if (!(other_ instanceof ImplementationGuideGlobalComponent))
6335          return false;
6336        ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
6337        return compareDeep(type, o.type, true) && compareDeep(profile, o.profile, true);
6338      }
6339
6340      @Override
6341      public boolean equalsShallow(Base other_) {
6342        if (!super.equalsShallow(other_))
6343          return false;
6344        if (!(other_ instanceof ImplementationGuideGlobalComponent))
6345          return false;
6346        ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
6347        return compareValues(type, o.type, true) && compareValues(profile, o.profile, true);
6348      }
6349
6350      public boolean isEmpty() {
6351        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, profile);
6352      }
6353
6354  public String fhirType() {
6355    return "ImplementationGuide.global";
6356
6357  }
6358
6359  }
6360
6361    @Block()
6362    public static class ImplementationGuideDefinitionComponent extends BackboneElement implements IBaseBackboneElement {
6363        /**
6364         * A logical group of resources. Logical groups can be used when building pages.
6365         */
6366        @Child(name = "grouping", type = {}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6367        @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." )
6368        protected List<ImplementationGuideDefinitionGroupingComponent> grouping;
6369
6370        /**
6371         * 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.
6372         */
6373        @Child(name = "resource", type = {}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6374        @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." )
6375        protected List<ImplementationGuideDefinitionResourceComponent> resource;
6376
6377        /**
6378         * A page / section in the implementation guide. The root page is the implementation guide home page.
6379         */
6380        @Child(name = "page", type = {}, order=3, min=0, max=1, modifier=false, summary=false)
6381        @Description(shortDefinition="Page/Section in the Guide", formalDefinition="A page / section in the implementation guide. The root page is the implementation guide home page." )
6382        protected ImplementationGuideDefinitionPageComponent page;
6383
6384        /**
6385         * 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.
6386         */
6387        @Child(name = "parameter", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6388        @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." )
6389        protected List<ImplementationGuideDefinitionParameterComponent> parameter;
6390
6391        /**
6392         * A template for building resources.
6393         */
6394        @Child(name = "template", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6395        @Description(shortDefinition="A template for building resources", formalDefinition="A template for building resources." )
6396        protected List<ImplementationGuideDefinitionTemplateComponent> template;
6397
6398        private static final long serialVersionUID = 179051968L;
6399
6400    /**
6401     * Constructor
6402     */
6403      public ImplementationGuideDefinitionComponent() {
6404        super();
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 = {MarkdownType.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 MarkdownType description;
6845
6846        private static final long serialVersionUID = 2116554295L;
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 MarkdownType 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 MarkdownType(); // 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(MarkdownType 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 (value == null)
6948            this.description = null;
6949          else {
6950            if (this.description == null)
6951              this.description = new MarkdownType();
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", "markdown", "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", "markdown", "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}; // MarkdownType
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.castToMarkdown(value); // MarkdownType
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.castToMarkdown(value); // MarkdownType
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[] {"markdown"};
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 readable name for the resource", formalDefinition="A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name)." )
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 = {MarkdownType.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 MarkdownType 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 = -954310515L;
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 MarkdownType 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 MarkdownType(); // 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(MarkdownType 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 (value == null)
7319            this.description = null;
7320          else {
7321            if (this.description == null)
7322              this.description = new MarkdownType();
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", "markdown", "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", "markdown", "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}; // MarkdownType
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.castToMarkdown(value); // MarkdownType
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.castToMarkdown(value); // MarkdownType
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[] {"markdown"};
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 -