001package org.hl7.fhir.r4b.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, Dec 31, 2021 05:58+1100 for FHIR v4.3.0-snapshot1
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r4b.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 GuideParameterCode {
185        /**
186         * If the value of this string 0..* parameter is one of the metadata fields then all conformance resources will have any specified [Resource].[field] overwritten with the ImplementationGuide.[field], where field is one of: version, date, status, publisher, contact, copyright, experimental, jurisdiction, useContext.
187         */
188        APPLY, 
189        /**
190         * The value of this string 0..* parameter is a subfolder of the build context's location that is to be scanned to load resources. Scope is (if present) a particular resource type.
191         */
192        PATHRESOURCE, 
193        /**
194         * The value of this string 0..1 parameter is a subfolder of the build context's location that contains files that are part of the html content processed by the builder.
195         */
196        PATHPAGES, 
197        /**
198         * The value of this string 0..1 parameter is a subfolder of the build context's location that is used as the terminology cache. If this is not present, the terminology cache is on the local system, not under version control.
199         */
200        PATHTXCACHE, 
201        /**
202         * The value of this string 0..* parameter is a parameter (name=value) when expanding value sets for this implementation guide. This is particularly used to specify the versions of published terminologies such as SNOMED CT.
203         */
204        EXPANSIONPARAMETER, 
205        /**
206         * The value of this string 0..1 parameter is either \"warning\" or \"error\" (default = \"error\"). If the value is \"warning\" then IG build tools allow the IG to be considered successfully build even when there is no internal broken links.
207         */
208        RULEBROKENLINKS, 
209        /**
210         * The value of this boolean 0..1 parameter specifies whether the IG publisher creates examples in XML format. If not present, the Publication Tool decides whether to generate XML.
211         */
212        GENERATEXML, 
213        /**
214         * The value of this boolean 0..1 parameter specifies whether the IG publisher creates examples in JSON format. If not present, the Publication Tool decides whether to generate JSON.
215         */
216        GENERATEJSON, 
217        /**
218         * The value of this boolean 0..1 parameter specifies whether the IG publisher creates examples in Turtle format. If not present, the Publication Tool decides whether to generate Turtle.
219         */
220        GENERATETURTLE, 
221        /**
222         * The value of this string singleton parameter is the name of the file to use as the builder template for each generated page (see templating).
223         */
224        HTMLTEMPLATE, 
225        /**
226         * added to help the parsers with the generic types
227         */
228        NULL;
229        public static GuideParameterCode fromCode(String codeString) throws FHIRException {
230            if (codeString == null || "".equals(codeString))
231                return null;
232        if ("apply".equals(codeString))
233          return APPLY;
234        if ("path-resource".equals(codeString))
235          return PATHRESOURCE;
236        if ("path-pages".equals(codeString))
237          return PATHPAGES;
238        if ("path-tx-cache".equals(codeString))
239          return PATHTXCACHE;
240        if ("expansion-parameter".equals(codeString))
241          return EXPANSIONPARAMETER;
242        if ("rule-broken-links".equals(codeString))
243          return RULEBROKENLINKS;
244        if ("generate-xml".equals(codeString))
245          return GENERATEXML;
246        if ("generate-json".equals(codeString))
247          return GENERATEJSON;
248        if ("generate-turtle".equals(codeString))
249          return GENERATETURTLE;
250        if ("html-template".equals(codeString))
251          return HTMLTEMPLATE;
252        if (Configuration.isAcceptInvalidEnums())
253          return null;
254        else
255          throw new FHIRException("Unknown GuideParameterCode code '"+codeString+"'");
256        }
257        public String toCode() {
258          switch (this) {
259            case APPLY: return "apply";
260            case PATHRESOURCE: return "path-resource";
261            case PATHPAGES: return "path-pages";
262            case PATHTXCACHE: return "path-tx-cache";
263            case EXPANSIONPARAMETER: return "expansion-parameter";
264            case RULEBROKENLINKS: return "rule-broken-links";
265            case GENERATEXML: return "generate-xml";
266            case GENERATEJSON: return "generate-json";
267            case GENERATETURTLE: return "generate-turtle";
268            case HTMLTEMPLATE: return "html-template";
269            case NULL: return null;
270            default: return "?";
271          }
272        }
273        public String getSystem() {
274          switch (this) {
275            case APPLY: return "http://hl7.org/fhir/guide-parameter-code";
276            case PATHRESOURCE: return "http://hl7.org/fhir/guide-parameter-code";
277            case PATHPAGES: return "http://hl7.org/fhir/guide-parameter-code";
278            case PATHTXCACHE: return "http://hl7.org/fhir/guide-parameter-code";
279            case EXPANSIONPARAMETER: return "http://hl7.org/fhir/guide-parameter-code";
280            case RULEBROKENLINKS: return "http://hl7.org/fhir/guide-parameter-code";
281            case GENERATEXML: return "http://hl7.org/fhir/guide-parameter-code";
282            case GENERATEJSON: return "http://hl7.org/fhir/guide-parameter-code";
283            case GENERATETURTLE: return "http://hl7.org/fhir/guide-parameter-code";
284            case HTMLTEMPLATE: return "http://hl7.org/fhir/guide-parameter-code";
285            case NULL: return null;
286            default: return "?";
287          }
288        }
289        public String getDefinition() {
290          switch (this) {
291            case APPLY: return "If the value of this string 0..* parameter is one of the metadata fields then all conformance resources will have any specified [Resource].[field] overwritten with the ImplementationGuide.[field], where field is one of: version, date, status, publisher, contact, copyright, experimental, jurisdiction, useContext.";
292            case PATHRESOURCE: return "The value of this string 0..* parameter is a subfolder of the build context's location that is to be scanned to load resources. Scope is (if present) a particular resource type.";
293            case PATHPAGES: return "The value of this string 0..1 parameter is a subfolder of the build context's location that contains files that are part of the html content processed by the builder.";
294            case PATHTXCACHE: return "The value of this string 0..1 parameter is a subfolder of the build context's location that is used as the terminology cache. If this is not present, the terminology cache is on the local system, not under version control.";
295            case EXPANSIONPARAMETER: return "The value of this string 0..* parameter is a parameter (name=value) when expanding value sets for this implementation guide. This is particularly used to specify the versions of published terminologies such as SNOMED CT.";
296            case RULEBROKENLINKS: return "The value of this string 0..1 parameter is either \"warning\" or \"error\" (default = \"error\"). If the value is \"warning\" then IG build tools allow the IG to be considered successfully build even when there is no internal broken links.";
297            case GENERATEXML: return "The value of this boolean 0..1 parameter specifies whether the IG publisher creates examples in XML format. If not present, the Publication Tool decides whether to generate XML.";
298            case GENERATEJSON: return "The value of this boolean 0..1 parameter specifies whether the IG publisher creates examples in JSON format. If not present, the Publication Tool decides whether to generate JSON.";
299            case GENERATETURTLE: return "The value of this boolean 0..1 parameter specifies whether the IG publisher creates examples in Turtle format. If not present, the Publication Tool decides whether to generate Turtle.";
300            case HTMLTEMPLATE: return "The value of this string singleton parameter is the name of the file to use as the builder template for each generated page (see templating).";
301            case NULL: return null;
302            default: return "?";
303          }
304        }
305        public String getDisplay() {
306          switch (this) {
307            case APPLY: return "Apply Metadata Value";
308            case PATHRESOURCE: return "Resource Path";
309            case PATHPAGES: return "Pages Path";
310            case PATHTXCACHE: return "Terminology Cache Path";
311            case EXPANSIONPARAMETER: return "Expansion Profile";
312            case RULEBROKENLINKS: return "Broken Links Rule";
313            case GENERATEXML: return "Generate XML";
314            case GENERATEJSON: return "Generate JSON";
315            case GENERATETURTLE: return "Generate Turtle";
316            case HTMLTEMPLATE: return "HTML Template";
317            case NULL: return null;
318            default: return "?";
319          }
320        }
321    }
322
323  public static class GuideParameterCodeEnumFactory implements EnumFactory<GuideParameterCode> {
324    public GuideParameterCode fromCode(String codeString) throws IllegalArgumentException {
325      if (codeString == null || "".equals(codeString))
326            if (codeString == null || "".equals(codeString))
327                return null;
328        if ("apply".equals(codeString))
329          return GuideParameterCode.APPLY;
330        if ("path-resource".equals(codeString))
331          return GuideParameterCode.PATHRESOURCE;
332        if ("path-pages".equals(codeString))
333          return GuideParameterCode.PATHPAGES;
334        if ("path-tx-cache".equals(codeString))
335          return GuideParameterCode.PATHTXCACHE;
336        if ("expansion-parameter".equals(codeString))
337          return GuideParameterCode.EXPANSIONPARAMETER;
338        if ("rule-broken-links".equals(codeString))
339          return GuideParameterCode.RULEBROKENLINKS;
340        if ("generate-xml".equals(codeString))
341          return GuideParameterCode.GENERATEXML;
342        if ("generate-json".equals(codeString))
343          return GuideParameterCode.GENERATEJSON;
344        if ("generate-turtle".equals(codeString))
345          return GuideParameterCode.GENERATETURTLE;
346        if ("html-template".equals(codeString))
347          return GuideParameterCode.HTMLTEMPLATE;
348        throw new IllegalArgumentException("Unknown GuideParameterCode code '"+codeString+"'");
349        }
350        public Enumeration<GuideParameterCode> fromType(Base code) throws FHIRException {
351          if (code == null)
352            return null;
353          if (code.isEmpty())
354            return new Enumeration<GuideParameterCode>(this);
355          String codeString = ((PrimitiveType) code).asStringValue();
356          if (codeString == null || "".equals(codeString))
357            return null;
358        if ("apply".equals(codeString))
359          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.APPLY);
360        if ("path-resource".equals(codeString))
361          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.PATHRESOURCE);
362        if ("path-pages".equals(codeString))
363          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.PATHPAGES);
364        if ("path-tx-cache".equals(codeString))
365          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.PATHTXCACHE);
366        if ("expansion-parameter".equals(codeString))
367          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.EXPANSIONPARAMETER);
368        if ("rule-broken-links".equals(codeString))
369          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.RULEBROKENLINKS);
370        if ("generate-xml".equals(codeString))
371          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.GENERATEXML);
372        if ("generate-json".equals(codeString))
373          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.GENERATEJSON);
374        if ("generate-turtle".equals(codeString))
375          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.GENERATETURTLE);
376        if ("html-template".equals(codeString))
377          return new Enumeration<GuideParameterCode>(this, GuideParameterCode.HTMLTEMPLATE);
378        throw new FHIRException("Unknown GuideParameterCode code '"+codeString+"'");
379        }
380    public String toCode(GuideParameterCode code) {
381      if (code == GuideParameterCode.APPLY)
382        return "apply";
383      if (code == GuideParameterCode.PATHRESOURCE)
384        return "path-resource";
385      if (code == GuideParameterCode.PATHPAGES)
386        return "path-pages";
387      if (code == GuideParameterCode.PATHTXCACHE)
388        return "path-tx-cache";
389      if (code == GuideParameterCode.EXPANSIONPARAMETER)
390        return "expansion-parameter";
391      if (code == GuideParameterCode.RULEBROKENLINKS)
392        return "rule-broken-links";
393      if (code == GuideParameterCode.GENERATEXML)
394        return "generate-xml";
395      if (code == GuideParameterCode.GENERATEJSON)
396        return "generate-json";
397      if (code == GuideParameterCode.GENERATETURTLE)
398        return "generate-turtle";
399      if (code == GuideParameterCode.HTMLTEMPLATE)
400        return "html-template";
401      return "?";
402      }
403    public String toSystem(GuideParameterCode code) {
404      return code.getSystem();
405      }
406    }
407
408    public enum SPDXLicense {
409        /**
410         * Not an open source license.
411         */
412        NOTOPENSOURCE, 
413        /**
414         * BSD Zero Clause License.
415         */
416        _0BSD, 
417        /**
418         * Attribution Assurance License.
419         */
420        AAL, 
421        /**
422         * Abstyles License.
423         */
424        ABSTYLES, 
425        /**
426         * Adobe Systems Incorporated Source Code License Agreement.
427         */
428        ADOBE2006, 
429        /**
430         * Adobe Glyph List License.
431         */
432        ADOBEGLYPH, 
433        /**
434         * Amazon Digital Services License.
435         */
436        ADSL, 
437        /**
438         * Academic Free License v1.1.
439         */
440        AFL1_1, 
441        /**
442         * Academic Free License v1.2.
443         */
444        AFL1_2, 
445        /**
446         * Academic Free License v2.0.
447         */
448        AFL2_0, 
449        /**
450         * Academic Free License v2.1.
451         */
452        AFL2_1, 
453        /**
454         * Academic Free License v3.0.
455         */
456        AFL3_0, 
457        /**
458         * Afmparse License.
459         */
460        AFMPARSE, 
461        /**
462         * Affero General Public License v1.0 only.
463         */
464        AGPL1_0ONLY, 
465        /**
466         * Affero General Public License v1.0 or later.
467         */
468        AGPL1_0ORLATER, 
469        /**
470         * GNU Affero General Public License v3.0 only.
471         */
472        AGPL3_0ONLY, 
473        /**
474         * GNU Affero General Public License v3.0 or later.
475         */
476        AGPL3_0ORLATER, 
477        /**
478         * Aladdin Free Public License.
479         */
480        ALADDIN, 
481        /**
482         * AMD's plpa_map.c License.
483         */
484        AMDPLPA, 
485        /**
486         * Apple MIT License.
487         */
488        AML, 
489        /**
490         * Academy of Motion Picture Arts and Sciences BSD.
491         */
492        AMPAS, 
493        /**
494         * ANTLR Software Rights Notice.
495         */
496        ANTLRPD, 
497        /**
498         * Apache License 1.0.
499         */
500        APACHE1_0, 
501        /**
502         * Apache License 1.1.
503         */
504        APACHE1_1, 
505        /**
506         * Apache License 2.0.
507         */
508        APACHE2_0, 
509        /**
510         * Adobe Postscript AFM License.
511         */
512        APAFML, 
513        /**
514         * Adaptive Public License 1.0.
515         */
516        APL1_0, 
517        /**
518         * Apple Public Source License 1.0.
519         */
520        APSL1_0, 
521        /**
522         * Apple Public Source License 1.1.
523         */
524        APSL1_1, 
525        /**
526         * Apple Public Source License 1.2.
527         */
528        APSL1_2, 
529        /**
530         * Apple Public Source License 2.0.
531         */
532        APSL2_0, 
533        /**
534         * Artistic License 1.0 w/clause 8.
535         */
536        ARTISTIC1_0CL8, 
537        /**
538         * Artistic License 1.0 (Perl).
539         */
540        ARTISTIC1_0PERL, 
541        /**
542         * Artistic License 1.0.
543         */
544        ARTISTIC1_0, 
545        /**
546         * Artistic License 2.0.
547         */
548        ARTISTIC2_0, 
549        /**
550         * Bahyph License.
551         */
552        BAHYPH, 
553        /**
554         * Barr License.
555         */
556        BARR, 
557        /**
558         * Beerware License.
559         */
560        BEERWARE, 
561        /**
562         * BitTorrent Open Source License v1.0.
563         */
564        BITTORRENT1_0, 
565        /**
566         * BitTorrent Open Source License v1.1.
567         */
568        BITTORRENT1_1, 
569        /**
570         * Borceux license.
571         */
572        BORCEUX, 
573        /**
574         * BSD 1-Clause License.
575         */
576        BSD1CLAUSE, 
577        /**
578         * BSD 2-Clause FreeBSD License.
579         */
580        BSD2CLAUSEFREEBSD, 
581        /**
582         * BSD 2-Clause NetBSD License.
583         */
584        BSD2CLAUSENETBSD, 
585        /**
586         * BSD-2-Clause Plus Patent License.
587         */
588        BSD2CLAUSEPATENT, 
589        /**
590         * BSD 2-Clause \"Simplified\" License.
591         */
592        BSD2CLAUSE, 
593        /**
594         * BSD with attribution.
595         */
596        BSD3CLAUSEATTRIBUTION, 
597        /**
598         * BSD 3-Clause Clear License.
599         */
600        BSD3CLAUSECLEAR, 
601        /**
602         * Lawrence Berkeley National Labs BSD variant license.
603         */
604        BSD3CLAUSELBNL, 
605        /**
606         * BSD 3-Clause No Nuclear License 2014.
607         */
608        BSD3CLAUSENONUCLEARLICENSE2014, 
609        /**
610         * BSD 3-Clause No Nuclear License.
611         */
612        BSD3CLAUSENONUCLEARLICENSE, 
613        /**
614         * BSD 3-Clause No Nuclear Warranty.
615         */
616        BSD3CLAUSENONUCLEARWARRANTY, 
617        /**
618         * BSD 3-Clause \"New\" or \"Revised\" License.
619         */
620        BSD3CLAUSE, 
621        /**
622         * BSD-4-Clause (University of California-Specific).
623         */
624        BSD4CLAUSEUC, 
625        /**
626         * BSD 4-Clause \"Original\" or \"Old\" License.
627         */
628        BSD4CLAUSE, 
629        /**
630         * BSD Protection License.
631         */
632        BSDPROTECTION, 
633        /**
634         * BSD Source Code Attribution.
635         */
636        BSDSOURCECODE, 
637        /**
638         * Boost Software License 1.0.
639         */
640        BSL1_0, 
641        /**
642         * bzip2 and libbzip2 License v1.0.5.
643         */
644        BZIP21_0_5, 
645        /**
646         * bzip2 and libbzip2 License v1.0.6.
647         */
648        BZIP21_0_6, 
649        /**
650         * Caldera License.
651         */
652        CALDERA, 
653        /**
654         * Computer Associates Trusted Open Source License 1.1.
655         */
656        CATOSL1_1, 
657        /**
658         * Creative Commons Attribution 1.0 Generic.
659         */
660        CCBY1_0, 
661        /**
662         * Creative Commons Attribution 2.0 Generic.
663         */
664        CCBY2_0, 
665        /**
666         * Creative Commons Attribution 2.5 Generic.
667         */
668        CCBY2_5, 
669        /**
670         * Creative Commons Attribution 3.0 Unported.
671         */
672        CCBY3_0, 
673        /**
674         * Creative Commons Attribution 4.0 International.
675         */
676        CCBY4_0, 
677        /**
678         * Creative Commons Attribution Non Commercial 1.0 Generic.
679         */
680        CCBYNC1_0, 
681        /**
682         * Creative Commons Attribution Non Commercial 2.0 Generic.
683         */
684        CCBYNC2_0, 
685        /**
686         * Creative Commons Attribution Non Commercial 2.5 Generic.
687         */
688        CCBYNC2_5, 
689        /**
690         * Creative Commons Attribution Non Commercial 3.0 Unported.
691         */
692        CCBYNC3_0, 
693        /**
694         * Creative Commons Attribution Non Commercial 4.0 International.
695         */
696        CCBYNC4_0, 
697        /**
698         * Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic.
699         */
700        CCBYNCND1_0, 
701        /**
702         * Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic.
703         */
704        CCBYNCND2_0, 
705        /**
706         * Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic.
707         */
708        CCBYNCND2_5, 
709        /**
710         * Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported.
711         */
712        CCBYNCND3_0, 
713        /**
714         * Creative Commons Attribution Non Commercial No Derivatives 4.0 International.
715         */
716        CCBYNCND4_0, 
717        /**
718         * Creative Commons Attribution Non Commercial Share Alike 1.0 Generic.
719         */
720        CCBYNCSA1_0, 
721        /**
722         * Creative Commons Attribution Non Commercial Share Alike 2.0 Generic.
723         */
724        CCBYNCSA2_0, 
725        /**
726         * Creative Commons Attribution Non Commercial Share Alike 2.5 Generic.
727         */
728        CCBYNCSA2_5, 
729        /**
730         * Creative Commons Attribution Non Commercial Share Alike 3.0 Unported.
731         */
732        CCBYNCSA3_0, 
733        /**
734         * Creative Commons Attribution Non Commercial Share Alike 4.0 International.
735         */
736        CCBYNCSA4_0, 
737        /**
738         * Creative Commons Attribution No Derivatives 1.0 Generic.
739         */
740        CCBYND1_0, 
741        /**
742         * Creative Commons Attribution No Derivatives 2.0 Generic.
743         */
744        CCBYND2_0, 
745        /**
746         * Creative Commons Attribution No Derivatives 2.5 Generic.
747         */
748        CCBYND2_5, 
749        /**
750         * Creative Commons Attribution No Derivatives 3.0 Unported.
751         */
752        CCBYND3_0, 
753        /**
754         * Creative Commons Attribution No Derivatives 4.0 International.
755         */
756        CCBYND4_0, 
757        /**
758         * Creative Commons Attribution Share Alike 1.0 Generic.
759         */
760        CCBYSA1_0, 
761        /**
762         * Creative Commons Attribution Share Alike 2.0 Generic.
763         */
764        CCBYSA2_0, 
765        /**
766         * Creative Commons Attribution Share Alike 2.5 Generic.
767         */
768        CCBYSA2_5, 
769        /**
770         * Creative Commons Attribution Share Alike 3.0 Unported.
771         */
772        CCBYSA3_0, 
773        /**
774         * Creative Commons Attribution Share Alike 4.0 International.
775         */
776        CCBYSA4_0, 
777        /**
778         * Creative Commons Zero v1.0 Universal.
779         */
780        CC01_0, 
781        /**
782         * Common Development and Distribution License 1.0.
783         */
784        CDDL1_0, 
785        /**
786         * Common Development and Distribution License 1.1.
787         */
788        CDDL1_1, 
789        /**
790         * Community Data License Agreement Permissive 1.0.
791         */
792        CDLAPERMISSIVE1_0, 
793        /**
794         * Community Data License Agreement Sharing 1.0.
795         */
796        CDLASHARING1_0, 
797        /**
798         * CeCILL Free Software License Agreement v1.0.
799         */
800        CECILL1_0, 
801        /**
802         * CeCILL Free Software License Agreement v1.1.
803         */
804        CECILL1_1, 
805        /**
806         * CeCILL Free Software License Agreement v2.0.
807         */
808        CECILL2_0, 
809        /**
810         * CeCILL Free Software License Agreement v2.1.
811         */
812        CECILL2_1, 
813        /**
814         * CeCILL-B Free Software License Agreement.
815         */
816        CECILLB, 
817        /**
818         * CeCILL-C Free Software License Agreement.
819         */
820        CECILLC, 
821        /**
822         * Clarified Artistic License.
823         */
824        CLARTISTIC, 
825        /**
826         * CNRI Jython License.
827         */
828        CNRIJYTHON, 
829        /**
830         * CNRI Python Open Source GPL Compatible License Agreement.
831         */
832        CNRIPYTHONGPLCOMPATIBLE, 
833        /**
834         * CNRI Python License.
835         */
836        CNRIPYTHON, 
837        /**
838         * Condor Public License v1.1.
839         */
840        CONDOR1_1, 
841        /**
842         * Common Public Attribution License 1.0.
843         */
844        CPAL1_0, 
845        /**
846         * Common Public License 1.0.
847         */
848        CPL1_0, 
849        /**
850         * Code Project Open License 1.02.
851         */
852        CPOL1_02, 
853        /**
854         * Crossword License.
855         */
856        CROSSWORD, 
857        /**
858         * CrystalStacker License.
859         */
860        CRYSTALSTACKER, 
861        /**
862         * CUA Office Public License v1.0.
863         */
864        CUAOPL1_0, 
865        /**
866         * Cube License.
867         */
868        CUBE, 
869        /**
870         * curl License.
871         */
872        CURL, 
873        /**
874         * Deutsche Freie Software Lizenz.
875         */
876        DFSL1_0, 
877        /**
878         * diffmark license.
879         */
880        DIFFMARK, 
881        /**
882         * DOC License.
883         */
884        DOC, 
885        /**
886         * Dotseqn License.
887         */
888        DOTSEQN, 
889        /**
890         * DSDP License.
891         */
892        DSDP, 
893        /**
894         * dvipdfm License.
895         */
896        DVIPDFM, 
897        /**
898         * Educational Community License v1.0.
899         */
900        ECL1_0, 
901        /**
902         * Educational Community License v2.0.
903         */
904        ECL2_0, 
905        /**
906         * Eiffel Forum License v1.0.
907         */
908        EFL1_0, 
909        /**
910         * Eiffel Forum License v2.0.
911         */
912        EFL2_0, 
913        /**
914         * eGenix.com Public License 1.1.0.
915         */
916        EGENIX, 
917        /**
918         * Entessa Public License v1.0.
919         */
920        ENTESSA, 
921        /**
922         * Eclipse Public License 1.0.
923         */
924        EPL1_0, 
925        /**
926         * Eclipse Public License 2.0.
927         */
928        EPL2_0, 
929        /**
930         * Erlang Public License v1.1.
931         */
932        ERLPL1_1, 
933        /**
934         * EU DataGrid Software License.
935         */
936        EUDATAGRID, 
937        /**
938         * European Union Public License 1.0.
939         */
940        EUPL1_0, 
941        /**
942         * European Union Public License 1.1.
943         */
944        EUPL1_1, 
945        /**
946         * European Union Public License 1.2.
947         */
948        EUPL1_2, 
949        /**
950         * Eurosym License.
951         */
952        EUROSYM, 
953        /**
954         * Fair License.
955         */
956        FAIR, 
957        /**
958         * Frameworx Open License 1.0.
959         */
960        FRAMEWORX1_0, 
961        /**
962         * FreeImage Public License v1.0.
963         */
964        FREEIMAGE, 
965        /**
966         * FSF All Permissive License.
967         */
968        FSFAP, 
969        /**
970         * FSF Unlimited License.
971         */
972        FSFUL, 
973        /**
974         * FSF Unlimited License (with License Retention).
975         */
976        FSFULLR, 
977        /**
978         * Freetype Project License.
979         */
980        FTL, 
981        /**
982         * GNU Free Documentation License v1.1 only.
983         */
984        GFDL1_1ONLY, 
985        /**
986         * GNU Free Documentation License v1.1 or later.
987         */
988        GFDL1_1ORLATER, 
989        /**
990         * GNU Free Documentation License v1.2 only.
991         */
992        GFDL1_2ONLY, 
993        /**
994         * GNU Free Documentation License v1.2 or later.
995         */
996        GFDL1_2ORLATER, 
997        /**
998         * GNU Free Documentation License v1.3 only.
999         */
1000        GFDL1_3ONLY, 
1001        /**
1002         * GNU Free Documentation License v1.3 or later.
1003         */
1004        GFDL1_3ORLATER, 
1005        /**
1006         * Giftware License.
1007         */
1008        GIFTWARE, 
1009        /**
1010         * GL2PS License.
1011         */
1012        GL2PS, 
1013        /**
1014         * 3dfx Glide License.
1015         */
1016        GLIDE, 
1017        /**
1018         * Glulxe License.
1019         */
1020        GLULXE, 
1021        /**
1022         * gnuplot License.
1023         */
1024        GNUPLOT, 
1025        /**
1026         * GNU General Public License v1.0 only.
1027         */
1028        GPL1_0ONLY, 
1029        /**
1030         * GNU General Public License v1.0 or later.
1031         */
1032        GPL1_0ORLATER, 
1033        /**
1034         * GNU General Public License v2.0 only.
1035         */
1036        GPL2_0ONLY, 
1037        /**
1038         * GNU General Public License v2.0 or later.
1039         */
1040        GPL2_0ORLATER, 
1041        /**
1042         * GNU General Public License v3.0 only.
1043         */
1044        GPL3_0ONLY, 
1045        /**
1046         * GNU General Public License v3.0 or later.
1047         */
1048        GPL3_0ORLATER, 
1049        /**
1050         * gSOAP Public License v1.3b.
1051         */
1052        GSOAP1_3B, 
1053        /**
1054         * Haskell Language Report License.
1055         */
1056        HASKELLREPORT, 
1057        /**
1058         * Historical Permission Notice and Disclaimer.
1059         */
1060        HPND, 
1061        /**
1062         * IBM PowerPC Initialization and Boot Software.
1063         */
1064        IBMPIBS, 
1065        /**
1066         * ICU License.
1067         */
1068        ICU, 
1069        /**
1070         * Independent JPEG Group License.
1071         */
1072        IJG, 
1073        /**
1074         * ImageMagick License.
1075         */
1076        IMAGEMAGICK, 
1077        /**
1078         * iMatix Standard Function Library Agreement.
1079         */
1080        IMATIX, 
1081        /**
1082         * Imlib2 License.
1083         */
1084        IMLIB2, 
1085        /**
1086         * Info-ZIP License.
1087         */
1088        INFOZIP, 
1089        /**
1090         * Intel ACPI Software License Agreement.
1091         */
1092        INTELACPI, 
1093        /**
1094         * Intel Open Source License.
1095         */
1096        INTEL, 
1097        /**
1098         * Interbase Public License v1.0.
1099         */
1100        INTERBASE1_0, 
1101        /**
1102         * IPA Font License.
1103         */
1104        IPA, 
1105        /**
1106         * IBM Public License v1.0.
1107         */
1108        IPL1_0, 
1109        /**
1110         * ISC License.
1111         */
1112        ISC, 
1113        /**
1114         * JasPer License.
1115         */
1116        JASPER2_0, 
1117        /**
1118         * JSON License.
1119         */
1120        JSON, 
1121        /**
1122         * Licence Art Libre 1.2.
1123         */
1124        LAL1_2, 
1125        /**
1126         * Licence Art Libre 1.3.
1127         */
1128        LAL1_3, 
1129        /**
1130         * Latex2e License.
1131         */
1132        LATEX2E, 
1133        /**
1134         * Leptonica License.
1135         */
1136        LEPTONICA, 
1137        /**
1138         * GNU Library General Public License v2 only.
1139         */
1140        LGPL2_0ONLY, 
1141        /**
1142         * GNU Library General Public License v2 or later.
1143         */
1144        LGPL2_0ORLATER, 
1145        /**
1146         * GNU Lesser General Public License v2.1 only.
1147         */
1148        LGPL2_1ONLY, 
1149        /**
1150         * GNU Lesser General Public License v2.1 or later.
1151         */
1152        LGPL2_1ORLATER, 
1153        /**
1154         * GNU Lesser General Public License v3.0 only.
1155         */
1156        LGPL3_0ONLY, 
1157        /**
1158         * GNU Lesser General Public License v3.0 or later.
1159         */
1160        LGPL3_0ORLATER, 
1161        /**
1162         * Lesser General Public License For Linguistic Resources.
1163         */
1164        LGPLLR, 
1165        /**
1166         * libpng License.
1167         */
1168        LIBPNG, 
1169        /**
1170         * libtiff License.
1171         */
1172        LIBTIFF, 
1173        /**
1174         * Licence Libre du Québec – Permissive version 1.1.
1175         */
1176        LILIQP1_1, 
1177        /**
1178         * Licence Libre du Québec – Réciprocité version 1.1.
1179         */
1180        LILIQR1_1, 
1181        /**
1182         * Licence Libre du Québec – Réciprocité forte version 1.1.
1183         */
1184        LILIQRPLUS1_1, 
1185        /**
1186         * Linux Kernel Variant of OpenIB.org license.
1187         */
1188        LINUXOPENIB, 
1189        /**
1190         * Lucent Public License Version 1.0.
1191         */
1192        LPL1_0, 
1193        /**
1194         * Lucent Public License v1.02.
1195         */
1196        LPL1_02, 
1197        /**
1198         * LaTeX Project Public License v1.0.
1199         */
1200        LPPL1_0, 
1201        /**
1202         * LaTeX Project Public License v1.1.
1203         */
1204        LPPL1_1, 
1205        /**
1206         * LaTeX Project Public License v1.2.
1207         */
1208        LPPL1_2, 
1209        /**
1210         * LaTeX Project Public License v1.3a.
1211         */
1212        LPPL1_3A, 
1213        /**
1214         * LaTeX Project Public License v1.3c.
1215         */
1216        LPPL1_3C, 
1217        /**
1218         * MakeIndex License.
1219         */
1220        MAKEINDEX, 
1221        /**
1222         * MirOS License.
1223         */
1224        MIROS, 
1225        /**
1226         * MIT No Attribution.
1227         */
1228        MIT0, 
1229        /**
1230         * Enlightenment License (e16).
1231         */
1232        MITADVERTISING, 
1233        /**
1234         * CMU License.
1235         */
1236        MITCMU, 
1237        /**
1238         * enna License.
1239         */
1240        MITENNA, 
1241        /**
1242         * feh License.
1243         */
1244        MITFEH, 
1245        /**
1246         * MIT License.
1247         */
1248        MIT, 
1249        /**
1250         * MIT +no-false-attribs license.
1251         */
1252        MITNFA, 
1253        /**
1254         * Motosoto License.
1255         */
1256        MOTOSOTO, 
1257        /**
1258         * mpich2 License.
1259         */
1260        MPICH2, 
1261        /**
1262         * Mozilla Public License 1.0.
1263         */
1264        MPL1_0, 
1265        /**
1266         * Mozilla Public License 1.1.
1267         */
1268        MPL1_1, 
1269        /**
1270         * Mozilla Public License 2.0 (no copyleft exception).
1271         */
1272        MPL2_0NOCOPYLEFTEXCEPTION, 
1273        /**
1274         * Mozilla Public License 2.0.
1275         */
1276        MPL2_0, 
1277        /**
1278         * Microsoft Public License.
1279         */
1280        MSPL, 
1281        /**
1282         * Microsoft Reciprocal License.
1283         */
1284        MSRL, 
1285        /**
1286         * Matrix Template Library License.
1287         */
1288        MTLL, 
1289        /**
1290         * Multics License.
1291         */
1292        MULTICS, 
1293        /**
1294         * Mup License.
1295         */
1296        MUP, 
1297        /**
1298         * NASA Open Source Agreement 1.3.
1299         */
1300        NASA1_3, 
1301        /**
1302         * Naumen Public License.
1303         */
1304        NAUMEN, 
1305        /**
1306         * Net Boolean Public License v1.
1307         */
1308        NBPL1_0, 
1309        /**
1310         * University of Illinois/NCSA Open Source License.
1311         */
1312        NCSA, 
1313        /**
1314         * Net-SNMP License.
1315         */
1316        NETSNMP, 
1317        /**
1318         * NetCDF license.
1319         */
1320        NETCDF, 
1321        /**
1322         * Newsletr License.
1323         */
1324        NEWSLETR, 
1325        /**
1326         * Nethack General Public License.
1327         */
1328        NGPL, 
1329        /**
1330         * Norwegian Licence for Open Government Data.
1331         */
1332        NLOD1_0, 
1333        /**
1334         * No Limit Public License.
1335         */
1336        NLPL, 
1337        /**
1338         * Nokia Open Source License.
1339         */
1340        NOKIA, 
1341        /**
1342         * Netizen Open Source License.
1343         */
1344        NOSL, 
1345        /**
1346         * Noweb License.
1347         */
1348        NOWEB, 
1349        /**
1350         * Netscape Public License v1.0.
1351         */
1352        NPL1_0, 
1353        /**
1354         * Netscape Public License v1.1.
1355         */
1356        NPL1_1, 
1357        /**
1358         * Non-Profit Open Software License 3.0.
1359         */
1360        NPOSL3_0, 
1361        /**
1362         * NRL License.
1363         */
1364        NRL, 
1365        /**
1366         * NTP License.
1367         */
1368        NTP, 
1369        /**
1370         * Open CASCADE Technology Public License.
1371         */
1372        OCCTPL, 
1373        /**
1374         * OCLC Research Public License 2.0.
1375         */
1376        OCLC2_0, 
1377        /**
1378         * ODC Open Database License v1.0.
1379         */
1380        ODBL1_0, 
1381        /**
1382         * SIL Open Font License 1.0.
1383         */
1384        OFL1_0, 
1385        /**
1386         * SIL Open Font License 1.1.
1387         */
1388        OFL1_1, 
1389        /**
1390         * Open Group Test Suite License.
1391         */
1392        OGTSL, 
1393        /**
1394         * Open LDAP Public License v1.1.
1395         */
1396        OLDAP1_1, 
1397        /**
1398         * Open LDAP Public License v1.2.
1399         */
1400        OLDAP1_2, 
1401        /**
1402         * Open LDAP Public License v1.3.
1403         */
1404        OLDAP1_3, 
1405        /**
1406         * Open LDAP Public License v1.4.
1407         */
1408        OLDAP1_4, 
1409        /**
1410         * Open LDAP Public License v2.0.1.
1411         */
1412        OLDAP2_0_1, 
1413        /**
1414         * Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B).
1415         */
1416        OLDAP2_0, 
1417        /**
1418         * Open LDAP Public License v2.1.
1419         */
1420        OLDAP2_1, 
1421        /**
1422         * Open LDAP Public License v2.2.1.
1423         */
1424        OLDAP2_2_1, 
1425        /**
1426         * Open LDAP Public License 2.2.2.
1427         */
1428        OLDAP2_2_2, 
1429        /**
1430         * Open LDAP Public License v2.2.
1431         */
1432        OLDAP2_2, 
1433        /**
1434         * Open LDAP Public License v2.3.
1435         */
1436        OLDAP2_3, 
1437        /**
1438         * Open LDAP Public License v2.4.
1439         */
1440        OLDAP2_4, 
1441        /**
1442         * Open LDAP Public License v2.5.
1443         */
1444        OLDAP2_5, 
1445        /**
1446         * Open LDAP Public License v2.6.
1447         */
1448        OLDAP2_6, 
1449        /**
1450         * Open LDAP Public License v2.7.
1451         */
1452        OLDAP2_7, 
1453        /**
1454         * Open LDAP Public License v2.8.
1455         */
1456        OLDAP2_8, 
1457        /**
1458         * Open Market License.
1459         */
1460        OML, 
1461        /**
1462         * OpenSSL License.
1463         */
1464        OPENSSL, 
1465        /**
1466         * Open Public License v1.0.
1467         */
1468        OPL1_0, 
1469        /**
1470         * OSET Public License version 2.1.
1471         */
1472        OSETPL2_1, 
1473        /**
1474         * Open Software License 1.0.
1475         */
1476        OSL1_0, 
1477        /**
1478         * Open Software License 1.1.
1479         */
1480        OSL1_1, 
1481        /**
1482         * Open Software License 2.0.
1483         */
1484        OSL2_0, 
1485        /**
1486         * Open Software License 2.1.
1487         */
1488        OSL2_1, 
1489        /**
1490         * Open Software License 3.0.
1491         */
1492        OSL3_0, 
1493        /**
1494         * ODC Public Domain Dedication & License 1.0.
1495         */
1496        PDDL1_0, 
1497        /**
1498         * PHP License v3.0.
1499         */
1500        PHP3_0, 
1501        /**
1502         * PHP License v3.01.
1503         */
1504        PHP3_01, 
1505        /**
1506         * Plexus Classworlds License.
1507         */
1508        PLEXUS, 
1509        /**
1510         * PostgreSQL License.
1511         */
1512        POSTGRESQL, 
1513        /**
1514         * psfrag License.
1515         */
1516        PSFRAG, 
1517        /**
1518         * psutils License.
1519         */
1520        PSUTILS, 
1521        /**
1522         * Python License 2.0.
1523         */
1524        PYTHON2_0, 
1525        /**
1526         * Qhull License.
1527         */
1528        QHULL, 
1529        /**
1530         * Q Public License 1.0.
1531         */
1532        QPL1_0, 
1533        /**
1534         * Rdisc License.
1535         */
1536        RDISC, 
1537        /**
1538         * Red Hat eCos Public License v1.1.
1539         */
1540        RHECOS1_1, 
1541        /**
1542         * Reciprocal Public License 1.1.
1543         */
1544        RPL1_1, 
1545        /**
1546         * Reciprocal Public License 1.5.
1547         */
1548        RPL1_5, 
1549        /**
1550         * RealNetworks Public Source License v1.0.
1551         */
1552        RPSL1_0, 
1553        /**
1554         * RSA Message-Digest License.
1555         */
1556        RSAMD, 
1557        /**
1558         * Ricoh Source Code Public License.
1559         */
1560        RSCPL, 
1561        /**
1562         * Ruby License.
1563         */
1564        RUBY, 
1565        /**
1566         * Sax Public Domain Notice.
1567         */
1568        SAXPD, 
1569        /**
1570         * Saxpath License.
1571         */
1572        SAXPATH, 
1573        /**
1574         * SCEA Shared Source License.
1575         */
1576        SCEA, 
1577        /**
1578         * Sendmail License.
1579         */
1580        SENDMAIL, 
1581        /**
1582         * SGI Free Software License B v1.0.
1583         */
1584        SGIB1_0, 
1585        /**
1586         * SGI Free Software License B v1.1.
1587         */
1588        SGIB1_1, 
1589        /**
1590         * SGI Free Software License B v2.0.
1591         */
1592        SGIB2_0, 
1593        /**
1594         * Simple Public License 2.0.
1595         */
1596        SIMPL2_0, 
1597        /**
1598         * Sun Industry Standards Source License v1.2.
1599         */
1600        SISSL1_2, 
1601        /**
1602         * Sun Industry Standards Source License v1.1.
1603         */
1604        SISSL, 
1605        /**
1606         * Sleepycat License.
1607         */
1608        SLEEPYCAT, 
1609        /**
1610         * Standard ML of New Jersey License.
1611         */
1612        SMLNJ, 
1613        /**
1614         * Secure Messaging Protocol Public License.
1615         */
1616        SMPPL, 
1617        /**
1618         * SNIA Public License 1.1.
1619         */
1620        SNIA, 
1621        /**
1622         * Spencer License 86.
1623         */
1624        SPENCER86, 
1625        /**
1626         * Spencer License 94.
1627         */
1628        SPENCER94, 
1629        /**
1630         * Spencer License 99.
1631         */
1632        SPENCER99, 
1633        /**
1634         * Sun Public License v1.0.
1635         */
1636        SPL1_0, 
1637        /**
1638         * SugarCRM Public License v1.1.3.
1639         */
1640        SUGARCRM1_1_3, 
1641        /**
1642         * Scheme Widget Library (SWL) Software License Agreement.
1643         */
1644        SWL, 
1645        /**
1646         * TCL/TK License.
1647         */
1648        TCL, 
1649        /**
1650         * TCP Wrappers License.
1651         */
1652        TCPWRAPPERS, 
1653        /**
1654         * TMate Open Source License.
1655         */
1656        TMATE, 
1657        /**
1658         * TORQUE v2.5+ Software License v1.1.
1659         */
1660        TORQUE1_1, 
1661        /**
1662         * Trusster Open Source License.
1663         */
1664        TOSL, 
1665        /**
1666         * Unicode License Agreement - Data Files and Software (2015).
1667         */
1668        UNICODEDFS2015, 
1669        /**
1670         * Unicode License Agreement - Data Files and Software (2016).
1671         */
1672        UNICODEDFS2016, 
1673        /**
1674         * Unicode Terms of Use.
1675         */
1676        UNICODETOU, 
1677        /**
1678         * The Unlicense.
1679         */
1680        UNLICENSE, 
1681        /**
1682         * Universal Permissive License v1.0.
1683         */
1684        UPL1_0, 
1685        /**
1686         * Vim License.
1687         */
1688        VIM, 
1689        /**
1690         * VOSTROM Public License for Open Source.
1691         */
1692        VOSTROM, 
1693        /**
1694         * Vovida Software License v1.0.
1695         */
1696        VSL1_0, 
1697        /**
1698         * W3C Software Notice and License (1998-07-20).
1699         */
1700        W3C19980720, 
1701        /**
1702         * W3C Software Notice and Document License (2015-05-13).
1703         */
1704        W3C20150513, 
1705        /**
1706         * W3C Software Notice and License (2002-12-31).
1707         */
1708        W3C, 
1709        /**
1710         * Sybase Open Watcom Public License 1.0.
1711         */
1712        WATCOM1_0, 
1713        /**
1714         * Wsuipa License.
1715         */
1716        WSUIPA, 
1717        /**
1718         * Do What The F*ck You Want To Public License.
1719         */
1720        WTFPL, 
1721        /**
1722         * X11 License.
1723         */
1724        X11, 
1725        /**
1726         * Xerox License.
1727         */
1728        XEROX, 
1729        /**
1730         * XFree86 License 1.1.
1731         */
1732        XFREE861_1, 
1733        /**
1734         * xinetd License.
1735         */
1736        XINETD, 
1737        /**
1738         * X.Net License.
1739         */
1740        XNET, 
1741        /**
1742         * XPP License.
1743         */
1744        XPP, 
1745        /**
1746         * XSkat License.
1747         */
1748        XSKAT, 
1749        /**
1750         * Yahoo! Public License v1.0.
1751         */
1752        YPL1_0, 
1753        /**
1754         * Yahoo! Public License v1.1.
1755         */
1756        YPL1_1, 
1757        /**
1758         * Zed License.
1759         */
1760        ZED, 
1761        /**
1762         * Zend License v2.0.
1763         */
1764        ZEND2_0, 
1765        /**
1766         * Zimbra Public License v1.3.
1767         */
1768        ZIMBRA1_3, 
1769        /**
1770         * Zimbra Public License v1.4.
1771         */
1772        ZIMBRA1_4, 
1773        /**
1774         * zlib/libpng License with Acknowledgement.
1775         */
1776        ZLIBACKNOWLEDGEMENT, 
1777        /**
1778         * zlib License.
1779         */
1780        ZLIB, 
1781        /**
1782         * Zope Public License 1.1.
1783         */
1784        ZPL1_1, 
1785        /**
1786         * Zope Public License 2.0.
1787         */
1788        ZPL2_0, 
1789        /**
1790         * Zope Public License 2.1.
1791         */
1792        ZPL2_1, 
1793        /**
1794         * added to help the parsers with the generic types
1795         */
1796        NULL;
1797        public static SPDXLicense fromCode(String codeString) throws FHIRException {
1798            if (codeString == null || "".equals(codeString))
1799                return null;
1800        if ("not-open-source".equals(codeString))
1801          return NOTOPENSOURCE;
1802        if ("0BSD".equals(codeString))
1803          return _0BSD;
1804        if ("AAL".equals(codeString))
1805          return AAL;
1806        if ("Abstyles".equals(codeString))
1807          return ABSTYLES;
1808        if ("Adobe-2006".equals(codeString))
1809          return ADOBE2006;
1810        if ("Adobe-Glyph".equals(codeString))
1811          return ADOBEGLYPH;
1812        if ("ADSL".equals(codeString))
1813          return ADSL;
1814        if ("AFL-1.1".equals(codeString))
1815          return AFL1_1;
1816        if ("AFL-1.2".equals(codeString))
1817          return AFL1_2;
1818        if ("AFL-2.0".equals(codeString))
1819          return AFL2_0;
1820        if ("AFL-2.1".equals(codeString))
1821          return AFL2_1;
1822        if ("AFL-3.0".equals(codeString))
1823          return AFL3_0;
1824        if ("Afmparse".equals(codeString))
1825          return AFMPARSE;
1826        if ("AGPL-1.0-only".equals(codeString))
1827          return AGPL1_0ONLY;
1828        if ("AGPL-1.0-or-later".equals(codeString))
1829          return AGPL1_0ORLATER;
1830        if ("AGPL-3.0-only".equals(codeString))
1831          return AGPL3_0ONLY;
1832        if ("AGPL-3.0-or-later".equals(codeString))
1833          return AGPL3_0ORLATER;
1834        if ("Aladdin".equals(codeString))
1835          return ALADDIN;
1836        if ("AMDPLPA".equals(codeString))
1837          return AMDPLPA;
1838        if ("AML".equals(codeString))
1839          return AML;
1840        if ("AMPAS".equals(codeString))
1841          return AMPAS;
1842        if ("ANTLR-PD".equals(codeString))
1843          return ANTLRPD;
1844        if ("Apache-1.0".equals(codeString))
1845          return APACHE1_0;
1846        if ("Apache-1.1".equals(codeString))
1847          return APACHE1_1;
1848        if ("Apache-2.0".equals(codeString))
1849          return APACHE2_0;
1850        if ("APAFML".equals(codeString))
1851          return APAFML;
1852        if ("APL-1.0".equals(codeString))
1853          return APL1_0;
1854        if ("APSL-1.0".equals(codeString))
1855          return APSL1_0;
1856        if ("APSL-1.1".equals(codeString))
1857          return APSL1_1;
1858        if ("APSL-1.2".equals(codeString))
1859          return APSL1_2;
1860        if ("APSL-2.0".equals(codeString))
1861          return APSL2_0;
1862        if ("Artistic-1.0-cl8".equals(codeString))
1863          return ARTISTIC1_0CL8;
1864        if ("Artistic-1.0-Perl".equals(codeString))
1865          return ARTISTIC1_0PERL;
1866        if ("Artistic-1.0".equals(codeString))
1867          return ARTISTIC1_0;
1868        if ("Artistic-2.0".equals(codeString))
1869          return ARTISTIC2_0;
1870        if ("Bahyph".equals(codeString))
1871          return BAHYPH;
1872        if ("Barr".equals(codeString))
1873          return BARR;
1874        if ("Beerware".equals(codeString))
1875          return BEERWARE;
1876        if ("BitTorrent-1.0".equals(codeString))
1877          return BITTORRENT1_0;
1878        if ("BitTorrent-1.1".equals(codeString))
1879          return BITTORRENT1_1;
1880        if ("Borceux".equals(codeString))
1881          return BORCEUX;
1882        if ("BSD-1-Clause".equals(codeString))
1883          return BSD1CLAUSE;
1884        if ("BSD-2-Clause-FreeBSD".equals(codeString))
1885          return BSD2CLAUSEFREEBSD;
1886        if ("BSD-2-Clause-NetBSD".equals(codeString))
1887          return BSD2CLAUSENETBSD;
1888        if ("BSD-2-Clause-Patent".equals(codeString))
1889          return BSD2CLAUSEPATENT;
1890        if ("BSD-2-Clause".equals(codeString))
1891          return BSD2CLAUSE;
1892        if ("BSD-3-Clause-Attribution".equals(codeString))
1893          return BSD3CLAUSEATTRIBUTION;
1894        if ("BSD-3-Clause-Clear".equals(codeString))
1895          return BSD3CLAUSECLEAR;
1896        if ("BSD-3-Clause-LBNL".equals(codeString))
1897          return BSD3CLAUSELBNL;
1898        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
1899          return BSD3CLAUSENONUCLEARLICENSE2014;
1900        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
1901          return BSD3CLAUSENONUCLEARLICENSE;
1902        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
1903          return BSD3CLAUSENONUCLEARWARRANTY;
1904        if ("BSD-3-Clause".equals(codeString))
1905          return BSD3CLAUSE;
1906        if ("BSD-4-Clause-UC".equals(codeString))
1907          return BSD4CLAUSEUC;
1908        if ("BSD-4-Clause".equals(codeString))
1909          return BSD4CLAUSE;
1910        if ("BSD-Protection".equals(codeString))
1911          return BSDPROTECTION;
1912        if ("BSD-Source-Code".equals(codeString))
1913          return BSDSOURCECODE;
1914        if ("BSL-1.0".equals(codeString))
1915          return BSL1_0;
1916        if ("bzip2-1.0.5".equals(codeString))
1917          return BZIP21_0_5;
1918        if ("bzip2-1.0.6".equals(codeString))
1919          return BZIP21_0_6;
1920        if ("Caldera".equals(codeString))
1921          return CALDERA;
1922        if ("CATOSL-1.1".equals(codeString))
1923          return CATOSL1_1;
1924        if ("CC-BY-1.0".equals(codeString))
1925          return CCBY1_0;
1926        if ("CC-BY-2.0".equals(codeString))
1927          return CCBY2_0;
1928        if ("CC-BY-2.5".equals(codeString))
1929          return CCBY2_5;
1930        if ("CC-BY-3.0".equals(codeString))
1931          return CCBY3_0;
1932        if ("CC-BY-4.0".equals(codeString))
1933          return CCBY4_0;
1934        if ("CC-BY-NC-1.0".equals(codeString))
1935          return CCBYNC1_0;
1936        if ("CC-BY-NC-2.0".equals(codeString))
1937          return CCBYNC2_0;
1938        if ("CC-BY-NC-2.5".equals(codeString))
1939          return CCBYNC2_5;
1940        if ("CC-BY-NC-3.0".equals(codeString))
1941          return CCBYNC3_0;
1942        if ("CC-BY-NC-4.0".equals(codeString))
1943          return CCBYNC4_0;
1944        if ("CC-BY-NC-ND-1.0".equals(codeString))
1945          return CCBYNCND1_0;
1946        if ("CC-BY-NC-ND-2.0".equals(codeString))
1947          return CCBYNCND2_0;
1948        if ("CC-BY-NC-ND-2.5".equals(codeString))
1949          return CCBYNCND2_5;
1950        if ("CC-BY-NC-ND-3.0".equals(codeString))
1951          return CCBYNCND3_0;
1952        if ("CC-BY-NC-ND-4.0".equals(codeString))
1953          return CCBYNCND4_0;
1954        if ("CC-BY-NC-SA-1.0".equals(codeString))
1955          return CCBYNCSA1_0;
1956        if ("CC-BY-NC-SA-2.0".equals(codeString))
1957          return CCBYNCSA2_0;
1958        if ("CC-BY-NC-SA-2.5".equals(codeString))
1959          return CCBYNCSA2_5;
1960        if ("CC-BY-NC-SA-3.0".equals(codeString))
1961          return CCBYNCSA3_0;
1962        if ("CC-BY-NC-SA-4.0".equals(codeString))
1963          return CCBYNCSA4_0;
1964        if ("CC-BY-ND-1.0".equals(codeString))
1965          return CCBYND1_0;
1966        if ("CC-BY-ND-2.0".equals(codeString))
1967          return CCBYND2_0;
1968        if ("CC-BY-ND-2.5".equals(codeString))
1969          return CCBYND2_5;
1970        if ("CC-BY-ND-3.0".equals(codeString))
1971          return CCBYND3_0;
1972        if ("CC-BY-ND-4.0".equals(codeString))
1973          return CCBYND4_0;
1974        if ("CC-BY-SA-1.0".equals(codeString))
1975          return CCBYSA1_0;
1976        if ("CC-BY-SA-2.0".equals(codeString))
1977          return CCBYSA2_0;
1978        if ("CC-BY-SA-2.5".equals(codeString))
1979          return CCBYSA2_5;
1980        if ("CC-BY-SA-3.0".equals(codeString))
1981          return CCBYSA3_0;
1982        if ("CC-BY-SA-4.0".equals(codeString))
1983          return CCBYSA4_0;
1984        if ("CC0-1.0".equals(codeString))
1985          return CC01_0;
1986        if ("CDDL-1.0".equals(codeString))
1987          return CDDL1_0;
1988        if ("CDDL-1.1".equals(codeString))
1989          return CDDL1_1;
1990        if ("CDLA-Permissive-1.0".equals(codeString))
1991          return CDLAPERMISSIVE1_0;
1992        if ("CDLA-Sharing-1.0".equals(codeString))
1993          return CDLASHARING1_0;
1994        if ("CECILL-1.0".equals(codeString))
1995          return CECILL1_0;
1996        if ("CECILL-1.1".equals(codeString))
1997          return CECILL1_1;
1998        if ("CECILL-2.0".equals(codeString))
1999          return CECILL2_0;
2000        if ("CECILL-2.1".equals(codeString))
2001          return CECILL2_1;
2002        if ("CECILL-B".equals(codeString))
2003          return CECILLB;
2004        if ("CECILL-C".equals(codeString))
2005          return CECILLC;
2006        if ("ClArtistic".equals(codeString))
2007          return CLARTISTIC;
2008        if ("CNRI-Jython".equals(codeString))
2009          return CNRIJYTHON;
2010        if ("CNRI-Python-GPL-Compatible".equals(codeString))
2011          return CNRIPYTHONGPLCOMPATIBLE;
2012        if ("CNRI-Python".equals(codeString))
2013          return CNRIPYTHON;
2014        if ("Condor-1.1".equals(codeString))
2015          return CONDOR1_1;
2016        if ("CPAL-1.0".equals(codeString))
2017          return CPAL1_0;
2018        if ("CPL-1.0".equals(codeString))
2019          return CPL1_0;
2020        if ("CPOL-1.02".equals(codeString))
2021          return CPOL1_02;
2022        if ("Crossword".equals(codeString))
2023          return CROSSWORD;
2024        if ("CrystalStacker".equals(codeString))
2025          return CRYSTALSTACKER;
2026        if ("CUA-OPL-1.0".equals(codeString))
2027          return CUAOPL1_0;
2028        if ("Cube".equals(codeString))
2029          return CUBE;
2030        if ("curl".equals(codeString))
2031          return CURL;
2032        if ("D-FSL-1.0".equals(codeString))
2033          return DFSL1_0;
2034        if ("diffmark".equals(codeString))
2035          return DIFFMARK;
2036        if ("DOC".equals(codeString))
2037          return DOC;
2038        if ("Dotseqn".equals(codeString))
2039          return DOTSEQN;
2040        if ("DSDP".equals(codeString))
2041          return DSDP;
2042        if ("dvipdfm".equals(codeString))
2043          return DVIPDFM;
2044        if ("ECL-1.0".equals(codeString))
2045          return ECL1_0;
2046        if ("ECL-2.0".equals(codeString))
2047          return ECL2_0;
2048        if ("EFL-1.0".equals(codeString))
2049          return EFL1_0;
2050        if ("EFL-2.0".equals(codeString))
2051          return EFL2_0;
2052        if ("eGenix".equals(codeString))
2053          return EGENIX;
2054        if ("Entessa".equals(codeString))
2055          return ENTESSA;
2056        if ("EPL-1.0".equals(codeString))
2057          return EPL1_0;
2058        if ("EPL-2.0".equals(codeString))
2059          return EPL2_0;
2060        if ("ErlPL-1.1".equals(codeString))
2061          return ERLPL1_1;
2062        if ("EUDatagrid".equals(codeString))
2063          return EUDATAGRID;
2064        if ("EUPL-1.0".equals(codeString))
2065          return EUPL1_0;
2066        if ("EUPL-1.1".equals(codeString))
2067          return EUPL1_1;
2068        if ("EUPL-1.2".equals(codeString))
2069          return EUPL1_2;
2070        if ("Eurosym".equals(codeString))
2071          return EUROSYM;
2072        if ("Fair".equals(codeString))
2073          return FAIR;
2074        if ("Frameworx-1.0".equals(codeString))
2075          return FRAMEWORX1_0;
2076        if ("FreeImage".equals(codeString))
2077          return FREEIMAGE;
2078        if ("FSFAP".equals(codeString))
2079          return FSFAP;
2080        if ("FSFUL".equals(codeString))
2081          return FSFUL;
2082        if ("FSFULLR".equals(codeString))
2083          return FSFULLR;
2084        if ("FTL".equals(codeString))
2085          return FTL;
2086        if ("GFDL-1.1-only".equals(codeString))
2087          return GFDL1_1ONLY;
2088        if ("GFDL-1.1-or-later".equals(codeString))
2089          return GFDL1_1ORLATER;
2090        if ("GFDL-1.2-only".equals(codeString))
2091          return GFDL1_2ONLY;
2092        if ("GFDL-1.2-or-later".equals(codeString))
2093          return GFDL1_2ORLATER;
2094        if ("GFDL-1.3-only".equals(codeString))
2095          return GFDL1_3ONLY;
2096        if ("GFDL-1.3-or-later".equals(codeString))
2097          return GFDL1_3ORLATER;
2098        if ("Giftware".equals(codeString))
2099          return GIFTWARE;
2100        if ("GL2PS".equals(codeString))
2101          return GL2PS;
2102        if ("Glide".equals(codeString))
2103          return GLIDE;
2104        if ("Glulxe".equals(codeString))
2105          return GLULXE;
2106        if ("gnuplot".equals(codeString))
2107          return GNUPLOT;
2108        if ("GPL-1.0-only".equals(codeString))
2109          return GPL1_0ONLY;
2110        if ("GPL-1.0-or-later".equals(codeString))
2111          return GPL1_0ORLATER;
2112        if ("GPL-2.0-only".equals(codeString))
2113          return GPL2_0ONLY;
2114        if ("GPL-2.0-or-later".equals(codeString))
2115          return GPL2_0ORLATER;
2116        if ("GPL-3.0-only".equals(codeString))
2117          return GPL3_0ONLY;
2118        if ("GPL-3.0-or-later".equals(codeString))
2119          return GPL3_0ORLATER;
2120        if ("gSOAP-1.3b".equals(codeString))
2121          return GSOAP1_3B;
2122        if ("HaskellReport".equals(codeString))
2123          return HASKELLREPORT;
2124        if ("HPND".equals(codeString))
2125          return HPND;
2126        if ("IBM-pibs".equals(codeString))
2127          return IBMPIBS;
2128        if ("ICU".equals(codeString))
2129          return ICU;
2130        if ("IJG".equals(codeString))
2131          return IJG;
2132        if ("ImageMagick".equals(codeString))
2133          return IMAGEMAGICK;
2134        if ("iMatix".equals(codeString))
2135          return IMATIX;
2136        if ("Imlib2".equals(codeString))
2137          return IMLIB2;
2138        if ("Info-ZIP".equals(codeString))
2139          return INFOZIP;
2140        if ("Intel-ACPI".equals(codeString))
2141          return INTELACPI;
2142        if ("Intel".equals(codeString))
2143          return INTEL;
2144        if ("Interbase-1.0".equals(codeString))
2145          return INTERBASE1_0;
2146        if ("IPA".equals(codeString))
2147          return IPA;
2148        if ("IPL-1.0".equals(codeString))
2149          return IPL1_0;
2150        if ("ISC".equals(codeString))
2151          return ISC;
2152        if ("JasPer-2.0".equals(codeString))
2153          return JASPER2_0;
2154        if ("JSON".equals(codeString))
2155          return JSON;
2156        if ("LAL-1.2".equals(codeString))
2157          return LAL1_2;
2158        if ("LAL-1.3".equals(codeString))
2159          return LAL1_3;
2160        if ("Latex2e".equals(codeString))
2161          return LATEX2E;
2162        if ("Leptonica".equals(codeString))
2163          return LEPTONICA;
2164        if ("LGPL-2.0-only".equals(codeString))
2165          return LGPL2_0ONLY;
2166        if ("LGPL-2.0-or-later".equals(codeString))
2167          return LGPL2_0ORLATER;
2168        if ("LGPL-2.1-only".equals(codeString))
2169          return LGPL2_1ONLY;
2170        if ("LGPL-2.1-or-later".equals(codeString))
2171          return LGPL2_1ORLATER;
2172        if ("LGPL-3.0-only".equals(codeString))
2173          return LGPL3_0ONLY;
2174        if ("LGPL-3.0-or-later".equals(codeString))
2175          return LGPL3_0ORLATER;
2176        if ("LGPLLR".equals(codeString))
2177          return LGPLLR;
2178        if ("Libpng".equals(codeString))
2179          return LIBPNG;
2180        if ("libtiff".equals(codeString))
2181          return LIBTIFF;
2182        if ("LiLiQ-P-1.1".equals(codeString))
2183          return LILIQP1_1;
2184        if ("LiLiQ-R-1.1".equals(codeString))
2185          return LILIQR1_1;
2186        if ("LiLiQ-Rplus-1.1".equals(codeString))
2187          return LILIQRPLUS1_1;
2188        if ("Linux-OpenIB".equals(codeString))
2189          return LINUXOPENIB;
2190        if ("LPL-1.0".equals(codeString))
2191          return LPL1_0;
2192        if ("LPL-1.02".equals(codeString))
2193          return LPL1_02;
2194        if ("LPPL-1.0".equals(codeString))
2195          return LPPL1_0;
2196        if ("LPPL-1.1".equals(codeString))
2197          return LPPL1_1;
2198        if ("LPPL-1.2".equals(codeString))
2199          return LPPL1_2;
2200        if ("LPPL-1.3a".equals(codeString))
2201          return LPPL1_3A;
2202        if ("LPPL-1.3c".equals(codeString))
2203          return LPPL1_3C;
2204        if ("MakeIndex".equals(codeString))
2205          return MAKEINDEX;
2206        if ("MirOS".equals(codeString))
2207          return MIROS;
2208        if ("MIT-0".equals(codeString))
2209          return MIT0;
2210        if ("MIT-advertising".equals(codeString))
2211          return MITADVERTISING;
2212        if ("MIT-CMU".equals(codeString))
2213          return MITCMU;
2214        if ("MIT-enna".equals(codeString))
2215          return MITENNA;
2216        if ("MIT-feh".equals(codeString))
2217          return MITFEH;
2218        if ("MIT".equals(codeString))
2219          return MIT;
2220        if ("MITNFA".equals(codeString))
2221          return MITNFA;
2222        if ("Motosoto".equals(codeString))
2223          return MOTOSOTO;
2224        if ("mpich2".equals(codeString))
2225          return MPICH2;
2226        if ("MPL-1.0".equals(codeString))
2227          return MPL1_0;
2228        if ("MPL-1.1".equals(codeString))
2229          return MPL1_1;
2230        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
2231          return MPL2_0NOCOPYLEFTEXCEPTION;
2232        if ("MPL-2.0".equals(codeString))
2233          return MPL2_0;
2234        if ("MS-PL".equals(codeString))
2235          return MSPL;
2236        if ("MS-RL".equals(codeString))
2237          return MSRL;
2238        if ("MTLL".equals(codeString))
2239          return MTLL;
2240        if ("Multics".equals(codeString))
2241          return MULTICS;
2242        if ("Mup".equals(codeString))
2243          return MUP;
2244        if ("NASA-1.3".equals(codeString))
2245          return NASA1_3;
2246        if ("Naumen".equals(codeString))
2247          return NAUMEN;
2248        if ("NBPL-1.0".equals(codeString))
2249          return NBPL1_0;
2250        if ("NCSA".equals(codeString))
2251          return NCSA;
2252        if ("Net-SNMP".equals(codeString))
2253          return NETSNMP;
2254        if ("NetCDF".equals(codeString))
2255          return NETCDF;
2256        if ("Newsletr".equals(codeString))
2257          return NEWSLETR;
2258        if ("NGPL".equals(codeString))
2259          return NGPL;
2260        if ("NLOD-1.0".equals(codeString))
2261          return NLOD1_0;
2262        if ("NLPL".equals(codeString))
2263          return NLPL;
2264        if ("Nokia".equals(codeString))
2265          return NOKIA;
2266        if ("NOSL".equals(codeString))
2267          return NOSL;
2268        if ("Noweb".equals(codeString))
2269          return NOWEB;
2270        if ("NPL-1.0".equals(codeString))
2271          return NPL1_0;
2272        if ("NPL-1.1".equals(codeString))
2273          return NPL1_1;
2274        if ("NPOSL-3.0".equals(codeString))
2275          return NPOSL3_0;
2276        if ("NRL".equals(codeString))
2277          return NRL;
2278        if ("NTP".equals(codeString))
2279          return NTP;
2280        if ("OCCT-PL".equals(codeString))
2281          return OCCTPL;
2282        if ("OCLC-2.0".equals(codeString))
2283          return OCLC2_0;
2284        if ("ODbL-1.0".equals(codeString))
2285          return ODBL1_0;
2286        if ("OFL-1.0".equals(codeString))
2287          return OFL1_0;
2288        if ("OFL-1.1".equals(codeString))
2289          return OFL1_1;
2290        if ("OGTSL".equals(codeString))
2291          return OGTSL;
2292        if ("OLDAP-1.1".equals(codeString))
2293          return OLDAP1_1;
2294        if ("OLDAP-1.2".equals(codeString))
2295          return OLDAP1_2;
2296        if ("OLDAP-1.3".equals(codeString))
2297          return OLDAP1_3;
2298        if ("OLDAP-1.4".equals(codeString))
2299          return OLDAP1_4;
2300        if ("OLDAP-2.0.1".equals(codeString))
2301          return OLDAP2_0_1;
2302        if ("OLDAP-2.0".equals(codeString))
2303          return OLDAP2_0;
2304        if ("OLDAP-2.1".equals(codeString))
2305          return OLDAP2_1;
2306        if ("OLDAP-2.2.1".equals(codeString))
2307          return OLDAP2_2_1;
2308        if ("OLDAP-2.2.2".equals(codeString))
2309          return OLDAP2_2_2;
2310        if ("OLDAP-2.2".equals(codeString))
2311          return OLDAP2_2;
2312        if ("OLDAP-2.3".equals(codeString))
2313          return OLDAP2_3;
2314        if ("OLDAP-2.4".equals(codeString))
2315          return OLDAP2_4;
2316        if ("OLDAP-2.5".equals(codeString))
2317          return OLDAP2_5;
2318        if ("OLDAP-2.6".equals(codeString))
2319          return OLDAP2_6;
2320        if ("OLDAP-2.7".equals(codeString))
2321          return OLDAP2_7;
2322        if ("OLDAP-2.8".equals(codeString))
2323          return OLDAP2_8;
2324        if ("OML".equals(codeString))
2325          return OML;
2326        if ("OpenSSL".equals(codeString))
2327          return OPENSSL;
2328        if ("OPL-1.0".equals(codeString))
2329          return OPL1_0;
2330        if ("OSET-PL-2.1".equals(codeString))
2331          return OSETPL2_1;
2332        if ("OSL-1.0".equals(codeString))
2333          return OSL1_0;
2334        if ("OSL-1.1".equals(codeString))
2335          return OSL1_1;
2336        if ("OSL-2.0".equals(codeString))
2337          return OSL2_0;
2338        if ("OSL-2.1".equals(codeString))
2339          return OSL2_1;
2340        if ("OSL-3.0".equals(codeString))
2341          return OSL3_0;
2342        if ("PDDL-1.0".equals(codeString))
2343          return PDDL1_0;
2344        if ("PHP-3.0".equals(codeString))
2345          return PHP3_0;
2346        if ("PHP-3.01".equals(codeString))
2347          return PHP3_01;
2348        if ("Plexus".equals(codeString))
2349          return PLEXUS;
2350        if ("PostgreSQL".equals(codeString))
2351          return POSTGRESQL;
2352        if ("psfrag".equals(codeString))
2353          return PSFRAG;
2354        if ("psutils".equals(codeString))
2355          return PSUTILS;
2356        if ("Python-2.0".equals(codeString))
2357          return PYTHON2_0;
2358        if ("Qhull".equals(codeString))
2359          return QHULL;
2360        if ("QPL-1.0".equals(codeString))
2361          return QPL1_0;
2362        if ("Rdisc".equals(codeString))
2363          return RDISC;
2364        if ("RHeCos-1.1".equals(codeString))
2365          return RHECOS1_1;
2366        if ("RPL-1.1".equals(codeString))
2367          return RPL1_1;
2368        if ("RPL-1.5".equals(codeString))
2369          return RPL1_5;
2370        if ("RPSL-1.0".equals(codeString))
2371          return RPSL1_0;
2372        if ("RSA-MD".equals(codeString))
2373          return RSAMD;
2374        if ("RSCPL".equals(codeString))
2375          return RSCPL;
2376        if ("Ruby".equals(codeString))
2377          return RUBY;
2378        if ("SAX-PD".equals(codeString))
2379          return SAXPD;
2380        if ("Saxpath".equals(codeString))
2381          return SAXPATH;
2382        if ("SCEA".equals(codeString))
2383          return SCEA;
2384        if ("Sendmail".equals(codeString))
2385          return SENDMAIL;
2386        if ("SGI-B-1.0".equals(codeString))
2387          return SGIB1_0;
2388        if ("SGI-B-1.1".equals(codeString))
2389          return SGIB1_1;
2390        if ("SGI-B-2.0".equals(codeString))
2391          return SGIB2_0;
2392        if ("SimPL-2.0".equals(codeString))
2393          return SIMPL2_0;
2394        if ("SISSL-1.2".equals(codeString))
2395          return SISSL1_2;
2396        if ("SISSL".equals(codeString))
2397          return SISSL;
2398        if ("Sleepycat".equals(codeString))
2399          return SLEEPYCAT;
2400        if ("SMLNJ".equals(codeString))
2401          return SMLNJ;
2402        if ("SMPPL".equals(codeString))
2403          return SMPPL;
2404        if ("SNIA".equals(codeString))
2405          return SNIA;
2406        if ("Spencer-86".equals(codeString))
2407          return SPENCER86;
2408        if ("Spencer-94".equals(codeString))
2409          return SPENCER94;
2410        if ("Spencer-99".equals(codeString))
2411          return SPENCER99;
2412        if ("SPL-1.0".equals(codeString))
2413          return SPL1_0;
2414        if ("SugarCRM-1.1.3".equals(codeString))
2415          return SUGARCRM1_1_3;
2416        if ("SWL".equals(codeString))
2417          return SWL;
2418        if ("TCL".equals(codeString))
2419          return TCL;
2420        if ("TCP-wrappers".equals(codeString))
2421          return TCPWRAPPERS;
2422        if ("TMate".equals(codeString))
2423          return TMATE;
2424        if ("TORQUE-1.1".equals(codeString))
2425          return TORQUE1_1;
2426        if ("TOSL".equals(codeString))
2427          return TOSL;
2428        if ("Unicode-DFS-2015".equals(codeString))
2429          return UNICODEDFS2015;
2430        if ("Unicode-DFS-2016".equals(codeString))
2431          return UNICODEDFS2016;
2432        if ("Unicode-TOU".equals(codeString))
2433          return UNICODETOU;
2434        if ("Unlicense".equals(codeString))
2435          return UNLICENSE;
2436        if ("UPL-1.0".equals(codeString))
2437          return UPL1_0;
2438        if ("Vim".equals(codeString))
2439          return VIM;
2440        if ("VOSTROM".equals(codeString))
2441          return VOSTROM;
2442        if ("VSL-1.0".equals(codeString))
2443          return VSL1_0;
2444        if ("W3C-19980720".equals(codeString))
2445          return W3C19980720;
2446        if ("W3C-20150513".equals(codeString))
2447          return W3C20150513;
2448        if ("W3C".equals(codeString))
2449          return W3C;
2450        if ("Watcom-1.0".equals(codeString))
2451          return WATCOM1_0;
2452        if ("Wsuipa".equals(codeString))
2453          return WSUIPA;
2454        if ("WTFPL".equals(codeString))
2455          return WTFPL;
2456        if ("X11".equals(codeString))
2457          return X11;
2458        if ("Xerox".equals(codeString))
2459          return XEROX;
2460        if ("XFree86-1.1".equals(codeString))
2461          return XFREE861_1;
2462        if ("xinetd".equals(codeString))
2463          return XINETD;
2464        if ("Xnet".equals(codeString))
2465          return XNET;
2466        if ("xpp".equals(codeString))
2467          return XPP;
2468        if ("XSkat".equals(codeString))
2469          return XSKAT;
2470        if ("YPL-1.0".equals(codeString))
2471          return YPL1_0;
2472        if ("YPL-1.1".equals(codeString))
2473          return YPL1_1;
2474        if ("Zed".equals(codeString))
2475          return ZED;
2476        if ("Zend-2.0".equals(codeString))
2477          return ZEND2_0;
2478        if ("Zimbra-1.3".equals(codeString))
2479          return ZIMBRA1_3;
2480        if ("Zimbra-1.4".equals(codeString))
2481          return ZIMBRA1_4;
2482        if ("zlib-acknowledgement".equals(codeString))
2483          return ZLIBACKNOWLEDGEMENT;
2484        if ("Zlib".equals(codeString))
2485          return ZLIB;
2486        if ("ZPL-1.1".equals(codeString))
2487          return ZPL1_1;
2488        if ("ZPL-2.0".equals(codeString))
2489          return ZPL2_0;
2490        if ("ZPL-2.1".equals(codeString))
2491          return ZPL2_1;
2492        if (Configuration.isAcceptInvalidEnums())
2493          return null;
2494        else
2495          throw new FHIRException("Unknown SPDXLicense code '"+codeString+"'");
2496        }
2497        public String toCode() {
2498          switch (this) {
2499            case NOTOPENSOURCE: return "not-open-source";
2500            case _0BSD: return "0BSD";
2501            case AAL: return "AAL";
2502            case ABSTYLES: return "Abstyles";
2503            case ADOBE2006: return "Adobe-2006";
2504            case ADOBEGLYPH: return "Adobe-Glyph";
2505            case ADSL: return "ADSL";
2506            case AFL1_1: return "AFL-1.1";
2507            case AFL1_2: return "AFL-1.2";
2508            case AFL2_0: return "AFL-2.0";
2509            case AFL2_1: return "AFL-2.1";
2510            case AFL3_0: return "AFL-3.0";
2511            case AFMPARSE: return "Afmparse";
2512            case AGPL1_0ONLY: return "AGPL-1.0-only";
2513            case AGPL1_0ORLATER: return "AGPL-1.0-or-later";
2514            case AGPL3_0ONLY: return "AGPL-3.0-only";
2515            case AGPL3_0ORLATER: return "AGPL-3.0-or-later";
2516            case ALADDIN: return "Aladdin";
2517            case AMDPLPA: return "AMDPLPA";
2518            case AML: return "AML";
2519            case AMPAS: return "AMPAS";
2520            case ANTLRPD: return "ANTLR-PD";
2521            case APACHE1_0: return "Apache-1.0";
2522            case APACHE1_1: return "Apache-1.1";
2523            case APACHE2_0: return "Apache-2.0";
2524            case APAFML: return "APAFML";
2525            case APL1_0: return "APL-1.0";
2526            case APSL1_0: return "APSL-1.0";
2527            case APSL1_1: return "APSL-1.1";
2528            case APSL1_2: return "APSL-1.2";
2529            case APSL2_0: return "APSL-2.0";
2530            case ARTISTIC1_0CL8: return "Artistic-1.0-cl8";
2531            case ARTISTIC1_0PERL: return "Artistic-1.0-Perl";
2532            case ARTISTIC1_0: return "Artistic-1.0";
2533            case ARTISTIC2_0: return "Artistic-2.0";
2534            case BAHYPH: return "Bahyph";
2535            case BARR: return "Barr";
2536            case BEERWARE: return "Beerware";
2537            case BITTORRENT1_0: return "BitTorrent-1.0";
2538            case BITTORRENT1_1: return "BitTorrent-1.1";
2539            case BORCEUX: return "Borceux";
2540            case BSD1CLAUSE: return "BSD-1-Clause";
2541            case BSD2CLAUSEFREEBSD: return "BSD-2-Clause-FreeBSD";
2542            case BSD2CLAUSENETBSD: return "BSD-2-Clause-NetBSD";
2543            case BSD2CLAUSEPATENT: return "BSD-2-Clause-Patent";
2544            case BSD2CLAUSE: return "BSD-2-Clause";
2545            case BSD3CLAUSEATTRIBUTION: return "BSD-3-Clause-Attribution";
2546            case BSD3CLAUSECLEAR: return "BSD-3-Clause-Clear";
2547            case BSD3CLAUSELBNL: return "BSD-3-Clause-LBNL";
2548            case BSD3CLAUSENONUCLEARLICENSE2014: return "BSD-3-Clause-No-Nuclear-License-2014";
2549            case BSD3CLAUSENONUCLEARLICENSE: return "BSD-3-Clause-No-Nuclear-License";
2550            case BSD3CLAUSENONUCLEARWARRANTY: return "BSD-3-Clause-No-Nuclear-Warranty";
2551            case BSD3CLAUSE: return "BSD-3-Clause";
2552            case BSD4CLAUSEUC: return "BSD-4-Clause-UC";
2553            case BSD4CLAUSE: return "BSD-4-Clause";
2554            case BSDPROTECTION: return "BSD-Protection";
2555            case BSDSOURCECODE: return "BSD-Source-Code";
2556            case BSL1_0: return "BSL-1.0";
2557            case BZIP21_0_5: return "bzip2-1.0.5";
2558            case BZIP21_0_6: return "bzip2-1.0.6";
2559            case CALDERA: return "Caldera";
2560            case CATOSL1_1: return "CATOSL-1.1";
2561            case CCBY1_0: return "CC-BY-1.0";
2562            case CCBY2_0: return "CC-BY-2.0";
2563            case CCBY2_5: return "CC-BY-2.5";
2564            case CCBY3_0: return "CC-BY-3.0";
2565            case CCBY4_0: return "CC-BY-4.0";
2566            case CCBYNC1_0: return "CC-BY-NC-1.0";
2567            case CCBYNC2_0: return "CC-BY-NC-2.0";
2568            case CCBYNC2_5: return "CC-BY-NC-2.5";
2569            case CCBYNC3_0: return "CC-BY-NC-3.0";
2570            case CCBYNC4_0: return "CC-BY-NC-4.0";
2571            case CCBYNCND1_0: return "CC-BY-NC-ND-1.0";
2572            case CCBYNCND2_0: return "CC-BY-NC-ND-2.0";
2573            case CCBYNCND2_5: return "CC-BY-NC-ND-2.5";
2574            case CCBYNCND3_0: return "CC-BY-NC-ND-3.0";
2575            case CCBYNCND4_0: return "CC-BY-NC-ND-4.0";
2576            case CCBYNCSA1_0: return "CC-BY-NC-SA-1.0";
2577            case CCBYNCSA2_0: return "CC-BY-NC-SA-2.0";
2578            case CCBYNCSA2_5: return "CC-BY-NC-SA-2.5";
2579            case CCBYNCSA3_0: return "CC-BY-NC-SA-3.0";
2580            case CCBYNCSA4_0: return "CC-BY-NC-SA-4.0";
2581            case CCBYND1_0: return "CC-BY-ND-1.0";
2582            case CCBYND2_0: return "CC-BY-ND-2.0";
2583            case CCBYND2_5: return "CC-BY-ND-2.5";
2584            case CCBYND3_0: return "CC-BY-ND-3.0";
2585            case CCBYND4_0: return "CC-BY-ND-4.0";
2586            case CCBYSA1_0: return "CC-BY-SA-1.0";
2587            case CCBYSA2_0: return "CC-BY-SA-2.0";
2588            case CCBYSA2_5: return "CC-BY-SA-2.5";
2589            case CCBYSA3_0: return "CC-BY-SA-3.0";
2590            case CCBYSA4_0: return "CC-BY-SA-4.0";
2591            case CC01_0: return "CC0-1.0";
2592            case CDDL1_0: return "CDDL-1.0";
2593            case CDDL1_1: return "CDDL-1.1";
2594            case CDLAPERMISSIVE1_0: return "CDLA-Permissive-1.0";
2595            case CDLASHARING1_0: return "CDLA-Sharing-1.0";
2596            case CECILL1_0: return "CECILL-1.0";
2597            case CECILL1_1: return "CECILL-1.1";
2598            case CECILL2_0: return "CECILL-2.0";
2599            case CECILL2_1: return "CECILL-2.1";
2600            case CECILLB: return "CECILL-B";
2601            case CECILLC: return "CECILL-C";
2602            case CLARTISTIC: return "ClArtistic";
2603            case CNRIJYTHON: return "CNRI-Jython";
2604            case CNRIPYTHONGPLCOMPATIBLE: return "CNRI-Python-GPL-Compatible";
2605            case CNRIPYTHON: return "CNRI-Python";
2606            case CONDOR1_1: return "Condor-1.1";
2607            case CPAL1_0: return "CPAL-1.0";
2608            case CPL1_0: return "CPL-1.0";
2609            case CPOL1_02: return "CPOL-1.02";
2610            case CROSSWORD: return "Crossword";
2611            case CRYSTALSTACKER: return "CrystalStacker";
2612            case CUAOPL1_0: return "CUA-OPL-1.0";
2613            case CUBE: return "Cube";
2614            case CURL: return "curl";
2615            case DFSL1_0: return "D-FSL-1.0";
2616            case DIFFMARK: return "diffmark";
2617            case DOC: return "DOC";
2618            case DOTSEQN: return "Dotseqn";
2619            case DSDP: return "DSDP";
2620            case DVIPDFM: return "dvipdfm";
2621            case ECL1_0: return "ECL-1.0";
2622            case ECL2_0: return "ECL-2.0";
2623            case EFL1_0: return "EFL-1.0";
2624            case EFL2_0: return "EFL-2.0";
2625            case EGENIX: return "eGenix";
2626            case ENTESSA: return "Entessa";
2627            case EPL1_0: return "EPL-1.0";
2628            case EPL2_0: return "EPL-2.0";
2629            case ERLPL1_1: return "ErlPL-1.1";
2630            case EUDATAGRID: return "EUDatagrid";
2631            case EUPL1_0: return "EUPL-1.0";
2632            case EUPL1_1: return "EUPL-1.1";
2633            case EUPL1_2: return "EUPL-1.2";
2634            case EUROSYM: return "Eurosym";
2635            case FAIR: return "Fair";
2636            case FRAMEWORX1_0: return "Frameworx-1.0";
2637            case FREEIMAGE: return "FreeImage";
2638            case FSFAP: return "FSFAP";
2639            case FSFUL: return "FSFUL";
2640            case FSFULLR: return "FSFULLR";
2641            case FTL: return "FTL";
2642            case GFDL1_1ONLY: return "GFDL-1.1-only";
2643            case GFDL1_1ORLATER: return "GFDL-1.1-or-later";
2644            case GFDL1_2ONLY: return "GFDL-1.2-only";
2645            case GFDL1_2ORLATER: return "GFDL-1.2-or-later";
2646            case GFDL1_3ONLY: return "GFDL-1.3-only";
2647            case GFDL1_3ORLATER: return "GFDL-1.3-or-later";
2648            case GIFTWARE: return "Giftware";
2649            case GL2PS: return "GL2PS";
2650            case GLIDE: return "Glide";
2651            case GLULXE: return "Glulxe";
2652            case GNUPLOT: return "gnuplot";
2653            case GPL1_0ONLY: return "GPL-1.0-only";
2654            case GPL1_0ORLATER: return "GPL-1.0-or-later";
2655            case GPL2_0ONLY: return "GPL-2.0-only";
2656            case GPL2_0ORLATER: return "GPL-2.0-or-later";
2657            case GPL3_0ONLY: return "GPL-3.0-only";
2658            case GPL3_0ORLATER: return "GPL-3.0-or-later";
2659            case GSOAP1_3B: return "gSOAP-1.3b";
2660            case HASKELLREPORT: return "HaskellReport";
2661            case HPND: return "HPND";
2662            case IBMPIBS: return "IBM-pibs";
2663            case ICU: return "ICU";
2664            case IJG: return "IJG";
2665            case IMAGEMAGICK: return "ImageMagick";
2666            case IMATIX: return "iMatix";
2667            case IMLIB2: return "Imlib2";
2668            case INFOZIP: return "Info-ZIP";
2669            case INTELACPI: return "Intel-ACPI";
2670            case INTEL: return "Intel";
2671            case INTERBASE1_0: return "Interbase-1.0";
2672            case IPA: return "IPA";
2673            case IPL1_0: return "IPL-1.0";
2674            case ISC: return "ISC";
2675            case JASPER2_0: return "JasPer-2.0";
2676            case JSON: return "JSON";
2677            case LAL1_2: return "LAL-1.2";
2678            case LAL1_3: return "LAL-1.3";
2679            case LATEX2E: return "Latex2e";
2680            case LEPTONICA: return "Leptonica";
2681            case LGPL2_0ONLY: return "LGPL-2.0-only";
2682            case LGPL2_0ORLATER: return "LGPL-2.0-or-later";
2683            case LGPL2_1ONLY: return "LGPL-2.1-only";
2684            case LGPL2_1ORLATER: return "LGPL-2.1-or-later";
2685            case LGPL3_0ONLY: return "LGPL-3.0-only";
2686            case LGPL3_0ORLATER: return "LGPL-3.0-or-later";
2687            case LGPLLR: return "LGPLLR";
2688            case LIBPNG: return "Libpng";
2689            case LIBTIFF: return "libtiff";
2690            case LILIQP1_1: return "LiLiQ-P-1.1";
2691            case LILIQR1_1: return "LiLiQ-R-1.1";
2692            case LILIQRPLUS1_1: return "LiLiQ-Rplus-1.1";
2693            case LINUXOPENIB: return "Linux-OpenIB";
2694            case LPL1_0: return "LPL-1.0";
2695            case LPL1_02: return "LPL-1.02";
2696            case LPPL1_0: return "LPPL-1.0";
2697            case LPPL1_1: return "LPPL-1.1";
2698            case LPPL1_2: return "LPPL-1.2";
2699            case LPPL1_3A: return "LPPL-1.3a";
2700            case LPPL1_3C: return "LPPL-1.3c";
2701            case MAKEINDEX: return "MakeIndex";
2702            case MIROS: return "MirOS";
2703            case MIT0: return "MIT-0";
2704            case MITADVERTISING: return "MIT-advertising";
2705            case MITCMU: return "MIT-CMU";
2706            case MITENNA: return "MIT-enna";
2707            case MITFEH: return "MIT-feh";
2708            case MIT: return "MIT";
2709            case MITNFA: return "MITNFA";
2710            case MOTOSOTO: return "Motosoto";
2711            case MPICH2: return "mpich2";
2712            case MPL1_0: return "MPL-1.0";
2713            case MPL1_1: return "MPL-1.1";
2714            case MPL2_0NOCOPYLEFTEXCEPTION: return "MPL-2.0-no-copyleft-exception";
2715            case MPL2_0: return "MPL-2.0";
2716            case MSPL: return "MS-PL";
2717            case MSRL: return "MS-RL";
2718            case MTLL: return "MTLL";
2719            case MULTICS: return "Multics";
2720            case MUP: return "Mup";
2721            case NASA1_3: return "NASA-1.3";
2722            case NAUMEN: return "Naumen";
2723            case NBPL1_0: return "NBPL-1.0";
2724            case NCSA: return "NCSA";
2725            case NETSNMP: return "Net-SNMP";
2726            case NETCDF: return "NetCDF";
2727            case NEWSLETR: return "Newsletr";
2728            case NGPL: return "NGPL";
2729            case NLOD1_0: return "NLOD-1.0";
2730            case NLPL: return "NLPL";
2731            case NOKIA: return "Nokia";
2732            case NOSL: return "NOSL";
2733            case NOWEB: return "Noweb";
2734            case NPL1_0: return "NPL-1.0";
2735            case NPL1_1: return "NPL-1.1";
2736            case NPOSL3_0: return "NPOSL-3.0";
2737            case NRL: return "NRL";
2738            case NTP: return "NTP";
2739            case OCCTPL: return "OCCT-PL";
2740            case OCLC2_0: return "OCLC-2.0";
2741            case ODBL1_0: return "ODbL-1.0";
2742            case OFL1_0: return "OFL-1.0";
2743            case OFL1_1: return "OFL-1.1";
2744            case OGTSL: return "OGTSL";
2745            case OLDAP1_1: return "OLDAP-1.1";
2746            case OLDAP1_2: return "OLDAP-1.2";
2747            case OLDAP1_3: return "OLDAP-1.3";
2748            case OLDAP1_4: return "OLDAP-1.4";
2749            case OLDAP2_0_1: return "OLDAP-2.0.1";
2750            case OLDAP2_0: return "OLDAP-2.0";
2751            case OLDAP2_1: return "OLDAP-2.1";
2752            case OLDAP2_2_1: return "OLDAP-2.2.1";
2753            case OLDAP2_2_2: return "OLDAP-2.2.2";
2754            case OLDAP2_2: return "OLDAP-2.2";
2755            case OLDAP2_3: return "OLDAP-2.3";
2756            case OLDAP2_4: return "OLDAP-2.4";
2757            case OLDAP2_5: return "OLDAP-2.5";
2758            case OLDAP2_6: return "OLDAP-2.6";
2759            case OLDAP2_7: return "OLDAP-2.7";
2760            case OLDAP2_8: return "OLDAP-2.8";
2761            case OML: return "OML";
2762            case OPENSSL: return "OpenSSL";
2763            case OPL1_0: return "OPL-1.0";
2764            case OSETPL2_1: return "OSET-PL-2.1";
2765            case OSL1_0: return "OSL-1.0";
2766            case OSL1_1: return "OSL-1.1";
2767            case OSL2_0: return "OSL-2.0";
2768            case OSL2_1: return "OSL-2.1";
2769            case OSL3_0: return "OSL-3.0";
2770            case PDDL1_0: return "PDDL-1.0";
2771            case PHP3_0: return "PHP-3.0";
2772            case PHP3_01: return "PHP-3.01";
2773            case PLEXUS: return "Plexus";
2774            case POSTGRESQL: return "PostgreSQL";
2775            case PSFRAG: return "psfrag";
2776            case PSUTILS: return "psutils";
2777            case PYTHON2_0: return "Python-2.0";
2778            case QHULL: return "Qhull";
2779            case QPL1_0: return "QPL-1.0";
2780            case RDISC: return "Rdisc";
2781            case RHECOS1_1: return "RHeCos-1.1";
2782            case RPL1_1: return "RPL-1.1";
2783            case RPL1_5: return "RPL-1.5";
2784            case RPSL1_0: return "RPSL-1.0";
2785            case RSAMD: return "RSA-MD";
2786            case RSCPL: return "RSCPL";
2787            case RUBY: return "Ruby";
2788            case SAXPD: return "SAX-PD";
2789            case SAXPATH: return "Saxpath";
2790            case SCEA: return "SCEA";
2791            case SENDMAIL: return "Sendmail";
2792            case SGIB1_0: return "SGI-B-1.0";
2793            case SGIB1_1: return "SGI-B-1.1";
2794            case SGIB2_0: return "SGI-B-2.0";
2795            case SIMPL2_0: return "SimPL-2.0";
2796            case SISSL1_2: return "SISSL-1.2";
2797            case SISSL: return "SISSL";
2798            case SLEEPYCAT: return "Sleepycat";
2799            case SMLNJ: return "SMLNJ";
2800            case SMPPL: return "SMPPL";
2801            case SNIA: return "SNIA";
2802            case SPENCER86: return "Spencer-86";
2803            case SPENCER94: return "Spencer-94";
2804            case SPENCER99: return "Spencer-99";
2805            case SPL1_0: return "SPL-1.0";
2806            case SUGARCRM1_1_3: return "SugarCRM-1.1.3";
2807            case SWL: return "SWL";
2808            case TCL: return "TCL";
2809            case TCPWRAPPERS: return "TCP-wrappers";
2810            case TMATE: return "TMate";
2811            case TORQUE1_1: return "TORQUE-1.1";
2812            case TOSL: return "TOSL";
2813            case UNICODEDFS2015: return "Unicode-DFS-2015";
2814            case UNICODEDFS2016: return "Unicode-DFS-2016";
2815            case UNICODETOU: return "Unicode-TOU";
2816            case UNLICENSE: return "Unlicense";
2817            case UPL1_0: return "UPL-1.0";
2818            case VIM: return "Vim";
2819            case VOSTROM: return "VOSTROM";
2820            case VSL1_0: return "VSL-1.0";
2821            case W3C19980720: return "W3C-19980720";
2822            case W3C20150513: return "W3C-20150513";
2823            case W3C: return "W3C";
2824            case WATCOM1_0: return "Watcom-1.0";
2825            case WSUIPA: return "Wsuipa";
2826            case WTFPL: return "WTFPL";
2827            case X11: return "X11";
2828            case XEROX: return "Xerox";
2829            case XFREE861_1: return "XFree86-1.1";
2830            case XINETD: return "xinetd";
2831            case XNET: return "Xnet";
2832            case XPP: return "xpp";
2833            case XSKAT: return "XSkat";
2834            case YPL1_0: return "YPL-1.0";
2835            case YPL1_1: return "YPL-1.1";
2836            case ZED: return "Zed";
2837            case ZEND2_0: return "Zend-2.0";
2838            case ZIMBRA1_3: return "Zimbra-1.3";
2839            case ZIMBRA1_4: return "Zimbra-1.4";
2840            case ZLIBACKNOWLEDGEMENT: return "zlib-acknowledgement";
2841            case ZLIB: return "Zlib";
2842            case ZPL1_1: return "ZPL-1.1";
2843            case ZPL2_0: return "ZPL-2.0";
2844            case ZPL2_1: return "ZPL-2.1";
2845            case NULL: return null;
2846            default: return "?";
2847          }
2848        }
2849        public String getSystem() {
2850          switch (this) {
2851            case NOTOPENSOURCE: return "http://hl7.org/fhir/spdx-license";
2852            case _0BSD: return "http://hl7.org/fhir/spdx-license";
2853            case AAL: return "http://hl7.org/fhir/spdx-license";
2854            case ABSTYLES: return "http://hl7.org/fhir/spdx-license";
2855            case ADOBE2006: return "http://hl7.org/fhir/spdx-license";
2856            case ADOBEGLYPH: return "http://hl7.org/fhir/spdx-license";
2857            case ADSL: return "http://hl7.org/fhir/spdx-license";
2858            case AFL1_1: return "http://hl7.org/fhir/spdx-license";
2859            case AFL1_2: return "http://hl7.org/fhir/spdx-license";
2860            case AFL2_0: return "http://hl7.org/fhir/spdx-license";
2861            case AFL2_1: return "http://hl7.org/fhir/spdx-license";
2862            case AFL3_0: return "http://hl7.org/fhir/spdx-license";
2863            case AFMPARSE: return "http://hl7.org/fhir/spdx-license";
2864            case AGPL1_0ONLY: return "http://hl7.org/fhir/spdx-license";
2865            case AGPL1_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2866            case AGPL3_0ONLY: return "http://hl7.org/fhir/spdx-license";
2867            case AGPL3_0ORLATER: return "http://hl7.org/fhir/spdx-license";
2868            case ALADDIN: return "http://hl7.org/fhir/spdx-license";
2869            case AMDPLPA: return "http://hl7.org/fhir/spdx-license";
2870            case AML: return "http://hl7.org/fhir/spdx-license";
2871            case AMPAS: return "http://hl7.org/fhir/spdx-license";
2872            case ANTLRPD: return "http://hl7.org/fhir/spdx-license";
2873            case APACHE1_0: return "http://hl7.org/fhir/spdx-license";
2874            case APACHE1_1: return "http://hl7.org/fhir/spdx-license";
2875            case APACHE2_0: return "http://hl7.org/fhir/spdx-license";
2876            case APAFML: return "http://hl7.org/fhir/spdx-license";
2877            case APL1_0: return "http://hl7.org/fhir/spdx-license";
2878            case APSL1_0: return "http://hl7.org/fhir/spdx-license";
2879            case APSL1_1: return "http://hl7.org/fhir/spdx-license";
2880            case APSL1_2: return "http://hl7.org/fhir/spdx-license";
2881            case APSL2_0: return "http://hl7.org/fhir/spdx-license";
2882            case ARTISTIC1_0CL8: return "http://hl7.org/fhir/spdx-license";
2883            case ARTISTIC1_0PERL: return "http://hl7.org/fhir/spdx-license";
2884            case ARTISTIC1_0: return "http://hl7.org/fhir/spdx-license";
2885            case ARTISTIC2_0: return "http://hl7.org/fhir/spdx-license";
2886            case BAHYPH: return "http://hl7.org/fhir/spdx-license";
2887            case BARR: return "http://hl7.org/fhir/spdx-license";
2888            case BEERWARE: return "http://hl7.org/fhir/spdx-license";
2889            case BITTORRENT1_0: return "http://hl7.org/fhir/spdx-license";
2890            case BITTORRENT1_1: return "http://hl7.org/fhir/spdx-license";
2891            case BORCEUX: return "http://hl7.org/fhir/spdx-license";
2892            case BSD1CLAUSE: return "http://hl7.org/fhir/spdx-license";
2893            case BSD2CLAUSEFREEBSD: return "http://hl7.org/fhir/spdx-license";
2894            case BSD2CLAUSENETBSD: return "http://hl7.org/fhir/spdx-license";
2895            case BSD2CLAUSEPATENT: return "http://hl7.org/fhir/spdx-license";
2896            case BSD2CLAUSE: return "http://hl7.org/fhir/spdx-license";
2897            case BSD3CLAUSEATTRIBUTION: return "http://hl7.org/fhir/spdx-license";
2898            case BSD3CLAUSECLEAR: return "http://hl7.org/fhir/spdx-license";
2899            case BSD3CLAUSELBNL: return "http://hl7.org/fhir/spdx-license";
2900            case BSD3CLAUSENONUCLEARLICENSE2014: return "http://hl7.org/fhir/spdx-license";
2901            case BSD3CLAUSENONUCLEARLICENSE: return "http://hl7.org/fhir/spdx-license";
2902            case BSD3CLAUSENONUCLEARWARRANTY: return "http://hl7.org/fhir/spdx-license";
2903            case BSD3CLAUSE: return "http://hl7.org/fhir/spdx-license";
2904            case BSD4CLAUSEUC: return "http://hl7.org/fhir/spdx-license";
2905            case BSD4CLAUSE: return "http://hl7.org/fhir/spdx-license";
2906            case BSDPROTECTION: return "http://hl7.org/fhir/spdx-license";
2907            case BSDSOURCECODE: return "http://hl7.org/fhir/spdx-license";
2908            case BSL1_0: return "http://hl7.org/fhir/spdx-license";
2909            case BZIP21_0_5: return "http://hl7.org/fhir/spdx-license";
2910            case BZIP21_0_6: return "http://hl7.org/fhir/spdx-license";
2911            case CALDERA: return "http://hl7.org/fhir/spdx-license";
2912            case CATOSL1_1: return "http://hl7.org/fhir/spdx-license";
2913            case CCBY1_0: return "http://hl7.org/fhir/spdx-license";
2914            case CCBY2_0: return "http://hl7.org/fhir/spdx-license";
2915            case CCBY2_5: return "http://hl7.org/fhir/spdx-license";
2916            case CCBY3_0: return "http://hl7.org/fhir/spdx-license";
2917            case CCBY4_0: return "http://hl7.org/fhir/spdx-license";
2918            case CCBYNC1_0: return "http://hl7.org/fhir/spdx-license";
2919            case CCBYNC2_0: return "http://hl7.org/fhir/spdx-license";
2920            case CCBYNC2_5: return "http://hl7.org/fhir/spdx-license";
2921            case CCBYNC3_0: return "http://hl7.org/fhir/spdx-license";
2922            case CCBYNC4_0: return "http://hl7.org/fhir/spdx-license";
2923            case CCBYNCND1_0: return "http://hl7.org/fhir/spdx-license";
2924            case CCBYNCND2_0: return "http://hl7.org/fhir/spdx-license";
2925            case CCBYNCND2_5: return "http://hl7.org/fhir/spdx-license";
2926            case CCBYNCND3_0: return "http://hl7.org/fhir/spdx-license";
2927            case CCBYNCND4_0: return "http://hl7.org/fhir/spdx-license";
2928            case CCBYNCSA1_0: return "http://hl7.org/fhir/spdx-license";
2929            case CCBYNCSA2_0: return "http://hl7.org/fhir/spdx-license";
2930            case CCBYNCSA2_5: return "http://hl7.org/fhir/spdx-license";
2931            case CCBYNCSA3_0: return "http://hl7.org/fhir/spdx-license";
2932            case CCBYNCSA4_0: return "http://hl7.org/fhir/spdx-license";
2933            case CCBYND1_0: return "http://hl7.org/fhir/spdx-license";
2934            case CCBYND2_0: return "http://hl7.org/fhir/spdx-license";
2935            case CCBYND2_5: return "http://hl7.org/fhir/spdx-license";
2936            case CCBYND3_0: return "http://hl7.org/fhir/spdx-license";
2937            case CCBYND4_0: return "http://hl7.org/fhir/spdx-license";
2938            case CCBYSA1_0: return "http://hl7.org/fhir/spdx-license";
2939            case CCBYSA2_0: return "http://hl7.org/fhir/spdx-license";
2940            case CCBYSA2_5: return "http://hl7.org/fhir/spdx-license";
2941            case CCBYSA3_0: return "http://hl7.org/fhir/spdx-license";
2942            case CCBYSA4_0: return "http://hl7.org/fhir/spdx-license";
2943            case CC01_0: return "http://hl7.org/fhir/spdx-license";
2944            case CDDL1_0: return "http://hl7.org/fhir/spdx-license";
2945            case CDDL1_1: return "http://hl7.org/fhir/spdx-license";
2946            case CDLAPERMISSIVE1_0: return "http://hl7.org/fhir/spdx-license";
2947            case CDLASHARING1_0: return "http://hl7.org/fhir/spdx-license";
2948            case CECILL1_0: return "http://hl7.org/fhir/spdx-license";
2949            case CECILL1_1: return "http://hl7.org/fhir/spdx-license";
2950            case CECILL2_0: return "http://hl7.org/fhir/spdx-license";
2951            case CECILL2_1: return "http://hl7.org/fhir/spdx-license";
2952            case CECILLB: return "http://hl7.org/fhir/spdx-license";
2953            case CECILLC: return "http://hl7.org/fhir/spdx-license";
2954            case CLARTISTIC: return "http://hl7.org/fhir/spdx-license";
2955            case CNRIJYTHON: return "http://hl7.org/fhir/spdx-license";
2956            case CNRIPYTHONGPLCOMPATIBLE: return "http://hl7.org/fhir/spdx-license";
2957            case CNRIPYTHON: return "http://hl7.org/fhir/spdx-license";
2958            case CONDOR1_1: return "http://hl7.org/fhir/spdx-license";
2959            case CPAL1_0: return "http://hl7.org/fhir/spdx-license";
2960            case CPL1_0: return "http://hl7.org/fhir/spdx-license";
2961            case CPOL1_02: return "http://hl7.org/fhir/spdx-license";
2962            case CROSSWORD: return "http://hl7.org/fhir/spdx-license";
2963            case CRYSTALSTACKER: return "http://hl7.org/fhir/spdx-license";
2964            case CUAOPL1_0: return "http://hl7.org/fhir/spdx-license";
2965            case CUBE: return "http://hl7.org/fhir/spdx-license";
2966            case CURL: return "http://hl7.org/fhir/spdx-license";
2967            case DFSL1_0: return "http://hl7.org/fhir/spdx-license";
2968            case DIFFMARK: return "http://hl7.org/fhir/spdx-license";
2969            case DOC: return "http://hl7.org/fhir/spdx-license";
2970            case DOTSEQN: return "http://hl7.org/fhir/spdx-license";
2971            case DSDP: return "http://hl7.org/fhir/spdx-license";
2972            case DVIPDFM: return "http://hl7.org/fhir/spdx-license";
2973            case ECL1_0: return "http://hl7.org/fhir/spdx-license";
2974            case ECL2_0: return "http://hl7.org/fhir/spdx-license";
2975            case EFL1_0: return "http://hl7.org/fhir/spdx-license";
2976            case EFL2_0: return "http://hl7.org/fhir/spdx-license";
2977            case EGENIX: return "http://hl7.org/fhir/spdx-license";
2978            case ENTESSA: return "http://hl7.org/fhir/spdx-license";
2979            case EPL1_0: return "http://hl7.org/fhir/spdx-license";
2980            case EPL2_0: return "http://hl7.org/fhir/spdx-license";
2981            case ERLPL1_1: return "http://hl7.org/fhir/spdx-license";
2982            case EUDATAGRID: return "http://hl7.org/fhir/spdx-license";
2983            case EUPL1_0: return "http://hl7.org/fhir/spdx-license";
2984            case EUPL1_1: return "http://hl7.org/fhir/spdx-license";
2985            case EUPL1_2: return "http://hl7.org/fhir/spdx-license";
2986            case EUROSYM: return "http://hl7.org/fhir/spdx-license";
2987            case FAIR: return "http://hl7.org/fhir/spdx-license";
2988            case FRAMEWORX1_0: return "http://hl7.org/fhir/spdx-license";
2989            case FREEIMAGE: return "http://hl7.org/fhir/spdx-license";
2990            case FSFAP: return "http://hl7.org/fhir/spdx-license";
2991            case FSFUL: return "http://hl7.org/fhir/spdx-license";
2992            case FSFULLR: return "http://hl7.org/fhir/spdx-license";
2993            case FTL: return "http://hl7.org/fhir/spdx-license";
2994            case GFDL1_1ONLY: return "http://hl7.org/fhir/spdx-license";
2995            case GFDL1_1ORLATER: return "http://hl7.org/fhir/spdx-license";
2996            case GFDL1_2ONLY: return "http://hl7.org/fhir/spdx-license";
2997            case GFDL1_2ORLATER: return "http://hl7.org/fhir/spdx-license";
2998            case GFDL1_3ONLY: return "http://hl7.org/fhir/spdx-license";
2999            case GFDL1_3ORLATER: return "http://hl7.org/fhir/spdx-license";
3000            case GIFTWARE: return "http://hl7.org/fhir/spdx-license";
3001            case GL2PS: return "http://hl7.org/fhir/spdx-license";
3002            case GLIDE: return "http://hl7.org/fhir/spdx-license";
3003            case GLULXE: return "http://hl7.org/fhir/spdx-license";
3004            case GNUPLOT: return "http://hl7.org/fhir/spdx-license";
3005            case GPL1_0ONLY: return "http://hl7.org/fhir/spdx-license";
3006            case GPL1_0ORLATER: return "http://hl7.org/fhir/spdx-license";
3007            case GPL2_0ONLY: return "http://hl7.org/fhir/spdx-license";
3008            case GPL2_0ORLATER: return "http://hl7.org/fhir/spdx-license";
3009            case GPL3_0ONLY: return "http://hl7.org/fhir/spdx-license";
3010            case GPL3_0ORLATER: return "http://hl7.org/fhir/spdx-license";
3011            case GSOAP1_3B: return "http://hl7.org/fhir/spdx-license";
3012            case HASKELLREPORT: return "http://hl7.org/fhir/spdx-license";
3013            case HPND: return "http://hl7.org/fhir/spdx-license";
3014            case IBMPIBS: return "http://hl7.org/fhir/spdx-license";
3015            case ICU: return "http://hl7.org/fhir/spdx-license";
3016            case IJG: return "http://hl7.org/fhir/spdx-license";
3017            case IMAGEMAGICK: return "http://hl7.org/fhir/spdx-license";
3018            case IMATIX: return "http://hl7.org/fhir/spdx-license";
3019            case IMLIB2: return "http://hl7.org/fhir/spdx-license";
3020            case INFOZIP: return "http://hl7.org/fhir/spdx-license";
3021            case INTELACPI: return "http://hl7.org/fhir/spdx-license";
3022            case INTEL: return "http://hl7.org/fhir/spdx-license";
3023            case INTERBASE1_0: return "http://hl7.org/fhir/spdx-license";
3024            case IPA: return "http://hl7.org/fhir/spdx-license";
3025            case IPL1_0: return "http://hl7.org/fhir/spdx-license";
3026            case ISC: return "http://hl7.org/fhir/spdx-license";
3027            case JASPER2_0: return "http://hl7.org/fhir/spdx-license";
3028            case JSON: return "http://hl7.org/fhir/spdx-license";
3029            case LAL1_2: return "http://hl7.org/fhir/spdx-license";
3030            case LAL1_3: return "http://hl7.org/fhir/spdx-license";
3031            case LATEX2E: return "http://hl7.org/fhir/spdx-license";
3032            case LEPTONICA: return "http://hl7.org/fhir/spdx-license";
3033            case LGPL2_0ONLY: return "http://hl7.org/fhir/spdx-license";
3034            case LGPL2_0ORLATER: return "http://hl7.org/fhir/spdx-license";
3035            case LGPL2_1ONLY: return "http://hl7.org/fhir/spdx-license";
3036            case LGPL2_1ORLATER: return "http://hl7.org/fhir/spdx-license";
3037            case LGPL3_0ONLY: return "http://hl7.org/fhir/spdx-license";
3038            case LGPL3_0ORLATER: return "http://hl7.org/fhir/spdx-license";
3039            case LGPLLR: return "http://hl7.org/fhir/spdx-license";
3040            case LIBPNG: return "http://hl7.org/fhir/spdx-license";
3041            case LIBTIFF: return "http://hl7.org/fhir/spdx-license";
3042            case LILIQP1_1: return "http://hl7.org/fhir/spdx-license";
3043            case LILIQR1_1: return "http://hl7.org/fhir/spdx-license";
3044            case LILIQRPLUS1_1: return "http://hl7.org/fhir/spdx-license";
3045            case LINUXOPENIB: return "http://hl7.org/fhir/spdx-license";
3046            case LPL1_0: return "http://hl7.org/fhir/spdx-license";
3047            case LPL1_02: return "http://hl7.org/fhir/spdx-license";
3048            case LPPL1_0: return "http://hl7.org/fhir/spdx-license";
3049            case LPPL1_1: return "http://hl7.org/fhir/spdx-license";
3050            case LPPL1_2: return "http://hl7.org/fhir/spdx-license";
3051            case LPPL1_3A: return "http://hl7.org/fhir/spdx-license";
3052            case LPPL1_3C: return "http://hl7.org/fhir/spdx-license";
3053            case MAKEINDEX: return "http://hl7.org/fhir/spdx-license";
3054            case MIROS: return "http://hl7.org/fhir/spdx-license";
3055            case MIT0: return "http://hl7.org/fhir/spdx-license";
3056            case MITADVERTISING: return "http://hl7.org/fhir/spdx-license";
3057            case MITCMU: return "http://hl7.org/fhir/spdx-license";
3058            case MITENNA: return "http://hl7.org/fhir/spdx-license";
3059            case MITFEH: return "http://hl7.org/fhir/spdx-license";
3060            case MIT: return "http://hl7.org/fhir/spdx-license";
3061            case MITNFA: return "http://hl7.org/fhir/spdx-license";
3062            case MOTOSOTO: return "http://hl7.org/fhir/spdx-license";
3063            case MPICH2: return "http://hl7.org/fhir/spdx-license";
3064            case MPL1_0: return "http://hl7.org/fhir/spdx-license";
3065            case MPL1_1: return "http://hl7.org/fhir/spdx-license";
3066            case MPL2_0NOCOPYLEFTEXCEPTION: return "http://hl7.org/fhir/spdx-license";
3067            case MPL2_0: return "http://hl7.org/fhir/spdx-license";
3068            case MSPL: return "http://hl7.org/fhir/spdx-license";
3069            case MSRL: return "http://hl7.org/fhir/spdx-license";
3070            case MTLL: return "http://hl7.org/fhir/spdx-license";
3071            case MULTICS: return "http://hl7.org/fhir/spdx-license";
3072            case MUP: return "http://hl7.org/fhir/spdx-license";
3073            case NASA1_3: return "http://hl7.org/fhir/spdx-license";
3074            case NAUMEN: return "http://hl7.org/fhir/spdx-license";
3075            case NBPL1_0: return "http://hl7.org/fhir/spdx-license";
3076            case NCSA: return "http://hl7.org/fhir/spdx-license";
3077            case NETSNMP: return "http://hl7.org/fhir/spdx-license";
3078            case NETCDF: return "http://hl7.org/fhir/spdx-license";
3079            case NEWSLETR: return "http://hl7.org/fhir/spdx-license";
3080            case NGPL: return "http://hl7.org/fhir/spdx-license";
3081            case NLOD1_0: return "http://hl7.org/fhir/spdx-license";
3082            case NLPL: return "http://hl7.org/fhir/spdx-license";
3083            case NOKIA: return "http://hl7.org/fhir/spdx-license";
3084            case NOSL: return "http://hl7.org/fhir/spdx-license";
3085            case NOWEB: return "http://hl7.org/fhir/spdx-license";
3086            case NPL1_0: return "http://hl7.org/fhir/spdx-license";
3087            case NPL1_1: return "http://hl7.org/fhir/spdx-license";
3088            case NPOSL3_0: return "http://hl7.org/fhir/spdx-license";
3089            case NRL: return "http://hl7.org/fhir/spdx-license";
3090            case NTP: return "http://hl7.org/fhir/spdx-license";
3091            case OCCTPL: return "http://hl7.org/fhir/spdx-license";
3092            case OCLC2_0: return "http://hl7.org/fhir/spdx-license";
3093            case ODBL1_0: return "http://hl7.org/fhir/spdx-license";
3094            case OFL1_0: return "http://hl7.org/fhir/spdx-license";
3095            case OFL1_1: return "http://hl7.org/fhir/spdx-license";
3096            case OGTSL: return "http://hl7.org/fhir/spdx-license";
3097            case OLDAP1_1: return "http://hl7.org/fhir/spdx-license";
3098            case OLDAP1_2: return "http://hl7.org/fhir/spdx-license";
3099            case OLDAP1_3: return "http://hl7.org/fhir/spdx-license";
3100            case OLDAP1_4: return "http://hl7.org/fhir/spdx-license";
3101            case OLDAP2_0_1: return "http://hl7.org/fhir/spdx-license";
3102            case OLDAP2_0: return "http://hl7.org/fhir/spdx-license";
3103            case OLDAP2_1: return "http://hl7.org/fhir/spdx-license";
3104            case OLDAP2_2_1: return "http://hl7.org/fhir/spdx-license";
3105            case OLDAP2_2_2: return "http://hl7.org/fhir/spdx-license";
3106            case OLDAP2_2: return "http://hl7.org/fhir/spdx-license";
3107            case OLDAP2_3: return "http://hl7.org/fhir/spdx-license";
3108            case OLDAP2_4: return "http://hl7.org/fhir/spdx-license";
3109            case OLDAP2_5: return "http://hl7.org/fhir/spdx-license";
3110            case OLDAP2_6: return "http://hl7.org/fhir/spdx-license";
3111            case OLDAP2_7: return "http://hl7.org/fhir/spdx-license";
3112            case OLDAP2_8: return "http://hl7.org/fhir/spdx-license";
3113            case OML: return "http://hl7.org/fhir/spdx-license";
3114            case OPENSSL: return "http://hl7.org/fhir/spdx-license";
3115            case OPL1_0: return "http://hl7.org/fhir/spdx-license";
3116            case OSETPL2_1: return "http://hl7.org/fhir/spdx-license";
3117            case OSL1_0: return "http://hl7.org/fhir/spdx-license";
3118            case OSL1_1: return "http://hl7.org/fhir/spdx-license";
3119            case OSL2_0: return "http://hl7.org/fhir/spdx-license";
3120            case OSL2_1: return "http://hl7.org/fhir/spdx-license";
3121            case OSL3_0: return "http://hl7.org/fhir/spdx-license";
3122            case PDDL1_0: return "http://hl7.org/fhir/spdx-license";
3123            case PHP3_0: return "http://hl7.org/fhir/spdx-license";
3124            case PHP3_01: return "http://hl7.org/fhir/spdx-license";
3125            case PLEXUS: return "http://hl7.org/fhir/spdx-license";
3126            case POSTGRESQL: return "http://hl7.org/fhir/spdx-license";
3127            case PSFRAG: return "http://hl7.org/fhir/spdx-license";
3128            case PSUTILS: return "http://hl7.org/fhir/spdx-license";
3129            case PYTHON2_0: return "http://hl7.org/fhir/spdx-license";
3130            case QHULL: return "http://hl7.org/fhir/spdx-license";
3131            case QPL1_0: return "http://hl7.org/fhir/spdx-license";
3132            case RDISC: return "http://hl7.org/fhir/spdx-license";
3133            case RHECOS1_1: return "http://hl7.org/fhir/spdx-license";
3134            case RPL1_1: return "http://hl7.org/fhir/spdx-license";
3135            case RPL1_5: return "http://hl7.org/fhir/spdx-license";
3136            case RPSL1_0: return "http://hl7.org/fhir/spdx-license";
3137            case RSAMD: return "http://hl7.org/fhir/spdx-license";
3138            case RSCPL: return "http://hl7.org/fhir/spdx-license";
3139            case RUBY: return "http://hl7.org/fhir/spdx-license";
3140            case SAXPD: return "http://hl7.org/fhir/spdx-license";
3141            case SAXPATH: return "http://hl7.org/fhir/spdx-license";
3142            case SCEA: return "http://hl7.org/fhir/spdx-license";
3143            case SENDMAIL: return "http://hl7.org/fhir/spdx-license";
3144            case SGIB1_0: return "http://hl7.org/fhir/spdx-license";
3145            case SGIB1_1: return "http://hl7.org/fhir/spdx-license";
3146            case SGIB2_0: return "http://hl7.org/fhir/spdx-license";
3147            case SIMPL2_0: return "http://hl7.org/fhir/spdx-license";
3148            case SISSL1_2: return "http://hl7.org/fhir/spdx-license";
3149            case SISSL: return "http://hl7.org/fhir/spdx-license";
3150            case SLEEPYCAT: return "http://hl7.org/fhir/spdx-license";
3151            case SMLNJ: return "http://hl7.org/fhir/spdx-license";
3152            case SMPPL: return "http://hl7.org/fhir/spdx-license";
3153            case SNIA: return "http://hl7.org/fhir/spdx-license";
3154            case SPENCER86: return "http://hl7.org/fhir/spdx-license";
3155            case SPENCER94: return "http://hl7.org/fhir/spdx-license";
3156            case SPENCER99: return "http://hl7.org/fhir/spdx-license";
3157            case SPL1_0: return "http://hl7.org/fhir/spdx-license";
3158            case SUGARCRM1_1_3: return "http://hl7.org/fhir/spdx-license";
3159            case SWL: return "http://hl7.org/fhir/spdx-license";
3160            case TCL: return "http://hl7.org/fhir/spdx-license";
3161            case TCPWRAPPERS: return "http://hl7.org/fhir/spdx-license";
3162            case TMATE: return "http://hl7.org/fhir/spdx-license";
3163            case TORQUE1_1: return "http://hl7.org/fhir/spdx-license";
3164            case TOSL: return "http://hl7.org/fhir/spdx-license";
3165            case UNICODEDFS2015: return "http://hl7.org/fhir/spdx-license";
3166            case UNICODEDFS2016: return "http://hl7.org/fhir/spdx-license";
3167            case UNICODETOU: return "http://hl7.org/fhir/spdx-license";
3168            case UNLICENSE: return "http://hl7.org/fhir/spdx-license";
3169            case UPL1_0: return "http://hl7.org/fhir/spdx-license";
3170            case VIM: return "http://hl7.org/fhir/spdx-license";
3171            case VOSTROM: return "http://hl7.org/fhir/spdx-license";
3172            case VSL1_0: return "http://hl7.org/fhir/spdx-license";
3173            case W3C19980720: return "http://hl7.org/fhir/spdx-license";
3174            case W3C20150513: return "http://hl7.org/fhir/spdx-license";
3175            case W3C: return "http://hl7.org/fhir/spdx-license";
3176            case WATCOM1_0: return "http://hl7.org/fhir/spdx-license";
3177            case WSUIPA: return "http://hl7.org/fhir/spdx-license";
3178            case WTFPL: return "http://hl7.org/fhir/spdx-license";
3179            case X11: return "http://hl7.org/fhir/spdx-license";
3180            case XEROX: return "http://hl7.org/fhir/spdx-license";
3181            case XFREE861_1: return "http://hl7.org/fhir/spdx-license";
3182            case XINETD: return "http://hl7.org/fhir/spdx-license";
3183            case XNET: return "http://hl7.org/fhir/spdx-license";
3184            case XPP: return "http://hl7.org/fhir/spdx-license";
3185            case XSKAT: return "http://hl7.org/fhir/spdx-license";
3186            case YPL1_0: return "http://hl7.org/fhir/spdx-license";
3187            case YPL1_1: return "http://hl7.org/fhir/spdx-license";
3188            case ZED: return "http://hl7.org/fhir/spdx-license";
3189            case ZEND2_0: return "http://hl7.org/fhir/spdx-license";
3190            case ZIMBRA1_3: return "http://hl7.org/fhir/spdx-license";
3191            case ZIMBRA1_4: return "http://hl7.org/fhir/spdx-license";
3192            case ZLIBACKNOWLEDGEMENT: return "http://hl7.org/fhir/spdx-license";
3193            case ZLIB: return "http://hl7.org/fhir/spdx-license";
3194            case ZPL1_1: return "http://hl7.org/fhir/spdx-license";
3195            case ZPL2_0: return "http://hl7.org/fhir/spdx-license";
3196            case ZPL2_1: return "http://hl7.org/fhir/spdx-license";
3197            case NULL: return null;
3198            default: return "?";
3199          }
3200        }
3201        public String getDefinition() {
3202          switch (this) {
3203            case NOTOPENSOURCE: return "Not an open source license.";
3204            case _0BSD: return "BSD Zero Clause License.";
3205            case AAL: return "Attribution Assurance License.";
3206            case ABSTYLES: return "Abstyles License.";
3207            case ADOBE2006: return "Adobe Systems Incorporated Source Code License Agreement.";
3208            case ADOBEGLYPH: return "Adobe Glyph List License.";
3209            case ADSL: return "Amazon Digital Services License.";
3210            case AFL1_1: return "Academic Free License v1.1.";
3211            case AFL1_2: return "Academic Free License v1.2.";
3212            case AFL2_0: return "Academic Free License v2.0.";
3213            case AFL2_1: return "Academic Free License v2.1.";
3214            case AFL3_0: return "Academic Free License v3.0.";
3215            case AFMPARSE: return "Afmparse License.";
3216            case AGPL1_0ONLY: return "Affero General Public License v1.0 only.";
3217            case AGPL1_0ORLATER: return "Affero General Public License v1.0 or later.";
3218            case AGPL3_0ONLY: return "GNU Affero General Public License v3.0 only.";
3219            case AGPL3_0ORLATER: return "GNU Affero General Public License v3.0 or later.";
3220            case ALADDIN: return "Aladdin Free Public License.";
3221            case AMDPLPA: return "AMD's plpa_map.c License.";
3222            case AML: return "Apple MIT License.";
3223            case AMPAS: return "Academy of Motion Picture Arts and Sciences BSD.";
3224            case ANTLRPD: return "ANTLR Software Rights Notice.";
3225            case APACHE1_0: return "Apache License 1.0.";
3226            case APACHE1_1: return "Apache License 1.1.";
3227            case APACHE2_0: return "Apache License 2.0.";
3228            case APAFML: return "Adobe Postscript AFM License.";
3229            case APL1_0: return "Adaptive Public License 1.0.";
3230            case APSL1_0: return "Apple Public Source License 1.0.";
3231            case APSL1_1: return "Apple Public Source License 1.1.";
3232            case APSL1_2: return "Apple Public Source License 1.2.";
3233            case APSL2_0: return "Apple Public Source License 2.0.";
3234            case ARTISTIC1_0CL8: return "Artistic License 1.0 w/clause 8.";
3235            case ARTISTIC1_0PERL: return "Artistic License 1.0 (Perl).";
3236            case ARTISTIC1_0: return "Artistic License 1.0.";
3237            case ARTISTIC2_0: return "Artistic License 2.0.";
3238            case BAHYPH: return "Bahyph License.";
3239            case BARR: return "Barr License.";
3240            case BEERWARE: return "Beerware License.";
3241            case BITTORRENT1_0: return "BitTorrent Open Source License v1.0.";
3242            case BITTORRENT1_1: return "BitTorrent Open Source License v1.1.";
3243            case BORCEUX: return "Borceux license.";
3244            case BSD1CLAUSE: return "BSD 1-Clause License.";
3245            case BSD2CLAUSEFREEBSD: return "BSD 2-Clause FreeBSD License.";
3246            case BSD2CLAUSENETBSD: return "BSD 2-Clause NetBSD License.";
3247            case BSD2CLAUSEPATENT: return "BSD-2-Clause Plus Patent License.";
3248            case BSD2CLAUSE: return "BSD 2-Clause \"Simplified\" License.";
3249            case BSD3CLAUSEATTRIBUTION: return "BSD with attribution.";
3250            case BSD3CLAUSECLEAR: return "BSD 3-Clause Clear License.";
3251            case BSD3CLAUSELBNL: return "Lawrence Berkeley National Labs BSD variant license.";
3252            case BSD3CLAUSENONUCLEARLICENSE2014: return "BSD 3-Clause No Nuclear License 2014.";
3253            case BSD3CLAUSENONUCLEARLICENSE: return "BSD 3-Clause No Nuclear License.";
3254            case BSD3CLAUSENONUCLEARWARRANTY: return "BSD 3-Clause No Nuclear Warranty.";
3255            case BSD3CLAUSE: return "BSD 3-Clause \"New\" or \"Revised\" License.";
3256            case BSD4CLAUSEUC: return "BSD-4-Clause (University of California-Specific).";
3257            case BSD4CLAUSE: return "BSD 4-Clause \"Original\" or \"Old\" License.";
3258            case BSDPROTECTION: return "BSD Protection License.";
3259            case BSDSOURCECODE: return "BSD Source Code Attribution.";
3260            case BSL1_0: return "Boost Software License 1.0.";
3261            case BZIP21_0_5: return "bzip2 and libbzip2 License v1.0.5.";
3262            case BZIP21_0_6: return "bzip2 and libbzip2 License v1.0.6.";
3263            case CALDERA: return "Caldera License.";
3264            case CATOSL1_1: return "Computer Associates Trusted Open Source License 1.1.";
3265            case CCBY1_0: return "Creative Commons Attribution 1.0 Generic.";
3266            case CCBY2_0: return "Creative Commons Attribution 2.0 Generic.";
3267            case CCBY2_5: return "Creative Commons Attribution 2.5 Generic.";
3268            case CCBY3_0: return "Creative Commons Attribution 3.0 Unported.";
3269            case CCBY4_0: return "Creative Commons Attribution 4.0 International.";
3270            case CCBYNC1_0: return "Creative Commons Attribution Non Commercial 1.0 Generic.";
3271            case CCBYNC2_0: return "Creative Commons Attribution Non Commercial 2.0 Generic.";
3272            case CCBYNC2_5: return "Creative Commons Attribution Non Commercial 2.5 Generic.";
3273            case CCBYNC3_0: return "Creative Commons Attribution Non Commercial 3.0 Unported.";
3274            case CCBYNC4_0: return "Creative Commons Attribution Non Commercial 4.0 International.";
3275            case CCBYNCND1_0: return "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic.";
3276            case CCBYNCND2_0: return "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic.";
3277            case CCBYNCND2_5: return "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic.";
3278            case CCBYNCND3_0: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported.";
3279            case CCBYNCND4_0: return "Creative Commons Attribution Non Commercial No Derivatives 4.0 International.";
3280            case CCBYNCSA1_0: return "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic.";
3281            case CCBYNCSA2_0: return "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic.";
3282            case CCBYNCSA2_5: return "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic.";
3283            case CCBYNCSA3_0: return "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported.";
3284            case CCBYNCSA4_0: return "Creative Commons Attribution Non Commercial Share Alike 4.0 International.";
3285            case CCBYND1_0: return "Creative Commons Attribution No Derivatives 1.0 Generic.";
3286            case CCBYND2_0: return "Creative Commons Attribution No Derivatives 2.0 Generic.";
3287            case CCBYND2_5: return "Creative Commons Attribution No Derivatives 2.5 Generic.";
3288            case CCBYND3_0: return "Creative Commons Attribution No Derivatives 3.0 Unported.";
3289            case CCBYND4_0: return "Creative Commons Attribution No Derivatives 4.0 International.";
3290            case CCBYSA1_0: return "Creative Commons Attribution Share Alike 1.0 Generic.";
3291            case CCBYSA2_0: return "Creative Commons Attribution Share Alike 2.0 Generic.";
3292            case CCBYSA2_5: return "Creative Commons Attribution Share Alike 2.5 Generic.";
3293            case CCBYSA3_0: return "Creative Commons Attribution Share Alike 3.0 Unported.";
3294            case CCBYSA4_0: return "Creative Commons Attribution Share Alike 4.0 International.";
3295            case CC01_0: return "Creative Commons Zero v1.0 Universal.";
3296            case CDDL1_0: return "Common Development and Distribution License 1.0.";
3297            case CDDL1_1: return "Common Development and Distribution License 1.1.";
3298            case CDLAPERMISSIVE1_0: return "Community Data License Agreement Permissive 1.0.";
3299            case CDLASHARING1_0: return "Community Data License Agreement Sharing 1.0.";
3300            case CECILL1_0: return "CeCILL Free Software License Agreement v1.0.";
3301            case CECILL1_1: return "CeCILL Free Software License Agreement v1.1.";
3302            case CECILL2_0: return "CeCILL Free Software License Agreement v2.0.";
3303            case CECILL2_1: return "CeCILL Free Software License Agreement v2.1.";
3304            case CECILLB: return "CeCILL-B Free Software License Agreement.";
3305            case CECILLC: return "CeCILL-C Free Software License Agreement.";
3306            case CLARTISTIC: return "Clarified Artistic License.";
3307            case CNRIJYTHON: return "CNRI Jython License.";
3308            case CNRIPYTHONGPLCOMPATIBLE: return "CNRI Python Open Source GPL Compatible License Agreement.";
3309            case CNRIPYTHON: return "CNRI Python License.";
3310            case CONDOR1_1: return "Condor Public License v1.1.";
3311            case CPAL1_0: return "Common Public Attribution License 1.0.";
3312            case CPL1_0: return "Common Public License 1.0.";
3313            case CPOL1_02: return "Code Project Open License 1.02.";
3314            case CROSSWORD: return "Crossword License.";
3315            case CRYSTALSTACKER: return "CrystalStacker License.";
3316            case CUAOPL1_0: return "CUA Office Public License v1.0.";
3317            case CUBE: return "Cube License.";
3318            case CURL: return "curl License.";
3319            case DFSL1_0: return "Deutsche Freie Software Lizenz.";
3320            case DIFFMARK: return "diffmark license.";
3321            case DOC: return "DOC License.";
3322            case DOTSEQN: return "Dotseqn License.";
3323            case DSDP: return "DSDP License.";
3324            case DVIPDFM: return "dvipdfm License.";
3325            case ECL1_0: return "Educational Community License v1.0.";
3326            case ECL2_0: return "Educational Community License v2.0.";
3327            case EFL1_0: return "Eiffel Forum License v1.0.";
3328            case EFL2_0: return "Eiffel Forum License v2.0.";
3329            case EGENIX: return "eGenix.com Public License 1.1.0.";
3330            case ENTESSA: return "Entessa Public License v1.0.";
3331            case EPL1_0: return "Eclipse Public License 1.0.";
3332            case EPL2_0: return "Eclipse Public License 2.0.";
3333            case ERLPL1_1: return "Erlang Public License v1.1.";
3334            case EUDATAGRID: return "EU DataGrid Software License.";
3335            case EUPL1_0: return "European Union Public License 1.0.";
3336            case EUPL1_1: return "European Union Public License 1.1.";
3337            case EUPL1_2: return "European Union Public License 1.2.";
3338            case EUROSYM: return "Eurosym License.";
3339            case FAIR: return "Fair License.";
3340            case FRAMEWORX1_0: return "Frameworx Open License 1.0.";
3341            case FREEIMAGE: return "FreeImage Public License v1.0.";
3342            case FSFAP: return "FSF All Permissive License.";
3343            case FSFUL: return "FSF Unlimited License.";
3344            case FSFULLR: return "FSF Unlimited License (with License Retention).";
3345            case FTL: return "Freetype Project License.";
3346            case GFDL1_1ONLY: return "GNU Free Documentation License v1.1 only.";
3347            case GFDL1_1ORLATER: return "GNU Free Documentation License v1.1 or later.";
3348            case GFDL1_2ONLY: return "GNU Free Documentation License v1.2 only.";
3349            case GFDL1_2ORLATER: return "GNU Free Documentation License v1.2 or later.";
3350            case GFDL1_3ONLY: return "GNU Free Documentation License v1.3 only.";
3351            case GFDL1_3ORLATER: return "GNU Free Documentation License v1.3 or later.";
3352            case GIFTWARE: return "Giftware License.";
3353            case GL2PS: return "GL2PS License.";
3354            case GLIDE: return "3dfx Glide License.";
3355            case GLULXE: return "Glulxe License.";
3356            case GNUPLOT: return "gnuplot License.";
3357            case GPL1_0ONLY: return "GNU General Public License v1.0 only.";
3358            case GPL1_0ORLATER: return "GNU General Public License v1.0 or later.";
3359            case GPL2_0ONLY: return "GNU General Public License v2.0 only.";
3360            case GPL2_0ORLATER: return "GNU General Public License v2.0 or later.";
3361            case GPL3_0ONLY: return "GNU General Public License v3.0 only.";
3362            case GPL3_0ORLATER: return "GNU General Public License v3.0 or later.";
3363            case GSOAP1_3B: return "gSOAP Public License v1.3b.";
3364            case HASKELLREPORT: return "Haskell Language Report License.";
3365            case HPND: return "Historical Permission Notice and Disclaimer.";
3366            case IBMPIBS: return "IBM PowerPC Initialization and Boot Software.";
3367            case ICU: return "ICU License.";
3368            case IJG: return "Independent JPEG Group License.";
3369            case IMAGEMAGICK: return "ImageMagick License.";
3370            case IMATIX: return "iMatix Standard Function Library Agreement.";
3371            case IMLIB2: return "Imlib2 License.";
3372            case INFOZIP: return "Info-ZIP License.";
3373            case INTELACPI: return "Intel ACPI Software License Agreement.";
3374            case INTEL: return "Intel Open Source License.";
3375            case INTERBASE1_0: return "Interbase Public License v1.0.";
3376            case IPA: return "IPA Font License.";
3377            case IPL1_0: return "IBM Public License v1.0.";
3378            case ISC: return "ISC License.";
3379            case JASPER2_0: return "JasPer License.";
3380            case JSON: return "JSON License.";
3381            case LAL1_2: return "Licence Art Libre 1.2.";
3382            case LAL1_3: return "Licence Art Libre 1.3.";
3383            case LATEX2E: return "Latex2e License.";
3384            case LEPTONICA: return "Leptonica License.";
3385            case LGPL2_0ONLY: return "GNU Library General Public License v2 only.";
3386            case LGPL2_0ORLATER: return "GNU Library General Public License v2 or later.";
3387            case LGPL2_1ONLY: return "GNU Lesser General Public License v2.1 only.";
3388            case LGPL2_1ORLATER: return "GNU Lesser General Public License v2.1 or later.";
3389            case LGPL3_0ONLY: return "GNU Lesser General Public License v3.0 only.";
3390            case LGPL3_0ORLATER: return "GNU Lesser General Public License v3.0 or later.";
3391            case LGPLLR: return "Lesser General Public License For Linguistic Resources.";
3392            case LIBPNG: return "libpng License.";
3393            case LIBTIFF: return "libtiff License.";
3394            case LILIQP1_1: return "Licence Libre du Québec – Permissive version 1.1.";
3395            case LILIQR1_1: return "Licence Libre du Québec – Réciprocité version 1.1.";
3396            case LILIQRPLUS1_1: return "Licence Libre du Québec – Réciprocité forte version 1.1.";
3397            case LINUXOPENIB: return "Linux Kernel Variant of OpenIB.org license.";
3398            case LPL1_0: return "Lucent Public License Version 1.0.";
3399            case LPL1_02: return "Lucent Public License v1.02.";
3400            case LPPL1_0: return "LaTeX Project Public License v1.0.";
3401            case LPPL1_1: return "LaTeX Project Public License v1.1.";
3402            case LPPL1_2: return "LaTeX Project Public License v1.2.";
3403            case LPPL1_3A: return "LaTeX Project Public License v1.3a.";
3404            case LPPL1_3C: return "LaTeX Project Public License v1.3c.";
3405            case MAKEINDEX: return "MakeIndex License.";
3406            case MIROS: return "MirOS License.";
3407            case MIT0: return "MIT No Attribution.";
3408            case MITADVERTISING: return "Enlightenment License (e16).";
3409            case MITCMU: return "CMU License.";
3410            case MITENNA: return "enna License.";
3411            case MITFEH: return "feh License.";
3412            case MIT: return "MIT License.";
3413            case MITNFA: return "MIT +no-false-attribs license.";
3414            case MOTOSOTO: return "Motosoto License.";
3415            case MPICH2: return "mpich2 License.";
3416            case MPL1_0: return "Mozilla Public License 1.0.";
3417            case MPL1_1: return "Mozilla Public License 1.1.";
3418            case MPL2_0NOCOPYLEFTEXCEPTION: return "Mozilla Public License 2.0 (no copyleft exception).";
3419            case MPL2_0: return "Mozilla Public License 2.0.";
3420            case MSPL: return "Microsoft Public License.";
3421            case MSRL: return "Microsoft Reciprocal License.";
3422            case MTLL: return "Matrix Template Library License.";
3423            case MULTICS: return "Multics License.";
3424            case MUP: return "Mup License.";
3425            case NASA1_3: return "NASA Open Source Agreement 1.3.";
3426            case NAUMEN: return "Naumen Public License.";
3427            case NBPL1_0: return "Net Boolean Public License v1.";
3428            case NCSA: return "University of Illinois/NCSA Open Source License.";
3429            case NETSNMP: return "Net-SNMP License.";
3430            case NETCDF: return "NetCDF license.";
3431            case NEWSLETR: return "Newsletr License.";
3432            case NGPL: return "Nethack General Public License.";
3433            case NLOD1_0: return "Norwegian Licence for Open Government Data.";
3434            case NLPL: return "No Limit Public License.";
3435            case NOKIA: return "Nokia Open Source License.";
3436            case NOSL: return "Netizen Open Source License.";
3437            case NOWEB: return "Noweb License.";
3438            case NPL1_0: return "Netscape Public License v1.0.";
3439            case NPL1_1: return "Netscape Public License v1.1.";
3440            case NPOSL3_0: return "Non-Profit Open Software License 3.0.";
3441            case NRL: return "NRL License.";
3442            case NTP: return "NTP License.";
3443            case OCCTPL: return "Open CASCADE Technology Public License.";
3444            case OCLC2_0: return "OCLC Research Public License 2.0.";
3445            case ODBL1_0: return "ODC Open Database License v1.0.";
3446            case OFL1_0: return "SIL Open Font License 1.0.";
3447            case OFL1_1: return "SIL Open Font License 1.1.";
3448            case OGTSL: return "Open Group Test Suite License.";
3449            case OLDAP1_1: return "Open LDAP Public License v1.1.";
3450            case OLDAP1_2: return "Open LDAP Public License v1.2.";
3451            case OLDAP1_3: return "Open LDAP Public License v1.3.";
3452            case OLDAP1_4: return "Open LDAP Public License v1.4.";
3453            case OLDAP2_0_1: return "Open LDAP Public License v2.0.1.";
3454            case OLDAP2_0: return "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B).";
3455            case OLDAP2_1: return "Open LDAP Public License v2.1.";
3456            case OLDAP2_2_1: return "Open LDAP Public License v2.2.1.";
3457            case OLDAP2_2_2: return "Open LDAP Public License 2.2.2.";
3458            case OLDAP2_2: return "Open LDAP Public License v2.2.";
3459            case OLDAP2_3: return "Open LDAP Public License v2.3.";
3460            case OLDAP2_4: return "Open LDAP Public License v2.4.";
3461            case OLDAP2_5: return "Open LDAP Public License v2.5.";
3462            case OLDAP2_6: return "Open LDAP Public License v2.6.";
3463            case OLDAP2_7: return "Open LDAP Public License v2.7.";
3464            case OLDAP2_8: return "Open LDAP Public License v2.8.";
3465            case OML: return "Open Market License.";
3466            case OPENSSL: return "OpenSSL License.";
3467            case OPL1_0: return "Open Public License v1.0.";
3468            case OSETPL2_1: return "OSET Public License version 2.1.";
3469            case OSL1_0: return "Open Software License 1.0.";
3470            case OSL1_1: return "Open Software License 1.1.";
3471            case OSL2_0: return "Open Software License 2.0.";
3472            case OSL2_1: return "Open Software License 2.1.";
3473            case OSL3_0: return "Open Software License 3.0.";
3474            case PDDL1_0: return "ODC Public Domain Dedication & License 1.0.";
3475            case PHP3_0: return "PHP License v3.0.";
3476            case PHP3_01: return "PHP License v3.01.";
3477            case PLEXUS: return "Plexus Classworlds License.";
3478            case POSTGRESQL: return "PostgreSQL License.";
3479            case PSFRAG: return "psfrag License.";
3480            case PSUTILS: return "psutils License.";
3481            case PYTHON2_0: return "Python License 2.0.";
3482            case QHULL: return "Qhull License.";
3483            case QPL1_0: return "Q Public License 1.0.";
3484            case RDISC: return "Rdisc License.";
3485            case RHECOS1_1: return "Red Hat eCos Public License v1.1.";
3486            case RPL1_1: return "Reciprocal Public License 1.1.";
3487            case RPL1_5: return "Reciprocal Public License 1.5.";
3488            case RPSL1_0: return "RealNetworks Public Source License v1.0.";
3489            case RSAMD: return "RSA Message-Digest License.";
3490            case RSCPL: return "Ricoh Source Code Public License.";
3491            case RUBY: return "Ruby License.";
3492            case SAXPD: return "Sax Public Domain Notice.";
3493            case SAXPATH: return "Saxpath License.";
3494            case SCEA: return "SCEA Shared Source License.";
3495            case SENDMAIL: return "Sendmail License.";
3496            case SGIB1_0: return "SGI Free Software License B v1.0.";
3497            case SGIB1_1: return "SGI Free Software License B v1.1.";
3498            case SGIB2_0: return "SGI Free Software License B v2.0.";
3499            case SIMPL2_0: return "Simple Public License 2.0.";
3500            case SISSL1_2: return "Sun Industry Standards Source License v1.2.";
3501            case SISSL: return "Sun Industry Standards Source License v1.1.";
3502            case SLEEPYCAT: return "Sleepycat License.";
3503            case SMLNJ: return "Standard ML of New Jersey License.";
3504            case SMPPL: return "Secure Messaging Protocol Public License.";
3505            case SNIA: return "SNIA Public License 1.1.";
3506            case SPENCER86: return "Spencer License 86.";
3507            case SPENCER94: return "Spencer License 94.";
3508            case SPENCER99: return "Spencer License 99.";
3509            case SPL1_0: return "Sun Public License v1.0.";
3510            case SUGARCRM1_1_3: return "SugarCRM Public License v1.1.3.";
3511            case SWL: return "Scheme Widget Library (SWL) Software License Agreement.";
3512            case TCL: return "TCL/TK License.";
3513            case TCPWRAPPERS: return "TCP Wrappers License.";
3514            case TMATE: return "TMate Open Source License.";
3515            case TORQUE1_1: return "TORQUE v2.5+ Software License v1.1.";
3516            case TOSL: return "Trusster Open Source License.";
3517            case UNICODEDFS2015: return "Unicode License Agreement - Data Files and Software (2015).";
3518            case UNICODEDFS2016: return "Unicode License Agreement - Data Files and Software (2016).";
3519            case UNICODETOU: return "Unicode Terms of Use.";
3520            case UNLICENSE: return "The Unlicense.";
3521            case UPL1_0: return "Universal Permissive License v1.0.";
3522            case VIM: return "Vim License.";
3523            case VOSTROM: return "VOSTROM Public License for Open Source.";
3524            case VSL1_0: return "Vovida Software License v1.0.";
3525            case W3C19980720: return "W3C Software Notice and License (1998-07-20).";
3526            case W3C20150513: return "W3C Software Notice and Document License (2015-05-13).";
3527            case W3C: return "W3C Software Notice and License (2002-12-31).";
3528            case WATCOM1_0: return "Sybase Open Watcom Public License 1.0.";
3529            case WSUIPA: return "Wsuipa License.";
3530            case WTFPL: return "Do What The F*ck You Want To Public License.";
3531            case X11: return "X11 License.";
3532            case XEROX: return "Xerox License.";
3533            case XFREE861_1: return "XFree86 License 1.1.";
3534            case XINETD: return "xinetd License.";
3535            case XNET: return "X.Net License.";
3536            case XPP: return "XPP License.";
3537            case XSKAT: return "XSkat License.";
3538            case YPL1_0: return "Yahoo! Public License v1.0.";
3539            case YPL1_1: return "Yahoo! Public License v1.1.";
3540            case ZED: return "Zed License.";
3541            case ZEND2_0: return "Zend License v2.0.";
3542            case ZIMBRA1_3: return "Zimbra Public License v1.3.";
3543            case ZIMBRA1_4: return "Zimbra Public License v1.4.";
3544            case ZLIBACKNOWLEDGEMENT: return "zlib/libpng License with Acknowledgement.";
3545            case ZLIB: return "zlib License.";
3546            case ZPL1_1: return "Zope Public License 1.1.";
3547            case ZPL2_0: return "Zope Public License 2.0.";
3548            case ZPL2_1: return "Zope Public License 2.1.";
3549            case NULL: return null;
3550            default: return "?";
3551          }
3552        }
3553        public String getDisplay() {
3554          switch (this) {
3555            case NOTOPENSOURCE: return "Not open source";
3556            case _0BSD: return "BSD Zero Clause License";
3557            case AAL: return "Attribution Assurance License";
3558            case ABSTYLES: return "Abstyles License";
3559            case ADOBE2006: return "Adobe Systems Incorporated Source Code License Agreement";
3560            case ADOBEGLYPH: return "Adobe Glyph List License";
3561            case ADSL: return "Amazon Digital Services License";
3562            case AFL1_1: return "Academic Free License v1.1";
3563            case AFL1_2: return "Academic Free License v1.2";
3564            case AFL2_0: return "Academic Free License v2.0";
3565            case AFL2_1: return "Academic Free License v2.1";
3566            case AFL3_0: return "Academic Free License v3.0";
3567            case AFMPARSE: return "Afmparse License";
3568            case AGPL1_0ONLY: return "Affero General Public License v1.0 only";
3569            case AGPL1_0ORLATER: return "Affero General Public License v1.0 or later";
3570            case AGPL3_0ONLY: return "GNU Affero General Public License v3.0 only";
3571            case AGPL3_0ORLATER: return "GNU Affero General Public License v3.0 or later";
3572            case ALADDIN: return "Aladdin Free Public License";
3573            case AMDPLPA: return "AMD's plpa_map.c License";
3574            case AML: return "Apple MIT License";
3575            case AMPAS: return "Academy of Motion Picture Arts and Sciences BSD";
3576            case ANTLRPD: return "ANTLR Software Rights Notice";
3577            case APACHE1_0: return "Apache License 1.0";
3578            case APACHE1_1: return "Apache License 1.1";
3579            case APACHE2_0: return "Apache License 2.0";
3580            case APAFML: return "Adobe Postscript AFM License";
3581            case APL1_0: return "Adaptive Public License 1.0";
3582            case APSL1_0: return "Apple Public Source License 1.0";
3583            case APSL1_1: return "Apple Public Source License 1.1";
3584            case APSL1_2: return "Apple Public Source License 1.2";
3585            case APSL2_0: return "Apple Public Source License 2.0";
3586            case ARTISTIC1_0CL8: return "Artistic License 1.0 w/clause 8";
3587            case ARTISTIC1_0PERL: return "Artistic License 1.0 (Perl)";
3588            case ARTISTIC1_0: return "Artistic License 1.0";
3589            case ARTISTIC2_0: return "Artistic License 2.0";
3590            case BAHYPH: return "Bahyph License";
3591            case BARR: return "Barr License";
3592            case BEERWARE: return "Beerware License";
3593            case BITTORRENT1_0: return "BitTorrent Open Source License v1.0";
3594            case BITTORRENT1_1: return "BitTorrent Open Source License v1.1";
3595            case BORCEUX: return "Borceux license";
3596            case BSD1CLAUSE: return "BSD 1-Clause License";
3597            case BSD2CLAUSEFREEBSD: return "BSD 2-Clause FreeBSD License";
3598            case BSD2CLAUSENETBSD: return "BSD 2-Clause NetBSD License";
3599            case BSD2CLAUSEPATENT: return "BSD-2-Clause Plus Patent License";
3600            case BSD2CLAUSE: return "BSD 2-Clause \"Simplified\" License";
3601            case BSD3CLAUSEATTRIBUTION: return "BSD with attribution";
3602            case BSD3CLAUSECLEAR: return "BSD 3-Clause Clear License";
3603            case BSD3CLAUSELBNL: return "Lawrence Berkeley National Labs BSD variant license";
3604            case BSD3CLAUSENONUCLEARLICENSE2014: return "BSD 3-Clause No Nuclear License 2014";
3605            case BSD3CLAUSENONUCLEARLICENSE: return "BSD 3-Clause No Nuclear License";
3606            case BSD3CLAUSENONUCLEARWARRANTY: return "BSD 3-Clause No Nuclear Warranty";
3607            case BSD3CLAUSE: return "BSD 3-Clause \"New\" or \"Revised\" License";
3608            case BSD4CLAUSEUC: return "BSD-4-Clause (University of California-Specific)";
3609            case BSD4CLAUSE: return "BSD 4-Clause \"Original\" or \"Old\" License";
3610            case BSDPROTECTION: return "BSD Protection License";
3611            case BSDSOURCECODE: return "BSD Source Code Attribution";
3612            case BSL1_0: return "Boost Software License 1.0";
3613            case BZIP21_0_5: return "bzip2 and libbzip2 License v1.0.5";
3614            case BZIP21_0_6: return "bzip2 and libbzip2 License v1.0.6";
3615            case CALDERA: return "Caldera License";
3616            case CATOSL1_1: return "Computer Associates Trusted Open Source License 1.1";
3617            case CCBY1_0: return "Creative Commons Attribution 1.0 Generic";
3618            case CCBY2_0: return "Creative Commons Attribution 2.0 Generic";
3619            case CCBY2_5: return "Creative Commons Attribution 2.5 Generic";
3620            case CCBY3_0: return "Creative Commons Attribution 3.0 Unported";
3621            case CCBY4_0: return "Creative Commons Attribution 4.0 International";
3622            case CCBYNC1_0: return "Creative Commons Attribution Non Commercial 1.0 Generic";
3623            case CCBYNC2_0: return "Creative Commons Attribution Non Commercial 2.0 Generic";
3624            case CCBYNC2_5: return "Creative Commons Attribution Non Commercial 2.5 Generic";
3625            case CCBYNC3_0: return "Creative Commons Attribution Non Commercial 3.0 Unported";
3626            case CCBYNC4_0: return "Creative Commons Attribution Non Commercial 4.0 International";
3627            case CCBYNCND1_0: return "Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic";
3628            case CCBYNCND2_0: return "Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic";
3629            case CCBYNCND2_5: return "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic";
3630            case CCBYNCND3_0: return "Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported";
3631            case CCBYNCND4_0: return "Creative Commons Attribution Non Commercial No Derivatives 4.0 International";
3632            case CCBYNCSA1_0: return "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic";
3633            case CCBYNCSA2_0: return "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic";
3634            case CCBYNCSA2_5: return "Creative Commons Attribution Non Commercial Share Alike 2.5 Generic";
3635            case CCBYNCSA3_0: return "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported";
3636            case CCBYNCSA4_0: return "Creative Commons Attribution Non Commercial Share Alike 4.0 International";
3637            case CCBYND1_0: return "Creative Commons Attribution No Derivatives 1.0 Generic";
3638            case CCBYND2_0: return "Creative Commons Attribution No Derivatives 2.0 Generic";
3639            case CCBYND2_5: return "Creative Commons Attribution No Derivatives 2.5 Generic";
3640            case CCBYND3_0: return "Creative Commons Attribution No Derivatives 3.0 Unported";
3641            case CCBYND4_0: return "Creative Commons Attribution No Derivatives 4.0 International";
3642            case CCBYSA1_0: return "Creative Commons Attribution Share Alike 1.0 Generic";
3643            case CCBYSA2_0: return "Creative Commons Attribution Share Alike 2.0 Generic";
3644            case CCBYSA2_5: return "Creative Commons Attribution Share Alike 2.5 Generic";
3645            case CCBYSA3_0: return "Creative Commons Attribution Share Alike 3.0 Unported";
3646            case CCBYSA4_0: return "Creative Commons Attribution Share Alike 4.0 International";
3647            case CC01_0: return "Creative Commons Zero v1.0 Universal";
3648            case CDDL1_0: return "Common Development and Distribution License 1.0";
3649            case CDDL1_1: return "Common Development and Distribution License 1.1";
3650            case CDLAPERMISSIVE1_0: return "Community Data License Agreement Permissive 1.0";
3651            case CDLASHARING1_0: return "Community Data License Agreement Sharing 1.0";
3652            case CECILL1_0: return "CeCILL Free Software License Agreement v1.0";
3653            case CECILL1_1: return "CeCILL Free Software License Agreement v1.1";
3654            case CECILL2_0: return "CeCILL Free Software License Agreement v2.0";
3655            case CECILL2_1: return "CeCILL Free Software License Agreement v2.1";
3656            case CECILLB: return "CeCILL-B Free Software License Agreement";
3657            case CECILLC: return "CeCILL-C Free Software License Agreement";
3658            case CLARTISTIC: return "Clarified Artistic License";
3659            case CNRIJYTHON: return "CNRI Jython License";
3660            case CNRIPYTHONGPLCOMPATIBLE: return "CNRI Python Open Source GPL Compatible License Agreement";
3661            case CNRIPYTHON: return "CNRI Python License";
3662            case CONDOR1_1: return "Condor Public License v1.1";
3663            case CPAL1_0: return "Common Public Attribution License 1.0";
3664            case CPL1_0: return "Common Public License 1.0";
3665            case CPOL1_02: return "Code Project Open License 1.02";
3666            case CROSSWORD: return "Crossword License";
3667            case CRYSTALSTACKER: return "CrystalStacker License";
3668            case CUAOPL1_0: return "CUA Office Public License v1.0";
3669            case CUBE: return "Cube License";
3670            case CURL: return "curl License";
3671            case DFSL1_0: return "Deutsche Freie Software Lizenz";
3672            case DIFFMARK: return "diffmark license";
3673            case DOC: return "DOC License";
3674            case DOTSEQN: return "Dotseqn License";
3675            case DSDP: return "DSDP License";
3676            case DVIPDFM: return "dvipdfm License";
3677            case ECL1_0: return "Educational Community License v1.0";
3678            case ECL2_0: return "Educational Community License v2.0";
3679            case EFL1_0: return "Eiffel Forum License v1.0";
3680            case EFL2_0: return "Eiffel Forum License v2.0";
3681            case EGENIX: return "eGenix.com Public License 1.1.0";
3682            case ENTESSA: return "Entessa Public License v1.0";
3683            case EPL1_0: return "Eclipse Public License 1.0";
3684            case EPL2_0: return "Eclipse Public License 2.0";
3685            case ERLPL1_1: return "Erlang Public License v1.1";
3686            case EUDATAGRID: return "EU DataGrid Software License";
3687            case EUPL1_0: return "European Union Public License 1.0";
3688            case EUPL1_1: return "European Union Public License 1.1";
3689            case EUPL1_2: return "European Union Public License 1.2";
3690            case EUROSYM: return "Eurosym License";
3691            case FAIR: return "Fair License";
3692            case FRAMEWORX1_0: return "Frameworx Open License 1.0";
3693            case FREEIMAGE: return "FreeImage Public License v1.0";
3694            case FSFAP: return "FSF All Permissive License";
3695            case FSFUL: return "FSF Unlimited License";
3696            case FSFULLR: return "FSF Unlimited License (with License Retention)";
3697            case FTL: return "Freetype Project License";
3698            case GFDL1_1ONLY: return "GNU Free Documentation License v1.1 only";
3699            case GFDL1_1ORLATER: return "GNU Free Documentation License v1.1 or later";
3700            case GFDL1_2ONLY: return "GNU Free Documentation License v1.2 only";
3701            case GFDL1_2ORLATER: return "GNU Free Documentation License v1.2 or later";
3702            case GFDL1_3ONLY: return "GNU Free Documentation License v1.3 only";
3703            case GFDL1_3ORLATER: return "GNU Free Documentation License v1.3 or later";
3704            case GIFTWARE: return "Giftware License";
3705            case GL2PS: return "GL2PS License";
3706            case GLIDE: return "3dfx Glide License";
3707            case GLULXE: return "Glulxe License";
3708            case GNUPLOT: return "gnuplot License";
3709            case GPL1_0ONLY: return "GNU General Public License v1.0 only";
3710            case GPL1_0ORLATER: return "GNU General Public License v1.0 or later";
3711            case GPL2_0ONLY: return "GNU General Public License v2.0 only";
3712            case GPL2_0ORLATER: return "GNU General Public License v2.0 or later";
3713            case GPL3_0ONLY: return "GNU General Public License v3.0 only";
3714            case GPL3_0ORLATER: return "GNU General Public License v3.0 or later";
3715            case GSOAP1_3B: return "gSOAP Public License v1.3b";
3716            case HASKELLREPORT: return "Haskell Language Report License";
3717            case HPND: return "Historical Permission Notice and Disclaimer";
3718            case IBMPIBS: return "IBM PowerPC Initialization and Boot Software";
3719            case ICU: return "ICU License";
3720            case IJG: return "Independent JPEG Group License";
3721            case IMAGEMAGICK: return "ImageMagick License";
3722            case IMATIX: return "iMatix Standard Function Library Agreement";
3723            case IMLIB2: return "Imlib2 License";
3724            case INFOZIP: return "Info-ZIP License";
3725            case INTELACPI: return "Intel ACPI Software License Agreement";
3726            case INTEL: return "Intel Open Source License";
3727            case INTERBASE1_0: return "Interbase Public License v1.0";
3728            case IPA: return "IPA Font License";
3729            case IPL1_0: return "IBM Public License v1.0";
3730            case ISC: return "ISC License";
3731            case JASPER2_0: return "JasPer License";
3732            case JSON: return "JSON License";
3733            case LAL1_2: return "Licence Art Libre 1.2";
3734            case LAL1_3: return "Licence Art Libre 1.3";
3735            case LATEX2E: return "Latex2e License";
3736            case LEPTONICA: return "Leptonica License";
3737            case LGPL2_0ONLY: return "GNU Library General Public License v2 only";
3738            case LGPL2_0ORLATER: return "GNU Library General Public License v2 or later";
3739            case LGPL2_1ONLY: return "GNU Lesser General Public License v2.1 only";
3740            case LGPL2_1ORLATER: return "GNU Lesser General Public License v2.1 or later";
3741            case LGPL3_0ONLY: return "GNU Lesser General Public License v3.0 only";
3742            case LGPL3_0ORLATER: return "GNU Lesser General Public License v3.0 or later";
3743            case LGPLLR: return "Lesser General Public License For Linguistic Resources";
3744            case LIBPNG: return "libpng License";
3745            case LIBTIFF: return "libtiff License";
3746            case LILIQP1_1: return "Licence Libre du Québec – Permissive version 1.1";
3747            case LILIQR1_1: return "Licence Libre du Québec – Réciprocité version 1.1";
3748            case LILIQRPLUS1_1: return "Licence Libre du Québec – Réciprocité forte version 1.1";
3749            case LINUXOPENIB: return "Linux Kernel Variant of OpenIB.org license";
3750            case LPL1_0: return "Lucent Public License Version 1.0";
3751            case LPL1_02: return "Lucent Public License v1.02";
3752            case LPPL1_0: return "LaTeX Project Public License v1.0";
3753            case LPPL1_1: return "LaTeX Project Public License v1.1";
3754            case LPPL1_2: return "LaTeX Project Public License v1.2";
3755            case LPPL1_3A: return "LaTeX Project Public License v1.3a";
3756            case LPPL1_3C: return "LaTeX Project Public License v1.3c";
3757            case MAKEINDEX: return "MakeIndex License";
3758            case MIROS: return "MirOS License";
3759            case MIT0: return "MIT No Attribution";
3760            case MITADVERTISING: return "Enlightenment License (e16)";
3761            case MITCMU: return "CMU License";
3762            case MITENNA: return "enna License";
3763            case MITFEH: return "feh License";
3764            case MIT: return "MIT License";
3765            case MITNFA: return "MIT +no-false-attribs license";
3766            case MOTOSOTO: return "Motosoto License";
3767            case MPICH2: return "mpich2 License";
3768            case MPL1_0: return "Mozilla Public License 1.0";
3769            case MPL1_1: return "Mozilla Public License 1.1";
3770            case MPL2_0NOCOPYLEFTEXCEPTION: return "Mozilla Public License 2.0 (no copyleft exception)";
3771            case MPL2_0: return "Mozilla Public License 2.0";
3772            case MSPL: return "Microsoft Public License";
3773            case MSRL: return "Microsoft Reciprocal License";
3774            case MTLL: return "Matrix Template Library License";
3775            case MULTICS: return "Multics License";
3776            case MUP: return "Mup License";
3777            case NASA1_3: return "NASA Open Source Agreement 1.3";
3778            case NAUMEN: return "Naumen Public License";
3779            case NBPL1_0: return "Net Boolean Public License v1";
3780            case NCSA: return "University of Illinois/NCSA Open Source License";
3781            case NETSNMP: return "Net-SNMP License";
3782            case NETCDF: return "NetCDF license";
3783            case NEWSLETR: return "Newsletr License";
3784            case NGPL: return "Nethack General Public License";
3785            case NLOD1_0: return "Norwegian Licence for Open Government Data";
3786            case NLPL: return "No Limit Public License";
3787            case NOKIA: return "Nokia Open Source License";
3788            case NOSL: return "Netizen Open Source License";
3789            case NOWEB: return "Noweb License";
3790            case NPL1_0: return "Netscape Public License v1.0";
3791            case NPL1_1: return "Netscape Public License v1.1";
3792            case NPOSL3_0: return "Non-Profit Open Software License 3.0";
3793            case NRL: return "NRL License";
3794            case NTP: return "NTP License";
3795            case OCCTPL: return "Open CASCADE Technology Public License";
3796            case OCLC2_0: return "OCLC Research Public License 2.0";
3797            case ODBL1_0: return "ODC Open Database License v1.0";
3798            case OFL1_0: return "SIL Open Font License 1.0";
3799            case OFL1_1: return "SIL Open Font License 1.1";
3800            case OGTSL: return "Open Group Test Suite License";
3801            case OLDAP1_1: return "Open LDAP Public License v1.1";
3802            case OLDAP1_2: return "Open LDAP Public License v1.2";
3803            case OLDAP1_3: return "Open LDAP Public License v1.3";
3804            case OLDAP1_4: return "Open LDAP Public License v1.4";
3805            case OLDAP2_0_1: return "Open LDAP Public License v2.0.1";
3806            case OLDAP2_0: return "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)";
3807            case OLDAP2_1: return "Open LDAP Public License v2.1";
3808            case OLDAP2_2_1: return "Open LDAP Public License v2.2.1";
3809            case OLDAP2_2_2: return "Open LDAP Public License 2.2.2";
3810            case OLDAP2_2: return "Open LDAP Public License v2.2";
3811            case OLDAP2_3: return "Open LDAP Public License v2.3";
3812            case OLDAP2_4: return "Open LDAP Public License v2.4";
3813            case OLDAP2_5: return "Open LDAP Public License v2.5";
3814            case OLDAP2_6: return "Open LDAP Public License v2.6";
3815            case OLDAP2_7: return "Open LDAP Public License v2.7";
3816            case OLDAP2_8: return "Open LDAP Public License v2.8";
3817            case OML: return "Open Market License";
3818            case OPENSSL: return "OpenSSL License";
3819            case OPL1_0: return "Open Public License v1.0";
3820            case OSETPL2_1: return "OSET Public License version 2.1";
3821            case OSL1_0: return "Open Software License 1.0";
3822            case OSL1_1: return "Open Software License 1.1";
3823            case OSL2_0: return "Open Software License 2.0";
3824            case OSL2_1: return "Open Software License 2.1";
3825            case OSL3_0: return "Open Software License 3.0";
3826            case PDDL1_0: return "ODC Public Domain Dedication & License 1.0";
3827            case PHP3_0: return "PHP License v3.0";
3828            case PHP3_01: return "PHP License v3.01";
3829            case PLEXUS: return "Plexus Classworlds License";
3830            case POSTGRESQL: return "PostgreSQL License";
3831            case PSFRAG: return "psfrag License";
3832            case PSUTILS: return "psutils License";
3833            case PYTHON2_0: return "Python License 2.0";
3834            case QHULL: return "Qhull License";
3835            case QPL1_0: return "Q Public License 1.0";
3836            case RDISC: return "Rdisc License";
3837            case RHECOS1_1: return "Red Hat eCos Public License v1.1";
3838            case RPL1_1: return "Reciprocal Public License 1.1";
3839            case RPL1_5: return "Reciprocal Public License 1.5";
3840            case RPSL1_0: return "RealNetworks Public Source License v1.0";
3841            case RSAMD: return "RSA Message-Digest License";
3842            case RSCPL: return "Ricoh Source Code Public License";
3843            case RUBY: return "Ruby License";
3844            case SAXPD: return "Sax Public Domain Notice";
3845            case SAXPATH: return "Saxpath License";
3846            case SCEA: return "SCEA Shared Source License";
3847            case SENDMAIL: return "Sendmail License";
3848            case SGIB1_0: return "SGI Free Software License B v1.0";
3849            case SGIB1_1: return "SGI Free Software License B v1.1";
3850            case SGIB2_0: return "SGI Free Software License B v2.0";
3851            case SIMPL2_0: return "Simple Public License 2.0";
3852            case SISSL1_2: return "Sun Industry Standards Source License v1.2";
3853            case SISSL: return "Sun Industry Standards Source License v1.1";
3854            case SLEEPYCAT: return "Sleepycat License";
3855            case SMLNJ: return "Standard ML of New Jersey License";
3856            case SMPPL: return "Secure Messaging Protocol Public License";
3857            case SNIA: return "SNIA Public License 1.1";
3858            case SPENCER86: return "Spencer License 86";
3859            case SPENCER94: return "Spencer License 94";
3860            case SPENCER99: return "Spencer License 99";
3861            case SPL1_0: return "Sun Public License v1.0";
3862            case SUGARCRM1_1_3: return "SugarCRM Public License v1.1.3";
3863            case SWL: return "Scheme Widget Library (SWL) Software License Agreement";
3864            case TCL: return "TCL/TK License";
3865            case TCPWRAPPERS: return "TCP Wrappers License";
3866            case TMATE: return "TMate Open Source License";
3867            case TORQUE1_1: return "TORQUE v2.5+ Software License v1.1";
3868            case TOSL: return "Trusster Open Source License";
3869            case UNICODEDFS2015: return "Unicode License Agreement - Data Files and Software (2015)";
3870            case UNICODEDFS2016: return "Unicode License Agreement - Data Files and Software (2016)";
3871            case UNICODETOU: return "Unicode Terms of Use";
3872            case UNLICENSE: return "The Unlicense";
3873            case UPL1_0: return "Universal Permissive License v1.0";
3874            case VIM: return "Vim License";
3875            case VOSTROM: return "VOSTROM Public License for Open Source";
3876            case VSL1_0: return "Vovida Software License v1.0";
3877            case W3C19980720: return "W3C Software Notice and License (1998-07-20)";
3878            case W3C20150513: return "W3C Software Notice and Document License (2015-05-13)";
3879            case W3C: return "W3C Software Notice and License (2002-12-31)";
3880            case WATCOM1_0: return "Sybase Open Watcom Public License 1.0";
3881            case WSUIPA: return "Wsuipa License";
3882            case WTFPL: return "Do What The F*ck You Want To Public License";
3883            case X11: return "X11 License";
3884            case XEROX: return "Xerox License";
3885            case XFREE861_1: return "XFree86 License 1.1";
3886            case XINETD: return "xinetd License";
3887            case XNET: return "X.Net License";
3888            case XPP: return "XPP License";
3889            case XSKAT: return "XSkat License";
3890            case YPL1_0: return "Yahoo! Public License v1.0";
3891            case YPL1_1: return "Yahoo! Public License v1.1";
3892            case ZED: return "Zed License";
3893            case ZEND2_0: return "Zend License v2.0";
3894            case ZIMBRA1_3: return "Zimbra Public License v1.3";
3895            case ZIMBRA1_4: return "Zimbra Public License v1.4";
3896            case ZLIBACKNOWLEDGEMENT: return "zlib/libpng License with Acknowledgement";
3897            case ZLIB: return "zlib License";
3898            case ZPL1_1: return "Zope Public License 1.1";
3899            case ZPL2_0: return "Zope Public License 2.0";
3900            case ZPL2_1: return "Zope Public License 2.1";
3901            case NULL: return null;
3902            default: return "?";
3903          }
3904        }
3905    }
3906
3907  public static class SPDXLicenseEnumFactory implements EnumFactory<SPDXLicense> {
3908    public SPDXLicense fromCode(String codeString) throws IllegalArgumentException {
3909      if (codeString == null || "".equals(codeString))
3910            if (codeString == null || "".equals(codeString))
3911                return null;
3912        if ("not-open-source".equals(codeString))
3913          return SPDXLicense.NOTOPENSOURCE;
3914        if ("0BSD".equals(codeString))
3915          return SPDXLicense._0BSD;
3916        if ("AAL".equals(codeString))
3917          return SPDXLicense.AAL;
3918        if ("Abstyles".equals(codeString))
3919          return SPDXLicense.ABSTYLES;
3920        if ("Adobe-2006".equals(codeString))
3921          return SPDXLicense.ADOBE2006;
3922        if ("Adobe-Glyph".equals(codeString))
3923          return SPDXLicense.ADOBEGLYPH;
3924        if ("ADSL".equals(codeString))
3925          return SPDXLicense.ADSL;
3926        if ("AFL-1.1".equals(codeString))
3927          return SPDXLicense.AFL1_1;
3928        if ("AFL-1.2".equals(codeString))
3929          return SPDXLicense.AFL1_2;
3930        if ("AFL-2.0".equals(codeString))
3931          return SPDXLicense.AFL2_0;
3932        if ("AFL-2.1".equals(codeString))
3933          return SPDXLicense.AFL2_1;
3934        if ("AFL-3.0".equals(codeString))
3935          return SPDXLicense.AFL3_0;
3936        if ("Afmparse".equals(codeString))
3937          return SPDXLicense.AFMPARSE;
3938        if ("AGPL-1.0-only".equals(codeString))
3939          return SPDXLicense.AGPL1_0ONLY;
3940        if ("AGPL-1.0-or-later".equals(codeString))
3941          return SPDXLicense.AGPL1_0ORLATER;
3942        if ("AGPL-3.0-only".equals(codeString))
3943          return SPDXLicense.AGPL3_0ONLY;
3944        if ("AGPL-3.0-or-later".equals(codeString))
3945          return SPDXLicense.AGPL3_0ORLATER;
3946        if ("Aladdin".equals(codeString))
3947          return SPDXLicense.ALADDIN;
3948        if ("AMDPLPA".equals(codeString))
3949          return SPDXLicense.AMDPLPA;
3950        if ("AML".equals(codeString))
3951          return SPDXLicense.AML;
3952        if ("AMPAS".equals(codeString))
3953          return SPDXLicense.AMPAS;
3954        if ("ANTLR-PD".equals(codeString))
3955          return SPDXLicense.ANTLRPD;
3956        if ("Apache-1.0".equals(codeString))
3957          return SPDXLicense.APACHE1_0;
3958        if ("Apache-1.1".equals(codeString))
3959          return SPDXLicense.APACHE1_1;
3960        if ("Apache-2.0".equals(codeString))
3961          return SPDXLicense.APACHE2_0;
3962        if ("APAFML".equals(codeString))
3963          return SPDXLicense.APAFML;
3964        if ("APL-1.0".equals(codeString))
3965          return SPDXLicense.APL1_0;
3966        if ("APSL-1.0".equals(codeString))
3967          return SPDXLicense.APSL1_0;
3968        if ("APSL-1.1".equals(codeString))
3969          return SPDXLicense.APSL1_1;
3970        if ("APSL-1.2".equals(codeString))
3971          return SPDXLicense.APSL1_2;
3972        if ("APSL-2.0".equals(codeString))
3973          return SPDXLicense.APSL2_0;
3974        if ("Artistic-1.0-cl8".equals(codeString))
3975          return SPDXLicense.ARTISTIC1_0CL8;
3976        if ("Artistic-1.0-Perl".equals(codeString))
3977          return SPDXLicense.ARTISTIC1_0PERL;
3978        if ("Artistic-1.0".equals(codeString))
3979          return SPDXLicense.ARTISTIC1_0;
3980        if ("Artistic-2.0".equals(codeString))
3981          return SPDXLicense.ARTISTIC2_0;
3982        if ("Bahyph".equals(codeString))
3983          return SPDXLicense.BAHYPH;
3984        if ("Barr".equals(codeString))
3985          return SPDXLicense.BARR;
3986        if ("Beerware".equals(codeString))
3987          return SPDXLicense.BEERWARE;
3988        if ("BitTorrent-1.0".equals(codeString))
3989          return SPDXLicense.BITTORRENT1_0;
3990        if ("BitTorrent-1.1".equals(codeString))
3991          return SPDXLicense.BITTORRENT1_1;
3992        if ("Borceux".equals(codeString))
3993          return SPDXLicense.BORCEUX;
3994        if ("BSD-1-Clause".equals(codeString))
3995          return SPDXLicense.BSD1CLAUSE;
3996        if ("BSD-2-Clause-FreeBSD".equals(codeString))
3997          return SPDXLicense.BSD2CLAUSEFREEBSD;
3998        if ("BSD-2-Clause-NetBSD".equals(codeString))
3999          return SPDXLicense.BSD2CLAUSENETBSD;
4000        if ("BSD-2-Clause-Patent".equals(codeString))
4001          return SPDXLicense.BSD2CLAUSEPATENT;
4002        if ("BSD-2-Clause".equals(codeString))
4003          return SPDXLicense.BSD2CLAUSE;
4004        if ("BSD-3-Clause-Attribution".equals(codeString))
4005          return SPDXLicense.BSD3CLAUSEATTRIBUTION;
4006        if ("BSD-3-Clause-Clear".equals(codeString))
4007          return SPDXLicense.BSD3CLAUSECLEAR;
4008        if ("BSD-3-Clause-LBNL".equals(codeString))
4009          return SPDXLicense.BSD3CLAUSELBNL;
4010        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
4011          return SPDXLicense.BSD3CLAUSENONUCLEARLICENSE2014;
4012        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
4013          return SPDXLicense.BSD3CLAUSENONUCLEARLICENSE;
4014        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
4015          return SPDXLicense.BSD3CLAUSENONUCLEARWARRANTY;
4016        if ("BSD-3-Clause".equals(codeString))
4017          return SPDXLicense.BSD3CLAUSE;
4018        if ("BSD-4-Clause-UC".equals(codeString))
4019          return SPDXLicense.BSD4CLAUSEUC;
4020        if ("BSD-4-Clause".equals(codeString))
4021          return SPDXLicense.BSD4CLAUSE;
4022        if ("BSD-Protection".equals(codeString))
4023          return SPDXLicense.BSDPROTECTION;
4024        if ("BSD-Source-Code".equals(codeString))
4025          return SPDXLicense.BSDSOURCECODE;
4026        if ("BSL-1.0".equals(codeString))
4027          return SPDXLicense.BSL1_0;
4028        if ("bzip2-1.0.5".equals(codeString))
4029          return SPDXLicense.BZIP21_0_5;
4030        if ("bzip2-1.0.6".equals(codeString))
4031          return SPDXLicense.BZIP21_0_6;
4032        if ("Caldera".equals(codeString))
4033          return SPDXLicense.CALDERA;
4034        if ("CATOSL-1.1".equals(codeString))
4035          return SPDXLicense.CATOSL1_1;
4036        if ("CC-BY-1.0".equals(codeString))
4037          return SPDXLicense.CCBY1_0;
4038        if ("CC-BY-2.0".equals(codeString))
4039          return SPDXLicense.CCBY2_0;
4040        if ("CC-BY-2.5".equals(codeString))
4041          return SPDXLicense.CCBY2_5;
4042        if ("CC-BY-3.0".equals(codeString))
4043          return SPDXLicense.CCBY3_0;
4044        if ("CC-BY-4.0".equals(codeString))
4045          return SPDXLicense.CCBY4_0;
4046        if ("CC-BY-NC-1.0".equals(codeString))
4047          return SPDXLicense.CCBYNC1_0;
4048        if ("CC-BY-NC-2.0".equals(codeString))
4049          return SPDXLicense.CCBYNC2_0;
4050        if ("CC-BY-NC-2.5".equals(codeString))
4051          return SPDXLicense.CCBYNC2_5;
4052        if ("CC-BY-NC-3.0".equals(codeString))
4053          return SPDXLicense.CCBYNC3_0;
4054        if ("CC-BY-NC-4.0".equals(codeString))
4055          return SPDXLicense.CCBYNC4_0;
4056        if ("CC-BY-NC-ND-1.0".equals(codeString))
4057          return SPDXLicense.CCBYNCND1_0;
4058        if ("CC-BY-NC-ND-2.0".equals(codeString))
4059          return SPDXLicense.CCBYNCND2_0;
4060        if ("CC-BY-NC-ND-2.5".equals(codeString))
4061          return SPDXLicense.CCBYNCND2_5;
4062        if ("CC-BY-NC-ND-3.0".equals(codeString))
4063          return SPDXLicense.CCBYNCND3_0;
4064        if ("CC-BY-NC-ND-4.0".equals(codeString))
4065          return SPDXLicense.CCBYNCND4_0;
4066        if ("CC-BY-NC-SA-1.0".equals(codeString))
4067          return SPDXLicense.CCBYNCSA1_0;
4068        if ("CC-BY-NC-SA-2.0".equals(codeString))
4069          return SPDXLicense.CCBYNCSA2_0;
4070        if ("CC-BY-NC-SA-2.5".equals(codeString))
4071          return SPDXLicense.CCBYNCSA2_5;
4072        if ("CC-BY-NC-SA-3.0".equals(codeString))
4073          return SPDXLicense.CCBYNCSA3_0;
4074        if ("CC-BY-NC-SA-4.0".equals(codeString))
4075          return SPDXLicense.CCBYNCSA4_0;
4076        if ("CC-BY-ND-1.0".equals(codeString))
4077          return SPDXLicense.CCBYND1_0;
4078        if ("CC-BY-ND-2.0".equals(codeString))
4079          return SPDXLicense.CCBYND2_0;
4080        if ("CC-BY-ND-2.5".equals(codeString))
4081          return SPDXLicense.CCBYND2_5;
4082        if ("CC-BY-ND-3.0".equals(codeString))
4083          return SPDXLicense.CCBYND3_0;
4084        if ("CC-BY-ND-4.0".equals(codeString))
4085          return SPDXLicense.CCBYND4_0;
4086        if ("CC-BY-SA-1.0".equals(codeString))
4087          return SPDXLicense.CCBYSA1_0;
4088        if ("CC-BY-SA-2.0".equals(codeString))
4089          return SPDXLicense.CCBYSA2_0;
4090        if ("CC-BY-SA-2.5".equals(codeString))
4091          return SPDXLicense.CCBYSA2_5;
4092        if ("CC-BY-SA-3.0".equals(codeString))
4093          return SPDXLicense.CCBYSA3_0;
4094        if ("CC-BY-SA-4.0".equals(codeString))
4095          return SPDXLicense.CCBYSA4_0;
4096        if ("CC0-1.0".equals(codeString))
4097          return SPDXLicense.CC01_0;
4098        if ("CDDL-1.0".equals(codeString))
4099          return SPDXLicense.CDDL1_0;
4100        if ("CDDL-1.1".equals(codeString))
4101          return SPDXLicense.CDDL1_1;
4102        if ("CDLA-Permissive-1.0".equals(codeString))
4103          return SPDXLicense.CDLAPERMISSIVE1_0;
4104        if ("CDLA-Sharing-1.0".equals(codeString))
4105          return SPDXLicense.CDLASHARING1_0;
4106        if ("CECILL-1.0".equals(codeString))
4107          return SPDXLicense.CECILL1_0;
4108        if ("CECILL-1.1".equals(codeString))
4109          return SPDXLicense.CECILL1_1;
4110        if ("CECILL-2.0".equals(codeString))
4111          return SPDXLicense.CECILL2_0;
4112        if ("CECILL-2.1".equals(codeString))
4113          return SPDXLicense.CECILL2_1;
4114        if ("CECILL-B".equals(codeString))
4115          return SPDXLicense.CECILLB;
4116        if ("CECILL-C".equals(codeString))
4117          return SPDXLicense.CECILLC;
4118        if ("ClArtistic".equals(codeString))
4119          return SPDXLicense.CLARTISTIC;
4120        if ("CNRI-Jython".equals(codeString))
4121          return SPDXLicense.CNRIJYTHON;
4122        if ("CNRI-Python-GPL-Compatible".equals(codeString))
4123          return SPDXLicense.CNRIPYTHONGPLCOMPATIBLE;
4124        if ("CNRI-Python".equals(codeString))
4125          return SPDXLicense.CNRIPYTHON;
4126        if ("Condor-1.1".equals(codeString))
4127          return SPDXLicense.CONDOR1_1;
4128        if ("CPAL-1.0".equals(codeString))
4129          return SPDXLicense.CPAL1_0;
4130        if ("CPL-1.0".equals(codeString))
4131          return SPDXLicense.CPL1_0;
4132        if ("CPOL-1.02".equals(codeString))
4133          return SPDXLicense.CPOL1_02;
4134        if ("Crossword".equals(codeString))
4135          return SPDXLicense.CROSSWORD;
4136        if ("CrystalStacker".equals(codeString))
4137          return SPDXLicense.CRYSTALSTACKER;
4138        if ("CUA-OPL-1.0".equals(codeString))
4139          return SPDXLicense.CUAOPL1_0;
4140        if ("Cube".equals(codeString))
4141          return SPDXLicense.CUBE;
4142        if ("curl".equals(codeString))
4143          return SPDXLicense.CURL;
4144        if ("D-FSL-1.0".equals(codeString))
4145          return SPDXLicense.DFSL1_0;
4146        if ("diffmark".equals(codeString))
4147          return SPDXLicense.DIFFMARK;
4148        if ("DOC".equals(codeString))
4149          return SPDXLicense.DOC;
4150        if ("Dotseqn".equals(codeString))
4151          return SPDXLicense.DOTSEQN;
4152        if ("DSDP".equals(codeString))
4153          return SPDXLicense.DSDP;
4154        if ("dvipdfm".equals(codeString))
4155          return SPDXLicense.DVIPDFM;
4156        if ("ECL-1.0".equals(codeString))
4157          return SPDXLicense.ECL1_0;
4158        if ("ECL-2.0".equals(codeString))
4159          return SPDXLicense.ECL2_0;
4160        if ("EFL-1.0".equals(codeString))
4161          return SPDXLicense.EFL1_0;
4162        if ("EFL-2.0".equals(codeString))
4163          return SPDXLicense.EFL2_0;
4164        if ("eGenix".equals(codeString))
4165          return SPDXLicense.EGENIX;
4166        if ("Entessa".equals(codeString))
4167          return SPDXLicense.ENTESSA;
4168        if ("EPL-1.0".equals(codeString))
4169          return SPDXLicense.EPL1_0;
4170        if ("EPL-2.0".equals(codeString))
4171          return SPDXLicense.EPL2_0;
4172        if ("ErlPL-1.1".equals(codeString))
4173          return SPDXLicense.ERLPL1_1;
4174        if ("EUDatagrid".equals(codeString))
4175          return SPDXLicense.EUDATAGRID;
4176        if ("EUPL-1.0".equals(codeString))
4177          return SPDXLicense.EUPL1_0;
4178        if ("EUPL-1.1".equals(codeString))
4179          return SPDXLicense.EUPL1_1;
4180        if ("EUPL-1.2".equals(codeString))
4181          return SPDXLicense.EUPL1_2;
4182        if ("Eurosym".equals(codeString))
4183          return SPDXLicense.EUROSYM;
4184        if ("Fair".equals(codeString))
4185          return SPDXLicense.FAIR;
4186        if ("Frameworx-1.0".equals(codeString))
4187          return SPDXLicense.FRAMEWORX1_0;
4188        if ("FreeImage".equals(codeString))
4189          return SPDXLicense.FREEIMAGE;
4190        if ("FSFAP".equals(codeString))
4191          return SPDXLicense.FSFAP;
4192        if ("FSFUL".equals(codeString))
4193          return SPDXLicense.FSFUL;
4194        if ("FSFULLR".equals(codeString))
4195          return SPDXLicense.FSFULLR;
4196        if ("FTL".equals(codeString))
4197          return SPDXLicense.FTL;
4198        if ("GFDL-1.1-only".equals(codeString))
4199          return SPDXLicense.GFDL1_1ONLY;
4200        if ("GFDL-1.1-or-later".equals(codeString))
4201          return SPDXLicense.GFDL1_1ORLATER;
4202        if ("GFDL-1.2-only".equals(codeString))
4203          return SPDXLicense.GFDL1_2ONLY;
4204        if ("GFDL-1.2-or-later".equals(codeString))
4205          return SPDXLicense.GFDL1_2ORLATER;
4206        if ("GFDL-1.3-only".equals(codeString))
4207          return SPDXLicense.GFDL1_3ONLY;
4208        if ("GFDL-1.3-or-later".equals(codeString))
4209          return SPDXLicense.GFDL1_3ORLATER;
4210        if ("Giftware".equals(codeString))
4211          return SPDXLicense.GIFTWARE;
4212        if ("GL2PS".equals(codeString))
4213          return SPDXLicense.GL2PS;
4214        if ("Glide".equals(codeString))
4215          return SPDXLicense.GLIDE;
4216        if ("Glulxe".equals(codeString))
4217          return SPDXLicense.GLULXE;
4218        if ("gnuplot".equals(codeString))
4219          return SPDXLicense.GNUPLOT;
4220        if ("GPL-1.0-only".equals(codeString))
4221          return SPDXLicense.GPL1_0ONLY;
4222        if ("GPL-1.0-or-later".equals(codeString))
4223          return SPDXLicense.GPL1_0ORLATER;
4224        if ("GPL-2.0-only".equals(codeString))
4225          return SPDXLicense.GPL2_0ONLY;
4226        if ("GPL-2.0-or-later".equals(codeString))
4227          return SPDXLicense.GPL2_0ORLATER;
4228        if ("GPL-3.0-only".equals(codeString))
4229          return SPDXLicense.GPL3_0ONLY;
4230        if ("GPL-3.0-or-later".equals(codeString))
4231          return SPDXLicense.GPL3_0ORLATER;
4232        if ("gSOAP-1.3b".equals(codeString))
4233          return SPDXLicense.GSOAP1_3B;
4234        if ("HaskellReport".equals(codeString))
4235          return SPDXLicense.HASKELLREPORT;
4236        if ("HPND".equals(codeString))
4237          return SPDXLicense.HPND;
4238        if ("IBM-pibs".equals(codeString))
4239          return SPDXLicense.IBMPIBS;
4240        if ("ICU".equals(codeString))
4241          return SPDXLicense.ICU;
4242        if ("IJG".equals(codeString))
4243          return SPDXLicense.IJG;
4244        if ("ImageMagick".equals(codeString))
4245          return SPDXLicense.IMAGEMAGICK;
4246        if ("iMatix".equals(codeString))
4247          return SPDXLicense.IMATIX;
4248        if ("Imlib2".equals(codeString))
4249          return SPDXLicense.IMLIB2;
4250        if ("Info-ZIP".equals(codeString))
4251          return SPDXLicense.INFOZIP;
4252        if ("Intel-ACPI".equals(codeString))
4253          return SPDXLicense.INTELACPI;
4254        if ("Intel".equals(codeString))
4255          return SPDXLicense.INTEL;
4256        if ("Interbase-1.0".equals(codeString))
4257          return SPDXLicense.INTERBASE1_0;
4258        if ("IPA".equals(codeString))
4259          return SPDXLicense.IPA;
4260        if ("IPL-1.0".equals(codeString))
4261          return SPDXLicense.IPL1_0;
4262        if ("ISC".equals(codeString))
4263          return SPDXLicense.ISC;
4264        if ("JasPer-2.0".equals(codeString))
4265          return SPDXLicense.JASPER2_0;
4266        if ("JSON".equals(codeString))
4267          return SPDXLicense.JSON;
4268        if ("LAL-1.2".equals(codeString))
4269          return SPDXLicense.LAL1_2;
4270        if ("LAL-1.3".equals(codeString))
4271          return SPDXLicense.LAL1_3;
4272        if ("Latex2e".equals(codeString))
4273          return SPDXLicense.LATEX2E;
4274        if ("Leptonica".equals(codeString))
4275          return SPDXLicense.LEPTONICA;
4276        if ("LGPL-2.0-only".equals(codeString))
4277          return SPDXLicense.LGPL2_0ONLY;
4278        if ("LGPL-2.0-or-later".equals(codeString))
4279          return SPDXLicense.LGPL2_0ORLATER;
4280        if ("LGPL-2.1-only".equals(codeString))
4281          return SPDXLicense.LGPL2_1ONLY;
4282        if ("LGPL-2.1-or-later".equals(codeString))
4283          return SPDXLicense.LGPL2_1ORLATER;
4284        if ("LGPL-3.0-only".equals(codeString))
4285          return SPDXLicense.LGPL3_0ONLY;
4286        if ("LGPL-3.0-or-later".equals(codeString))
4287          return SPDXLicense.LGPL3_0ORLATER;
4288        if ("LGPLLR".equals(codeString))
4289          return SPDXLicense.LGPLLR;
4290        if ("Libpng".equals(codeString))
4291          return SPDXLicense.LIBPNG;
4292        if ("libtiff".equals(codeString))
4293          return SPDXLicense.LIBTIFF;
4294        if ("LiLiQ-P-1.1".equals(codeString))
4295          return SPDXLicense.LILIQP1_1;
4296        if ("LiLiQ-R-1.1".equals(codeString))
4297          return SPDXLicense.LILIQR1_1;
4298        if ("LiLiQ-Rplus-1.1".equals(codeString))
4299          return SPDXLicense.LILIQRPLUS1_1;
4300        if ("Linux-OpenIB".equals(codeString))
4301          return SPDXLicense.LINUXOPENIB;
4302        if ("LPL-1.0".equals(codeString))
4303          return SPDXLicense.LPL1_0;
4304        if ("LPL-1.02".equals(codeString))
4305          return SPDXLicense.LPL1_02;
4306        if ("LPPL-1.0".equals(codeString))
4307          return SPDXLicense.LPPL1_0;
4308        if ("LPPL-1.1".equals(codeString))
4309          return SPDXLicense.LPPL1_1;
4310        if ("LPPL-1.2".equals(codeString))
4311          return SPDXLicense.LPPL1_2;
4312        if ("LPPL-1.3a".equals(codeString))
4313          return SPDXLicense.LPPL1_3A;
4314        if ("LPPL-1.3c".equals(codeString))
4315          return SPDXLicense.LPPL1_3C;
4316        if ("MakeIndex".equals(codeString))
4317          return SPDXLicense.MAKEINDEX;
4318        if ("MirOS".equals(codeString))
4319          return SPDXLicense.MIROS;
4320        if ("MIT-0".equals(codeString))
4321          return SPDXLicense.MIT0;
4322        if ("MIT-advertising".equals(codeString))
4323          return SPDXLicense.MITADVERTISING;
4324        if ("MIT-CMU".equals(codeString))
4325          return SPDXLicense.MITCMU;
4326        if ("MIT-enna".equals(codeString))
4327          return SPDXLicense.MITENNA;
4328        if ("MIT-feh".equals(codeString))
4329          return SPDXLicense.MITFEH;
4330        if ("MIT".equals(codeString))
4331          return SPDXLicense.MIT;
4332        if ("MITNFA".equals(codeString))
4333          return SPDXLicense.MITNFA;
4334        if ("Motosoto".equals(codeString))
4335          return SPDXLicense.MOTOSOTO;
4336        if ("mpich2".equals(codeString))
4337          return SPDXLicense.MPICH2;
4338        if ("MPL-1.0".equals(codeString))
4339          return SPDXLicense.MPL1_0;
4340        if ("MPL-1.1".equals(codeString))
4341          return SPDXLicense.MPL1_1;
4342        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
4343          return SPDXLicense.MPL2_0NOCOPYLEFTEXCEPTION;
4344        if ("MPL-2.0".equals(codeString))
4345          return SPDXLicense.MPL2_0;
4346        if ("MS-PL".equals(codeString))
4347          return SPDXLicense.MSPL;
4348        if ("MS-RL".equals(codeString))
4349          return SPDXLicense.MSRL;
4350        if ("MTLL".equals(codeString))
4351          return SPDXLicense.MTLL;
4352        if ("Multics".equals(codeString))
4353          return SPDXLicense.MULTICS;
4354        if ("Mup".equals(codeString))
4355          return SPDXLicense.MUP;
4356        if ("NASA-1.3".equals(codeString))
4357          return SPDXLicense.NASA1_3;
4358        if ("Naumen".equals(codeString))
4359          return SPDXLicense.NAUMEN;
4360        if ("NBPL-1.0".equals(codeString))
4361          return SPDXLicense.NBPL1_0;
4362        if ("NCSA".equals(codeString))
4363          return SPDXLicense.NCSA;
4364        if ("Net-SNMP".equals(codeString))
4365          return SPDXLicense.NETSNMP;
4366        if ("NetCDF".equals(codeString))
4367          return SPDXLicense.NETCDF;
4368        if ("Newsletr".equals(codeString))
4369          return SPDXLicense.NEWSLETR;
4370        if ("NGPL".equals(codeString))
4371          return SPDXLicense.NGPL;
4372        if ("NLOD-1.0".equals(codeString))
4373          return SPDXLicense.NLOD1_0;
4374        if ("NLPL".equals(codeString))
4375          return SPDXLicense.NLPL;
4376        if ("Nokia".equals(codeString))
4377          return SPDXLicense.NOKIA;
4378        if ("NOSL".equals(codeString))
4379          return SPDXLicense.NOSL;
4380        if ("Noweb".equals(codeString))
4381          return SPDXLicense.NOWEB;
4382        if ("NPL-1.0".equals(codeString))
4383          return SPDXLicense.NPL1_0;
4384        if ("NPL-1.1".equals(codeString))
4385          return SPDXLicense.NPL1_1;
4386        if ("NPOSL-3.0".equals(codeString))
4387          return SPDXLicense.NPOSL3_0;
4388        if ("NRL".equals(codeString))
4389          return SPDXLicense.NRL;
4390        if ("NTP".equals(codeString))
4391          return SPDXLicense.NTP;
4392        if ("OCCT-PL".equals(codeString))
4393          return SPDXLicense.OCCTPL;
4394        if ("OCLC-2.0".equals(codeString))
4395          return SPDXLicense.OCLC2_0;
4396        if ("ODbL-1.0".equals(codeString))
4397          return SPDXLicense.ODBL1_0;
4398        if ("OFL-1.0".equals(codeString))
4399          return SPDXLicense.OFL1_0;
4400        if ("OFL-1.1".equals(codeString))
4401          return SPDXLicense.OFL1_1;
4402        if ("OGTSL".equals(codeString))
4403          return SPDXLicense.OGTSL;
4404        if ("OLDAP-1.1".equals(codeString))
4405          return SPDXLicense.OLDAP1_1;
4406        if ("OLDAP-1.2".equals(codeString))
4407          return SPDXLicense.OLDAP1_2;
4408        if ("OLDAP-1.3".equals(codeString))
4409          return SPDXLicense.OLDAP1_3;
4410        if ("OLDAP-1.4".equals(codeString))
4411          return SPDXLicense.OLDAP1_4;
4412        if ("OLDAP-2.0.1".equals(codeString))
4413          return SPDXLicense.OLDAP2_0_1;
4414        if ("OLDAP-2.0".equals(codeString))
4415          return SPDXLicense.OLDAP2_0;
4416        if ("OLDAP-2.1".equals(codeString))
4417          return SPDXLicense.OLDAP2_1;
4418        if ("OLDAP-2.2.1".equals(codeString))
4419          return SPDXLicense.OLDAP2_2_1;
4420        if ("OLDAP-2.2.2".equals(codeString))
4421          return SPDXLicense.OLDAP2_2_2;
4422        if ("OLDAP-2.2".equals(codeString))
4423          return SPDXLicense.OLDAP2_2;
4424        if ("OLDAP-2.3".equals(codeString))
4425          return SPDXLicense.OLDAP2_3;
4426        if ("OLDAP-2.4".equals(codeString))
4427          return SPDXLicense.OLDAP2_4;
4428        if ("OLDAP-2.5".equals(codeString))
4429          return SPDXLicense.OLDAP2_5;
4430        if ("OLDAP-2.6".equals(codeString))
4431          return SPDXLicense.OLDAP2_6;
4432        if ("OLDAP-2.7".equals(codeString))
4433          return SPDXLicense.OLDAP2_7;
4434        if ("OLDAP-2.8".equals(codeString))
4435          return SPDXLicense.OLDAP2_8;
4436        if ("OML".equals(codeString))
4437          return SPDXLicense.OML;
4438        if ("OpenSSL".equals(codeString))
4439          return SPDXLicense.OPENSSL;
4440        if ("OPL-1.0".equals(codeString))
4441          return SPDXLicense.OPL1_0;
4442        if ("OSET-PL-2.1".equals(codeString))
4443          return SPDXLicense.OSETPL2_1;
4444        if ("OSL-1.0".equals(codeString))
4445          return SPDXLicense.OSL1_0;
4446        if ("OSL-1.1".equals(codeString))
4447          return SPDXLicense.OSL1_1;
4448        if ("OSL-2.0".equals(codeString))
4449          return SPDXLicense.OSL2_0;
4450        if ("OSL-2.1".equals(codeString))
4451          return SPDXLicense.OSL2_1;
4452        if ("OSL-3.0".equals(codeString))
4453          return SPDXLicense.OSL3_0;
4454        if ("PDDL-1.0".equals(codeString))
4455          return SPDXLicense.PDDL1_0;
4456        if ("PHP-3.0".equals(codeString))
4457          return SPDXLicense.PHP3_0;
4458        if ("PHP-3.01".equals(codeString))
4459          return SPDXLicense.PHP3_01;
4460        if ("Plexus".equals(codeString))
4461          return SPDXLicense.PLEXUS;
4462        if ("PostgreSQL".equals(codeString))
4463          return SPDXLicense.POSTGRESQL;
4464        if ("psfrag".equals(codeString))
4465          return SPDXLicense.PSFRAG;
4466        if ("psutils".equals(codeString))
4467          return SPDXLicense.PSUTILS;
4468        if ("Python-2.0".equals(codeString))
4469          return SPDXLicense.PYTHON2_0;
4470        if ("Qhull".equals(codeString))
4471          return SPDXLicense.QHULL;
4472        if ("QPL-1.0".equals(codeString))
4473          return SPDXLicense.QPL1_0;
4474        if ("Rdisc".equals(codeString))
4475          return SPDXLicense.RDISC;
4476        if ("RHeCos-1.1".equals(codeString))
4477          return SPDXLicense.RHECOS1_1;
4478        if ("RPL-1.1".equals(codeString))
4479          return SPDXLicense.RPL1_1;
4480        if ("RPL-1.5".equals(codeString))
4481          return SPDXLicense.RPL1_5;
4482        if ("RPSL-1.0".equals(codeString))
4483          return SPDXLicense.RPSL1_0;
4484        if ("RSA-MD".equals(codeString))
4485          return SPDXLicense.RSAMD;
4486        if ("RSCPL".equals(codeString))
4487          return SPDXLicense.RSCPL;
4488        if ("Ruby".equals(codeString))
4489          return SPDXLicense.RUBY;
4490        if ("SAX-PD".equals(codeString))
4491          return SPDXLicense.SAXPD;
4492        if ("Saxpath".equals(codeString))
4493          return SPDXLicense.SAXPATH;
4494        if ("SCEA".equals(codeString))
4495          return SPDXLicense.SCEA;
4496        if ("Sendmail".equals(codeString))
4497          return SPDXLicense.SENDMAIL;
4498        if ("SGI-B-1.0".equals(codeString))
4499          return SPDXLicense.SGIB1_0;
4500        if ("SGI-B-1.1".equals(codeString))
4501          return SPDXLicense.SGIB1_1;
4502        if ("SGI-B-2.0".equals(codeString))
4503          return SPDXLicense.SGIB2_0;
4504        if ("SimPL-2.0".equals(codeString))
4505          return SPDXLicense.SIMPL2_0;
4506        if ("SISSL-1.2".equals(codeString))
4507          return SPDXLicense.SISSL1_2;
4508        if ("SISSL".equals(codeString))
4509          return SPDXLicense.SISSL;
4510        if ("Sleepycat".equals(codeString))
4511          return SPDXLicense.SLEEPYCAT;
4512        if ("SMLNJ".equals(codeString))
4513          return SPDXLicense.SMLNJ;
4514        if ("SMPPL".equals(codeString))
4515          return SPDXLicense.SMPPL;
4516        if ("SNIA".equals(codeString))
4517          return SPDXLicense.SNIA;
4518        if ("Spencer-86".equals(codeString))
4519          return SPDXLicense.SPENCER86;
4520        if ("Spencer-94".equals(codeString))
4521          return SPDXLicense.SPENCER94;
4522        if ("Spencer-99".equals(codeString))
4523          return SPDXLicense.SPENCER99;
4524        if ("SPL-1.0".equals(codeString))
4525          return SPDXLicense.SPL1_0;
4526        if ("SugarCRM-1.1.3".equals(codeString))
4527          return SPDXLicense.SUGARCRM1_1_3;
4528        if ("SWL".equals(codeString))
4529          return SPDXLicense.SWL;
4530        if ("TCL".equals(codeString))
4531          return SPDXLicense.TCL;
4532        if ("TCP-wrappers".equals(codeString))
4533          return SPDXLicense.TCPWRAPPERS;
4534        if ("TMate".equals(codeString))
4535          return SPDXLicense.TMATE;
4536        if ("TORQUE-1.1".equals(codeString))
4537          return SPDXLicense.TORQUE1_1;
4538        if ("TOSL".equals(codeString))
4539          return SPDXLicense.TOSL;
4540        if ("Unicode-DFS-2015".equals(codeString))
4541          return SPDXLicense.UNICODEDFS2015;
4542        if ("Unicode-DFS-2016".equals(codeString))
4543          return SPDXLicense.UNICODEDFS2016;
4544        if ("Unicode-TOU".equals(codeString))
4545          return SPDXLicense.UNICODETOU;
4546        if ("Unlicense".equals(codeString))
4547          return SPDXLicense.UNLICENSE;
4548        if ("UPL-1.0".equals(codeString))
4549          return SPDXLicense.UPL1_0;
4550        if ("Vim".equals(codeString))
4551          return SPDXLicense.VIM;
4552        if ("VOSTROM".equals(codeString))
4553          return SPDXLicense.VOSTROM;
4554        if ("VSL-1.0".equals(codeString))
4555          return SPDXLicense.VSL1_0;
4556        if ("W3C-19980720".equals(codeString))
4557          return SPDXLicense.W3C19980720;
4558        if ("W3C-20150513".equals(codeString))
4559          return SPDXLicense.W3C20150513;
4560        if ("W3C".equals(codeString))
4561          return SPDXLicense.W3C;
4562        if ("Watcom-1.0".equals(codeString))
4563          return SPDXLicense.WATCOM1_0;
4564        if ("Wsuipa".equals(codeString))
4565          return SPDXLicense.WSUIPA;
4566        if ("WTFPL".equals(codeString))
4567          return SPDXLicense.WTFPL;
4568        if ("X11".equals(codeString))
4569          return SPDXLicense.X11;
4570        if ("Xerox".equals(codeString))
4571          return SPDXLicense.XEROX;
4572        if ("XFree86-1.1".equals(codeString))
4573          return SPDXLicense.XFREE861_1;
4574        if ("xinetd".equals(codeString))
4575          return SPDXLicense.XINETD;
4576        if ("Xnet".equals(codeString))
4577          return SPDXLicense.XNET;
4578        if ("xpp".equals(codeString))
4579          return SPDXLicense.XPP;
4580        if ("XSkat".equals(codeString))
4581          return SPDXLicense.XSKAT;
4582        if ("YPL-1.0".equals(codeString))
4583          return SPDXLicense.YPL1_0;
4584        if ("YPL-1.1".equals(codeString))
4585          return SPDXLicense.YPL1_1;
4586        if ("Zed".equals(codeString))
4587          return SPDXLicense.ZED;
4588        if ("Zend-2.0".equals(codeString))
4589          return SPDXLicense.ZEND2_0;
4590        if ("Zimbra-1.3".equals(codeString))
4591          return SPDXLicense.ZIMBRA1_3;
4592        if ("Zimbra-1.4".equals(codeString))
4593          return SPDXLicense.ZIMBRA1_4;
4594        if ("zlib-acknowledgement".equals(codeString))
4595          return SPDXLicense.ZLIBACKNOWLEDGEMENT;
4596        if ("Zlib".equals(codeString))
4597          return SPDXLicense.ZLIB;
4598        if ("ZPL-1.1".equals(codeString))
4599          return SPDXLicense.ZPL1_1;
4600        if ("ZPL-2.0".equals(codeString))
4601          return SPDXLicense.ZPL2_0;
4602        if ("ZPL-2.1".equals(codeString))
4603          return SPDXLicense.ZPL2_1;
4604        throw new IllegalArgumentException("Unknown SPDXLicense code '"+codeString+"'");
4605        }
4606        public Enumeration<SPDXLicense> fromType(Base code) throws FHIRException {
4607          if (code == null)
4608            return null;
4609          if (code.isEmpty())
4610            return new Enumeration<SPDXLicense>(this);
4611          String codeString = ((PrimitiveType) code).asStringValue();
4612          if (codeString == null || "".equals(codeString))
4613            return null;
4614        if ("not-open-source".equals(codeString))
4615          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOTOPENSOURCE);
4616        if ("0BSD".equals(codeString))
4617          return new Enumeration<SPDXLicense>(this, SPDXLicense._0BSD);
4618        if ("AAL".equals(codeString))
4619          return new Enumeration<SPDXLicense>(this, SPDXLicense.AAL);
4620        if ("Abstyles".equals(codeString))
4621          return new Enumeration<SPDXLicense>(this, SPDXLicense.ABSTYLES);
4622        if ("Adobe-2006".equals(codeString))
4623          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADOBE2006);
4624        if ("Adobe-Glyph".equals(codeString))
4625          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADOBEGLYPH);
4626        if ("ADSL".equals(codeString))
4627          return new Enumeration<SPDXLicense>(this, SPDXLicense.ADSL);
4628        if ("AFL-1.1".equals(codeString))
4629          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL1_1);
4630        if ("AFL-1.2".equals(codeString))
4631          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL1_2);
4632        if ("AFL-2.0".equals(codeString))
4633          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL2_0);
4634        if ("AFL-2.1".equals(codeString))
4635          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL2_1);
4636        if ("AFL-3.0".equals(codeString))
4637          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFL3_0);
4638        if ("Afmparse".equals(codeString))
4639          return new Enumeration<SPDXLicense>(this, SPDXLicense.AFMPARSE);
4640        if ("AGPL-1.0-only".equals(codeString))
4641          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL1_0ONLY);
4642        if ("AGPL-1.0-or-later".equals(codeString))
4643          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL1_0ORLATER);
4644        if ("AGPL-3.0-only".equals(codeString))
4645          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL3_0ONLY);
4646        if ("AGPL-3.0-or-later".equals(codeString))
4647          return new Enumeration<SPDXLicense>(this, SPDXLicense.AGPL3_0ORLATER);
4648        if ("Aladdin".equals(codeString))
4649          return new Enumeration<SPDXLicense>(this, SPDXLicense.ALADDIN);
4650        if ("AMDPLPA".equals(codeString))
4651          return new Enumeration<SPDXLicense>(this, SPDXLicense.AMDPLPA);
4652        if ("AML".equals(codeString))
4653          return new Enumeration<SPDXLicense>(this, SPDXLicense.AML);
4654        if ("AMPAS".equals(codeString))
4655          return new Enumeration<SPDXLicense>(this, SPDXLicense.AMPAS);
4656        if ("ANTLR-PD".equals(codeString))
4657          return new Enumeration<SPDXLicense>(this, SPDXLicense.ANTLRPD);
4658        if ("Apache-1.0".equals(codeString))
4659          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE1_0);
4660        if ("Apache-1.1".equals(codeString))
4661          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE1_1);
4662        if ("Apache-2.0".equals(codeString))
4663          return new Enumeration<SPDXLicense>(this, SPDXLicense.APACHE2_0);
4664        if ("APAFML".equals(codeString))
4665          return new Enumeration<SPDXLicense>(this, SPDXLicense.APAFML);
4666        if ("APL-1.0".equals(codeString))
4667          return new Enumeration<SPDXLicense>(this, SPDXLicense.APL1_0);
4668        if ("APSL-1.0".equals(codeString))
4669          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL1_0);
4670        if ("APSL-1.1".equals(codeString))
4671          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL1_1);
4672        if ("APSL-1.2".equals(codeString))
4673          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL1_2);
4674        if ("APSL-2.0".equals(codeString))
4675          return new Enumeration<SPDXLicense>(this, SPDXLicense.APSL2_0);
4676        if ("Artistic-1.0-cl8".equals(codeString))
4677          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC1_0CL8);
4678        if ("Artistic-1.0-Perl".equals(codeString))
4679          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC1_0PERL);
4680        if ("Artistic-1.0".equals(codeString))
4681          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC1_0);
4682        if ("Artistic-2.0".equals(codeString))
4683          return new Enumeration<SPDXLicense>(this, SPDXLicense.ARTISTIC2_0);
4684        if ("Bahyph".equals(codeString))
4685          return new Enumeration<SPDXLicense>(this, SPDXLicense.BAHYPH);
4686        if ("Barr".equals(codeString))
4687          return new Enumeration<SPDXLicense>(this, SPDXLicense.BARR);
4688        if ("Beerware".equals(codeString))
4689          return new Enumeration<SPDXLicense>(this, SPDXLicense.BEERWARE);
4690        if ("BitTorrent-1.0".equals(codeString))
4691          return new Enumeration<SPDXLicense>(this, SPDXLicense.BITTORRENT1_0);
4692        if ("BitTorrent-1.1".equals(codeString))
4693          return new Enumeration<SPDXLicense>(this, SPDXLicense.BITTORRENT1_1);
4694        if ("Borceux".equals(codeString))
4695          return new Enumeration<SPDXLicense>(this, SPDXLicense.BORCEUX);
4696        if ("BSD-1-Clause".equals(codeString))
4697          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD1CLAUSE);
4698        if ("BSD-2-Clause-FreeBSD".equals(codeString))
4699          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSEFREEBSD);
4700        if ("BSD-2-Clause-NetBSD".equals(codeString))
4701          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSENETBSD);
4702        if ("BSD-2-Clause-Patent".equals(codeString))
4703          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSEPATENT);
4704        if ("BSD-2-Clause".equals(codeString))
4705          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD2CLAUSE);
4706        if ("BSD-3-Clause-Attribution".equals(codeString))
4707          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSEATTRIBUTION);
4708        if ("BSD-3-Clause-Clear".equals(codeString))
4709          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSECLEAR);
4710        if ("BSD-3-Clause-LBNL".equals(codeString))
4711          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSELBNL);
4712        if ("BSD-3-Clause-No-Nuclear-License-2014".equals(codeString))
4713          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSENONUCLEARLICENSE2014);
4714        if ("BSD-3-Clause-No-Nuclear-License".equals(codeString))
4715          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSENONUCLEARLICENSE);
4716        if ("BSD-3-Clause-No-Nuclear-Warranty".equals(codeString))
4717          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSENONUCLEARWARRANTY);
4718        if ("BSD-3-Clause".equals(codeString))
4719          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD3CLAUSE);
4720        if ("BSD-4-Clause-UC".equals(codeString))
4721          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD4CLAUSEUC);
4722        if ("BSD-4-Clause".equals(codeString))
4723          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSD4CLAUSE);
4724        if ("BSD-Protection".equals(codeString))
4725          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSDPROTECTION);
4726        if ("BSD-Source-Code".equals(codeString))
4727          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSDSOURCECODE);
4728        if ("BSL-1.0".equals(codeString))
4729          return new Enumeration<SPDXLicense>(this, SPDXLicense.BSL1_0);
4730        if ("bzip2-1.0.5".equals(codeString))
4731          return new Enumeration<SPDXLicense>(this, SPDXLicense.BZIP21_0_5);
4732        if ("bzip2-1.0.6".equals(codeString))
4733          return new Enumeration<SPDXLicense>(this, SPDXLicense.BZIP21_0_6);
4734        if ("Caldera".equals(codeString))
4735          return new Enumeration<SPDXLicense>(this, SPDXLicense.CALDERA);
4736        if ("CATOSL-1.1".equals(codeString))
4737          return new Enumeration<SPDXLicense>(this, SPDXLicense.CATOSL1_1);
4738        if ("CC-BY-1.0".equals(codeString))
4739          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY1_0);
4740        if ("CC-BY-2.0".equals(codeString))
4741          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY2_0);
4742        if ("CC-BY-2.5".equals(codeString))
4743          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY2_5);
4744        if ("CC-BY-3.0".equals(codeString))
4745          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY3_0);
4746        if ("CC-BY-4.0".equals(codeString))
4747          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBY4_0);
4748        if ("CC-BY-NC-1.0".equals(codeString))
4749          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC1_0);
4750        if ("CC-BY-NC-2.0".equals(codeString))
4751          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC2_0);
4752        if ("CC-BY-NC-2.5".equals(codeString))
4753          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC2_5);
4754        if ("CC-BY-NC-3.0".equals(codeString))
4755          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC3_0);
4756        if ("CC-BY-NC-4.0".equals(codeString))
4757          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNC4_0);
4758        if ("CC-BY-NC-ND-1.0".equals(codeString))
4759          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND1_0);
4760        if ("CC-BY-NC-ND-2.0".equals(codeString))
4761          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND2_0);
4762        if ("CC-BY-NC-ND-2.5".equals(codeString))
4763          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND2_5);
4764        if ("CC-BY-NC-ND-3.0".equals(codeString))
4765          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND3_0);
4766        if ("CC-BY-NC-ND-4.0".equals(codeString))
4767          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCND4_0);
4768        if ("CC-BY-NC-SA-1.0".equals(codeString))
4769          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA1_0);
4770        if ("CC-BY-NC-SA-2.0".equals(codeString))
4771          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA2_0);
4772        if ("CC-BY-NC-SA-2.5".equals(codeString))
4773          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA2_5);
4774        if ("CC-BY-NC-SA-3.0".equals(codeString))
4775          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA3_0);
4776        if ("CC-BY-NC-SA-4.0".equals(codeString))
4777          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYNCSA4_0);
4778        if ("CC-BY-ND-1.0".equals(codeString))
4779          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND1_0);
4780        if ("CC-BY-ND-2.0".equals(codeString))
4781          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND2_0);
4782        if ("CC-BY-ND-2.5".equals(codeString))
4783          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND2_5);
4784        if ("CC-BY-ND-3.0".equals(codeString))
4785          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND3_0);
4786        if ("CC-BY-ND-4.0".equals(codeString))
4787          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYND4_0);
4788        if ("CC-BY-SA-1.0".equals(codeString))
4789          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA1_0);
4790        if ("CC-BY-SA-2.0".equals(codeString))
4791          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA2_0);
4792        if ("CC-BY-SA-2.5".equals(codeString))
4793          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA2_5);
4794        if ("CC-BY-SA-3.0".equals(codeString))
4795          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA3_0);
4796        if ("CC-BY-SA-4.0".equals(codeString))
4797          return new Enumeration<SPDXLicense>(this, SPDXLicense.CCBYSA4_0);
4798        if ("CC0-1.0".equals(codeString))
4799          return new Enumeration<SPDXLicense>(this, SPDXLicense.CC01_0);
4800        if ("CDDL-1.0".equals(codeString))
4801          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDDL1_0);
4802        if ("CDDL-1.1".equals(codeString))
4803          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDDL1_1);
4804        if ("CDLA-Permissive-1.0".equals(codeString))
4805          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLAPERMISSIVE1_0);
4806        if ("CDLA-Sharing-1.0".equals(codeString))
4807          return new Enumeration<SPDXLicense>(this, SPDXLicense.CDLASHARING1_0);
4808        if ("CECILL-1.0".equals(codeString))
4809          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL1_0);
4810        if ("CECILL-1.1".equals(codeString))
4811          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL1_1);
4812        if ("CECILL-2.0".equals(codeString))
4813          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL2_0);
4814        if ("CECILL-2.1".equals(codeString))
4815          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILL2_1);
4816        if ("CECILL-B".equals(codeString))
4817          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILLB);
4818        if ("CECILL-C".equals(codeString))
4819          return new Enumeration<SPDXLicense>(this, SPDXLicense.CECILLC);
4820        if ("ClArtistic".equals(codeString))
4821          return new Enumeration<SPDXLicense>(this, SPDXLicense.CLARTISTIC);
4822        if ("CNRI-Jython".equals(codeString))
4823          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRIJYTHON);
4824        if ("CNRI-Python-GPL-Compatible".equals(codeString))
4825          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRIPYTHONGPLCOMPATIBLE);
4826        if ("CNRI-Python".equals(codeString))
4827          return new Enumeration<SPDXLicense>(this, SPDXLicense.CNRIPYTHON);
4828        if ("Condor-1.1".equals(codeString))
4829          return new Enumeration<SPDXLicense>(this, SPDXLicense.CONDOR1_1);
4830        if ("CPAL-1.0".equals(codeString))
4831          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPAL1_0);
4832        if ("CPL-1.0".equals(codeString))
4833          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPL1_0);
4834        if ("CPOL-1.02".equals(codeString))
4835          return new Enumeration<SPDXLicense>(this, SPDXLicense.CPOL1_02);
4836        if ("Crossword".equals(codeString))
4837          return new Enumeration<SPDXLicense>(this, SPDXLicense.CROSSWORD);
4838        if ("CrystalStacker".equals(codeString))
4839          return new Enumeration<SPDXLicense>(this, SPDXLicense.CRYSTALSTACKER);
4840        if ("CUA-OPL-1.0".equals(codeString))
4841          return new Enumeration<SPDXLicense>(this, SPDXLicense.CUAOPL1_0);
4842        if ("Cube".equals(codeString))
4843          return new Enumeration<SPDXLicense>(this, SPDXLicense.CUBE);
4844        if ("curl".equals(codeString))
4845          return new Enumeration<SPDXLicense>(this, SPDXLicense.CURL);
4846        if ("D-FSL-1.0".equals(codeString))
4847          return new Enumeration<SPDXLicense>(this, SPDXLicense.DFSL1_0);
4848        if ("diffmark".equals(codeString))
4849          return new Enumeration<SPDXLicense>(this, SPDXLicense.DIFFMARK);
4850        if ("DOC".equals(codeString))
4851          return new Enumeration<SPDXLicense>(this, SPDXLicense.DOC);
4852        if ("Dotseqn".equals(codeString))
4853          return new Enumeration<SPDXLicense>(this, SPDXLicense.DOTSEQN);
4854        if ("DSDP".equals(codeString))
4855          return new Enumeration<SPDXLicense>(this, SPDXLicense.DSDP);
4856        if ("dvipdfm".equals(codeString))
4857          return new Enumeration<SPDXLicense>(this, SPDXLicense.DVIPDFM);
4858        if ("ECL-1.0".equals(codeString))
4859          return new Enumeration<SPDXLicense>(this, SPDXLicense.ECL1_0);
4860        if ("ECL-2.0".equals(codeString))
4861          return new Enumeration<SPDXLicense>(this, SPDXLicense.ECL2_0);
4862        if ("EFL-1.0".equals(codeString))
4863          return new Enumeration<SPDXLicense>(this, SPDXLicense.EFL1_0);
4864        if ("EFL-2.0".equals(codeString))
4865          return new Enumeration<SPDXLicense>(this, SPDXLicense.EFL2_0);
4866        if ("eGenix".equals(codeString))
4867          return new Enumeration<SPDXLicense>(this, SPDXLicense.EGENIX);
4868        if ("Entessa".equals(codeString))
4869          return new Enumeration<SPDXLicense>(this, SPDXLicense.ENTESSA);
4870        if ("EPL-1.0".equals(codeString))
4871          return new Enumeration<SPDXLicense>(this, SPDXLicense.EPL1_0);
4872        if ("EPL-2.0".equals(codeString))
4873          return new Enumeration<SPDXLicense>(this, SPDXLicense.EPL2_0);
4874        if ("ErlPL-1.1".equals(codeString))
4875          return new Enumeration<SPDXLicense>(this, SPDXLicense.ERLPL1_1);
4876        if ("EUDatagrid".equals(codeString))
4877          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUDATAGRID);
4878        if ("EUPL-1.0".equals(codeString))
4879          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL1_0);
4880        if ("EUPL-1.1".equals(codeString))
4881          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL1_1);
4882        if ("EUPL-1.2".equals(codeString))
4883          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUPL1_2);
4884        if ("Eurosym".equals(codeString))
4885          return new Enumeration<SPDXLicense>(this, SPDXLicense.EUROSYM);
4886        if ("Fair".equals(codeString))
4887          return new Enumeration<SPDXLicense>(this, SPDXLicense.FAIR);
4888        if ("Frameworx-1.0".equals(codeString))
4889          return new Enumeration<SPDXLicense>(this, SPDXLicense.FRAMEWORX1_0);
4890        if ("FreeImage".equals(codeString))
4891          return new Enumeration<SPDXLicense>(this, SPDXLicense.FREEIMAGE);
4892        if ("FSFAP".equals(codeString))
4893          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFAP);
4894        if ("FSFUL".equals(codeString))
4895          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFUL);
4896        if ("FSFULLR".equals(codeString))
4897          return new Enumeration<SPDXLicense>(this, SPDXLicense.FSFULLR);
4898        if ("FTL".equals(codeString))
4899          return new Enumeration<SPDXLicense>(this, SPDXLicense.FTL);
4900        if ("GFDL-1.1-only".equals(codeString))
4901          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_1ONLY);
4902        if ("GFDL-1.1-or-later".equals(codeString))
4903          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_1ORLATER);
4904        if ("GFDL-1.2-only".equals(codeString))
4905          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_2ONLY);
4906        if ("GFDL-1.2-or-later".equals(codeString))
4907          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_2ORLATER);
4908        if ("GFDL-1.3-only".equals(codeString))
4909          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_3ONLY);
4910        if ("GFDL-1.3-or-later".equals(codeString))
4911          return new Enumeration<SPDXLicense>(this, SPDXLicense.GFDL1_3ORLATER);
4912        if ("Giftware".equals(codeString))
4913          return new Enumeration<SPDXLicense>(this, SPDXLicense.GIFTWARE);
4914        if ("GL2PS".equals(codeString))
4915          return new Enumeration<SPDXLicense>(this, SPDXLicense.GL2PS);
4916        if ("Glide".equals(codeString))
4917          return new Enumeration<SPDXLicense>(this, SPDXLicense.GLIDE);
4918        if ("Glulxe".equals(codeString))
4919          return new Enumeration<SPDXLicense>(this, SPDXLicense.GLULXE);
4920        if ("gnuplot".equals(codeString))
4921          return new Enumeration<SPDXLicense>(this, SPDXLicense.GNUPLOT);
4922        if ("GPL-1.0-only".equals(codeString))
4923          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL1_0ONLY);
4924        if ("GPL-1.0-or-later".equals(codeString))
4925          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL1_0ORLATER);
4926        if ("GPL-2.0-only".equals(codeString))
4927          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL2_0ONLY);
4928        if ("GPL-2.0-or-later".equals(codeString))
4929          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL2_0ORLATER);
4930        if ("GPL-3.0-only".equals(codeString))
4931          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL3_0ONLY);
4932        if ("GPL-3.0-or-later".equals(codeString))
4933          return new Enumeration<SPDXLicense>(this, SPDXLicense.GPL3_0ORLATER);
4934        if ("gSOAP-1.3b".equals(codeString))
4935          return new Enumeration<SPDXLicense>(this, SPDXLicense.GSOAP1_3B);
4936        if ("HaskellReport".equals(codeString))
4937          return new Enumeration<SPDXLicense>(this, SPDXLicense.HASKELLREPORT);
4938        if ("HPND".equals(codeString))
4939          return new Enumeration<SPDXLicense>(this, SPDXLicense.HPND);
4940        if ("IBM-pibs".equals(codeString))
4941          return new Enumeration<SPDXLicense>(this, SPDXLicense.IBMPIBS);
4942        if ("ICU".equals(codeString))
4943          return new Enumeration<SPDXLicense>(this, SPDXLicense.ICU);
4944        if ("IJG".equals(codeString))
4945          return new Enumeration<SPDXLicense>(this, SPDXLicense.IJG);
4946        if ("ImageMagick".equals(codeString))
4947          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMAGEMAGICK);
4948        if ("iMatix".equals(codeString))
4949          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMATIX);
4950        if ("Imlib2".equals(codeString))
4951          return new Enumeration<SPDXLicense>(this, SPDXLicense.IMLIB2);
4952        if ("Info-ZIP".equals(codeString))
4953          return new Enumeration<SPDXLicense>(this, SPDXLicense.INFOZIP);
4954        if ("Intel-ACPI".equals(codeString))
4955          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTELACPI);
4956        if ("Intel".equals(codeString))
4957          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTEL);
4958        if ("Interbase-1.0".equals(codeString))
4959          return new Enumeration<SPDXLicense>(this, SPDXLicense.INTERBASE1_0);
4960        if ("IPA".equals(codeString))
4961          return new Enumeration<SPDXLicense>(this, SPDXLicense.IPA);
4962        if ("IPL-1.0".equals(codeString))
4963          return new Enumeration<SPDXLicense>(this, SPDXLicense.IPL1_0);
4964        if ("ISC".equals(codeString))
4965          return new Enumeration<SPDXLicense>(this, SPDXLicense.ISC);
4966        if ("JasPer-2.0".equals(codeString))
4967          return new Enumeration<SPDXLicense>(this, SPDXLicense.JASPER2_0);
4968        if ("JSON".equals(codeString))
4969          return new Enumeration<SPDXLicense>(this, SPDXLicense.JSON);
4970        if ("LAL-1.2".equals(codeString))
4971          return new Enumeration<SPDXLicense>(this, SPDXLicense.LAL1_2);
4972        if ("LAL-1.3".equals(codeString))
4973          return new Enumeration<SPDXLicense>(this, SPDXLicense.LAL1_3);
4974        if ("Latex2e".equals(codeString))
4975          return new Enumeration<SPDXLicense>(this, SPDXLicense.LATEX2E);
4976        if ("Leptonica".equals(codeString))
4977          return new Enumeration<SPDXLicense>(this, SPDXLicense.LEPTONICA);
4978        if ("LGPL-2.0-only".equals(codeString))
4979          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_0ONLY);
4980        if ("LGPL-2.0-or-later".equals(codeString))
4981          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_0ORLATER);
4982        if ("LGPL-2.1-only".equals(codeString))
4983          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_1ONLY);
4984        if ("LGPL-2.1-or-later".equals(codeString))
4985          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL2_1ORLATER);
4986        if ("LGPL-3.0-only".equals(codeString))
4987          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL3_0ONLY);
4988        if ("LGPL-3.0-or-later".equals(codeString))
4989          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPL3_0ORLATER);
4990        if ("LGPLLR".equals(codeString))
4991          return new Enumeration<SPDXLicense>(this, SPDXLicense.LGPLLR);
4992        if ("Libpng".equals(codeString))
4993          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBPNG);
4994        if ("libtiff".equals(codeString))
4995          return new Enumeration<SPDXLicense>(this, SPDXLicense.LIBTIFF);
4996        if ("LiLiQ-P-1.1".equals(codeString))
4997          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQP1_1);
4998        if ("LiLiQ-R-1.1".equals(codeString))
4999          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQR1_1);
5000        if ("LiLiQ-Rplus-1.1".equals(codeString))
5001          return new Enumeration<SPDXLicense>(this, SPDXLicense.LILIQRPLUS1_1);
5002        if ("Linux-OpenIB".equals(codeString))
5003          return new Enumeration<SPDXLicense>(this, SPDXLicense.LINUXOPENIB);
5004        if ("LPL-1.0".equals(codeString))
5005          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPL1_0);
5006        if ("LPL-1.02".equals(codeString))
5007          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPL1_02);
5008        if ("LPPL-1.0".equals(codeString))
5009          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_0);
5010        if ("LPPL-1.1".equals(codeString))
5011          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_1);
5012        if ("LPPL-1.2".equals(codeString))
5013          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_2);
5014        if ("LPPL-1.3a".equals(codeString))
5015          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_3A);
5016        if ("LPPL-1.3c".equals(codeString))
5017          return new Enumeration<SPDXLicense>(this, SPDXLicense.LPPL1_3C);
5018        if ("MakeIndex".equals(codeString))
5019          return new Enumeration<SPDXLicense>(this, SPDXLicense.MAKEINDEX);
5020        if ("MirOS".equals(codeString))
5021          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIROS);
5022        if ("MIT-0".equals(codeString))
5023          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT0);
5024        if ("MIT-advertising".equals(codeString))
5025          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITADVERTISING);
5026        if ("MIT-CMU".equals(codeString))
5027          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITCMU);
5028        if ("MIT-enna".equals(codeString))
5029          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITENNA);
5030        if ("MIT-feh".equals(codeString))
5031          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITFEH);
5032        if ("MIT".equals(codeString))
5033          return new Enumeration<SPDXLicense>(this, SPDXLicense.MIT);
5034        if ("MITNFA".equals(codeString))
5035          return new Enumeration<SPDXLicense>(this, SPDXLicense.MITNFA);
5036        if ("Motosoto".equals(codeString))
5037          return new Enumeration<SPDXLicense>(this, SPDXLicense.MOTOSOTO);
5038        if ("mpich2".equals(codeString))
5039          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPICH2);
5040        if ("MPL-1.0".equals(codeString))
5041          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL1_0);
5042        if ("MPL-1.1".equals(codeString))
5043          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL1_1);
5044        if ("MPL-2.0-no-copyleft-exception".equals(codeString))
5045          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL2_0NOCOPYLEFTEXCEPTION);
5046        if ("MPL-2.0".equals(codeString))
5047          return new Enumeration<SPDXLicense>(this, SPDXLicense.MPL2_0);
5048        if ("MS-PL".equals(codeString))
5049          return new Enumeration<SPDXLicense>(this, SPDXLicense.MSPL);
5050        if ("MS-RL".equals(codeString))
5051          return new Enumeration<SPDXLicense>(this, SPDXLicense.MSRL);
5052        if ("MTLL".equals(codeString))
5053          return new Enumeration<SPDXLicense>(this, SPDXLicense.MTLL);
5054        if ("Multics".equals(codeString))
5055          return new Enumeration<SPDXLicense>(this, SPDXLicense.MULTICS);
5056        if ("Mup".equals(codeString))
5057          return new Enumeration<SPDXLicense>(this, SPDXLicense.MUP);
5058        if ("NASA-1.3".equals(codeString))
5059          return new Enumeration<SPDXLicense>(this, SPDXLicense.NASA1_3);
5060        if ("Naumen".equals(codeString))
5061          return new Enumeration<SPDXLicense>(this, SPDXLicense.NAUMEN);
5062        if ("NBPL-1.0".equals(codeString))
5063          return new Enumeration<SPDXLicense>(this, SPDXLicense.NBPL1_0);
5064        if ("NCSA".equals(codeString))
5065          return new Enumeration<SPDXLicense>(this, SPDXLicense.NCSA);
5066        if ("Net-SNMP".equals(codeString))
5067          return new Enumeration<SPDXLicense>(this, SPDXLicense.NETSNMP);
5068        if ("NetCDF".equals(codeString))
5069          return new Enumeration<SPDXLicense>(this, SPDXLicense.NETCDF);
5070        if ("Newsletr".equals(codeString))
5071          return new Enumeration<SPDXLicense>(this, SPDXLicense.NEWSLETR);
5072        if ("NGPL".equals(codeString))
5073          return new Enumeration<SPDXLicense>(this, SPDXLicense.NGPL);
5074        if ("NLOD-1.0".equals(codeString))
5075          return new Enumeration<SPDXLicense>(this, SPDXLicense.NLOD1_0);
5076        if ("NLPL".equals(codeString))
5077          return new Enumeration<SPDXLicense>(this, SPDXLicense.NLPL);
5078        if ("Nokia".equals(codeString))
5079          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOKIA);
5080        if ("NOSL".equals(codeString))
5081          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOSL);
5082        if ("Noweb".equals(codeString))
5083          return new Enumeration<SPDXLicense>(this, SPDXLicense.NOWEB);
5084        if ("NPL-1.0".equals(codeString))
5085          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPL1_0);
5086        if ("NPL-1.1".equals(codeString))
5087          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPL1_1);
5088        if ("NPOSL-3.0".equals(codeString))
5089          return new Enumeration<SPDXLicense>(this, SPDXLicense.NPOSL3_0);
5090        if ("NRL".equals(codeString))
5091          return new Enumeration<SPDXLicense>(this, SPDXLicense.NRL);
5092        if ("NTP".equals(codeString))
5093          return new Enumeration<SPDXLicense>(this, SPDXLicense.NTP);
5094        if ("OCCT-PL".equals(codeString))
5095          return new Enumeration<SPDXLicense>(this, SPDXLicense.OCCTPL);
5096        if ("OCLC-2.0".equals(codeString))
5097          return new Enumeration<SPDXLicense>(this, SPDXLicense.OCLC2_0);
5098        if ("ODbL-1.0".equals(codeString))
5099          return new Enumeration<SPDXLicense>(this, SPDXLicense.ODBL1_0);
5100        if ("OFL-1.0".equals(codeString))
5101          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL1_0);
5102        if ("OFL-1.1".equals(codeString))
5103          return new Enumeration<SPDXLicense>(this, SPDXLicense.OFL1_1);
5104        if ("OGTSL".equals(codeString))
5105          return new Enumeration<SPDXLicense>(this, SPDXLicense.OGTSL);
5106        if ("OLDAP-1.1".equals(codeString))
5107          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_1);
5108        if ("OLDAP-1.2".equals(codeString))
5109          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_2);
5110        if ("OLDAP-1.3".equals(codeString))
5111          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_3);
5112        if ("OLDAP-1.4".equals(codeString))
5113          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP1_4);
5114        if ("OLDAP-2.0.1".equals(codeString))
5115          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_0_1);
5116        if ("OLDAP-2.0".equals(codeString))
5117          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_0);
5118        if ("OLDAP-2.1".equals(codeString))
5119          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_1);
5120        if ("OLDAP-2.2.1".equals(codeString))
5121          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_2_1);
5122        if ("OLDAP-2.2.2".equals(codeString))
5123          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_2_2);
5124        if ("OLDAP-2.2".equals(codeString))
5125          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_2);
5126        if ("OLDAP-2.3".equals(codeString))
5127          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_3);
5128        if ("OLDAP-2.4".equals(codeString))
5129          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_4);
5130        if ("OLDAP-2.5".equals(codeString))
5131          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_5);
5132        if ("OLDAP-2.6".equals(codeString))
5133          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_6);
5134        if ("OLDAP-2.7".equals(codeString))
5135          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_7);
5136        if ("OLDAP-2.8".equals(codeString))
5137          return new Enumeration<SPDXLicense>(this, SPDXLicense.OLDAP2_8);
5138        if ("OML".equals(codeString))
5139          return new Enumeration<SPDXLicense>(this, SPDXLicense.OML);
5140        if ("OpenSSL".equals(codeString))
5141          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPENSSL);
5142        if ("OPL-1.0".equals(codeString))
5143          return new Enumeration<SPDXLicense>(this, SPDXLicense.OPL1_0);
5144        if ("OSET-PL-2.1".equals(codeString))
5145          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSETPL2_1);
5146        if ("OSL-1.0".equals(codeString))
5147          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL1_0);
5148        if ("OSL-1.1".equals(codeString))
5149          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL1_1);
5150        if ("OSL-2.0".equals(codeString))
5151          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL2_0);
5152        if ("OSL-2.1".equals(codeString))
5153          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL2_1);
5154        if ("OSL-3.0".equals(codeString))
5155          return new Enumeration<SPDXLicense>(this, SPDXLicense.OSL3_0);
5156        if ("PDDL-1.0".equals(codeString))
5157          return new Enumeration<SPDXLicense>(this, SPDXLicense.PDDL1_0);
5158        if ("PHP-3.0".equals(codeString))
5159          return new Enumeration<SPDXLicense>(this, SPDXLicense.PHP3_0);
5160        if ("PHP-3.01".equals(codeString))
5161          return new Enumeration<SPDXLicense>(this, SPDXLicense.PHP3_01);
5162        if ("Plexus".equals(codeString))
5163          return new Enumeration<SPDXLicense>(this, SPDXLicense.PLEXUS);
5164        if ("PostgreSQL".equals(codeString))
5165          return new Enumeration<SPDXLicense>(this, SPDXLicense.POSTGRESQL);
5166        if ("psfrag".equals(codeString))
5167          return new Enumeration<SPDXLicense>(this, SPDXLicense.PSFRAG);
5168        if ("psutils".equals(codeString))
5169          return new Enumeration<SPDXLicense>(this, SPDXLicense.PSUTILS);
5170        if ("Python-2.0".equals(codeString))
5171          return new Enumeration<SPDXLicense>(this, SPDXLicense.PYTHON2_0);
5172        if ("Qhull".equals(codeString))
5173          return new Enumeration<SPDXLicense>(this, SPDXLicense.QHULL);
5174        if ("QPL-1.0".equals(codeString))
5175          return new Enumeration<SPDXLicense>(this, SPDXLicense.QPL1_0);
5176        if ("Rdisc".equals(codeString))
5177          return new Enumeration<SPDXLicense>(this, SPDXLicense.RDISC);
5178        if ("RHeCos-1.1".equals(codeString))
5179          return new Enumeration<SPDXLicense>(this, SPDXLicense.RHECOS1_1);
5180        if ("RPL-1.1".equals(codeString))
5181          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPL1_1);
5182        if ("RPL-1.5".equals(codeString))
5183          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPL1_5);
5184        if ("RPSL-1.0".equals(codeString))
5185          return new Enumeration<SPDXLicense>(this, SPDXLicense.RPSL1_0);
5186        if ("RSA-MD".equals(codeString))
5187          return new Enumeration<SPDXLicense>(this, SPDXLicense.RSAMD);
5188        if ("RSCPL".equals(codeString))
5189          return new Enumeration<SPDXLicense>(this, SPDXLicense.RSCPL);
5190        if ("Ruby".equals(codeString))
5191          return new Enumeration<SPDXLicense>(this, SPDXLicense.RUBY);
5192        if ("SAX-PD".equals(codeString))
5193          return new Enumeration<SPDXLicense>(this, SPDXLicense.SAXPD);
5194        if ("Saxpath".equals(codeString))
5195          return new Enumeration<SPDXLicense>(this, SPDXLicense.SAXPATH);
5196        if ("SCEA".equals(codeString))
5197          return new Enumeration<SPDXLicense>(this, SPDXLicense.SCEA);
5198        if ("Sendmail".equals(codeString))
5199          return new Enumeration<SPDXLicense>(this, SPDXLicense.SENDMAIL);
5200        if ("SGI-B-1.0".equals(codeString))
5201          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGIB1_0);
5202        if ("SGI-B-1.1".equals(codeString))
5203          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGIB1_1);
5204        if ("SGI-B-2.0".equals(codeString))
5205          return new Enumeration<SPDXLicense>(this, SPDXLicense.SGIB2_0);
5206        if ("SimPL-2.0".equals(codeString))
5207          return new Enumeration<SPDXLicense>(this, SPDXLicense.SIMPL2_0);
5208        if ("SISSL-1.2".equals(codeString))
5209          return new Enumeration<SPDXLicense>(this, SPDXLicense.SISSL1_2);
5210        if ("SISSL".equals(codeString))
5211          return new Enumeration<SPDXLicense>(this, SPDXLicense.SISSL);
5212        if ("Sleepycat".equals(codeString))
5213          return new Enumeration<SPDXLicense>(this, SPDXLicense.SLEEPYCAT);
5214        if ("SMLNJ".equals(codeString))
5215          return new Enumeration<SPDXLicense>(this, SPDXLicense.SMLNJ);
5216        if ("SMPPL".equals(codeString))
5217          return new Enumeration<SPDXLicense>(this, SPDXLicense.SMPPL);
5218        if ("SNIA".equals(codeString))
5219          return new Enumeration<SPDXLicense>(this, SPDXLicense.SNIA);
5220        if ("Spencer-86".equals(codeString))
5221          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER86);
5222        if ("Spencer-94".equals(codeString))
5223          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER94);
5224        if ("Spencer-99".equals(codeString))
5225          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPENCER99);
5226        if ("SPL-1.0".equals(codeString))
5227          return new Enumeration<SPDXLicense>(this, SPDXLicense.SPL1_0);
5228        if ("SugarCRM-1.1.3".equals(codeString))
5229          return new Enumeration<SPDXLicense>(this, SPDXLicense.SUGARCRM1_1_3);
5230        if ("SWL".equals(codeString))
5231          return new Enumeration<SPDXLicense>(this, SPDXLicense.SWL);
5232        if ("TCL".equals(codeString))
5233          return new Enumeration<SPDXLicense>(this, SPDXLicense.TCL);
5234        if ("TCP-wrappers".equals(codeString))
5235          return new Enumeration<SPDXLicense>(this, SPDXLicense.TCPWRAPPERS);
5236        if ("TMate".equals(codeString))
5237          return new Enumeration<SPDXLicense>(this, SPDXLicense.TMATE);
5238        if ("TORQUE-1.1".equals(codeString))
5239          return new Enumeration<SPDXLicense>(this, SPDXLicense.TORQUE1_1);
5240        if ("TOSL".equals(codeString))
5241          return new Enumeration<SPDXLicense>(this, SPDXLicense.TOSL);
5242        if ("Unicode-DFS-2015".equals(codeString))
5243          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODEDFS2015);
5244        if ("Unicode-DFS-2016".equals(codeString))
5245          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODEDFS2016);
5246        if ("Unicode-TOU".equals(codeString))
5247          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNICODETOU);
5248        if ("Unlicense".equals(codeString))
5249          return new Enumeration<SPDXLicense>(this, SPDXLicense.UNLICENSE);
5250        if ("UPL-1.0".equals(codeString))
5251          return new Enumeration<SPDXLicense>(this, SPDXLicense.UPL1_0);
5252        if ("Vim".equals(codeString))
5253          return new Enumeration<SPDXLicense>(this, SPDXLicense.VIM);
5254        if ("VOSTROM".equals(codeString))
5255          return new Enumeration<SPDXLicense>(this, SPDXLicense.VOSTROM);
5256        if ("VSL-1.0".equals(codeString))
5257          return new Enumeration<SPDXLicense>(this, SPDXLicense.VSL1_0);
5258        if ("W3C-19980720".equals(codeString))
5259          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C19980720);
5260        if ("W3C-20150513".equals(codeString))
5261          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C20150513);
5262        if ("W3C".equals(codeString))
5263          return new Enumeration<SPDXLicense>(this, SPDXLicense.W3C);
5264        if ("Watcom-1.0".equals(codeString))
5265          return new Enumeration<SPDXLicense>(this, SPDXLicense.WATCOM1_0);
5266        if ("Wsuipa".equals(codeString))
5267          return new Enumeration<SPDXLicense>(this, SPDXLicense.WSUIPA);
5268        if ("WTFPL".equals(codeString))
5269          return new Enumeration<SPDXLicense>(this, SPDXLicense.WTFPL);
5270        if ("X11".equals(codeString))
5271          return new Enumeration<SPDXLicense>(this, SPDXLicense.X11);
5272        if ("Xerox".equals(codeString))
5273          return new Enumeration<SPDXLicense>(this, SPDXLicense.XEROX);
5274        if ("XFree86-1.1".equals(codeString))
5275          return new Enumeration<SPDXLicense>(this, SPDXLicense.XFREE861_1);
5276        if ("xinetd".equals(codeString))
5277          return new Enumeration<SPDXLicense>(this, SPDXLicense.XINETD);
5278        if ("Xnet".equals(codeString))
5279          return new Enumeration<SPDXLicense>(this, SPDXLicense.XNET);
5280        if ("xpp".equals(codeString))
5281          return new Enumeration<SPDXLicense>(this, SPDXLicense.XPP);
5282        if ("XSkat".equals(codeString))
5283          return new Enumeration<SPDXLicense>(this, SPDXLicense.XSKAT);
5284        if ("YPL-1.0".equals(codeString))
5285          return new Enumeration<SPDXLicense>(this, SPDXLicense.YPL1_0);
5286        if ("YPL-1.1".equals(codeString))
5287          return new Enumeration<SPDXLicense>(this, SPDXLicense.YPL1_1);
5288        if ("Zed".equals(codeString))
5289          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZED);
5290        if ("Zend-2.0".equals(codeString))
5291          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZEND2_0);
5292        if ("Zimbra-1.3".equals(codeString))
5293          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZIMBRA1_3);
5294        if ("Zimbra-1.4".equals(codeString))
5295          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZIMBRA1_4);
5296        if ("zlib-acknowledgement".equals(codeString))
5297          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZLIBACKNOWLEDGEMENT);
5298        if ("Zlib".equals(codeString))
5299          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZLIB);
5300        if ("ZPL-1.1".equals(codeString))
5301          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL1_1);
5302        if ("ZPL-2.0".equals(codeString))
5303          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL2_0);
5304        if ("ZPL-2.1".equals(codeString))
5305          return new Enumeration<SPDXLicense>(this, SPDXLicense.ZPL2_1);
5306        throw new FHIRException("Unknown SPDXLicense code '"+codeString+"'");
5307        }
5308    public String toCode(SPDXLicense code) {
5309      if (code == SPDXLicense.NOTOPENSOURCE)
5310        return "not-open-source";
5311      if (code == SPDXLicense._0BSD)
5312        return "0BSD";
5313      if (code == SPDXLicense.AAL)
5314        return "AAL";
5315      if (code == SPDXLicense.ABSTYLES)
5316        return "Abstyles";
5317      if (code == SPDXLicense.ADOBE2006)
5318        return "Adobe-2006";
5319      if (code == SPDXLicense.ADOBEGLYPH)
5320        return "Adobe-Glyph";
5321      if (code == SPDXLicense.ADSL)
5322        return "ADSL";
5323      if (code == SPDXLicense.AFL1_1)
5324        return "AFL-1.1";
5325      if (code == SPDXLicense.AFL1_2)
5326        return "AFL-1.2";
5327      if (code == SPDXLicense.AFL2_0)
5328        return "AFL-2.0";
5329      if (code == SPDXLicense.AFL2_1)
5330        return "AFL-2.1";
5331      if (code == SPDXLicense.AFL3_0)
5332        return "AFL-3.0";
5333      if (code == SPDXLicense.AFMPARSE)
5334        return "Afmparse";
5335      if (code == SPDXLicense.AGPL1_0ONLY)
5336        return "AGPL-1.0-only";
5337      if (code == SPDXLicense.AGPL1_0ORLATER)
5338        return "AGPL-1.0-or-later";
5339      if (code == SPDXLicense.AGPL3_0ONLY)
5340        return "AGPL-3.0-only";
5341      if (code == SPDXLicense.AGPL3_0ORLATER)
5342        return "AGPL-3.0-or-later";
5343      if (code == SPDXLicense.ALADDIN)
5344        return "Aladdin";
5345      if (code == SPDXLicense.AMDPLPA)
5346        return "AMDPLPA";
5347      if (code == SPDXLicense.AML)
5348        return "AML";
5349      if (code == SPDXLicense.AMPAS)
5350        return "AMPAS";
5351      if (code == SPDXLicense.ANTLRPD)
5352        return "ANTLR-PD";
5353      if (code == SPDXLicense.APACHE1_0)
5354        return "Apache-1.0";
5355      if (code == SPDXLicense.APACHE1_1)
5356        return "Apache-1.1";
5357      if (code == SPDXLicense.APACHE2_0)
5358        return "Apache-2.0";
5359      if (code == SPDXLicense.APAFML)
5360        return "APAFML";
5361      if (code == SPDXLicense.APL1_0)
5362        return "APL-1.0";
5363      if (code == SPDXLicense.APSL1_0)
5364        return "APSL-1.0";
5365      if (code == SPDXLicense.APSL1_1)
5366        return "APSL-1.1";
5367      if (code == SPDXLicense.APSL1_2)
5368        return "APSL-1.2";
5369      if (code == SPDXLicense.APSL2_0)
5370        return "APSL-2.0";
5371      if (code == SPDXLicense.ARTISTIC1_0CL8)
5372        return "Artistic-1.0-cl8";
5373      if (code == SPDXLicense.ARTISTIC1_0PERL)
5374        return "Artistic-1.0-Perl";
5375      if (code == SPDXLicense.ARTISTIC1_0)
5376        return "Artistic-1.0";
5377      if (code == SPDXLicense.ARTISTIC2_0)
5378        return "Artistic-2.0";
5379      if (code == SPDXLicense.BAHYPH)
5380        return "Bahyph";
5381      if (code == SPDXLicense.BARR)
5382        return "Barr";
5383      if (code == SPDXLicense.BEERWARE)
5384        return "Beerware";
5385      if (code == SPDXLicense.BITTORRENT1_0)
5386        return "BitTorrent-1.0";
5387      if (code == SPDXLicense.BITTORRENT1_1)
5388        return "BitTorrent-1.1";
5389      if (code == SPDXLicense.BORCEUX)
5390        return "Borceux";
5391      if (code == SPDXLicense.BSD1CLAUSE)
5392        return "BSD-1-Clause";
5393      if (code == SPDXLicense.BSD2CLAUSEFREEBSD)
5394        return "BSD-2-Clause-FreeBSD";
5395      if (code == SPDXLicense.BSD2CLAUSENETBSD)
5396        return "BSD-2-Clause-NetBSD";
5397      if (code == SPDXLicense.BSD2CLAUSEPATENT)
5398        return "BSD-2-Clause-Patent";
5399      if (code == SPDXLicense.BSD2CLAUSE)
5400        return "BSD-2-Clause";
5401      if (code == SPDXLicense.BSD3CLAUSEATTRIBUTION)
5402        return "BSD-3-Clause-Attribution";
5403      if (code == SPDXLicense.BSD3CLAUSECLEAR)
5404        return "BSD-3-Clause-Clear";
5405      if (code == SPDXLicense.BSD3CLAUSELBNL)
5406        return "BSD-3-Clause-LBNL";
5407      if (code == SPDXLicense.BSD3CLAUSENONUCLEARLICENSE2014)
5408        return "BSD-3-Clause-No-Nuclear-License-2014";
5409      if (code == SPDXLicense.BSD3CLAUSENONUCLEARLICENSE)
5410        return "BSD-3-Clause-No-Nuclear-License";
5411      if (code == SPDXLicense.BSD3CLAUSENONUCLEARWARRANTY)
5412        return "BSD-3-Clause-No-Nuclear-Warranty";
5413      if (code == SPDXLicense.BSD3CLAUSE)
5414        return "BSD-3-Clause";
5415      if (code == SPDXLicense.BSD4CLAUSEUC)
5416        return "BSD-4-Clause-UC";
5417      if (code == SPDXLicense.BSD4CLAUSE)
5418        return "BSD-4-Clause";
5419      if (code == SPDXLicense.BSDPROTECTION)
5420        return "BSD-Protection";
5421      if (code == SPDXLicense.BSDSOURCECODE)
5422        return "BSD-Source-Code";
5423      if (code == SPDXLicense.BSL1_0)
5424        return "BSL-1.0";
5425      if (code == SPDXLicense.BZIP21_0_5)
5426        return "bzip2-1.0.5";
5427      if (code == SPDXLicense.BZIP21_0_6)
5428        return "bzip2-1.0.6";
5429      if (code == SPDXLicense.CALDERA)
5430        return "Caldera";
5431      if (code == SPDXLicense.CATOSL1_1)
5432        return "CATOSL-1.1";
5433      if (code == SPDXLicense.CCBY1_0)
5434        return "CC-BY-1.0";
5435      if (code == SPDXLicense.CCBY2_0)
5436        return "CC-BY-2.0";
5437      if (code == SPDXLicense.CCBY2_5)
5438        return "CC-BY-2.5";
5439      if (code == SPDXLicense.CCBY3_0)
5440        return "CC-BY-3.0";
5441      if (code == SPDXLicense.CCBY4_0)
5442        return "CC-BY-4.0";
5443      if (code == SPDXLicense.CCBYNC1_0)
5444        return "CC-BY-NC-1.0";
5445      if (code == SPDXLicense.CCBYNC2_0)
5446        return "CC-BY-NC-2.0";
5447      if (code == SPDXLicense.CCBYNC2_5)
5448        return "CC-BY-NC-2.5";
5449      if (code == SPDXLicense.CCBYNC3_0)
5450        return "CC-BY-NC-3.0";
5451      if (code == SPDXLicense.CCBYNC4_0)
5452        return "CC-BY-NC-4.0";
5453      if (code == SPDXLicense.CCBYNCND1_0)
5454        return "CC-BY-NC-ND-1.0";
5455      if (code == SPDXLicense.CCBYNCND2_0)
5456        return "CC-BY-NC-ND-2.0";
5457      if (code == SPDXLicense.CCBYNCND2_5)
5458        return "CC-BY-NC-ND-2.5";
5459      if (code == SPDXLicense.CCBYNCND3_0)
5460        return "CC-BY-NC-ND-3.0";
5461      if (code == SPDXLicense.CCBYNCND4_0)
5462        return "CC-BY-NC-ND-4.0";
5463      if (code == SPDXLicense.CCBYNCSA1_0)
5464        return "CC-BY-NC-SA-1.0";
5465      if (code == SPDXLicense.CCBYNCSA2_0)
5466        return "CC-BY-NC-SA-2.0";
5467      if (code == SPDXLicense.CCBYNCSA2_5)
5468        return "CC-BY-NC-SA-2.5";
5469      if (code == SPDXLicense.CCBYNCSA3_0)
5470        return "CC-BY-NC-SA-3.0";
5471      if (code == SPDXLicense.CCBYNCSA4_0)
5472        return "CC-BY-NC-SA-4.0";
5473      if (code == SPDXLicense.CCBYND1_0)
5474        return "CC-BY-ND-1.0";
5475      if (code == SPDXLicense.CCBYND2_0)
5476        return "CC-BY-ND-2.0";
5477      if (code == SPDXLicense.CCBYND2_5)
5478        return "CC-BY-ND-2.5";
5479      if (code == SPDXLicense.CCBYND3_0)
5480        return "CC-BY-ND-3.0";
5481      if (code == SPDXLicense.CCBYND4_0)
5482        return "CC-BY-ND-4.0";
5483      if (code == SPDXLicense.CCBYSA1_0)
5484        return "CC-BY-SA-1.0";
5485      if (code == SPDXLicense.CCBYSA2_0)
5486        return "CC-BY-SA-2.0";
5487      if (code == SPDXLicense.CCBYSA2_5)
5488        return "CC-BY-SA-2.5";
5489      if (code == SPDXLicense.CCBYSA3_0)
5490        return "CC-BY-SA-3.0";
5491      if (code == SPDXLicense.CCBYSA4_0)
5492        return "CC-BY-SA-4.0";
5493      if (code == SPDXLicense.CC01_0)
5494        return "CC0-1.0";
5495      if (code == SPDXLicense.CDDL1_0)
5496        return "CDDL-1.0";
5497      if (code == SPDXLicense.CDDL1_1)
5498        return "CDDL-1.1";
5499      if (code == SPDXLicense.CDLAPERMISSIVE1_0)
5500        return "CDLA-Permissive-1.0";
5501      if (code == SPDXLicense.CDLASHARING1_0)
5502        return "CDLA-Sharing-1.0";
5503      if (code == SPDXLicense.CECILL1_0)
5504        return "CECILL-1.0";
5505      if (code == SPDXLicense.CECILL1_1)
5506        return "CECILL-1.1";
5507      if (code == SPDXLicense.CECILL2_0)
5508        return "CECILL-2.0";
5509      if (code == SPDXLicense.CECILL2_1)
5510        return "CECILL-2.1";
5511      if (code == SPDXLicense.CECILLB)
5512        return "CECILL-B";
5513      if (code == SPDXLicense.CECILLC)
5514        return "CECILL-C";
5515      if (code == SPDXLicense.CLARTISTIC)
5516        return "ClArtistic";
5517      if (code == SPDXLicense.CNRIJYTHON)
5518        return "CNRI-Jython";
5519      if (code == SPDXLicense.CNRIPYTHONGPLCOMPATIBLE)
5520        return "CNRI-Python-GPL-Compatible";
5521      if (code == SPDXLicense.CNRIPYTHON)
5522        return "CNRI-Python";
5523      if (code == SPDXLicense.CONDOR1_1)
5524        return "Condor-1.1";
5525      if (code == SPDXLicense.CPAL1_0)
5526        return "CPAL-1.0";
5527      if (code == SPDXLicense.CPL1_0)
5528        return "CPL-1.0";
5529      if (code == SPDXLicense.CPOL1_02)
5530        return "CPOL-1.02";
5531      if (code == SPDXLicense.CROSSWORD)
5532        return "Crossword";
5533      if (code == SPDXLicense.CRYSTALSTACKER)
5534        return "CrystalStacker";
5535      if (code == SPDXLicense.CUAOPL1_0)
5536        return "CUA-OPL-1.0";
5537      if (code == SPDXLicense.CUBE)
5538        return "Cube";
5539      if (code == SPDXLicense.CURL)
5540        return "curl";
5541      if (code == SPDXLicense.DFSL1_0)
5542        return "D-FSL-1.0";
5543      if (code == SPDXLicense.DIFFMARK)
5544        return "diffmark";
5545      if (code == SPDXLicense.DOC)
5546        return "DOC";
5547      if (code == SPDXLicense.DOTSEQN)
5548        return "Dotseqn";
5549      if (code == SPDXLicense.DSDP)
5550        return "DSDP";
5551      if (code == SPDXLicense.DVIPDFM)
5552        return "dvipdfm";
5553      if (code == SPDXLicense.ECL1_0)
5554        return "ECL-1.0";
5555      if (code == SPDXLicense.ECL2_0)
5556        return "ECL-2.0";
5557      if (code == SPDXLicense.EFL1_0)
5558        return "EFL-1.0";
5559      if (code == SPDXLicense.EFL2_0)
5560        return "EFL-2.0";
5561      if (code == SPDXLicense.EGENIX)
5562        return "eGenix";
5563      if (code == SPDXLicense.ENTESSA)
5564        return "Entessa";
5565      if (code == SPDXLicense.EPL1_0)
5566        return "EPL-1.0";
5567      if (code == SPDXLicense.EPL2_0)
5568        return "EPL-2.0";
5569      if (code == SPDXLicense.ERLPL1_1)
5570        return "ErlPL-1.1";
5571      if (code == SPDXLicense.EUDATAGRID)
5572        return "EUDatagrid";
5573      if (code == SPDXLicense.EUPL1_0)
5574        return "EUPL-1.0";
5575      if (code == SPDXLicense.EUPL1_1)
5576        return "EUPL-1.1";
5577      if (code == SPDXLicense.EUPL1_2)
5578        return "EUPL-1.2";
5579      if (code == SPDXLicense.EUROSYM)
5580        return "Eurosym";
5581      if (code == SPDXLicense.FAIR)
5582        return "Fair";
5583      if (code == SPDXLicense.FRAMEWORX1_0)
5584        return "Frameworx-1.0";
5585      if (code == SPDXLicense.FREEIMAGE)
5586        return "FreeImage";
5587      if (code == SPDXLicense.FSFAP)
5588        return "FSFAP";
5589      if (code == SPDXLicense.FSFUL)
5590        return "FSFUL";
5591      if (code == SPDXLicense.FSFULLR)
5592        return "FSFULLR";
5593      if (code == SPDXLicense.FTL)
5594        return "FTL";
5595      if (code == SPDXLicense.GFDL1_1ONLY)
5596        return "GFDL-1.1-only";
5597      if (code == SPDXLicense.GFDL1_1ORLATER)
5598        return "GFDL-1.1-or-later";
5599      if (code == SPDXLicense.GFDL1_2ONLY)
5600        return "GFDL-1.2-only";
5601      if (code == SPDXLicense.GFDL1_2ORLATER)
5602        return "GFDL-1.2-or-later";
5603      if (code == SPDXLicense.GFDL1_3ONLY)
5604        return "GFDL-1.3-only";
5605      if (code == SPDXLicense.GFDL1_3ORLATER)
5606        return "GFDL-1.3-or-later";
5607      if (code == SPDXLicense.GIFTWARE)
5608        return "Giftware";
5609      if (code == SPDXLicense.GL2PS)
5610        return "GL2PS";
5611      if (code == SPDXLicense.GLIDE)
5612        return "Glide";
5613      if (code == SPDXLicense.GLULXE)
5614        return "Glulxe";
5615      if (code == SPDXLicense.GNUPLOT)
5616        return "gnuplot";
5617      if (code == SPDXLicense.GPL1_0ONLY)
5618        return "GPL-1.0-only";
5619      if (code == SPDXLicense.GPL1_0ORLATER)
5620        return "GPL-1.0-or-later";
5621      if (code == SPDXLicense.GPL2_0ONLY)
5622        return "GPL-2.0-only";
5623      if (code == SPDXLicense.GPL2_0ORLATER)
5624        return "GPL-2.0-or-later";
5625      if (code == SPDXLicense.GPL3_0ONLY)
5626        return "GPL-3.0-only";
5627      if (code == SPDXLicense.GPL3_0ORLATER)
5628        return "GPL-3.0-or-later";
5629      if (code == SPDXLicense.GSOAP1_3B)
5630        return "gSOAP-1.3b";
5631      if (code == SPDXLicense.HASKELLREPORT)
5632        return "HaskellReport";
5633      if (code == SPDXLicense.HPND)
5634        return "HPND";
5635      if (code == SPDXLicense.IBMPIBS)
5636        return "IBM-pibs";
5637      if (code == SPDXLicense.ICU)
5638        return "ICU";
5639      if (code == SPDXLicense.IJG)
5640        return "IJG";
5641      if (code == SPDXLicense.IMAGEMAGICK)
5642        return "ImageMagick";
5643      if (code == SPDXLicense.IMATIX)
5644        return "iMatix";
5645      if (code == SPDXLicense.IMLIB2)
5646        return "Imlib2";
5647      if (code == SPDXLicense.INFOZIP)
5648        return "Info-ZIP";
5649      if (code == SPDXLicense.INTELACPI)
5650        return "Intel-ACPI";
5651      if (code == SPDXLicense.INTEL)
5652        return "Intel";
5653      if (code == SPDXLicense.INTERBASE1_0)
5654        return "Interbase-1.0";
5655      if (code == SPDXLicense.IPA)
5656        return "IPA";
5657      if (code == SPDXLicense.IPL1_0)
5658        return "IPL-1.0";
5659      if (code == SPDXLicense.ISC)
5660        return "ISC";
5661      if (code == SPDXLicense.JASPER2_0)
5662        return "JasPer-2.0";
5663      if (code == SPDXLicense.JSON)
5664        return "JSON";
5665      if (code == SPDXLicense.LAL1_2)
5666        return "LAL-1.2";
5667      if (code == SPDXLicense.LAL1_3)
5668        return "LAL-1.3";
5669      if (code == SPDXLicense.LATEX2E)
5670        return "Latex2e";
5671      if (code == SPDXLicense.LEPTONICA)
5672        return "Leptonica";
5673      if (code == SPDXLicense.LGPL2_0ONLY)
5674        return "LGPL-2.0-only";
5675      if (code == SPDXLicense.LGPL2_0ORLATER)
5676        return "LGPL-2.0-or-later";
5677      if (code == SPDXLicense.LGPL2_1ONLY)
5678        return "LGPL-2.1-only";
5679      if (code == SPDXLicense.LGPL2_1ORLATER)
5680        return "LGPL-2.1-or-later";
5681      if (code == SPDXLicense.LGPL3_0ONLY)
5682        return "LGPL-3.0-only";
5683      if (code == SPDXLicense.LGPL3_0ORLATER)
5684        return "LGPL-3.0-or-later";
5685      if (code == SPDXLicense.LGPLLR)
5686        return "LGPLLR";
5687      if (code == SPDXLicense.LIBPNG)
5688        return "Libpng";
5689      if (code == SPDXLicense.LIBTIFF)
5690        return "libtiff";
5691      if (code == SPDXLicense.LILIQP1_1)
5692        return "LiLiQ-P-1.1";
5693      if (code == SPDXLicense.LILIQR1_1)
5694        return "LiLiQ-R-1.1";
5695      if (code == SPDXLicense.LILIQRPLUS1_1)
5696        return "LiLiQ-Rplus-1.1";
5697      if (code == SPDXLicense.LINUXOPENIB)
5698        return "Linux-OpenIB";
5699      if (code == SPDXLicense.LPL1_0)
5700        return "LPL-1.0";
5701      if (code == SPDXLicense.LPL1_02)
5702        return "LPL-1.02";
5703      if (code == SPDXLicense.LPPL1_0)
5704        return "LPPL-1.0";
5705      if (code == SPDXLicense.LPPL1_1)
5706        return "LPPL-1.1";
5707      if (code == SPDXLicense.LPPL1_2)
5708        return "LPPL-1.2";
5709      if (code == SPDXLicense.LPPL1_3A)
5710        return "LPPL-1.3a";
5711      if (code == SPDXLicense.LPPL1_3C)
5712        return "LPPL-1.3c";
5713      if (code == SPDXLicense.MAKEINDEX)
5714        return "MakeIndex";
5715      if (code == SPDXLicense.MIROS)
5716        return "MirOS";
5717      if (code == SPDXLicense.MIT0)
5718        return "MIT-0";
5719      if (code == SPDXLicense.MITADVERTISING)
5720        return "MIT-advertising";
5721      if (code == SPDXLicense.MITCMU)
5722        return "MIT-CMU";
5723      if (code == SPDXLicense.MITENNA)
5724        return "MIT-enna";
5725      if (code == SPDXLicense.MITFEH)
5726        return "MIT-feh";
5727      if (code == SPDXLicense.MIT)
5728        return "MIT";
5729      if (code == SPDXLicense.MITNFA)
5730        return "MITNFA";
5731      if (code == SPDXLicense.MOTOSOTO)
5732        return "Motosoto";
5733      if (code == SPDXLicense.MPICH2)
5734        return "mpich2";
5735      if (code == SPDXLicense.MPL1_0)
5736        return "MPL-1.0";
5737      if (code == SPDXLicense.MPL1_1)
5738        return "MPL-1.1";
5739      if (code == SPDXLicense.MPL2_0NOCOPYLEFTEXCEPTION)
5740        return "MPL-2.0-no-copyleft-exception";
5741      if (code == SPDXLicense.MPL2_0)
5742        return "MPL-2.0";
5743      if (code == SPDXLicense.MSPL)
5744        return "MS-PL";
5745      if (code == SPDXLicense.MSRL)
5746        return "MS-RL";
5747      if (code == SPDXLicense.MTLL)
5748        return "MTLL";
5749      if (code == SPDXLicense.MULTICS)
5750        return "Multics";
5751      if (code == SPDXLicense.MUP)
5752        return "Mup";
5753      if (code == SPDXLicense.NASA1_3)
5754        return "NASA-1.3";
5755      if (code == SPDXLicense.NAUMEN)
5756        return "Naumen";
5757      if (code == SPDXLicense.NBPL1_0)
5758        return "NBPL-1.0";
5759      if (code == SPDXLicense.NCSA)
5760        return "NCSA";
5761      if (code == SPDXLicense.NETSNMP)
5762        return "Net-SNMP";
5763      if (code == SPDXLicense.NETCDF)
5764        return "NetCDF";
5765      if (code == SPDXLicense.NEWSLETR)
5766        return "Newsletr";
5767      if (code == SPDXLicense.NGPL)
5768        return "NGPL";
5769      if (code == SPDXLicense.NLOD1_0)
5770        return "NLOD-1.0";
5771      if (code == SPDXLicense.NLPL)
5772        return "NLPL";
5773      if (code == SPDXLicense.NOKIA)
5774        return "Nokia";
5775      if (code == SPDXLicense.NOSL)
5776        return "NOSL";
5777      if (code == SPDXLicense.NOWEB)
5778        return "Noweb";
5779      if (code == SPDXLicense.NPL1_0)
5780        return "NPL-1.0";
5781      if (code == SPDXLicense.NPL1_1)
5782        return "NPL-1.1";
5783      if (code == SPDXLicense.NPOSL3_0)
5784        return "NPOSL-3.0";
5785      if (code == SPDXLicense.NRL)
5786        return "NRL";
5787      if (code == SPDXLicense.NTP)
5788        return "NTP";
5789      if (code == SPDXLicense.OCCTPL)
5790        return "OCCT-PL";
5791      if (code == SPDXLicense.OCLC2_0)
5792        return "OCLC-2.0";
5793      if (code == SPDXLicense.ODBL1_0)
5794        return "ODbL-1.0";
5795      if (code == SPDXLicense.OFL1_0)
5796        return "OFL-1.0";
5797      if (code == SPDXLicense.OFL1_1)
5798        return "OFL-1.1";
5799      if (code == SPDXLicense.OGTSL)
5800        return "OGTSL";
5801      if (code == SPDXLicense.OLDAP1_1)
5802        return "OLDAP-1.1";
5803      if (code == SPDXLicense.OLDAP1_2)
5804        return "OLDAP-1.2";
5805      if (code == SPDXLicense.OLDAP1_3)
5806        return "OLDAP-1.3";
5807      if (code == SPDXLicense.OLDAP1_4)
5808        return "OLDAP-1.4";
5809      if (code == SPDXLicense.OLDAP2_0_1)
5810        return "OLDAP-2.0.1";
5811      if (code == SPDXLicense.OLDAP2_0)
5812        return "OLDAP-2.0";
5813      if (code == SPDXLicense.OLDAP2_1)
5814        return "OLDAP-2.1";
5815      if (code == SPDXLicense.OLDAP2_2_1)
5816        return "OLDAP-2.2.1";
5817      if (code == SPDXLicense.OLDAP2_2_2)
5818        return "OLDAP-2.2.2";
5819      if (code == SPDXLicense.OLDAP2_2)
5820        return "OLDAP-2.2";
5821      if (code == SPDXLicense.OLDAP2_3)
5822        return "OLDAP-2.3";
5823      if (code == SPDXLicense.OLDAP2_4)
5824        return "OLDAP-2.4";
5825      if (code == SPDXLicense.OLDAP2_5)
5826        return "OLDAP-2.5";
5827      if (code == SPDXLicense.OLDAP2_6)
5828        return "OLDAP-2.6";
5829      if (code == SPDXLicense.OLDAP2_7)
5830        return "OLDAP-2.7";
5831      if (code == SPDXLicense.OLDAP2_8)
5832        return "OLDAP-2.8";
5833      if (code == SPDXLicense.OML)
5834        return "OML";
5835      if (code == SPDXLicense.OPENSSL)
5836        return "OpenSSL";
5837      if (code == SPDXLicense.OPL1_0)
5838        return "OPL-1.0";
5839      if (code == SPDXLicense.OSETPL2_1)
5840        return "OSET-PL-2.1";
5841      if (code == SPDXLicense.OSL1_0)
5842        return "OSL-1.0";
5843      if (code == SPDXLicense.OSL1_1)
5844        return "OSL-1.1";
5845      if (code == SPDXLicense.OSL2_0)
5846        return "OSL-2.0";
5847      if (code == SPDXLicense.OSL2_1)
5848        return "OSL-2.1";
5849      if (code == SPDXLicense.OSL3_0)
5850        return "OSL-3.0";
5851      if (code == SPDXLicense.PDDL1_0)
5852        return "PDDL-1.0";
5853      if (code == SPDXLicense.PHP3_0)
5854        return "PHP-3.0";
5855      if (code == SPDXLicense.PHP3_01)
5856        return "PHP-3.01";
5857      if (code == SPDXLicense.PLEXUS)
5858        return "Plexus";
5859      if (code == SPDXLicense.POSTGRESQL)
5860        return "PostgreSQL";
5861      if (code == SPDXLicense.PSFRAG)
5862        return "psfrag";
5863      if (code == SPDXLicense.PSUTILS)
5864        return "psutils";
5865      if (code == SPDXLicense.PYTHON2_0)
5866        return "Python-2.0";
5867      if (code == SPDXLicense.QHULL)
5868        return "Qhull";
5869      if (code == SPDXLicense.QPL1_0)
5870        return "QPL-1.0";
5871      if (code == SPDXLicense.RDISC)
5872        return "Rdisc";
5873      if (code == SPDXLicense.RHECOS1_1)
5874        return "RHeCos-1.1";
5875      if (code == SPDXLicense.RPL1_1)
5876        return "RPL-1.1";
5877      if (code == SPDXLicense.RPL1_5)
5878        return "RPL-1.5";
5879      if (code == SPDXLicense.RPSL1_0)
5880        return "RPSL-1.0";
5881      if (code == SPDXLicense.RSAMD)
5882        return "RSA-MD";
5883      if (code == SPDXLicense.RSCPL)
5884        return "RSCPL";
5885      if (code == SPDXLicense.RUBY)
5886        return "Ruby";
5887      if (code == SPDXLicense.SAXPD)
5888        return "SAX-PD";
5889      if (code == SPDXLicense.SAXPATH)
5890        return "Saxpath";
5891      if (code == SPDXLicense.SCEA)
5892        return "SCEA";
5893      if (code == SPDXLicense.SENDMAIL)
5894        return "Sendmail";
5895      if (code == SPDXLicense.SGIB1_0)
5896        return "SGI-B-1.0";
5897      if (code == SPDXLicense.SGIB1_1)
5898        return "SGI-B-1.1";
5899      if (code == SPDXLicense.SGIB2_0)
5900        return "SGI-B-2.0";
5901      if (code == SPDXLicense.SIMPL2_0)
5902        return "SimPL-2.0";
5903      if (code == SPDXLicense.SISSL1_2)
5904        return "SISSL-1.2";
5905      if (code == SPDXLicense.SISSL)
5906        return "SISSL";
5907      if (code == SPDXLicense.SLEEPYCAT)
5908        return "Sleepycat";
5909      if (code == SPDXLicense.SMLNJ)
5910        return "SMLNJ";
5911      if (code == SPDXLicense.SMPPL)
5912        return "SMPPL";
5913      if (code == SPDXLicense.SNIA)
5914        return "SNIA";
5915      if (code == SPDXLicense.SPENCER86)
5916        return "Spencer-86";
5917      if (code == SPDXLicense.SPENCER94)
5918        return "Spencer-94";
5919      if (code == SPDXLicense.SPENCER99)
5920        return "Spencer-99";
5921      if (code == SPDXLicense.SPL1_0)
5922        return "SPL-1.0";
5923      if (code == SPDXLicense.SUGARCRM1_1_3)
5924        return "SugarCRM-1.1.3";
5925      if (code == SPDXLicense.SWL)
5926        return "SWL";
5927      if (code == SPDXLicense.TCL)
5928        return "TCL";
5929      if (code == SPDXLicense.TCPWRAPPERS)
5930        return "TCP-wrappers";
5931      if (code == SPDXLicense.TMATE)
5932        return "TMate";
5933      if (code == SPDXLicense.TORQUE1_1)
5934        return "TORQUE-1.1";
5935      if (code == SPDXLicense.TOSL)
5936        return "TOSL";
5937      if (code == SPDXLicense.UNICODEDFS2015)
5938        return "Unicode-DFS-2015";
5939      if (code == SPDXLicense.UNICODEDFS2016)
5940        return "Unicode-DFS-2016";
5941      if (code == SPDXLicense.UNICODETOU)
5942        return "Unicode-TOU";
5943      if (code == SPDXLicense.UNLICENSE)
5944        return "Unlicense";
5945      if (code == SPDXLicense.UPL1_0)
5946        return "UPL-1.0";
5947      if (code == SPDXLicense.VIM)
5948        return "Vim";
5949      if (code == SPDXLicense.VOSTROM)
5950        return "VOSTROM";
5951      if (code == SPDXLicense.VSL1_0)
5952        return "VSL-1.0";
5953      if (code == SPDXLicense.W3C19980720)
5954        return "W3C-19980720";
5955      if (code == SPDXLicense.W3C20150513)
5956        return "W3C-20150513";
5957      if (code == SPDXLicense.W3C)
5958        return "W3C";
5959      if (code == SPDXLicense.WATCOM1_0)
5960        return "Watcom-1.0";
5961      if (code == SPDXLicense.WSUIPA)
5962        return "Wsuipa";
5963      if (code == SPDXLicense.WTFPL)
5964        return "WTFPL";
5965      if (code == SPDXLicense.X11)
5966        return "X11";
5967      if (code == SPDXLicense.XEROX)
5968        return "Xerox";
5969      if (code == SPDXLicense.XFREE861_1)
5970        return "XFree86-1.1";
5971      if (code == SPDXLicense.XINETD)
5972        return "xinetd";
5973      if (code == SPDXLicense.XNET)
5974        return "Xnet";
5975      if (code == SPDXLicense.XPP)
5976        return "xpp";
5977      if (code == SPDXLicense.XSKAT)
5978        return "XSkat";
5979      if (code == SPDXLicense.YPL1_0)
5980        return "YPL-1.0";
5981      if (code == SPDXLicense.YPL1_1)
5982        return "YPL-1.1";
5983      if (code == SPDXLicense.ZED)
5984        return "Zed";
5985      if (code == SPDXLicense.ZEND2_0)
5986        return "Zend-2.0";
5987      if (code == SPDXLicense.ZIMBRA1_3)
5988        return "Zimbra-1.3";
5989      if (code == SPDXLicense.ZIMBRA1_4)
5990        return "Zimbra-1.4";
5991      if (code == SPDXLicense.ZLIBACKNOWLEDGEMENT)
5992        return "zlib-acknowledgement";
5993      if (code == SPDXLicense.ZLIB)
5994        return "Zlib";
5995      if (code == SPDXLicense.ZPL1_1)
5996        return "ZPL-1.1";
5997      if (code == SPDXLicense.ZPL2_0)
5998        return "ZPL-2.0";
5999      if (code == SPDXLicense.ZPL2_1)
6000        return "ZPL-2.1";
6001      return "?";
6002      }
6003    public String toSystem(SPDXLicense code) {
6004      return code.getSystem();
6005      }
6006    }
6007
6008    @Block()
6009    public static class ImplementationGuideDependsOnComponent extends BackboneElement implements IBaseBackboneElement {
6010        /**
6011         * A canonical reference to the Implementation guide for the dependency.
6012         */
6013        @Child(name = "uri", type = {CanonicalType.class}, order=1, min=1, max=1, modifier=false, summary=true)
6014        @Description(shortDefinition="Identity of the IG that this depends on", formalDefinition="A canonical reference to the Implementation guide for the dependency." )
6015        protected CanonicalType uri;
6016
6017        /**
6018         * The NPM package name for the Implementation Guide that this IG depends on.
6019         */
6020        @Child(name = "packageId", type = {IdType.class}, order=2, min=0, max=1, modifier=false, summary=true)
6021        @Description(shortDefinition="NPM Package name for IG this depends on", formalDefinition="The NPM package name for the Implementation Guide that this IG depends on." )
6022        protected IdType packageId;
6023
6024        /**
6025         * The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
6026         */
6027        @Child(name = "version", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
6028        @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." )
6029        protected StringType version;
6030
6031        private static final long serialVersionUID = -215808797L;
6032
6033    /**
6034     * Constructor
6035     */
6036      public ImplementationGuideDependsOnComponent() {
6037        super();
6038      }
6039
6040    /**
6041     * Constructor
6042     */
6043      public ImplementationGuideDependsOnComponent(String uri) {
6044        super();
6045        this.setUri(uri);
6046      }
6047
6048        /**
6049         * @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
6050         */
6051        public CanonicalType getUriElement() { 
6052          if (this.uri == null)
6053            if (Configuration.errorOnAutoCreate())
6054              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.uri");
6055            else if (Configuration.doAutoCreate())
6056              this.uri = new CanonicalType(); // bb
6057          return this.uri;
6058        }
6059
6060        public boolean hasUriElement() { 
6061          return this.uri != null && !this.uri.isEmpty();
6062        }
6063
6064        public boolean hasUri() { 
6065          return this.uri != null && !this.uri.isEmpty();
6066        }
6067
6068        /**
6069         * @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
6070         */
6071        public ImplementationGuideDependsOnComponent setUriElement(CanonicalType value) { 
6072          this.uri = value;
6073          return this;
6074        }
6075
6076        /**
6077         * @return A canonical reference to the Implementation guide for the dependency.
6078         */
6079        public String getUri() { 
6080          return this.uri == null ? null : this.uri.getValue();
6081        }
6082
6083        /**
6084         * @param value A canonical reference to the Implementation guide for the dependency.
6085         */
6086        public ImplementationGuideDependsOnComponent setUri(String value) { 
6087            if (this.uri == null)
6088              this.uri = new CanonicalType();
6089            this.uri.setValue(value);
6090          return this;
6091        }
6092
6093        /**
6094         * @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
6095         */
6096        public IdType getPackageIdElement() { 
6097          if (this.packageId == null)
6098            if (Configuration.errorOnAutoCreate())
6099              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.packageId");
6100            else if (Configuration.doAutoCreate())
6101              this.packageId = new IdType(); // bb
6102          return this.packageId;
6103        }
6104
6105        public boolean hasPackageIdElement() { 
6106          return this.packageId != null && !this.packageId.isEmpty();
6107        }
6108
6109        public boolean hasPackageId() { 
6110          return this.packageId != null && !this.packageId.isEmpty();
6111        }
6112
6113        /**
6114         * @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
6115         */
6116        public ImplementationGuideDependsOnComponent setPackageIdElement(IdType value) { 
6117          this.packageId = value;
6118          return this;
6119        }
6120
6121        /**
6122         * @return The NPM package name for the Implementation Guide that this IG depends on.
6123         */
6124        public String getPackageId() { 
6125          return this.packageId == null ? null : this.packageId.getValue();
6126        }
6127
6128        /**
6129         * @param value The NPM package name for the Implementation Guide that this IG depends on.
6130         */
6131        public ImplementationGuideDependsOnComponent setPackageId(String value) { 
6132          if (Utilities.noString(value))
6133            this.packageId = null;
6134          else {
6135            if (this.packageId == null)
6136              this.packageId = new IdType();
6137            this.packageId.setValue(value);
6138          }
6139          return this;
6140        }
6141
6142        /**
6143         * @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
6144         */
6145        public StringType getVersionElement() { 
6146          if (this.version == null)
6147            if (Configuration.errorOnAutoCreate())
6148              throw new Error("Attempt to auto-create ImplementationGuideDependsOnComponent.version");
6149            else if (Configuration.doAutoCreate())
6150              this.version = new StringType(); // bb
6151          return this.version;
6152        }
6153
6154        public boolean hasVersionElement() { 
6155          return this.version != null && !this.version.isEmpty();
6156        }
6157
6158        public boolean hasVersion() { 
6159          return this.version != null && !this.version.isEmpty();
6160        }
6161
6162        /**
6163         * @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
6164         */
6165        public ImplementationGuideDependsOnComponent setVersionElement(StringType value) { 
6166          this.version = value;
6167          return this;
6168        }
6169
6170        /**
6171         * @return The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
6172         */
6173        public String getVersion() { 
6174          return this.version == null ? null : this.version.getValue();
6175        }
6176
6177        /**
6178         * @param value The version of the IG that is depended on, when the correct version is required to understand the IG correctly.
6179         */
6180        public ImplementationGuideDependsOnComponent setVersion(String value) { 
6181          if (Utilities.noString(value))
6182            this.version = null;
6183          else {
6184            if (this.version == null)
6185              this.version = new StringType();
6186            this.version.setValue(value);
6187          }
6188          return this;
6189        }
6190
6191        protected void listChildren(List<Property> children) {
6192          super.listChildren(children);
6193          children.add(new Property("uri", "canonical(ImplementationGuide)", "A canonical reference to the Implementation guide for the dependency.", 0, 1, uri));
6194          children.add(new Property("packageId", "id", "The NPM package name for the Implementation Guide that this IG depends on.", 0, 1, packageId));
6195          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));
6196        }
6197
6198        @Override
6199        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6200          switch (_hash) {
6201          case 116076: /*uri*/  return new Property("uri", "canonical(ImplementationGuide)", "A canonical reference to the Implementation guide for the dependency.", 0, 1, uri);
6202          case 1802060801: /*packageId*/  return new Property("packageId", "id", "The NPM package name for the Implementation Guide that this IG depends on.", 0, 1, packageId);
6203          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);
6204          default: return super.getNamedProperty(_hash, _name, _checkValid);
6205          }
6206
6207        }
6208
6209      @Override
6210      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6211        switch (hash) {
6212        case 116076: /*uri*/ return this.uri == null ? new Base[0] : new Base[] {this.uri}; // CanonicalType
6213        case 1802060801: /*packageId*/ return this.packageId == null ? new Base[0] : new Base[] {this.packageId}; // IdType
6214        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
6215        default: return super.getProperty(hash, name, checkValid);
6216        }
6217
6218      }
6219
6220      @Override
6221      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6222        switch (hash) {
6223        case 116076: // uri
6224          this.uri = TypeConvertor.castToCanonical(value); // CanonicalType
6225          return value;
6226        case 1802060801: // packageId
6227          this.packageId = TypeConvertor.castToId(value); // IdType
6228          return value;
6229        case 351608024: // version
6230          this.version = TypeConvertor.castToString(value); // StringType
6231          return value;
6232        default: return super.setProperty(hash, name, value);
6233        }
6234
6235      }
6236
6237      @Override
6238      public Base setProperty(String name, Base value) throws FHIRException {
6239        if (name.equals("uri")) {
6240          this.uri = TypeConvertor.castToCanonical(value); // CanonicalType
6241        } else if (name.equals("packageId")) {
6242          this.packageId = TypeConvertor.castToId(value); // IdType
6243        } else if (name.equals("version")) {
6244          this.version = TypeConvertor.castToString(value); // StringType
6245        } else
6246          return super.setProperty(name, value);
6247        return value;
6248      }
6249
6250      @Override
6251      public Base makeProperty(int hash, String name) throws FHIRException {
6252        switch (hash) {
6253        case 116076:  return getUriElement();
6254        case 1802060801:  return getPackageIdElement();
6255        case 351608024:  return getVersionElement();
6256        default: return super.makeProperty(hash, name);
6257        }
6258
6259      }
6260
6261      @Override
6262      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6263        switch (hash) {
6264        case 116076: /*uri*/ return new String[] {"canonical"};
6265        case 1802060801: /*packageId*/ return new String[] {"id"};
6266        case 351608024: /*version*/ return new String[] {"string"};
6267        default: return super.getTypesForProperty(hash, name);
6268        }
6269
6270      }
6271
6272      @Override
6273      public Base addChild(String name) throws FHIRException {
6274        if (name.equals("uri")) {
6275          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.dependsOn.uri");
6276        }
6277        else if (name.equals("packageId")) {
6278          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.dependsOn.packageId");
6279        }
6280        else if (name.equals("version")) {
6281          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.dependsOn.version");
6282        }
6283        else
6284          return super.addChild(name);
6285      }
6286
6287      public ImplementationGuideDependsOnComponent copy() {
6288        ImplementationGuideDependsOnComponent dst = new ImplementationGuideDependsOnComponent();
6289        copyValues(dst);
6290        return dst;
6291      }
6292
6293      public void copyValues(ImplementationGuideDependsOnComponent dst) {
6294        super.copyValues(dst);
6295        dst.uri = uri == null ? null : uri.copy();
6296        dst.packageId = packageId == null ? null : packageId.copy();
6297        dst.version = version == null ? null : version.copy();
6298      }
6299
6300      @Override
6301      public boolean equalsDeep(Base other_) {
6302        if (!super.equalsDeep(other_))
6303          return false;
6304        if (!(other_ instanceof ImplementationGuideDependsOnComponent))
6305          return false;
6306        ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
6307        return compareDeep(uri, o.uri, true) && compareDeep(packageId, o.packageId, true) && compareDeep(version, o.version, true)
6308          ;
6309      }
6310
6311      @Override
6312      public boolean equalsShallow(Base other_) {
6313        if (!super.equalsShallow(other_))
6314          return false;
6315        if (!(other_ instanceof ImplementationGuideDependsOnComponent))
6316          return false;
6317        ImplementationGuideDependsOnComponent o = (ImplementationGuideDependsOnComponent) other_;
6318        return compareValues(uri, o.uri, true) && compareValues(packageId, o.packageId, true) && compareValues(version, o.version, true)
6319          ;
6320      }
6321
6322      public boolean isEmpty() {
6323        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(uri, packageId, version
6324          );
6325      }
6326
6327  public String fhirType() {
6328    return "ImplementationGuide.dependsOn";
6329
6330  }
6331
6332  }
6333
6334    @Block()
6335    public static class ImplementationGuideGlobalComponent extends BackboneElement implements IBaseBackboneElement {
6336        /**
6337         * The type of resource that all instances must conform to.
6338         */
6339        @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
6340        @Description(shortDefinition="Type this profile applies to", formalDefinition="The type of resource that all instances must conform to." )
6341        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types")
6342        protected CodeType type;
6343
6344        /**
6345         * A reference to the profile that all instances must conform to.
6346         */
6347        @Child(name = "profile", type = {CanonicalType.class}, order=2, min=1, max=1, modifier=false, summary=true)
6348        @Description(shortDefinition="Profile that all resources must conform to", formalDefinition="A reference to the profile that all instances must conform to." )
6349        protected CanonicalType profile;
6350
6351        private static final long serialVersionUID = 33894666L;
6352
6353    /**
6354     * Constructor
6355     */
6356      public ImplementationGuideGlobalComponent() {
6357        super();
6358      }
6359
6360    /**
6361     * Constructor
6362     */
6363      public ImplementationGuideGlobalComponent(String type, String profile) {
6364        super();
6365        this.setType(type);
6366        this.setProfile(profile);
6367      }
6368
6369        /**
6370         * @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
6371         */
6372        public CodeType getTypeElement() { 
6373          if (this.type == null)
6374            if (Configuration.errorOnAutoCreate())
6375              throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.type");
6376            else if (Configuration.doAutoCreate())
6377              this.type = new CodeType(); // bb
6378          return this.type;
6379        }
6380
6381        public boolean hasTypeElement() { 
6382          return this.type != null && !this.type.isEmpty();
6383        }
6384
6385        public boolean hasType() { 
6386          return this.type != null && !this.type.isEmpty();
6387        }
6388
6389        /**
6390         * @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
6391         */
6392        public ImplementationGuideGlobalComponent setTypeElement(CodeType value) { 
6393          this.type = value;
6394          return this;
6395        }
6396
6397        /**
6398         * @return The type of resource that all instances must conform to.
6399         */
6400        public String getType() { 
6401          return this.type == null ? null : this.type.getValue();
6402        }
6403
6404        /**
6405         * @param value The type of resource that all instances must conform to.
6406         */
6407        public ImplementationGuideGlobalComponent setType(String value) { 
6408            if (this.type == null)
6409              this.type = new CodeType();
6410            this.type.setValue(value);
6411          return this;
6412        }
6413
6414        /**
6415         * @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
6416         */
6417        public CanonicalType getProfileElement() { 
6418          if (this.profile == null)
6419            if (Configuration.errorOnAutoCreate())
6420              throw new Error("Attempt to auto-create ImplementationGuideGlobalComponent.profile");
6421            else if (Configuration.doAutoCreate())
6422              this.profile = new CanonicalType(); // bb
6423          return this.profile;
6424        }
6425
6426        public boolean hasProfileElement() { 
6427          return this.profile != null && !this.profile.isEmpty();
6428        }
6429
6430        public boolean hasProfile() { 
6431          return this.profile != null && !this.profile.isEmpty();
6432        }
6433
6434        /**
6435         * @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
6436         */
6437        public ImplementationGuideGlobalComponent setProfileElement(CanonicalType value) { 
6438          this.profile = value;
6439          return this;
6440        }
6441
6442        /**
6443         * @return A reference to the profile that all instances must conform to.
6444         */
6445        public String getProfile() { 
6446          return this.profile == null ? null : this.profile.getValue();
6447        }
6448
6449        /**
6450         * @param value A reference to the profile that all instances must conform to.
6451         */
6452        public ImplementationGuideGlobalComponent setProfile(String value) { 
6453            if (this.profile == null)
6454              this.profile = new CanonicalType();
6455            this.profile.setValue(value);
6456          return this;
6457        }
6458
6459        protected void listChildren(List<Property> children) {
6460          super.listChildren(children);
6461          children.add(new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1, type));
6462          children.add(new Property("profile", "canonical(StructureDefinition)", "A reference to the profile that all instances must conform to.", 0, 1, profile));
6463        }
6464
6465        @Override
6466        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6467          switch (_hash) {
6468          case 3575610: /*type*/  return new Property("type", "code", "The type of resource that all instances must conform to.", 0, 1, type);
6469          case -309425751: /*profile*/  return new Property("profile", "canonical(StructureDefinition)", "A reference to the profile that all instances must conform to.", 0, 1, profile);
6470          default: return super.getNamedProperty(_hash, _name, _checkValid);
6471          }
6472
6473        }
6474
6475      @Override
6476      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6477        switch (hash) {
6478        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeType
6479        case -309425751: /*profile*/ return this.profile == null ? new Base[0] : new Base[] {this.profile}; // CanonicalType
6480        default: return super.getProperty(hash, name, checkValid);
6481        }
6482
6483      }
6484
6485      @Override
6486      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6487        switch (hash) {
6488        case 3575610: // type
6489          this.type = TypeConvertor.castToCode(value); // CodeType
6490          return value;
6491        case -309425751: // profile
6492          this.profile = TypeConvertor.castToCanonical(value); // CanonicalType
6493          return value;
6494        default: return super.setProperty(hash, name, value);
6495        }
6496
6497      }
6498
6499      @Override
6500      public Base setProperty(String name, Base value) throws FHIRException {
6501        if (name.equals("type")) {
6502          this.type = TypeConvertor.castToCode(value); // CodeType
6503        } else if (name.equals("profile")) {
6504          this.profile = TypeConvertor.castToCanonical(value); // CanonicalType
6505        } else
6506          return super.setProperty(name, value);
6507        return value;
6508      }
6509
6510      @Override
6511      public Base makeProperty(int hash, String name) throws FHIRException {
6512        switch (hash) {
6513        case 3575610:  return getTypeElement();
6514        case -309425751:  return getProfileElement();
6515        default: return super.makeProperty(hash, name);
6516        }
6517
6518      }
6519
6520      @Override
6521      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6522        switch (hash) {
6523        case 3575610: /*type*/ return new String[] {"code"};
6524        case -309425751: /*profile*/ return new String[] {"canonical"};
6525        default: return super.getTypesForProperty(hash, name);
6526        }
6527
6528      }
6529
6530      @Override
6531      public Base addChild(String name) throws FHIRException {
6532        if (name.equals("type")) {
6533          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.global.type");
6534        }
6535        else if (name.equals("profile")) {
6536          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.global.profile");
6537        }
6538        else
6539          return super.addChild(name);
6540      }
6541
6542      public ImplementationGuideGlobalComponent copy() {
6543        ImplementationGuideGlobalComponent dst = new ImplementationGuideGlobalComponent();
6544        copyValues(dst);
6545        return dst;
6546      }
6547
6548      public void copyValues(ImplementationGuideGlobalComponent dst) {
6549        super.copyValues(dst);
6550        dst.type = type == null ? null : type.copy();
6551        dst.profile = profile == null ? null : profile.copy();
6552      }
6553
6554      @Override
6555      public boolean equalsDeep(Base other_) {
6556        if (!super.equalsDeep(other_))
6557          return false;
6558        if (!(other_ instanceof ImplementationGuideGlobalComponent))
6559          return false;
6560        ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
6561        return compareDeep(type, o.type, true) && compareDeep(profile, o.profile, true);
6562      }
6563
6564      @Override
6565      public boolean equalsShallow(Base other_) {
6566        if (!super.equalsShallow(other_))
6567          return false;
6568        if (!(other_ instanceof ImplementationGuideGlobalComponent))
6569          return false;
6570        ImplementationGuideGlobalComponent o = (ImplementationGuideGlobalComponent) other_;
6571        return compareValues(type, o.type, true) && compareValues(profile, o.profile, true);
6572      }
6573
6574      public boolean isEmpty() {
6575        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, profile);
6576      }
6577
6578  public String fhirType() {
6579    return "ImplementationGuide.global";
6580
6581  }
6582
6583  }
6584
6585    @Block()
6586    public static class ImplementationGuideDefinitionComponent extends BackboneElement implements IBaseBackboneElement {
6587        /**
6588         * A logical group of resources. Logical groups can be used when building pages.
6589         */
6590        @Child(name = "grouping", type = {}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6591        @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." )
6592        protected List<ImplementationGuideDefinitionGroupingComponent> grouping;
6593
6594        /**
6595         * 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.
6596         */
6597        @Child(name = "resource", type = {}, order=2, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6598        @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." )
6599        protected List<ImplementationGuideDefinitionResourceComponent> resource;
6600
6601        /**
6602         * A page / section in the implementation guide. The root page is the implementation guide home page.
6603         */
6604        @Child(name = "page", type = {}, order=3, min=0, max=1, modifier=false, summary=false)
6605        @Description(shortDefinition="Page/Section in the Guide", formalDefinition="A page / section in the implementation guide. The root page is the implementation guide home page." )
6606        protected ImplementationGuideDefinitionPageComponent page;
6607
6608        /**
6609         * Defines how IG is built by tools.
6610         */
6611        @Child(name = "parameter", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6612        @Description(shortDefinition="Defines how IG is built by tools", formalDefinition="Defines how IG is built by tools." )
6613        protected List<ImplementationGuideDefinitionParameterComponent> parameter;
6614
6615        /**
6616         * A template for building resources.
6617         */
6618        @Child(name = "template", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
6619        @Description(shortDefinition="A template for building resources", formalDefinition="A template for building resources." )
6620        protected List<ImplementationGuideDefinitionTemplateComponent> template;
6621
6622        private static final long serialVersionUID = 179051968L;
6623
6624    /**
6625     * Constructor
6626     */
6627      public ImplementationGuideDefinitionComponent() {
6628        super();
6629      }
6630
6631    /**
6632     * Constructor
6633     */
6634      public ImplementationGuideDefinitionComponent(ImplementationGuideDefinitionResourceComponent resource) {
6635        super();
6636        this.addResource(resource);
6637      }
6638
6639        /**
6640         * @return {@link #grouping} (A logical group of resources. Logical groups can be used when building pages.)
6641         */
6642        public List<ImplementationGuideDefinitionGroupingComponent> getGrouping() { 
6643          if (this.grouping == null)
6644            this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
6645          return this.grouping;
6646        }
6647
6648        /**
6649         * @return Returns a reference to <code>this</code> for easy method chaining
6650         */
6651        public ImplementationGuideDefinitionComponent setGrouping(List<ImplementationGuideDefinitionGroupingComponent> theGrouping) { 
6652          this.grouping = theGrouping;
6653          return this;
6654        }
6655
6656        public boolean hasGrouping() { 
6657          if (this.grouping == null)
6658            return false;
6659          for (ImplementationGuideDefinitionGroupingComponent item : this.grouping)
6660            if (!item.isEmpty())
6661              return true;
6662          return false;
6663        }
6664
6665        public ImplementationGuideDefinitionGroupingComponent addGrouping() { //3
6666          ImplementationGuideDefinitionGroupingComponent t = new ImplementationGuideDefinitionGroupingComponent();
6667          if (this.grouping == null)
6668            this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
6669          this.grouping.add(t);
6670          return t;
6671        }
6672
6673        public ImplementationGuideDefinitionComponent addGrouping(ImplementationGuideDefinitionGroupingComponent t) { //3
6674          if (t == null)
6675            return this;
6676          if (this.grouping == null)
6677            this.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
6678          this.grouping.add(t);
6679          return this;
6680        }
6681
6682        /**
6683         * @return The first repetition of repeating field {@link #grouping}, creating it if it does not already exist {3}
6684         */
6685        public ImplementationGuideDefinitionGroupingComponent getGroupingFirstRep() { 
6686          if (getGrouping().isEmpty()) {
6687            addGrouping();
6688          }
6689          return getGrouping().get(0);
6690        }
6691
6692        /**
6693         * @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.)
6694         */
6695        public List<ImplementationGuideDefinitionResourceComponent> getResource() { 
6696          if (this.resource == null)
6697            this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
6698          return this.resource;
6699        }
6700
6701        /**
6702         * @return Returns a reference to <code>this</code> for easy method chaining
6703         */
6704        public ImplementationGuideDefinitionComponent setResource(List<ImplementationGuideDefinitionResourceComponent> theResource) { 
6705          this.resource = theResource;
6706          return this;
6707        }
6708
6709        public boolean hasResource() { 
6710          if (this.resource == null)
6711            return false;
6712          for (ImplementationGuideDefinitionResourceComponent item : this.resource)
6713            if (!item.isEmpty())
6714              return true;
6715          return false;
6716        }
6717
6718        public ImplementationGuideDefinitionResourceComponent addResource() { //3
6719          ImplementationGuideDefinitionResourceComponent t = new ImplementationGuideDefinitionResourceComponent();
6720          if (this.resource == null)
6721            this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
6722          this.resource.add(t);
6723          return t;
6724        }
6725
6726        public ImplementationGuideDefinitionComponent addResource(ImplementationGuideDefinitionResourceComponent t) { //3
6727          if (t == null)
6728            return this;
6729          if (this.resource == null)
6730            this.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
6731          this.resource.add(t);
6732          return this;
6733        }
6734
6735        /**
6736         * @return The first repetition of repeating field {@link #resource}, creating it if it does not already exist {3}
6737         */
6738        public ImplementationGuideDefinitionResourceComponent getResourceFirstRep() { 
6739          if (getResource().isEmpty()) {
6740            addResource();
6741          }
6742          return getResource().get(0);
6743        }
6744
6745        /**
6746         * @return {@link #page} (A page / section in the implementation guide. The root page is the implementation guide home page.)
6747         */
6748        public ImplementationGuideDefinitionPageComponent getPage() { 
6749          if (this.page == null)
6750            if (Configuration.errorOnAutoCreate())
6751              throw new Error("Attempt to auto-create ImplementationGuideDefinitionComponent.page");
6752            else if (Configuration.doAutoCreate())
6753              this.page = new ImplementationGuideDefinitionPageComponent(); // cc
6754          return this.page;
6755        }
6756
6757        public boolean hasPage() { 
6758          return this.page != null && !this.page.isEmpty();
6759        }
6760
6761        /**
6762         * @param value {@link #page} (A page / section in the implementation guide. The root page is the implementation guide home page.)
6763         */
6764        public ImplementationGuideDefinitionComponent setPage(ImplementationGuideDefinitionPageComponent value) { 
6765          this.page = value;
6766          return this;
6767        }
6768
6769        /**
6770         * @return {@link #parameter} (Defines how IG is built by tools.)
6771         */
6772        public List<ImplementationGuideDefinitionParameterComponent> getParameter() { 
6773          if (this.parameter == null)
6774            this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
6775          return this.parameter;
6776        }
6777
6778        /**
6779         * @return Returns a reference to <code>this</code> for easy method chaining
6780         */
6781        public ImplementationGuideDefinitionComponent setParameter(List<ImplementationGuideDefinitionParameterComponent> theParameter) { 
6782          this.parameter = theParameter;
6783          return this;
6784        }
6785
6786        public boolean hasParameter() { 
6787          if (this.parameter == null)
6788            return false;
6789          for (ImplementationGuideDefinitionParameterComponent item : this.parameter)
6790            if (!item.isEmpty())
6791              return true;
6792          return false;
6793        }
6794
6795        public ImplementationGuideDefinitionParameterComponent addParameter() { //3
6796          ImplementationGuideDefinitionParameterComponent t = new ImplementationGuideDefinitionParameterComponent();
6797          if (this.parameter == null)
6798            this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
6799          this.parameter.add(t);
6800          return t;
6801        }
6802
6803        public ImplementationGuideDefinitionComponent addParameter(ImplementationGuideDefinitionParameterComponent t) { //3
6804          if (t == null)
6805            return this;
6806          if (this.parameter == null)
6807            this.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
6808          this.parameter.add(t);
6809          return this;
6810        }
6811
6812        /**
6813         * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist {3}
6814         */
6815        public ImplementationGuideDefinitionParameterComponent getParameterFirstRep() { 
6816          if (getParameter().isEmpty()) {
6817            addParameter();
6818          }
6819          return getParameter().get(0);
6820        }
6821
6822        /**
6823         * @return {@link #template} (A template for building resources.)
6824         */
6825        public List<ImplementationGuideDefinitionTemplateComponent> getTemplate() { 
6826          if (this.template == null)
6827            this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
6828          return this.template;
6829        }
6830
6831        /**
6832         * @return Returns a reference to <code>this</code> for easy method chaining
6833         */
6834        public ImplementationGuideDefinitionComponent setTemplate(List<ImplementationGuideDefinitionTemplateComponent> theTemplate) { 
6835          this.template = theTemplate;
6836          return this;
6837        }
6838
6839        public boolean hasTemplate() { 
6840          if (this.template == null)
6841            return false;
6842          for (ImplementationGuideDefinitionTemplateComponent item : this.template)
6843            if (!item.isEmpty())
6844              return true;
6845          return false;
6846        }
6847
6848        public ImplementationGuideDefinitionTemplateComponent addTemplate() { //3
6849          ImplementationGuideDefinitionTemplateComponent t = new ImplementationGuideDefinitionTemplateComponent();
6850          if (this.template == null)
6851            this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
6852          this.template.add(t);
6853          return t;
6854        }
6855
6856        public ImplementationGuideDefinitionComponent addTemplate(ImplementationGuideDefinitionTemplateComponent t) { //3
6857          if (t == null)
6858            return this;
6859          if (this.template == null)
6860            this.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
6861          this.template.add(t);
6862          return this;
6863        }
6864
6865        /**
6866         * @return The first repetition of repeating field {@link #template}, creating it if it does not already exist {3}
6867         */
6868        public ImplementationGuideDefinitionTemplateComponent getTemplateFirstRep() { 
6869          if (getTemplate().isEmpty()) {
6870            addTemplate();
6871          }
6872          return getTemplate().get(0);
6873        }
6874
6875        protected void listChildren(List<Property> children) {
6876          super.listChildren(children);
6877          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));
6878          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));
6879          children.add(new Property("page", "", "A page / section in the implementation guide. The root page is the implementation guide home page.", 0, 1, page));
6880          children.add(new Property("parameter", "", "Defines how IG is built by tools.", 0, java.lang.Integer.MAX_VALUE, parameter));
6881          children.add(new Property("template", "", "A template for building resources.", 0, java.lang.Integer.MAX_VALUE, template));
6882        }
6883
6884        @Override
6885        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6886          switch (_hash) {
6887          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);
6888          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);
6889          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);
6890          case 1954460585: /*parameter*/  return new Property("parameter", "", "Defines how IG is built by tools.", 0, java.lang.Integer.MAX_VALUE, parameter);
6891          case -1321546630: /*template*/  return new Property("template", "", "A template for building resources.", 0, java.lang.Integer.MAX_VALUE, template);
6892          default: return super.getNamedProperty(_hash, _name, _checkValid);
6893          }
6894
6895        }
6896
6897      @Override
6898      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6899        switch (hash) {
6900        case 506371331: /*grouping*/ return this.grouping == null ? new Base[0] : this.grouping.toArray(new Base[this.grouping.size()]); // ImplementationGuideDefinitionGroupingComponent
6901        case -341064690: /*resource*/ return this.resource == null ? new Base[0] : this.resource.toArray(new Base[this.resource.size()]); // ImplementationGuideDefinitionResourceComponent
6902        case 3433103: /*page*/ return this.page == null ? new Base[0] : new Base[] {this.page}; // ImplementationGuideDefinitionPageComponent
6903        case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // ImplementationGuideDefinitionParameterComponent
6904        case -1321546630: /*template*/ return this.template == null ? new Base[0] : this.template.toArray(new Base[this.template.size()]); // ImplementationGuideDefinitionTemplateComponent
6905        default: return super.getProperty(hash, name, checkValid);
6906        }
6907
6908      }
6909
6910      @Override
6911      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6912        switch (hash) {
6913        case 506371331: // grouping
6914          this.getGrouping().add((ImplementationGuideDefinitionGroupingComponent) value); // ImplementationGuideDefinitionGroupingComponent
6915          return value;
6916        case -341064690: // resource
6917          this.getResource().add((ImplementationGuideDefinitionResourceComponent) value); // ImplementationGuideDefinitionResourceComponent
6918          return value;
6919        case 3433103: // page
6920          this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
6921          return value;
6922        case 1954460585: // parameter
6923          this.getParameter().add((ImplementationGuideDefinitionParameterComponent) value); // ImplementationGuideDefinitionParameterComponent
6924          return value;
6925        case -1321546630: // template
6926          this.getTemplate().add((ImplementationGuideDefinitionTemplateComponent) value); // ImplementationGuideDefinitionTemplateComponent
6927          return value;
6928        default: return super.setProperty(hash, name, value);
6929        }
6930
6931      }
6932
6933      @Override
6934      public Base setProperty(String name, Base value) throws FHIRException {
6935        if (name.equals("grouping")) {
6936          this.getGrouping().add((ImplementationGuideDefinitionGroupingComponent) value);
6937        } else if (name.equals("resource")) {
6938          this.getResource().add((ImplementationGuideDefinitionResourceComponent) value);
6939        } else if (name.equals("page")) {
6940          this.page = (ImplementationGuideDefinitionPageComponent) value; // ImplementationGuideDefinitionPageComponent
6941        } else if (name.equals("parameter")) {
6942          this.getParameter().add((ImplementationGuideDefinitionParameterComponent) value);
6943        } else if (name.equals("template")) {
6944          this.getTemplate().add((ImplementationGuideDefinitionTemplateComponent) value);
6945        } else
6946          return super.setProperty(name, value);
6947        return value;
6948      }
6949
6950      @Override
6951      public Base makeProperty(int hash, String name) throws FHIRException {
6952        switch (hash) {
6953        case 506371331:  return addGrouping(); 
6954        case -341064690:  return addResource(); 
6955        case 3433103:  return getPage();
6956        case 1954460585:  return addParameter(); 
6957        case -1321546630:  return addTemplate(); 
6958        default: return super.makeProperty(hash, name);
6959        }
6960
6961      }
6962
6963      @Override
6964      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6965        switch (hash) {
6966        case 506371331: /*grouping*/ return new String[] {};
6967        case -341064690: /*resource*/ return new String[] {};
6968        case 3433103: /*page*/ return new String[] {};
6969        case 1954460585: /*parameter*/ return new String[] {};
6970        case -1321546630: /*template*/ return new String[] {};
6971        default: return super.getTypesForProperty(hash, name);
6972        }
6973
6974      }
6975
6976      @Override
6977      public Base addChild(String name) throws FHIRException {
6978        if (name.equals("grouping")) {
6979          return addGrouping();
6980        }
6981        else if (name.equals("resource")) {
6982          return addResource();
6983        }
6984        else if (name.equals("page")) {
6985          this.page = new ImplementationGuideDefinitionPageComponent();
6986          return this.page;
6987        }
6988        else if (name.equals("parameter")) {
6989          return addParameter();
6990        }
6991        else if (name.equals("template")) {
6992          return addTemplate();
6993        }
6994        else
6995          return super.addChild(name);
6996      }
6997
6998      public ImplementationGuideDefinitionComponent copy() {
6999        ImplementationGuideDefinitionComponent dst = new ImplementationGuideDefinitionComponent();
7000        copyValues(dst);
7001        return dst;
7002      }
7003
7004      public void copyValues(ImplementationGuideDefinitionComponent dst) {
7005        super.copyValues(dst);
7006        if (grouping != null) {
7007          dst.grouping = new ArrayList<ImplementationGuideDefinitionGroupingComponent>();
7008          for (ImplementationGuideDefinitionGroupingComponent i : grouping)
7009            dst.grouping.add(i.copy());
7010        };
7011        if (resource != null) {
7012          dst.resource = new ArrayList<ImplementationGuideDefinitionResourceComponent>();
7013          for (ImplementationGuideDefinitionResourceComponent i : resource)
7014            dst.resource.add(i.copy());
7015        };
7016        dst.page = page == null ? null : page.copy();
7017        if (parameter != null) {
7018          dst.parameter = new ArrayList<ImplementationGuideDefinitionParameterComponent>();
7019          for (ImplementationGuideDefinitionParameterComponent i : parameter)
7020            dst.parameter.add(i.copy());
7021        };
7022        if (template != null) {
7023          dst.template = new ArrayList<ImplementationGuideDefinitionTemplateComponent>();
7024          for (ImplementationGuideDefinitionTemplateComponent i : template)
7025            dst.template.add(i.copy());
7026        };
7027      }
7028
7029      @Override
7030      public boolean equalsDeep(Base other_) {
7031        if (!super.equalsDeep(other_))
7032          return false;
7033        if (!(other_ instanceof ImplementationGuideDefinitionComponent))
7034          return false;
7035        ImplementationGuideDefinitionComponent o = (ImplementationGuideDefinitionComponent) other_;
7036        return compareDeep(grouping, o.grouping, true) && compareDeep(resource, o.resource, true) && compareDeep(page, o.page, true)
7037           && compareDeep(parameter, o.parameter, true) && compareDeep(template, o.template, true);
7038      }
7039
7040      @Override
7041      public boolean equalsShallow(Base other_) {
7042        if (!super.equalsShallow(other_))
7043          return false;
7044        if (!(other_ instanceof ImplementationGuideDefinitionComponent))
7045          return false;
7046        ImplementationGuideDefinitionComponent o = (ImplementationGuideDefinitionComponent) other_;
7047        return true;
7048      }
7049
7050      public boolean isEmpty() {
7051        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(grouping, resource, page
7052          , parameter, template);
7053      }
7054
7055  public String fhirType() {
7056    return "ImplementationGuide.definition";
7057
7058  }
7059
7060  }
7061
7062    @Block()
7063    public static class ImplementationGuideDefinitionGroupingComponent extends BackboneElement implements IBaseBackboneElement {
7064        /**
7065         * The human-readable title to display for the package of resources when rendering the implementation guide.
7066         */
7067        @Child(name = "name", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
7068        @Description(shortDefinition="Descriptive name for the package", formalDefinition="The human-readable title to display for the package of resources when rendering the implementation guide." )
7069        protected StringType name;
7070
7071        /**
7072         * Human readable text describing the package.
7073         */
7074        @Child(name = "description", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
7075        @Description(shortDefinition="Human readable text describing the package", formalDefinition="Human readable text describing the package." )
7076        protected StringType description;
7077
7078        private static final long serialVersionUID = -1105523499L;
7079
7080    /**
7081     * Constructor
7082     */
7083      public ImplementationGuideDefinitionGroupingComponent() {
7084        super();
7085      }
7086
7087    /**
7088     * Constructor
7089     */
7090      public ImplementationGuideDefinitionGroupingComponent(String name) {
7091        super();
7092        this.setName(name);
7093      }
7094
7095        /**
7096         * @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
7097         */
7098        public StringType getNameElement() { 
7099          if (this.name == null)
7100            if (Configuration.errorOnAutoCreate())
7101              throw new Error("Attempt to auto-create ImplementationGuideDefinitionGroupingComponent.name");
7102            else if (Configuration.doAutoCreate())
7103              this.name = new StringType(); // bb
7104          return this.name;
7105        }
7106
7107        public boolean hasNameElement() { 
7108          return this.name != null && !this.name.isEmpty();
7109        }
7110
7111        public boolean hasName() { 
7112          return this.name != null && !this.name.isEmpty();
7113        }
7114
7115        /**
7116         * @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
7117         */
7118        public ImplementationGuideDefinitionGroupingComponent setNameElement(StringType value) { 
7119          this.name = value;
7120          return this;
7121        }
7122
7123        /**
7124         * @return The human-readable title to display for the package of resources when rendering the implementation guide.
7125         */
7126        public String getName() { 
7127          return this.name == null ? null : this.name.getValue();
7128        }
7129
7130        /**
7131         * @param value The human-readable title to display for the package of resources when rendering the implementation guide.
7132         */
7133        public ImplementationGuideDefinitionGroupingComponent setName(String value) { 
7134            if (this.name == null)
7135              this.name = new StringType();
7136            this.name.setValue(value);
7137          return this;
7138        }
7139
7140        /**
7141         * @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
7142         */
7143        public StringType getDescriptionElement() { 
7144          if (this.description == null)
7145            if (Configuration.errorOnAutoCreate())
7146              throw new Error("Attempt to auto-create ImplementationGuideDefinitionGroupingComponent.description");
7147            else if (Configuration.doAutoCreate())
7148              this.description = new StringType(); // bb
7149          return this.description;
7150        }
7151
7152        public boolean hasDescriptionElement() { 
7153          return this.description != null && !this.description.isEmpty();
7154        }
7155
7156        public boolean hasDescription() { 
7157          return this.description != null && !this.description.isEmpty();
7158        }
7159
7160        /**
7161         * @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
7162         */
7163        public ImplementationGuideDefinitionGroupingComponent setDescriptionElement(StringType value) { 
7164          this.description = value;
7165          return this;
7166        }
7167
7168        /**
7169         * @return Human readable text describing the package.
7170         */
7171        public String getDescription() { 
7172          return this.description == null ? null : this.description.getValue();
7173        }
7174
7175        /**
7176         * @param value Human readable text describing the package.
7177         */
7178        public ImplementationGuideDefinitionGroupingComponent setDescription(String value) { 
7179          if (Utilities.noString(value))
7180            this.description = null;
7181          else {
7182            if (this.description == null)
7183              this.description = new StringType();
7184            this.description.setValue(value);
7185          }
7186          return this;
7187        }
7188
7189        protected void listChildren(List<Property> children) {
7190          super.listChildren(children);
7191          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));
7192          children.add(new Property("description", "string", "Human readable text describing the package.", 0, 1, description));
7193        }
7194
7195        @Override
7196        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
7197          switch (_hash) {
7198          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);
7199          case -1724546052: /*description*/  return new Property("description", "string", "Human readable text describing the package.", 0, 1, description);
7200          default: return super.getNamedProperty(_hash, _name, _checkValid);
7201          }
7202
7203        }
7204
7205      @Override
7206      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
7207        switch (hash) {
7208        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
7209        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
7210        default: return super.getProperty(hash, name, checkValid);
7211        }
7212
7213      }
7214
7215      @Override
7216      public Base setProperty(int hash, String name, Base value) throws FHIRException {
7217        switch (hash) {
7218        case 3373707: // name
7219          this.name = TypeConvertor.castToString(value); // StringType
7220          return value;
7221        case -1724546052: // description
7222          this.description = TypeConvertor.castToString(value); // StringType
7223          return value;
7224        default: return super.setProperty(hash, name, value);
7225        }
7226
7227      }
7228
7229      @Override
7230      public Base setProperty(String name, Base value) throws FHIRException {
7231        if (name.equals("name")) {
7232          this.name = TypeConvertor.castToString(value); // StringType
7233        } else if (name.equals("description")) {
7234          this.description = TypeConvertor.castToString(value); // StringType
7235        } else
7236          return super.setProperty(name, value);
7237        return value;
7238      }
7239
7240      @Override
7241      public Base makeProperty(int hash, String name) throws FHIRException {
7242        switch (hash) {
7243        case 3373707:  return getNameElement();
7244        case -1724546052:  return getDescriptionElement();
7245        default: return super.makeProperty(hash, name);
7246        }
7247
7248      }
7249
7250      @Override
7251      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
7252        switch (hash) {
7253        case 3373707: /*name*/ return new String[] {"string"};
7254        case -1724546052: /*description*/ return new String[] {"string"};
7255        default: return super.getTypesForProperty(hash, name);
7256        }
7257
7258      }
7259
7260      @Override
7261      public Base addChild(String name) throws FHIRException {
7262        if (name.equals("name")) {
7263          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.grouping.name");
7264        }
7265        else if (name.equals("description")) {
7266          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.grouping.description");
7267        }
7268        else
7269          return super.addChild(name);
7270      }
7271
7272      public ImplementationGuideDefinitionGroupingComponent copy() {
7273        ImplementationGuideDefinitionGroupingComponent dst = new ImplementationGuideDefinitionGroupingComponent();
7274        copyValues(dst);
7275        return dst;
7276      }
7277
7278      public void copyValues(ImplementationGuideDefinitionGroupingComponent dst) {
7279        super.copyValues(dst);
7280        dst.name = name == null ? null : name.copy();
7281        dst.description = description == null ? null : description.copy();
7282      }
7283
7284      @Override
7285      public boolean equalsDeep(Base other_) {
7286        if (!super.equalsDeep(other_))
7287          return false;
7288        if (!(other_ instanceof ImplementationGuideDefinitionGroupingComponent))
7289          return false;
7290        ImplementationGuideDefinitionGroupingComponent o = (ImplementationGuideDefinitionGroupingComponent) other_;
7291        return compareDeep(name, o.name, true) && compareDeep(description, o.description, true);
7292      }
7293
7294      @Override
7295      public boolean equalsShallow(Base other_) {
7296        if (!super.equalsShallow(other_))
7297          return false;
7298        if (!(other_ instanceof ImplementationGuideDefinitionGroupingComponent))
7299          return false;
7300        ImplementationGuideDefinitionGroupingComponent o = (ImplementationGuideDefinitionGroupingComponent) other_;
7301        return compareValues(name, o.name, true) && compareValues(description, o.description, true);
7302      }
7303
7304      public boolean isEmpty() {
7305        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, description);
7306      }
7307
7308  public String fhirType() {
7309    return "ImplementationGuide.definition.grouping";
7310
7311  }
7312
7313  }
7314
7315    @Block()
7316    public static class ImplementationGuideDefinitionResourceComponent extends BackboneElement implements IBaseBackboneElement {
7317        /**
7318         * Where this resource is found.
7319         */
7320        @Child(name = "reference", type = {Reference.class}, order=1, min=1, max=1, modifier=false, summary=false)
7321        @Description(shortDefinition="Location of the resource", formalDefinition="Where this resource is found." )
7322        protected Reference reference;
7323
7324        /**
7325         * 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.
7326         */
7327        @Child(name = "fhirVersion", type = {CodeType.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
7328        @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." )
7329        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/FHIR-version")
7330        protected List<Enumeration<FHIRVersion>> fhirVersion;
7331
7332        /**
7333         * 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).
7334         */
7335        @Child(name = "name", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
7336        @Description(shortDefinition="Human Name for the resource", formalDefinition="A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name)." )
7337        protected StringType name;
7338
7339        /**
7340         * A description of the reason that a resource has been included in the implementation guide.
7341         */
7342        @Child(name = "description", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false)
7343        @Description(shortDefinition="Reason why included in guide", formalDefinition="A description of the reason that a resource has been included in the implementation guide." )
7344        protected StringType description;
7345
7346        /**
7347         * 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.
7348         */
7349        @Child(name = "example", type = {BooleanType.class, CanonicalType.class}, order=5, min=0, max=1, modifier=false, summary=false)
7350        @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." )
7351        protected DataType example;
7352
7353        /**
7354         * Reference to the id of the grouping this resource appears in.
7355         */
7356        @Child(name = "groupingId", type = {IdType.class}, order=6, min=0, max=1, modifier=false, summary=false)
7357        @Description(shortDefinition="Grouping this is part of", formalDefinition="Reference to the id of the grouping this resource appears in." )
7358        protected IdType groupingId;
7359
7360        private static final long serialVersionUID = 268206575L;
7361
7362    /**
7363     * Constructor
7364     */
7365      public ImplementationGuideDefinitionResourceComponent() {
7366        super();
7367      }
7368
7369    /**
7370     * Constructor
7371     */
7372      public ImplementationGuideDefinitionResourceComponent(Reference reference) {
7373        super();
7374        this.setReference(reference);
7375      }
7376
7377        /**
7378         * @return {@link #reference} (Where this resource is found.)
7379         */
7380        public Reference getReference() { 
7381          if (this.reference == null)
7382            if (Configuration.errorOnAutoCreate())
7383              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.reference");
7384            else if (Configuration.doAutoCreate())
7385              this.reference = new Reference(); // cc
7386          return this.reference;
7387        }
7388
7389        public boolean hasReference() { 
7390          return this.reference != null && !this.reference.isEmpty();
7391        }
7392
7393        /**
7394         * @param value {@link #reference} (Where this resource is found.)
7395         */
7396        public ImplementationGuideDefinitionResourceComponent setReference(Reference value) { 
7397          this.reference = value;
7398          return this;
7399        }
7400
7401        /**
7402         * @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.)
7403         */
7404        public List<Enumeration<FHIRVersion>> getFhirVersion() { 
7405          if (this.fhirVersion == null)
7406            this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
7407          return this.fhirVersion;
7408        }
7409
7410        /**
7411         * @return Returns a reference to <code>this</code> for easy method chaining
7412         */
7413        public ImplementationGuideDefinitionResourceComponent setFhirVersion(List<Enumeration<FHIRVersion>> theFhirVersion) { 
7414          this.fhirVersion = theFhirVersion;
7415          return this;
7416        }
7417
7418        public boolean hasFhirVersion() { 
7419          if (this.fhirVersion == null)
7420            return false;
7421          for (Enumeration<FHIRVersion> item : this.fhirVersion)
7422            if (!item.isEmpty())
7423              return true;
7424          return false;
7425        }
7426
7427        /**
7428         * @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.)
7429         */
7430        public Enumeration<FHIRVersion> addFhirVersionElement() {//2 
7431          Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
7432          if (this.fhirVersion == null)
7433            this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
7434          this.fhirVersion.add(t);
7435          return t;
7436        }
7437
7438        /**
7439         * @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.)
7440         */
7441        public ImplementationGuideDefinitionResourceComponent addFhirVersion(FHIRVersion value) { //1
7442          Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
7443          t.setValue(value);
7444          if (this.fhirVersion == null)
7445            this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
7446          this.fhirVersion.add(t);
7447          return this;
7448        }
7449
7450        /**
7451         * @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.)
7452         */
7453        public boolean hasFhirVersion(FHIRVersion value) { 
7454          if (this.fhirVersion == null)
7455            return false;
7456          for (Enumeration<FHIRVersion> v : this.fhirVersion)
7457            if (v.getValue().equals(value)) // code
7458              return true;
7459          return false;
7460        }
7461
7462        /**
7463         * @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
7464         */
7465        public StringType getNameElement() { 
7466          if (this.name == null)
7467            if (Configuration.errorOnAutoCreate())
7468              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.name");
7469            else if (Configuration.doAutoCreate())
7470              this.name = new StringType(); // bb
7471          return this.name;
7472        }
7473
7474        public boolean hasNameElement() { 
7475          return this.name != null && !this.name.isEmpty();
7476        }
7477
7478        public boolean hasName() { 
7479          return this.name != null && !this.name.isEmpty();
7480        }
7481
7482        /**
7483         * @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
7484         */
7485        public ImplementationGuideDefinitionResourceComponent setNameElement(StringType value) { 
7486          this.name = value;
7487          return this;
7488        }
7489
7490        /**
7491         * @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).
7492         */
7493        public String getName() { 
7494          return this.name == null ? null : this.name.getValue();
7495        }
7496
7497        /**
7498         * @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).
7499         */
7500        public ImplementationGuideDefinitionResourceComponent setName(String value) { 
7501          if (Utilities.noString(value))
7502            this.name = null;
7503          else {
7504            if (this.name == null)
7505              this.name = new StringType();
7506            this.name.setValue(value);
7507          }
7508          return this;
7509        }
7510
7511        /**
7512         * @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
7513         */
7514        public StringType getDescriptionElement() { 
7515          if (this.description == null)
7516            if (Configuration.errorOnAutoCreate())
7517              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.description");
7518            else if (Configuration.doAutoCreate())
7519              this.description = new StringType(); // bb
7520          return this.description;
7521        }
7522
7523        public boolean hasDescriptionElement() { 
7524          return this.description != null && !this.description.isEmpty();
7525        }
7526
7527        public boolean hasDescription() { 
7528          return this.description != null && !this.description.isEmpty();
7529        }
7530
7531        /**
7532         * @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
7533         */
7534        public ImplementationGuideDefinitionResourceComponent setDescriptionElement(StringType value) { 
7535          this.description = value;
7536          return this;
7537        }
7538
7539        /**
7540         * @return A description of the reason that a resource has been included in the implementation guide.
7541         */
7542        public String getDescription() { 
7543          return this.description == null ? null : this.description.getValue();
7544        }
7545
7546        /**
7547         * @param value A description of the reason that a resource has been included in the implementation guide.
7548         */
7549        public ImplementationGuideDefinitionResourceComponent setDescription(String value) { 
7550          if (Utilities.noString(value))
7551            this.description = null;
7552          else {
7553            if (this.description == null)
7554              this.description = new StringType();
7555            this.description.setValue(value);
7556          }
7557          return this;
7558        }
7559
7560        /**
7561         * @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.)
7562         */
7563        public DataType getExample() { 
7564          return this.example;
7565        }
7566
7567        /**
7568         * @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.)
7569         */
7570        public BooleanType getExampleBooleanType() throws FHIRException { 
7571          if (this.example == null)
7572            this.example = new BooleanType();
7573          if (!(this.example instanceof BooleanType))
7574            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.example.getClass().getName()+" was encountered");
7575          return (BooleanType) this.example;
7576        }
7577
7578        public boolean hasExampleBooleanType() { 
7579          return this != null && this.example instanceof BooleanType;
7580        }
7581
7582        /**
7583         * @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.)
7584         */
7585        public CanonicalType getExampleCanonicalType() throws FHIRException { 
7586          if (this.example == null)
7587            this.example = new CanonicalType();
7588          if (!(this.example instanceof CanonicalType))
7589            throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.example.getClass().getName()+" was encountered");
7590          return (CanonicalType) this.example;
7591        }
7592
7593        public boolean hasExampleCanonicalType() { 
7594          return this != null && this.example instanceof CanonicalType;
7595        }
7596
7597        public boolean hasExample() { 
7598          return this.example != null && !this.example.isEmpty();
7599        }
7600
7601        /**
7602         * @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.)
7603         */
7604        public ImplementationGuideDefinitionResourceComponent setExample(DataType value) { 
7605          if (value != null && !(value instanceof BooleanType || value instanceof CanonicalType))
7606            throw new Error("Not the right type for ImplementationGuide.definition.resource.example[x]: "+value.fhirType());
7607          this.example = value;
7608          return this;
7609        }
7610
7611        /**
7612         * @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
7613         */
7614        public IdType getGroupingIdElement() { 
7615          if (this.groupingId == null)
7616            if (Configuration.errorOnAutoCreate())
7617              throw new Error("Attempt to auto-create ImplementationGuideDefinitionResourceComponent.groupingId");
7618            else if (Configuration.doAutoCreate())
7619              this.groupingId = new IdType(); // bb
7620          return this.groupingId;
7621        }
7622
7623        public boolean hasGroupingIdElement() { 
7624          return this.groupingId != null && !this.groupingId.isEmpty();
7625        }
7626
7627        public boolean hasGroupingId() { 
7628          return this.groupingId != null && !this.groupingId.isEmpty();
7629        }
7630
7631        /**
7632         * @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
7633         */
7634        public ImplementationGuideDefinitionResourceComponent setGroupingIdElement(IdType value) { 
7635          this.groupingId = value;
7636          return this;
7637        }
7638
7639        /**
7640         * @return Reference to the id of the grouping this resource appears in.
7641         */
7642        public String getGroupingId() { 
7643          return this.groupingId == null ? null : this.groupingId.getValue();
7644        }
7645
7646        /**
7647         * @param value Reference to the id of the grouping this resource appears in.
7648         */
7649        public ImplementationGuideDefinitionResourceComponent setGroupingId(String value) { 
7650          if (Utilities.noString(value))
7651            this.groupingId = null;
7652          else {
7653            if (this.groupingId == null)
7654              this.groupingId = new IdType();
7655            this.groupingId.setValue(value);
7656          }
7657          return this;
7658        }
7659
7660        protected void listChildren(List<Property> children) {
7661          super.listChildren(children);
7662          children.add(new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference));
7663          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));
7664          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));
7665          children.add(new Property("description", "string", "A description of the reason that a resource has been included in the implementation guide.", 0, 1, description));
7666          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));
7667          children.add(new Property("groupingId", "id", "Reference to the id of the grouping this resource appears in.", 0, 1, groupingId));
7668        }
7669
7670        @Override
7671        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
7672          switch (_hash) {
7673          case -925155509: /*reference*/  return new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference);
7674          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);
7675          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);
7676          case -1724546052: /*description*/  return new Property("description", "string", "A description of the reason that a resource has been included in the implementation guide.", 0, 1, description);
7677          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);
7678          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);
7679          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);
7680          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);
7681          case 1291547006: /*groupingId*/  return new Property("groupingId", "id", "Reference to the id of the grouping this resource appears in.", 0, 1, groupingId);
7682          default: return super.getNamedProperty(_hash, _name, _checkValid);
7683          }
7684
7685        }
7686
7687      @Override
7688      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
7689        switch (hash) {
7690        case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // Reference
7691        case 461006061: /*fhirVersion*/ return this.fhirVersion == null ? new Base[0] : this.fhirVersion.toArray(new Base[this.fhirVersion.size()]); // Enumeration<FHIRVersion>
7692        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
7693        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
7694        case -1322970774: /*example*/ return this.example == null ? new Base[0] : new Base[] {this.example}; // DataType
7695        case 1291547006: /*groupingId*/ return this.groupingId == null ? new Base[0] : new Base[] {this.groupingId}; // IdType
7696        default: return super.getProperty(hash, name, checkValid);
7697        }
7698
7699      }
7700
7701      @Override
7702      public Base setProperty(int hash, String name, Base value) throws FHIRException {
7703        switch (hash) {
7704        case -925155509: // reference
7705          this.reference = TypeConvertor.castToReference(value); // Reference
7706          return value;
7707        case 461006061: // fhirVersion
7708          value = new FHIRVersionEnumFactory().fromType(TypeConvertor.castToCode(value));
7709          this.getFhirVersion().add((Enumeration) value); // Enumeration<FHIRVersion>
7710          return value;
7711        case 3373707: // name
7712          this.name = TypeConvertor.castToString(value); // StringType
7713          return value;
7714        case -1724546052: // description
7715          this.description = TypeConvertor.castToString(value); // StringType
7716          return value;
7717        case -1322970774: // example
7718          this.example = TypeConvertor.castToType(value); // DataType
7719          return value;
7720        case 1291547006: // groupingId
7721          this.groupingId = TypeConvertor.castToId(value); // IdType
7722          return value;
7723        default: return super.setProperty(hash, name, value);
7724        }
7725
7726      }
7727
7728      @Override
7729      public Base setProperty(String name, Base value) throws FHIRException {
7730        if (name.equals("reference")) {
7731          this.reference = TypeConvertor.castToReference(value); // Reference
7732        } else if (name.equals("fhirVersion")) {
7733          value = new FHIRVersionEnumFactory().fromType(TypeConvertor.castToCode(value));
7734          this.getFhirVersion().add((Enumeration) value);
7735        } else if (name.equals("name")) {
7736          this.name = TypeConvertor.castToString(value); // StringType
7737        } else if (name.equals("description")) {
7738          this.description = TypeConvertor.castToString(value); // StringType
7739        } else if (name.equals("example[x]")) {
7740          this.example = TypeConvertor.castToType(value); // DataType
7741        } else if (name.equals("groupingId")) {
7742          this.groupingId = TypeConvertor.castToId(value); // IdType
7743        } else
7744          return super.setProperty(name, value);
7745        return value;
7746      }
7747
7748      @Override
7749      public Base makeProperty(int hash, String name) throws FHIRException {
7750        switch (hash) {
7751        case -925155509:  return getReference();
7752        case 461006061:  return addFhirVersionElement();
7753        case 3373707:  return getNameElement();
7754        case -1724546052:  return getDescriptionElement();
7755        case -2002328874:  return getExample();
7756        case -1322970774:  return getExample();
7757        case 1291547006:  return getGroupingIdElement();
7758        default: return super.makeProperty(hash, name);
7759        }
7760
7761      }
7762
7763      @Override
7764      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
7765        switch (hash) {
7766        case -925155509: /*reference*/ return new String[] {"Reference"};
7767        case 461006061: /*fhirVersion*/ return new String[] {"code"};
7768        case 3373707: /*name*/ return new String[] {"string"};
7769        case -1724546052: /*description*/ return new String[] {"string"};
7770        case -1322970774: /*example*/ return new String[] {"boolean", "canonical"};
7771        case 1291547006: /*groupingId*/ return new String[] {"id"};
7772        default: return super.getTypesForProperty(hash, name);
7773        }
7774
7775      }
7776
7777      @Override
7778      public Base addChild(String name) throws FHIRException {
7779        if (name.equals("reference")) {
7780          this.reference = new Reference();
7781          return this.reference;
7782        }
7783        else if (name.equals("fhirVersion")) {
7784          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.resource.fhirVersion");
7785        }
7786        else if (name.equals("name")) {
7787          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.resource.name");
7788        }
7789        else if (name.equals("description")) {
7790          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.resource.description");
7791        }
7792        else if (name.equals("exampleBoolean")) {
7793          this.example = new BooleanType();
7794          return this.example;
7795        }
7796        else if (name.equals("exampleCanonical")) {
7797          this.example = new CanonicalType();
7798          return this.example;
7799        }
7800        else if (name.equals("groupingId")) {
7801          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.resource.groupingId");
7802        }
7803        else
7804          return super.addChild(name);
7805      }
7806
7807      public ImplementationGuideDefinitionResourceComponent copy() {
7808        ImplementationGuideDefinitionResourceComponent dst = new ImplementationGuideDefinitionResourceComponent();
7809        copyValues(dst);
7810        return dst;
7811      }
7812
7813      public void copyValues(ImplementationGuideDefinitionResourceComponent dst) {
7814        super.copyValues(dst);
7815        dst.reference = reference == null ? null : reference.copy();
7816        if (fhirVersion != null) {
7817          dst.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
7818          for (Enumeration<FHIRVersion> i : fhirVersion)
7819            dst.fhirVersion.add(i.copy());
7820        };
7821        dst.name = name == null ? null : name.copy();
7822        dst.description = description == null ? null : description.copy();
7823        dst.example = example == null ? null : example.copy();
7824        dst.groupingId = groupingId == null ? null : groupingId.copy();
7825      }
7826
7827      @Override
7828      public boolean equalsDeep(Base other_) {
7829        if (!super.equalsDeep(other_))
7830          return false;
7831        if (!(other_ instanceof ImplementationGuideDefinitionResourceComponent))
7832          return false;
7833        ImplementationGuideDefinitionResourceComponent o = (ImplementationGuideDefinitionResourceComponent) other_;
7834        return compareDeep(reference, o.reference, true) && compareDeep(fhirVersion, o.fhirVersion, true)
7835           && compareDeep(name, o.name, true) && compareDeep(description, o.description, true) && compareDeep(example, o.example, true)
7836           && compareDeep(groupingId, o.groupingId, true);
7837      }
7838
7839      @Override
7840      public boolean equalsShallow(Base other_) {
7841        if (!super.equalsShallow(other_))
7842          return false;
7843        if (!(other_ instanceof ImplementationGuideDefinitionResourceComponent))
7844          return false;
7845        ImplementationGuideDefinitionResourceComponent o = (ImplementationGuideDefinitionResourceComponent) other_;
7846        return compareValues(fhirVersion, o.fhirVersion, true) && compareValues(name, o.name, true) && compareValues(description, o.description, true)
7847           && compareValues(groupingId, o.groupingId, true);
7848      }
7849
7850      public boolean isEmpty() {
7851        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, fhirVersion, name
7852          , description, example, groupingId);
7853      }
7854
7855  public String fhirType() {
7856    return "ImplementationGuide.definition.resource";
7857
7858  }
7859
7860// added from java-adornments.txt:
7861
7862// end addition
7863  }
7864
7865    @Block()
7866    public static class ImplementationGuideDefinitionPageComponent extends BackboneElement implements IBaseBackboneElement {
7867        /**
7868         * The source address for the page.
7869         */
7870        @Child(name = "name", type = {UrlType.class, Binary.class}, order=1, min=1, max=1, modifier=false, summary=false)
7871        @Description(shortDefinition="Where to find that page", formalDefinition="The source address for the page." )
7872        protected DataType name;
7873
7874        /**
7875         * A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.
7876         */
7877        @Child(name = "title", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
7878        @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." )
7879        protected StringType title;
7880
7881        /**
7882         * A code that indicates how the page is generated.
7883         */
7884        @Child(name = "generation", type = {CodeType.class}, order=3, min=1, max=1, modifier=false, summary=false)
7885        @Description(shortDefinition="html | markdown | xml | generated", formalDefinition="A code that indicates how the page is generated." )
7886        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/guide-page-generation")
7887        protected Enumeration<GuidePageGeneration> generation;
7888
7889        /**
7890         * Nested Pages/Sections under this page.
7891         */
7892        @Child(name = "page", type = {ImplementationGuideDefinitionPageComponent.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
7893        @Description(shortDefinition="Nested Pages / Sections", formalDefinition="Nested Pages/Sections under this page." )
7894        protected List<ImplementationGuideDefinitionPageComponent> page;
7895
7896        private static final long serialVersionUID = -2100991860L;
7897
7898    /**
7899     * Constructor
7900     */
7901      public ImplementationGuideDefinitionPageComponent() {
7902        super();
7903      }
7904
7905    /**
7906     * Constructor
7907     */
7908      public ImplementationGuideDefinitionPageComponent(DataType name, String title, GuidePageGeneration generation) {
7909        super();
7910        this.setName(name);
7911        this.setTitle(title);
7912        this.setGeneration(generation);
7913      }
7914
7915        /**
7916         * @return {@link #name} (The source address for the page.)
7917         */
7918        public DataType getName() { 
7919          return this.name;
7920        }
7921
7922        /**
7923         * @return {@link #name} (The source address for the page.)
7924         */
7925        public UrlType getNameUrlType() throws FHIRException { 
7926          if (this.name == null)
7927            this.name = new UrlType();
7928          if (!(this.name instanceof UrlType))
7929            throw new FHIRException("Type mismatch: the type UrlType was expected, but "+this.name.getClass().getName()+" was encountered");
7930          return (UrlType) this.name;
7931        }
7932
7933        public boolean hasNameUrlType() { 
7934          return this != null && this.name instanceof UrlType;
7935        }
7936
7937        /**
7938         * @return {@link #name} (The source address for the page.)
7939         */
7940        public Reference getNameReference() throws FHIRException { 
7941          if (this.name == null)
7942            this.name = new Reference();
7943          if (!(this.name instanceof Reference))
7944            throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.name.getClass().getName()+" was encountered");
7945          return (Reference) this.name;
7946        }
7947
7948        public boolean hasNameReference() { 
7949          return this != null && this.name instanceof Reference;
7950        }
7951
7952        public boolean hasName() { 
7953          return this.name != null && !this.name.isEmpty();
7954        }
7955
7956        /**
7957         * @param value {@link #name} (The source address for the page.)
7958         */
7959        public ImplementationGuideDefinitionPageComponent setName(DataType value) { 
7960          if (value != null && !(value instanceof UrlType || value instanceof Reference))
7961            throw new Error("Not the right type for ImplementationGuide.definition.page.name[x]: "+value.fhirType());
7962          this.name = value;
7963          return this;
7964        }
7965
7966        /**
7967         * @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
7968         */
7969        public StringType getTitleElement() { 
7970          if (this.title == null)
7971            if (Configuration.errorOnAutoCreate())
7972              throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.title");
7973            else if (Configuration.doAutoCreate())
7974              this.title = new StringType(); // bb
7975          return this.title;
7976        }
7977
7978        public boolean hasTitleElement() { 
7979          return this.title != null && !this.title.isEmpty();
7980        }
7981
7982        public boolean hasTitle() { 
7983          return this.title != null && !this.title.isEmpty();
7984        }
7985
7986        /**
7987         * @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
7988         */
7989        public ImplementationGuideDefinitionPageComponent setTitleElement(StringType value) { 
7990          this.title = value;
7991          return this;
7992        }
7993
7994        /**
7995         * @return A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.
7996         */
7997        public String getTitle() { 
7998          return this.title == null ? null : this.title.getValue();
7999        }
8000
8001        /**
8002         * @param value A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc.
8003         */
8004        public ImplementationGuideDefinitionPageComponent setTitle(String value) { 
8005            if (this.title == null)
8006              this.title = new StringType();
8007            this.title.setValue(value);
8008          return this;
8009        }
8010
8011        /**
8012         * @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
8013         */
8014        public Enumeration<GuidePageGeneration> getGenerationElement() { 
8015          if (this.generation == null)
8016            if (Configuration.errorOnAutoCreate())
8017              throw new Error("Attempt to auto-create ImplementationGuideDefinitionPageComponent.generation");
8018            else if (Configuration.doAutoCreate())
8019              this.generation = new Enumeration<GuidePageGeneration>(new GuidePageGenerationEnumFactory()); // bb
8020          return this.generation;
8021        }
8022
8023        public boolean hasGenerationElement() { 
8024          return this.generation != null && !this.generation.isEmpty();
8025        }
8026
8027        public boolean hasGeneration() { 
8028          return this.generation != null && !this.generation.isEmpty();
8029        }
8030
8031        /**
8032         * @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
8033         */
8034        public ImplementationGuideDefinitionPageComponent setGenerationElement(Enumeration<GuidePageGeneration> value) { 
8035          this.generation = value;
8036          return this;
8037        }
8038
8039        /**
8040         * @return A code that indicates how the page is generated.
8041         */
8042        public GuidePageGeneration getGeneration() { 
8043          return this.generation == null ? null : this.generation.getValue();
8044        }
8045
8046        /**
8047         * @param value A code that indicates how the page is generated.
8048         */
8049        public ImplementationGuideDefinitionPageComponent setGeneration(GuidePageGeneration value) { 
8050            if (this.generation == null)
8051              this.generation = new Enumeration<GuidePageGeneration>(new GuidePageGenerationEnumFactory());
8052            this.generation.setValue(value);
8053          return this;
8054        }
8055
8056        /**
8057         * @return {@link #page} (Nested Pages/Sections under this page.)
8058         */
8059        public List<ImplementationGuideDefinitionPageComponent> getPage() { 
8060          if (this.page == null)
8061            this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
8062          return this.page;
8063        }
8064
8065        /**
8066         * @return Returns a reference to <code>this</code> for easy method chaining
8067         */
8068        public ImplementationGuideDefinitionPageComponent setPage(List<ImplementationGuideDefinitionPageComponent> thePage) { 
8069          this.page = thePage;
8070          return this;
8071        }
8072
8073        public boolean hasPage() { 
8074          if (this.page == null)
8075            return false;
8076          for (ImplementationGuideDefinitionPageComponent item : this.page)
8077            if (!item.isEmpty())
8078              return true;
8079          return false;
8080        }
8081
8082        public ImplementationGuideDefinitionPageComponent addPage() { //3
8083          ImplementationGuideDefinitionPageComponent t = new ImplementationGuideDefinitionPageComponent();
8084          if (this.page == null)
8085            this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
8086          this.page.add(t);
8087          return t;
8088        }
8089
8090        public ImplementationGuideDefinitionPageComponent addPage(ImplementationGuideDefinitionPageComponent t) { //3
8091          if (t == null)
8092            return this;
8093          if (this.page == null)
8094            this.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
8095          this.page.add(t);
8096          return this;
8097        }
8098
8099        /**
8100         * @return The first repetition of repeating field {@link #page}, creating it if it does not already exist {3}
8101         */
8102        public ImplementationGuideDefinitionPageComponent getPageFirstRep() { 
8103          if (getPage().isEmpty()) {
8104            addPage();
8105          }
8106          return getPage().get(0);
8107        }
8108
8109        protected void listChildren(List<Property> children) {
8110          super.listChildren(children);
8111          children.add(new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name));
8112          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));
8113          children.add(new Property("generation", "code", "A code that indicates how the page is generated.", 0, 1, generation));
8114          children.add(new Property("page", "@ImplementationGuide.definition.page", "Nested Pages/Sections under this page.", 0, java.lang.Integer.MAX_VALUE, page));
8115        }
8116
8117        @Override
8118        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
8119          switch (_hash) {
8120          case 1721948693: /*name[x]*/  return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name);
8121          case 3373707: /*name*/  return new Property("name[x]", "url|Reference(Binary)", "The source address for the page.", 0, 1, name);
8122          case 1721942756: /*nameUrl*/  return new Property("name[x]", "url", "The source address for the page.", 0, 1, name);
8123          case 1833144576: /*nameReference*/  return new Property("name[x]", "Reference(Binary)", "The source address for the page.", 0, 1, name);
8124          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);
8125          case 305703192: /*generation*/  return new Property("generation", "code", "A code that indicates how the page is generated.", 0, 1, generation);
8126          case 3433103: /*page*/  return new Property("page", "@ImplementationGuide.definition.page", "Nested Pages/Sections under this page.", 0, java.lang.Integer.MAX_VALUE, page);
8127          default: return super.getNamedProperty(_hash, _name, _checkValid);
8128          }
8129
8130        }
8131
8132      @Override
8133      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
8134        switch (hash) {
8135        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // DataType
8136        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
8137        case 305703192: /*generation*/ return this.generation == null ? new Base[0] : new Base[] {this.generation}; // Enumeration<GuidePageGeneration>
8138        case 3433103: /*page*/ return this.page == null ? new Base[0] : this.page.toArray(new Base[this.page.size()]); // ImplementationGuideDefinitionPageComponent
8139        default: return super.getProperty(hash, name, checkValid);
8140        }
8141
8142      }
8143
8144      @Override
8145      public Base setProperty(int hash, String name, Base value) throws FHIRException {
8146        switch (hash) {
8147        case 3373707: // name
8148          this.name = TypeConvertor.castToType(value); // DataType
8149          return value;
8150        case 110371416: // title
8151          this.title = TypeConvertor.castToString(value); // StringType
8152          return value;
8153        case 305703192: // generation
8154          value = new GuidePageGenerationEnumFactory().fromType(TypeConvertor.castToCode(value));
8155          this.generation = (Enumeration) value; // Enumeration<GuidePageGeneration>
8156          return value;
8157        case 3433103: // page
8158          this.getPage().add((ImplementationGuideDefinitionPageComponent) value); // ImplementationGuideDefinitionPageComponent
8159          return value;
8160        default: return super.setProperty(hash, name, value);
8161        }
8162
8163      }
8164
8165      @Override
8166      public Base setProperty(String name, Base value) throws FHIRException {
8167        if (name.equals("name[x]")) {
8168          this.name = TypeConvertor.castToType(value); // DataType
8169        } else if (name.equals("title")) {
8170          this.title = TypeConvertor.castToString(value); // StringType
8171        } else if (name.equals("generation")) {
8172          value = new GuidePageGenerationEnumFactory().fromType(TypeConvertor.castToCode(value));
8173          this.generation = (Enumeration) value; // Enumeration<GuidePageGeneration>
8174        } else if (name.equals("page")) {
8175          this.getPage().add((ImplementationGuideDefinitionPageComponent) value);
8176        } else
8177          return super.setProperty(name, value);
8178        return value;
8179      }
8180
8181      @Override
8182      public Base makeProperty(int hash, String name) throws FHIRException {
8183        switch (hash) {
8184        case 1721948693:  return getName();
8185        case 3373707:  return getName();
8186        case 110371416:  return getTitleElement();
8187        case 305703192:  return getGenerationElement();
8188        case 3433103:  return addPage(); 
8189        default: return super.makeProperty(hash, name);
8190        }
8191
8192      }
8193
8194      @Override
8195      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
8196        switch (hash) {
8197        case 3373707: /*name*/ return new String[] {"url", "Reference"};
8198        case 110371416: /*title*/ return new String[] {"string"};
8199        case 305703192: /*generation*/ return new String[] {"code"};
8200        case 3433103: /*page*/ return new String[] {"@ImplementationGuide.definition.page"};
8201        default: return super.getTypesForProperty(hash, name);
8202        }
8203
8204      }
8205
8206      @Override
8207      public Base addChild(String name) throws FHIRException {
8208        if (name.equals("nameUrl")) {
8209          this.name = new UrlType();
8210          return this.name;
8211        }
8212        else if (name.equals("nameReference")) {
8213          this.name = new Reference();
8214          return this.name;
8215        }
8216        else if (name.equals("title")) {
8217          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.page.title");
8218        }
8219        else if (name.equals("generation")) {
8220          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.page.generation");
8221        }
8222        else if (name.equals("page")) {
8223          return addPage();
8224        }
8225        else
8226          return super.addChild(name);
8227      }
8228
8229      public ImplementationGuideDefinitionPageComponent copy() {
8230        ImplementationGuideDefinitionPageComponent dst = new ImplementationGuideDefinitionPageComponent();
8231        copyValues(dst);
8232        return dst;
8233      }
8234
8235      public void copyValues(ImplementationGuideDefinitionPageComponent dst) {
8236        super.copyValues(dst);
8237        dst.name = name == null ? null : name.copy();
8238        dst.title = title == null ? null : title.copy();
8239        dst.generation = generation == null ? null : generation.copy();
8240        if (page != null) {
8241          dst.page = new ArrayList<ImplementationGuideDefinitionPageComponent>();
8242          for (ImplementationGuideDefinitionPageComponent i : page)
8243            dst.page.add(i.copy());
8244        };
8245      }
8246
8247      @Override
8248      public boolean equalsDeep(Base other_) {
8249        if (!super.equalsDeep(other_))
8250          return false;
8251        if (!(other_ instanceof ImplementationGuideDefinitionPageComponent))
8252          return false;
8253        ImplementationGuideDefinitionPageComponent o = (ImplementationGuideDefinitionPageComponent) other_;
8254        return compareDeep(name, o.name, true) && compareDeep(title, o.title, true) && compareDeep(generation, o.generation, true)
8255           && compareDeep(page, o.page, true);
8256      }
8257
8258      @Override
8259      public boolean equalsShallow(Base other_) {
8260        if (!super.equalsShallow(other_))
8261          return false;
8262        if (!(other_ instanceof ImplementationGuideDefinitionPageComponent))
8263          return false;
8264        ImplementationGuideDefinitionPageComponent o = (ImplementationGuideDefinitionPageComponent) other_;
8265        return compareValues(title, o.title, true) && compareValues(generation, o.generation, true);
8266      }
8267
8268      public boolean isEmpty() {
8269        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, title, generation
8270          , page);
8271      }
8272
8273  public String fhirType() {
8274    return "ImplementationGuide.definition.page";
8275
8276  }
8277
8278  }
8279
8280    @Block()
8281    public static class ImplementationGuideDefinitionParameterComponent extends BackboneElement implements IBaseBackboneElement {
8282        /**
8283         * apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.
8284         */
8285        @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
8286        @Description(shortDefinition="apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template", formalDefinition="apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template." )
8287        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/guide-parameter-code")
8288        protected Enumeration<GuideParameterCode> code;
8289
8290        /**
8291         * Value for named type.
8292         */
8293        @Child(name = "value", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
8294        @Description(shortDefinition="Value for named type", formalDefinition="Value for named type." )
8295        protected StringType value;
8296
8297        private static final long serialVersionUID = 1188999138L;
8298
8299    /**
8300     * Constructor
8301     */
8302      public ImplementationGuideDefinitionParameterComponent() {
8303        super();
8304      }
8305
8306    /**
8307     * Constructor
8308     */
8309      public ImplementationGuideDefinitionParameterComponent(GuideParameterCode code, String value) {
8310        super();
8311        this.setCode(code);
8312        this.setValue(value);
8313      }
8314
8315        /**
8316         * @return {@link #code} (apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
8317         */
8318        public Enumeration<GuideParameterCode> getCodeElement() { 
8319          if (this.code == null)
8320            if (Configuration.errorOnAutoCreate())
8321              throw new Error("Attempt to auto-create ImplementationGuideDefinitionParameterComponent.code");
8322            else if (Configuration.doAutoCreate())
8323              this.code = new Enumeration<GuideParameterCode>(new GuideParameterCodeEnumFactory()); // bb
8324          return this.code;
8325        }
8326
8327        public boolean hasCodeElement() { 
8328          return this.code != null && !this.code.isEmpty();
8329        }
8330
8331        public boolean hasCode() { 
8332          return this.code != null && !this.code.isEmpty();
8333        }
8334
8335        /**
8336         * @param value {@link #code} (apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
8337         */
8338        public ImplementationGuideDefinitionParameterComponent setCodeElement(Enumeration<GuideParameterCode> value) { 
8339          this.code = value;
8340          return this;
8341        }
8342
8343        /**
8344         * @return apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.
8345         */
8346        public GuideParameterCode getCode() { 
8347          return this.code == null ? null : this.code.getValue();
8348        }
8349
8350        /**
8351         * @param value apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.
8352         */
8353        public ImplementationGuideDefinitionParameterComponent setCode(GuideParameterCode value) { 
8354            if (this.code == null)
8355              this.code = new Enumeration<GuideParameterCode>(new GuideParameterCodeEnumFactory());
8356            this.code.setValue(value);
8357          return this;
8358        }
8359
8360        /**
8361         * @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
8362         */
8363        public StringType getValueElement() { 
8364          if (this.value == null)
8365            if (Configuration.errorOnAutoCreate())
8366              throw new Error("Attempt to auto-create ImplementationGuideDefinitionParameterComponent.value");
8367            else if (Configuration.doAutoCreate())
8368              this.value = new StringType(); // bb
8369          return this.value;
8370        }
8371
8372        public boolean hasValueElement() { 
8373          return this.value != null && !this.value.isEmpty();
8374        }
8375
8376        public boolean hasValue() { 
8377          return this.value != null && !this.value.isEmpty();
8378        }
8379
8380        /**
8381         * @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
8382         */
8383        public ImplementationGuideDefinitionParameterComponent setValueElement(StringType value) { 
8384          this.value = value;
8385          return this;
8386        }
8387
8388        /**
8389         * @return Value for named type.
8390         */
8391        public String getValue() { 
8392          return this.value == null ? null : this.value.getValue();
8393        }
8394
8395        /**
8396         * @param value Value for named type.
8397         */
8398        public ImplementationGuideDefinitionParameterComponent setValue(String value) { 
8399            if (this.value == null)
8400              this.value = new StringType();
8401            this.value.setValue(value);
8402          return this;
8403        }
8404
8405        protected void listChildren(List<Property> children) {
8406          super.listChildren(children);
8407          children.add(new Property("code", "code", "apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.", 0, 1, code));
8408          children.add(new Property("value", "string", "Value for named type.", 0, 1, value));
8409        }
8410
8411        @Override
8412        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
8413          switch (_hash) {
8414          case 3059181: /*code*/  return new Property("code", "code", "apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template.", 0, 1, code);
8415          case 111972721: /*value*/  return new Property("value", "string", "Value for named type.", 0, 1, value);
8416          default: return super.getNamedProperty(_hash, _name, _checkValid);
8417          }
8418
8419        }
8420
8421      @Override
8422      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
8423        switch (hash) {
8424        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // Enumeration<GuideParameterCode>
8425        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType
8426        default: return super.getProperty(hash, name, checkValid);
8427        }
8428
8429      }
8430
8431      @Override
8432      public Base setProperty(int hash, String name, Base value) throws FHIRException {
8433        switch (hash) {
8434        case 3059181: // code
8435          value = new GuideParameterCodeEnumFactory().fromType(TypeConvertor.castToCode(value));
8436          this.code = (Enumeration) value; // Enumeration<GuideParameterCode>
8437          return value;
8438        case 111972721: // value
8439          this.value = TypeConvertor.castToString(value); // StringType
8440          return value;
8441        default: return super.setProperty(hash, name, value);
8442        }
8443
8444      }
8445
8446      @Override
8447      public Base setProperty(String name, Base value) throws FHIRException {
8448        if (name.equals("code")) {
8449          value = new GuideParameterCodeEnumFactory().fromType(TypeConvertor.castToCode(value));
8450          this.code = (Enumeration) value; // Enumeration<GuideParameterCode>
8451        } else if (name.equals("value")) {
8452          this.value = TypeConvertor.castToString(value); // StringType
8453        } else
8454          return super.setProperty(name, value);
8455        return value;
8456      }
8457
8458      @Override
8459      public Base makeProperty(int hash, String name) throws FHIRException {
8460        switch (hash) {
8461        case 3059181:  return getCodeElement();
8462        case 111972721:  return getValueElement();
8463        default: return super.makeProperty(hash, name);
8464        }
8465
8466      }
8467
8468      @Override
8469      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
8470        switch (hash) {
8471        case 3059181: /*code*/ return new String[] {"code"};
8472        case 111972721: /*value*/ return new String[] {"string"};
8473        default: return super.getTypesForProperty(hash, name);
8474        }
8475
8476      }
8477
8478      @Override
8479      public Base addChild(String name) throws FHIRException {
8480        if (name.equals("code")) {
8481          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.parameter.code");
8482        }
8483        else if (name.equals("value")) {
8484          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.parameter.value");
8485        }
8486        else
8487          return super.addChild(name);
8488      }
8489
8490      public ImplementationGuideDefinitionParameterComponent copy() {
8491        ImplementationGuideDefinitionParameterComponent dst = new ImplementationGuideDefinitionParameterComponent();
8492        copyValues(dst);
8493        return dst;
8494      }
8495
8496      public void copyValues(ImplementationGuideDefinitionParameterComponent dst) {
8497        super.copyValues(dst);
8498        dst.code = code == null ? null : code.copy();
8499        dst.value = value == null ? null : value.copy();
8500      }
8501
8502      @Override
8503      public boolean equalsDeep(Base other_) {
8504        if (!super.equalsDeep(other_))
8505          return false;
8506        if (!(other_ instanceof ImplementationGuideDefinitionParameterComponent))
8507          return false;
8508        ImplementationGuideDefinitionParameterComponent o = (ImplementationGuideDefinitionParameterComponent) other_;
8509        return compareDeep(code, o.code, true) && compareDeep(value, o.value, true);
8510      }
8511
8512      @Override
8513      public boolean equalsShallow(Base other_) {
8514        if (!super.equalsShallow(other_))
8515          return false;
8516        if (!(other_ instanceof ImplementationGuideDefinitionParameterComponent))
8517          return false;
8518        ImplementationGuideDefinitionParameterComponent o = (ImplementationGuideDefinitionParameterComponent) other_;
8519        return compareValues(code, o.code, true) && compareValues(value, o.value, true);
8520      }
8521
8522      public boolean isEmpty() {
8523        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, value);
8524      }
8525
8526  public String fhirType() {
8527    return "ImplementationGuide.definition.parameter";
8528
8529  }
8530
8531  }
8532
8533    @Block()
8534    public static class ImplementationGuideDefinitionTemplateComponent extends BackboneElement implements IBaseBackboneElement {
8535        /**
8536         * Type of template specified.
8537         */
8538        @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false)
8539        @Description(shortDefinition="Type of template specified", formalDefinition="Type of template specified." )
8540        protected CodeType code;
8541
8542        /**
8543         * The source location for the template.
8544         */
8545        @Child(name = "source", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false)
8546        @Description(shortDefinition="The source location for the template", formalDefinition="The source location for the template." )
8547        protected StringType source;
8548
8549        /**
8550         * The scope in which the template applies.
8551         */
8552        @Child(name = "scope", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
8553        @Description(shortDefinition="The scope in which the template applies", formalDefinition="The scope in which the template applies." )
8554        protected StringType scope;
8555
8556        private static final long serialVersionUID = 923832457L;
8557
8558    /**
8559     * Constructor
8560     */
8561      public ImplementationGuideDefinitionTemplateComponent() {
8562        super();
8563      }
8564
8565    /**
8566     * Constructor
8567     */
8568      public ImplementationGuideDefinitionTemplateComponent(String code, String source) {
8569        super();
8570        this.setCode(code);
8571        this.setSource(source);
8572      }
8573
8574        /**
8575         * @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
8576         */
8577        public CodeType getCodeElement() { 
8578          if (this.code == null)
8579            if (Configuration.errorOnAutoCreate())
8580              throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.code");
8581            else if (Configuration.doAutoCreate())
8582              this.code = new CodeType(); // bb
8583          return this.code;
8584        }
8585
8586        public boolean hasCodeElement() { 
8587          return this.code != null && !this.code.isEmpty();
8588        }
8589
8590        public boolean hasCode() { 
8591          return this.code != null && !this.code.isEmpty();
8592        }
8593
8594        /**
8595         * @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
8596         */
8597        public ImplementationGuideDefinitionTemplateComponent setCodeElement(CodeType value) { 
8598          this.code = value;
8599          return this;
8600        }
8601
8602        /**
8603         * @return Type of template specified.
8604         */
8605        public String getCode() { 
8606          return this.code == null ? null : this.code.getValue();
8607        }
8608
8609        /**
8610         * @param value Type of template specified.
8611         */
8612        public ImplementationGuideDefinitionTemplateComponent setCode(String value) { 
8613            if (this.code == null)
8614              this.code = new CodeType();
8615            this.code.setValue(value);
8616          return this;
8617        }
8618
8619        /**
8620         * @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
8621         */
8622        public StringType getSourceElement() { 
8623          if (this.source == null)
8624            if (Configuration.errorOnAutoCreate())
8625              throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.source");
8626            else if (Configuration.doAutoCreate())
8627              this.source = new StringType(); // bb
8628          return this.source;
8629        }
8630
8631        public boolean hasSourceElement() { 
8632          return this.source != null && !this.source.isEmpty();
8633        }
8634
8635        public boolean hasSource() { 
8636          return this.source != null && !this.source.isEmpty();
8637        }
8638
8639        /**
8640         * @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
8641         */
8642        public ImplementationGuideDefinitionTemplateComponent setSourceElement(StringType value) { 
8643          this.source = value;
8644          return this;
8645        }
8646
8647        /**
8648         * @return The source location for the template.
8649         */
8650        public String getSource() { 
8651          return this.source == null ? null : this.source.getValue();
8652        }
8653
8654        /**
8655         * @param value The source location for the template.
8656         */
8657        public ImplementationGuideDefinitionTemplateComponent setSource(String value) { 
8658            if (this.source == null)
8659              this.source = new StringType();
8660            this.source.setValue(value);
8661          return this;
8662        }
8663
8664        /**
8665         * @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
8666         */
8667        public StringType getScopeElement() { 
8668          if (this.scope == null)
8669            if (Configuration.errorOnAutoCreate())
8670              throw new Error("Attempt to auto-create ImplementationGuideDefinitionTemplateComponent.scope");
8671            else if (Configuration.doAutoCreate())
8672              this.scope = new StringType(); // bb
8673          return this.scope;
8674        }
8675
8676        public boolean hasScopeElement() { 
8677          return this.scope != null && !this.scope.isEmpty();
8678        }
8679
8680        public boolean hasScope() { 
8681          return this.scope != null && !this.scope.isEmpty();
8682        }
8683
8684        /**
8685         * @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
8686         */
8687        public ImplementationGuideDefinitionTemplateComponent setScopeElement(StringType value) { 
8688          this.scope = value;
8689          return this;
8690        }
8691
8692        /**
8693         * @return The scope in which the template applies.
8694         */
8695        public String getScope() { 
8696          return this.scope == null ? null : this.scope.getValue();
8697        }
8698
8699        /**
8700         * @param value The scope in which the template applies.
8701         */
8702        public ImplementationGuideDefinitionTemplateComponent setScope(String value) { 
8703          if (Utilities.noString(value))
8704            this.scope = null;
8705          else {
8706            if (this.scope == null)
8707              this.scope = new StringType();
8708            this.scope.setValue(value);
8709          }
8710          return this;
8711        }
8712
8713        protected void listChildren(List<Property> children) {
8714          super.listChildren(children);
8715          children.add(new Property("code", "code", "Type of template specified.", 0, 1, code));
8716          children.add(new Property("source", "string", "The source location for the template.", 0, 1, source));
8717          children.add(new Property("scope", "string", "The scope in which the template applies.", 0, 1, scope));
8718        }
8719
8720        @Override
8721        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
8722          switch (_hash) {
8723          case 3059181: /*code*/  return new Property("code", "code", "Type of template specified.", 0, 1, code);
8724          case -896505829: /*source*/  return new Property("source", "string", "The source location for the template.", 0, 1, source);
8725          case 109264468: /*scope*/  return new Property("scope", "string", "The scope in which the template applies.", 0, 1, scope);
8726          default: return super.getNamedProperty(_hash, _name, _checkValid);
8727          }
8728
8729        }
8730
8731      @Override
8732      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
8733        switch (hash) {
8734        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
8735        case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // StringType
8736        case 109264468: /*scope*/ return this.scope == null ? new Base[0] : new Base[] {this.scope}; // StringType
8737        default: return super.getProperty(hash, name, checkValid);
8738        }
8739
8740      }
8741
8742      @Override
8743      public Base setProperty(int hash, String name, Base value) throws FHIRException {
8744        switch (hash) {
8745        case 3059181: // code
8746          this.code = TypeConvertor.castToCode(value); // CodeType
8747          return value;
8748        case -896505829: // source
8749          this.source = TypeConvertor.castToString(value); // StringType
8750          return value;
8751        case 109264468: // scope
8752          this.scope = TypeConvertor.castToString(value); // StringType
8753          return value;
8754        default: return super.setProperty(hash, name, value);
8755        }
8756
8757      }
8758
8759      @Override
8760      public Base setProperty(String name, Base value) throws FHIRException {
8761        if (name.equals("code")) {
8762          this.code = TypeConvertor.castToCode(value); // CodeType
8763        } else if (name.equals("source")) {
8764          this.source = TypeConvertor.castToString(value); // StringType
8765        } else if (name.equals("scope")) {
8766          this.scope = TypeConvertor.castToString(value); // StringType
8767        } else
8768          return super.setProperty(name, value);
8769        return value;
8770      }
8771
8772      @Override
8773      public Base makeProperty(int hash, String name) throws FHIRException {
8774        switch (hash) {
8775        case 3059181:  return getCodeElement();
8776        case -896505829:  return getSourceElement();
8777        case 109264468:  return getScopeElement();
8778        default: return super.makeProperty(hash, name);
8779        }
8780
8781      }
8782
8783      @Override
8784      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
8785        switch (hash) {
8786        case 3059181: /*code*/ return new String[] {"code"};
8787        case -896505829: /*source*/ return new String[] {"string"};
8788        case 109264468: /*scope*/ return new String[] {"string"};
8789        default: return super.getTypesForProperty(hash, name);
8790        }
8791
8792      }
8793
8794      @Override
8795      public Base addChild(String name) throws FHIRException {
8796        if (name.equals("code")) {
8797          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.template.code");
8798        }
8799        else if (name.equals("source")) {
8800          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.template.source");
8801        }
8802        else if (name.equals("scope")) {
8803          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.definition.template.scope");
8804        }
8805        else
8806          return super.addChild(name);
8807      }
8808
8809      public ImplementationGuideDefinitionTemplateComponent copy() {
8810        ImplementationGuideDefinitionTemplateComponent dst = new ImplementationGuideDefinitionTemplateComponent();
8811        copyValues(dst);
8812        return dst;
8813      }
8814
8815      public void copyValues(ImplementationGuideDefinitionTemplateComponent dst) {
8816        super.copyValues(dst);
8817        dst.code = code == null ? null : code.copy();
8818        dst.source = source == null ? null : source.copy();
8819        dst.scope = scope == null ? null : scope.copy();
8820      }
8821
8822      @Override
8823      public boolean equalsDeep(Base other_) {
8824        if (!super.equalsDeep(other_))
8825          return false;
8826        if (!(other_ instanceof ImplementationGuideDefinitionTemplateComponent))
8827          return false;
8828        ImplementationGuideDefinitionTemplateComponent o = (ImplementationGuideDefinitionTemplateComponent) other_;
8829        return compareDeep(code, o.code, true) && compareDeep(source, o.source, true) && compareDeep(scope, o.scope, true)
8830          ;
8831      }
8832
8833      @Override
8834      public boolean equalsShallow(Base other_) {
8835        if (!super.equalsShallow(other_))
8836          return false;
8837        if (!(other_ instanceof ImplementationGuideDefinitionTemplateComponent))
8838          return false;
8839        ImplementationGuideDefinitionTemplateComponent o = (ImplementationGuideDefinitionTemplateComponent) other_;
8840        return compareValues(code, o.code, true) && compareValues(source, o.source, true) && compareValues(scope, o.scope, true)
8841          ;
8842      }
8843
8844      public boolean isEmpty() {
8845        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, source, scope);
8846      }
8847
8848  public String fhirType() {
8849    return "ImplementationGuide.definition.template";
8850
8851  }
8852
8853  }
8854
8855    @Block()
8856    public static class ImplementationGuideManifestComponent extends BackboneElement implements IBaseBackboneElement {
8857        /**
8858         * A pointer to official web page, PDF or other rendering of the implementation guide.
8859         */
8860        @Child(name = "rendering", type = {UrlType.class}, order=1, min=0, max=1, modifier=false, summary=true)
8861        @Description(shortDefinition="Location of rendered implementation guide", formalDefinition="A pointer to official web page, PDF or other rendering of the implementation guide." )
8862        protected UrlType rendering;
8863
8864        /**
8865         * 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.
8866         */
8867        @Child(name = "resource", type = {}, order=2, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
8868        @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." )
8869        protected List<ManifestResourceComponent> resource;
8870
8871        /**
8872         * Information about a page within the IG.
8873         */
8874        @Child(name = "page", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
8875        @Description(shortDefinition="HTML page within the parent IG", formalDefinition="Information about a page within the IG." )
8876        protected List<ManifestPageComponent> page;
8877
8878        /**
8879         * Indicates a relative path to an image that exists within the IG.
8880         */
8881        @Child(name = "image", type = {StringType.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
8882        @Description(shortDefinition="Image within the IG", formalDefinition="Indicates a relative path to an image that exists within the IG." )
8883        protected List<StringType> image;
8884
8885        /**
8886         * 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.
8887         */
8888        @Child(name = "other", type = {StringType.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
8889        @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." )
8890        protected List<StringType> other;
8891
8892        private static final long serialVersionUID = 1881327712L;
8893
8894    /**
8895     * Constructor
8896     */
8897      public ImplementationGuideManifestComponent() {
8898        super();
8899      }
8900
8901    /**
8902     * Constructor
8903     */
8904      public ImplementationGuideManifestComponent(ManifestResourceComponent resource) {
8905        super();
8906        this.addResource(resource);
8907      }
8908
8909        /**
8910         * @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
8911         */
8912        public UrlType getRenderingElement() { 
8913          if (this.rendering == null)
8914            if (Configuration.errorOnAutoCreate())
8915              throw new Error("Attempt to auto-create ImplementationGuideManifestComponent.rendering");
8916            else if (Configuration.doAutoCreate())
8917              this.rendering = new UrlType(); // bb
8918          return this.rendering;
8919        }
8920
8921        public boolean hasRenderingElement() { 
8922          return this.rendering != null && !this.rendering.isEmpty();
8923        }
8924
8925        public boolean hasRendering() { 
8926          return this.rendering != null && !this.rendering.isEmpty();
8927        }
8928
8929        /**
8930         * @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
8931         */
8932        public ImplementationGuideManifestComponent setRenderingElement(UrlType value) { 
8933          this.rendering = value;
8934          return this;
8935        }
8936
8937        /**
8938         * @return A pointer to official web page, PDF or other rendering of the implementation guide.
8939         */
8940        public String getRendering() { 
8941          return this.rendering == null ? null : this.rendering.getValue();
8942        }
8943
8944        /**
8945         * @param value A pointer to official web page, PDF or other rendering of the implementation guide.
8946         */
8947        public ImplementationGuideManifestComponent setRendering(String value) { 
8948          if (Utilities.noString(value))
8949            this.rendering = null;
8950          else {
8951            if (this.rendering == null)
8952              this.rendering = new UrlType();
8953            this.rendering.setValue(value);
8954          }
8955          return this;
8956        }
8957
8958        /**
8959         * @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.)
8960         */
8961        public List<ManifestResourceComponent> getResource() { 
8962          if (this.resource == null)
8963            this.resource = new ArrayList<ManifestResourceComponent>();
8964          return this.resource;
8965        }
8966
8967        /**
8968         * @return Returns a reference to <code>this</code> for easy method chaining
8969         */
8970        public ImplementationGuideManifestComponent setResource(List<ManifestResourceComponent> theResource) { 
8971          this.resource = theResource;
8972          return this;
8973        }
8974
8975        public boolean hasResource() { 
8976          if (this.resource == null)
8977            return false;
8978          for (ManifestResourceComponent item : this.resource)
8979            if (!item.isEmpty())
8980              return true;
8981          return false;
8982        }
8983
8984        public ManifestResourceComponent addResource() { //3
8985          ManifestResourceComponent t = new ManifestResourceComponent();
8986          if (this.resource == null)
8987            this.resource = new ArrayList<ManifestResourceComponent>();
8988          this.resource.add(t);
8989          return t;
8990        }
8991
8992        public ImplementationGuideManifestComponent addResource(ManifestResourceComponent t) { //3
8993          if (t == null)
8994            return this;
8995          if (this.resource == null)
8996            this.resource = new ArrayList<ManifestResourceComponent>();
8997          this.resource.add(t);
8998          return this;
8999        }
9000
9001        /**
9002         * @return The first repetition of repeating field {@link #resource}, creating it if it does not already exist {3}
9003         */
9004        public ManifestResourceComponent getResourceFirstRep() { 
9005          if (getResource().isEmpty()) {
9006            addResource();
9007          }
9008          return getResource().get(0);
9009        }
9010
9011        /**
9012         * @return {@link #page} (Information about a page within the IG.)
9013         */
9014        public List<ManifestPageComponent> getPage() { 
9015          if (this.page == null)
9016            this.page = new ArrayList<ManifestPageComponent>();
9017          return this.page;
9018        }
9019
9020        /**
9021         * @return Returns a reference to <code>this</code> for easy method chaining
9022         */
9023        public ImplementationGuideManifestComponent setPage(List<ManifestPageComponent> thePage) { 
9024          this.page = thePage;
9025          return this;
9026        }
9027
9028        public boolean hasPage() { 
9029          if (this.page == null)
9030            return false;
9031          for (ManifestPageComponent item : this.page)
9032            if (!item.isEmpty())
9033              return true;
9034          return false;
9035        }
9036
9037        public ManifestPageComponent addPage() { //3
9038          ManifestPageComponent t = new ManifestPageComponent();
9039          if (this.page == null)
9040            this.page = new ArrayList<ManifestPageComponent>();
9041          this.page.add(t);
9042          return t;
9043        }
9044
9045        public ImplementationGuideManifestComponent addPage(ManifestPageComponent t) { //3
9046          if (t == null)
9047            return this;
9048          if (this.page == null)
9049            this.page = new ArrayList<ManifestPageComponent>();
9050          this.page.add(t);
9051          return this;
9052        }
9053
9054        /**
9055         * @return The first repetition of repeating field {@link #page}, creating it if it does not already exist {3}
9056         */
9057        public ManifestPageComponent getPageFirstRep() { 
9058          if (getPage().isEmpty()) {
9059            addPage();
9060          }
9061          return getPage().get(0);
9062        }
9063
9064        /**
9065         * @return {@link #image} (Indicates a relative path to an image that exists within the IG.)
9066         */
9067        public List<StringType> getImage() { 
9068          if (this.image == null)
9069            this.image = new ArrayList<StringType>();
9070          return this.image;
9071        }
9072
9073        /**
9074         * @return Returns a reference to <code>this</code> for easy method chaining
9075         */
9076        public ImplementationGuideManifestComponent setImage(List<StringType> theImage) { 
9077          this.image = theImage;
9078          return this;
9079        }
9080
9081        public boolean hasImage() { 
9082          if (this.image == null)
9083            return false;
9084          for (StringType item : this.image)
9085            if (!item.isEmpty())
9086              return true;
9087          return false;
9088        }
9089
9090        /**
9091         * @return {@link #image} (Indicates a relative path to an image that exists within the IG.)
9092         */
9093        public StringType addImageElement() {//2 
9094          StringType t = new StringType();
9095          if (this.image == null)
9096            this.image = new ArrayList<StringType>();
9097          this.image.add(t);
9098          return t;
9099        }
9100
9101        /**
9102         * @param value {@link #image} (Indicates a relative path to an image that exists within the IG.)
9103         */
9104        public ImplementationGuideManifestComponent addImage(String value) { //1
9105          StringType t = new StringType();
9106          t.setValue(value);
9107          if (this.image == null)
9108            this.image = new ArrayList<StringType>();
9109          this.image.add(t);
9110          return this;
9111        }
9112
9113        /**
9114         * @param value {@link #image} (Indicates a relative path to an image that exists within the IG.)
9115         */
9116        public boolean hasImage(String value) { 
9117          if (this.image == null)
9118            return false;
9119          for (StringType v : this.image)
9120            if (v.getValue().equals(value)) // string
9121              return true;
9122          return false;
9123        }
9124
9125        /**
9126         * @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.)
9127         */
9128        public List<StringType> getOther() { 
9129          if (this.other == null)
9130            this.other = new ArrayList<StringType>();
9131          return this.other;
9132        }
9133
9134        /**
9135         * @return Returns a reference to <code>this</code> for easy method chaining
9136         */
9137        public ImplementationGuideManifestComponent setOther(List<StringType> theOther) { 
9138          this.other = theOther;
9139          return this;
9140        }
9141
9142        public boolean hasOther() { 
9143          if (this.other == null)
9144            return false;
9145          for (StringType item : this.other)
9146            if (!item.isEmpty())
9147              return true;
9148          return false;
9149        }
9150
9151        /**
9152         * @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.)
9153         */
9154        public StringType addOtherElement() {//2 
9155          StringType t = new StringType();
9156          if (this.other == null)
9157            this.other = new ArrayList<StringType>();
9158          this.other.add(t);
9159          return t;
9160        }
9161
9162        /**
9163         * @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.)
9164         */
9165        public ImplementationGuideManifestComponent addOther(String value) { //1
9166          StringType t = new StringType();
9167          t.setValue(value);
9168          if (this.other == null)
9169            this.other = new ArrayList<StringType>();
9170          this.other.add(t);
9171          return this;
9172        }
9173
9174        /**
9175         * @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.)
9176         */
9177        public boolean hasOther(String value) { 
9178          if (this.other == null)
9179            return false;
9180          for (StringType v : this.other)
9181            if (v.getValue().equals(value)) // string
9182              return true;
9183          return false;
9184        }
9185
9186        protected void listChildren(List<Property> children) {
9187          super.listChildren(children);
9188          children.add(new Property("rendering", "url", "A pointer to official web page, PDF or other rendering of the implementation guide.", 0, 1, rendering));
9189          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));
9190          children.add(new Property("page", "", "Information about a page within the IG.", 0, java.lang.Integer.MAX_VALUE, page));
9191          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));
9192          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));
9193        }
9194
9195        @Override
9196        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
9197          switch (_hash) {
9198          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);
9199          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);
9200          case 3433103: /*page*/  return new Property("page", "", "Information about a page within the IG.", 0, java.lang.Integer.MAX_VALUE, page);
9201          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);
9202          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);
9203          default: return super.getNamedProperty(_hash, _name, _checkValid);
9204          }
9205
9206        }
9207
9208      @Override
9209      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
9210        switch (hash) {
9211        case 1839654540: /*rendering*/ return this.rendering == null ? new Base[0] : new Base[] {this.rendering}; // UrlType
9212        case -341064690: /*resource*/ return this.resource == null ? new Base[0] : this.resource.toArray(new Base[this.resource.size()]); // ManifestResourceComponent
9213        case 3433103: /*page*/ return this.page == null ? new Base[0] : this.page.toArray(new Base[this.page.size()]); // ManifestPageComponent
9214        case 100313435: /*image*/ return this.image == null ? new Base[0] : this.image.toArray(new Base[this.image.size()]); // StringType
9215        case 106069776: /*other*/ return this.other == null ? new Base[0] : this.other.toArray(new Base[this.other.size()]); // StringType
9216        default: return super.getProperty(hash, name, checkValid);
9217        }
9218
9219      }
9220
9221      @Override
9222      public Base setProperty(int hash, String name, Base value) throws FHIRException {
9223        switch (hash) {
9224        case 1839654540: // rendering
9225          this.rendering = TypeConvertor.castToUrl(value); // UrlType
9226          return value;
9227        case -341064690: // resource
9228          this.getResource().add((ManifestResourceComponent) value); // ManifestResourceComponent
9229          return value;
9230        case 3433103: // page
9231          this.getPage().add((ManifestPageComponent) value); // ManifestPageComponent
9232          return value;
9233        case 100313435: // image
9234          this.getImage().add(TypeConvertor.castToString(value)); // StringType
9235          return value;
9236        case 106069776: // other
9237          this.getOther().add(TypeConvertor.castToString(value)); // StringType
9238          return value;
9239        default: return super.setProperty(hash, name, value);
9240        }
9241
9242      }
9243
9244      @Override
9245      public Base setProperty(String name, Base value) throws FHIRException {
9246        if (name.equals("rendering")) {
9247          this.rendering = TypeConvertor.castToUrl(value); // UrlType
9248        } else if (name.equals("resource")) {
9249          this.getResource().add((ManifestResourceComponent) value);
9250        } else if (name.equals("page")) {
9251          this.getPage().add((ManifestPageComponent) value);
9252        } else if (name.equals("image")) {
9253          this.getImage().add(TypeConvertor.castToString(value));
9254        } else if (name.equals("other")) {
9255          this.getOther().add(TypeConvertor.castToString(value));
9256        } else
9257          return super.setProperty(name, value);
9258        return value;
9259      }
9260
9261      @Override
9262      public Base makeProperty(int hash, String name) throws FHIRException {
9263        switch (hash) {
9264        case 1839654540:  return getRenderingElement();
9265        case -341064690:  return addResource(); 
9266        case 3433103:  return addPage(); 
9267        case 100313435:  return addImageElement();
9268        case 106069776:  return addOtherElement();
9269        default: return super.makeProperty(hash, name);
9270        }
9271
9272      }
9273
9274      @Override
9275      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
9276        switch (hash) {
9277        case 1839654540: /*rendering*/ return new String[] {"url"};
9278        case -341064690: /*resource*/ return new String[] {};
9279        case 3433103: /*page*/ return new String[] {};
9280        case 100313435: /*image*/ return new String[] {"string"};
9281        case 106069776: /*other*/ return new String[] {"string"};
9282        default: return super.getTypesForProperty(hash, name);
9283        }
9284
9285      }
9286
9287      @Override
9288      public Base addChild(String name) throws FHIRException {
9289        if (name.equals("rendering")) {
9290          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.manifest.rendering");
9291        }
9292        else if (name.equals("resource")) {
9293          return addResource();
9294        }
9295        else if (name.equals("page")) {
9296          return addPage();
9297        }
9298        else if (name.equals("image")) {
9299          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.manifest.image");
9300        }
9301        else if (name.equals("other")) {
9302          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.manifest.other");
9303        }
9304        else
9305          return super.addChild(name);
9306      }
9307
9308      public ImplementationGuideManifestComponent copy() {
9309        ImplementationGuideManifestComponent dst = new ImplementationGuideManifestComponent();
9310        copyValues(dst);
9311        return dst;
9312      }
9313
9314      public void copyValues(ImplementationGuideManifestComponent dst) {
9315        super.copyValues(dst);
9316        dst.rendering = rendering == null ? null : rendering.copy();
9317        if (resource != null) {
9318          dst.resource = new ArrayList<ManifestResourceComponent>();
9319          for (ManifestResourceComponent i : resource)
9320            dst.resource.add(i.copy());
9321        };
9322        if (page != null) {
9323          dst.page = new ArrayList<ManifestPageComponent>();
9324          for (ManifestPageComponent i : page)
9325            dst.page.add(i.copy());
9326        };
9327        if (image != null) {
9328          dst.image = new ArrayList<StringType>();
9329          for (StringType i : image)
9330            dst.image.add(i.copy());
9331        };
9332        if (other != null) {
9333          dst.other = new ArrayList<StringType>();
9334          for (StringType i : other)
9335            dst.other.add(i.copy());
9336        };
9337      }
9338
9339      @Override
9340      public boolean equalsDeep(Base other_) {
9341        if (!super.equalsDeep(other_))
9342          return false;
9343        if (!(other_ instanceof ImplementationGuideManifestComponent))
9344          return false;
9345        ImplementationGuideManifestComponent o = (ImplementationGuideManifestComponent) other_;
9346        return compareDeep(rendering, o.rendering, true) && compareDeep(resource, o.resource, true) && compareDeep(page, o.page, true)
9347           && compareDeep(image, o.image, true) && compareDeep(other, o.other, true);
9348      }
9349
9350      @Override
9351      public boolean equalsShallow(Base other_) {
9352        if (!super.equalsShallow(other_))
9353          return false;
9354        if (!(other_ instanceof ImplementationGuideManifestComponent))
9355          return false;
9356        ImplementationGuideManifestComponent o = (ImplementationGuideManifestComponent) other_;
9357        return compareValues(rendering, o.rendering, true) && compareValues(image, o.image, true) && compareValues(other, o.other, true)
9358          ;
9359      }
9360
9361      public boolean isEmpty() {
9362        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(rendering, resource, page
9363          , image, other);
9364      }
9365
9366  public String fhirType() {
9367    return "ImplementationGuide.manifest";
9368
9369  }
9370
9371  }
9372
9373    @Block()
9374    public static class ManifestResourceComponent extends BackboneElement implements IBaseBackboneElement {
9375        /**
9376         * Where this resource is found.
9377         */
9378        @Child(name = "reference", type = {Reference.class}, order=1, min=1, max=1, modifier=false, summary=true)
9379        @Description(shortDefinition="Location of the resource", formalDefinition="Where this resource is found." )
9380        protected Reference reference;
9381
9382        /**
9383         * 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.
9384         */
9385        @Child(name = "example", type = {BooleanType.class, CanonicalType.class}, order=2, min=0, max=1, modifier=false, summary=false)
9386        @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." )
9387        protected DataType example;
9388
9389        /**
9390         * The relative path for primary page for this resource within the IG.
9391         */
9392        @Child(name = "relativePath", type = {UrlType.class}, order=3, min=0, max=1, modifier=false, summary=false)
9393        @Description(shortDefinition="Relative path for page in IG", formalDefinition="The relative path for primary page for this resource within the IG." )
9394        protected UrlType relativePath;
9395
9396        private static final long serialVersionUID = 956753658L;
9397
9398    /**
9399     * Constructor
9400     */
9401      public ManifestResourceComponent() {
9402        super();
9403      }
9404
9405    /**
9406     * Constructor
9407     */
9408      public ManifestResourceComponent(Reference reference) {
9409        super();
9410        this.setReference(reference);
9411      }
9412
9413        /**
9414         * @return {@link #reference} (Where this resource is found.)
9415         */
9416        public Reference getReference() { 
9417          if (this.reference == null)
9418            if (Configuration.errorOnAutoCreate())
9419              throw new Error("Attempt to auto-create ManifestResourceComponent.reference");
9420            else if (Configuration.doAutoCreate())
9421              this.reference = new Reference(); // cc
9422          return this.reference;
9423        }
9424
9425        public boolean hasReference() { 
9426          return this.reference != null && !this.reference.isEmpty();
9427        }
9428
9429        /**
9430         * @param value {@link #reference} (Where this resource is found.)
9431         */
9432        public ManifestResourceComponent setReference(Reference value) { 
9433          this.reference = value;
9434          return this;
9435        }
9436
9437        /**
9438         * @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.)
9439         */
9440        public DataType getExample() { 
9441          return this.example;
9442        }
9443
9444        /**
9445         * @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.)
9446         */
9447        public BooleanType getExampleBooleanType() throws FHIRException { 
9448          if (this.example == null)
9449            this.example = new BooleanType();
9450          if (!(this.example instanceof BooleanType))
9451            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.example.getClass().getName()+" was encountered");
9452          return (BooleanType) this.example;
9453        }
9454
9455        public boolean hasExampleBooleanType() { 
9456          return this != null && this.example instanceof BooleanType;
9457        }
9458
9459        /**
9460         * @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.)
9461         */
9462        public CanonicalType getExampleCanonicalType() throws FHIRException { 
9463          if (this.example == null)
9464            this.example = new CanonicalType();
9465          if (!(this.example instanceof CanonicalType))
9466            throw new FHIRException("Type mismatch: the type CanonicalType was expected, but "+this.example.getClass().getName()+" was encountered");
9467          return (CanonicalType) this.example;
9468        }
9469
9470        public boolean hasExampleCanonicalType() { 
9471          return this != null && this.example instanceof CanonicalType;
9472        }
9473
9474        public boolean hasExample() { 
9475          return this.example != null && !this.example.isEmpty();
9476        }
9477
9478        /**
9479         * @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.)
9480         */
9481        public ManifestResourceComponent setExample(DataType value) { 
9482          if (value != null && !(value instanceof BooleanType || value instanceof CanonicalType))
9483            throw new Error("Not the right type for ImplementationGuide.manifest.resource.example[x]: "+value.fhirType());
9484          this.example = value;
9485          return this;
9486        }
9487
9488        /**
9489         * @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
9490         */
9491        public UrlType getRelativePathElement() { 
9492          if (this.relativePath == null)
9493            if (Configuration.errorOnAutoCreate())
9494              throw new Error("Attempt to auto-create ManifestResourceComponent.relativePath");
9495            else if (Configuration.doAutoCreate())
9496              this.relativePath = new UrlType(); // bb
9497          return this.relativePath;
9498        }
9499
9500        public boolean hasRelativePathElement() { 
9501          return this.relativePath != null && !this.relativePath.isEmpty();
9502        }
9503
9504        public boolean hasRelativePath() { 
9505          return this.relativePath != null && !this.relativePath.isEmpty();
9506        }
9507
9508        /**
9509         * @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
9510         */
9511        public ManifestResourceComponent setRelativePathElement(UrlType value) { 
9512          this.relativePath = value;
9513          return this;
9514        }
9515
9516        /**
9517         * @return The relative path for primary page for this resource within the IG.
9518         */
9519        public String getRelativePath() { 
9520          return this.relativePath == null ? null : this.relativePath.getValue();
9521        }
9522
9523        /**
9524         * @param value The relative path for primary page for this resource within the IG.
9525         */
9526        public ManifestResourceComponent setRelativePath(String value) { 
9527          if (Utilities.noString(value))
9528            this.relativePath = null;
9529          else {
9530            if (this.relativePath == null)
9531              this.relativePath = new UrlType();
9532            this.relativePath.setValue(value);
9533          }
9534          return this;
9535        }
9536
9537        protected void listChildren(List<Property> children) {
9538          super.listChildren(children);
9539          children.add(new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference));
9540          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));
9541          children.add(new Property("relativePath", "url", "The relative path for primary page for this resource within the IG.", 0, 1, relativePath));
9542        }
9543
9544        @Override
9545        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
9546          switch (_hash) {
9547          case -925155509: /*reference*/  return new Property("reference", "Reference(Any)", "Where this resource is found.", 0, 1, reference);
9548          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);
9549          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);
9550          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);
9551          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);
9552          case -70808303: /*relativePath*/  return new Property("relativePath", "url", "The relative path for primary page for this resource within the IG.", 0, 1, relativePath);
9553          default: return super.getNamedProperty(_hash, _name, _checkValid);
9554          }
9555
9556        }
9557
9558      @Override
9559      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
9560        switch (hash) {
9561        case -925155509: /*reference*/ return this.reference == null ? new Base[0] : new Base[] {this.reference}; // Reference
9562        case -1322970774: /*example*/ return this.example == null ? new Base[0] : new Base[] {this.example}; // DataType
9563        case -70808303: /*relativePath*/ return this.relativePath == null ? new Base[0] : new Base[] {this.relativePath}; // UrlType
9564        default: return super.getProperty(hash, name, checkValid);
9565        }
9566
9567      }
9568
9569      @Override
9570      public Base setProperty(int hash, String name, Base value) throws FHIRException {
9571        switch (hash) {
9572        case -925155509: // reference
9573          this.reference = TypeConvertor.castToReference(value); // Reference
9574          return value;
9575        case -1322970774: // example
9576          this.example = TypeConvertor.castToType(value); // DataType
9577          return value;
9578        case -70808303: // relativePath
9579          this.relativePath = TypeConvertor.castToUrl(value); // UrlType
9580          return value;
9581        default: return super.setProperty(hash, name, value);
9582        }
9583
9584      }
9585
9586      @Override
9587      public Base setProperty(String name, Base value) throws FHIRException {
9588        if (name.equals("reference")) {
9589          this.reference = TypeConvertor.castToReference(value); // Reference
9590        } else if (name.equals("example[x]")) {
9591          this.example = TypeConvertor.castToType(value); // DataType
9592        } else if (name.equals("relativePath")) {
9593          this.relativePath = TypeConvertor.castToUrl(value); // UrlType
9594        } else
9595          return super.setProperty(name, value);
9596        return value;
9597      }
9598
9599      @Override
9600      public Base makeProperty(int hash, String name) throws FHIRException {
9601        switch (hash) {
9602        case -925155509:  return getReference();
9603        case -2002328874:  return getExample();
9604        case -1322970774:  return getExample();
9605        case -70808303:  return getRelativePathElement();
9606        default: return super.makeProperty(hash, name);
9607        }
9608
9609      }
9610
9611      @Override
9612      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
9613        switch (hash) {
9614        case -925155509: /*reference*/ return new String[] {"Reference"};
9615        case -1322970774: /*example*/ return new String[] {"boolean", "canonical"};
9616        case -70808303: /*relativePath*/ return new String[] {"url"};
9617        default: return super.getTypesForProperty(hash, name);
9618        }
9619
9620      }
9621
9622      @Override
9623      public Base addChild(String name) throws FHIRException {
9624        if (name.equals("reference")) {
9625          this.reference = new Reference();
9626          return this.reference;
9627        }
9628        else if (name.equals("exampleBoolean")) {
9629          this.example = new BooleanType();
9630          return this.example;
9631        }
9632        else if (name.equals("exampleCanonical")) {
9633          this.example = new CanonicalType();
9634          return this.example;
9635        }
9636        else if (name.equals("relativePath")) {
9637          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.manifest.resource.relativePath");
9638        }
9639        else
9640          return super.addChild(name);
9641      }
9642
9643      public ManifestResourceComponent copy() {
9644        ManifestResourceComponent dst = new ManifestResourceComponent();
9645        copyValues(dst);
9646        return dst;
9647      }
9648
9649      public void copyValues(ManifestResourceComponent dst) {
9650        super.copyValues(dst);
9651        dst.reference = reference == null ? null : reference.copy();
9652        dst.example = example == null ? null : example.copy();
9653        dst.relativePath = relativePath == null ? null : relativePath.copy();
9654      }
9655
9656      @Override
9657      public boolean equalsDeep(Base other_) {
9658        if (!super.equalsDeep(other_))
9659          return false;
9660        if (!(other_ instanceof ManifestResourceComponent))
9661          return false;
9662        ManifestResourceComponent o = (ManifestResourceComponent) other_;
9663        return compareDeep(reference, o.reference, true) && compareDeep(example, o.example, true) && compareDeep(relativePath, o.relativePath, true)
9664          ;
9665      }
9666
9667      @Override
9668      public boolean equalsShallow(Base other_) {
9669        if (!super.equalsShallow(other_))
9670          return false;
9671        if (!(other_ instanceof ManifestResourceComponent))
9672          return false;
9673        ManifestResourceComponent o = (ManifestResourceComponent) other_;
9674        return compareValues(relativePath, o.relativePath, true);
9675      }
9676
9677      public boolean isEmpty() {
9678        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(reference, example, relativePath
9679          );
9680      }
9681
9682  public String fhirType() {
9683    return "ImplementationGuide.manifest.resource";
9684
9685  }
9686
9687// added from java-adornments.txt:
9688
9689// end addition
9690  }
9691
9692    @Block()
9693    public static class ManifestPageComponent extends BackboneElement implements IBaseBackboneElement {
9694        /**
9695         * Relative path to the page.
9696         */
9697        @Child(name = "name", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false)
9698        @Description(shortDefinition="HTML page name", formalDefinition="Relative path to the page." )
9699        protected StringType name;
9700
9701        /**
9702         * Label for the page intended for human display.
9703         */
9704        @Child(name = "title", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false)
9705        @Description(shortDefinition="Title of the page, for references", formalDefinition="Label for the page intended for human display." )
9706        protected StringType title;
9707
9708        /**
9709         * The name of an anchor available on the page.
9710         */
9711        @Child(name = "anchor", type = {StringType.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
9712        @Description(shortDefinition="Anchor available on the page", formalDefinition="The name of an anchor available on the page." )
9713        protected List<StringType> anchor;
9714
9715        private static final long serialVersionUID = 1920576611L;
9716
9717    /**
9718     * Constructor
9719     */
9720      public ManifestPageComponent() {
9721        super();
9722      }
9723
9724    /**
9725     * Constructor
9726     */
9727      public ManifestPageComponent(String name) {
9728        super();
9729        this.setName(name);
9730      }
9731
9732        /**
9733         * @return {@link #name} (Relative path to the page.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
9734         */
9735        public StringType getNameElement() { 
9736          if (this.name == null)
9737            if (Configuration.errorOnAutoCreate())
9738              throw new Error("Attempt to auto-create ManifestPageComponent.name");
9739            else if (Configuration.doAutoCreate())
9740              this.name = new StringType(); // bb
9741          return this.name;
9742        }
9743
9744        public boolean hasNameElement() { 
9745          return this.name != null && !this.name.isEmpty();
9746        }
9747
9748        public boolean hasName() { 
9749          return this.name != null && !this.name.isEmpty();
9750        }
9751
9752        /**
9753         * @param value {@link #name} (Relative path to the page.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
9754         */
9755        public ManifestPageComponent setNameElement(StringType value) { 
9756          this.name = value;
9757          return this;
9758        }
9759
9760        /**
9761         * @return Relative path to the page.
9762         */
9763        public String getName() { 
9764          return this.name == null ? null : this.name.getValue();
9765        }
9766
9767        /**
9768         * @param value Relative path to the page.
9769         */
9770        public ManifestPageComponent setName(String value) { 
9771            if (this.name == null)
9772              this.name = new StringType();
9773            this.name.setValue(value);
9774          return this;
9775        }
9776
9777        /**
9778         * @return {@link #title} (Label for the page intended for human display.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
9779         */
9780        public StringType getTitleElement() { 
9781          if (this.title == null)
9782            if (Configuration.errorOnAutoCreate())
9783              throw new Error("Attempt to auto-create ManifestPageComponent.title");
9784            else if (Configuration.doAutoCreate())
9785              this.title = new StringType(); // bb
9786          return this.title;
9787        }
9788
9789        public boolean hasTitleElement() { 
9790          return this.title != null && !this.title.isEmpty();
9791        }
9792
9793        public boolean hasTitle() { 
9794          return this.title != null && !this.title.isEmpty();
9795        }
9796
9797        /**
9798         * @param value {@link #title} (Label for the page intended for human display.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
9799         */
9800        public ManifestPageComponent setTitleElement(StringType value) { 
9801          this.title = value;
9802          return this;
9803        }
9804
9805        /**
9806         * @return Label for the page intended for human display.
9807         */
9808        public String getTitle() { 
9809          return this.title == null ? null : this.title.getValue();
9810        }
9811
9812        /**
9813         * @param value Label for the page intended for human display.
9814         */
9815        public ManifestPageComponent setTitle(String value) { 
9816          if (Utilities.noString(value))
9817            this.title = null;
9818          else {
9819            if (this.title == null)
9820              this.title = new StringType();
9821            this.title.setValue(value);
9822          }
9823          return this;
9824        }
9825
9826        /**
9827         * @return {@link #anchor} (The name of an anchor available on the page.)
9828         */
9829        public List<StringType> getAnchor() { 
9830          if (this.anchor == null)
9831            this.anchor = new ArrayList<StringType>();
9832          return this.anchor;
9833        }
9834
9835        /**
9836         * @return Returns a reference to <code>this</code> for easy method chaining
9837         */
9838        public ManifestPageComponent setAnchor(List<StringType> theAnchor) { 
9839          this.anchor = theAnchor;
9840          return this;
9841        }
9842
9843        public boolean hasAnchor() { 
9844          if (this.anchor == null)
9845            return false;
9846          for (StringType item : this.anchor)
9847            if (!item.isEmpty())
9848              return true;
9849          return false;
9850        }
9851
9852        /**
9853         * @return {@link #anchor} (The name of an anchor available on the page.)
9854         */
9855        public StringType addAnchorElement() {//2 
9856          StringType t = new StringType();
9857          if (this.anchor == null)
9858            this.anchor = new ArrayList<StringType>();
9859          this.anchor.add(t);
9860          return t;
9861        }
9862
9863        /**
9864         * @param value {@link #anchor} (The name of an anchor available on the page.)
9865         */
9866        public ManifestPageComponent addAnchor(String value) { //1
9867          StringType t = new StringType();
9868          t.setValue(value);
9869          if (this.anchor == null)
9870            this.anchor = new ArrayList<StringType>();
9871          this.anchor.add(t);
9872          return this;
9873        }
9874
9875        /**
9876         * @param value {@link #anchor} (The name of an anchor available on the page.)
9877         */
9878        public boolean hasAnchor(String value) { 
9879          if (this.anchor == null)
9880            return false;
9881          for (StringType v : this.anchor)
9882            if (v.getValue().equals(value)) // string
9883              return true;
9884          return false;
9885        }
9886
9887        protected void listChildren(List<Property> children) {
9888          super.listChildren(children);
9889          children.add(new Property("name", "string", "Relative path to the page.", 0, 1, name));
9890          children.add(new Property("title", "string", "Label for the page intended for human display.", 0, 1, title));
9891          children.add(new Property("anchor", "string", "The name of an anchor available on the page.", 0, java.lang.Integer.MAX_VALUE, anchor));
9892        }
9893
9894        @Override
9895        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
9896          switch (_hash) {
9897          case 3373707: /*name*/  return new Property("name", "string", "Relative path to the page.", 0, 1, name);
9898          case 110371416: /*title*/  return new Property("title", "string", "Label for the page intended for human display.", 0, 1, title);
9899          case -1413299531: /*anchor*/  return new Property("anchor", "string", "The name of an anchor available on the page.", 0, java.lang.Integer.MAX_VALUE, anchor);
9900          default: return super.getNamedProperty(_hash, _name, _checkValid);
9901          }
9902
9903        }
9904
9905      @Override
9906      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
9907        switch (hash) {
9908        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
9909        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
9910        case -1413299531: /*anchor*/ return this.anchor == null ? new Base[0] : this.anchor.toArray(new Base[this.anchor.size()]); // StringType
9911        default: return super.getProperty(hash, name, checkValid);
9912        }
9913
9914      }
9915
9916      @Override
9917      public Base setProperty(int hash, String name, Base value) throws FHIRException {
9918        switch (hash) {
9919        case 3373707: // name
9920          this.name = TypeConvertor.castToString(value); // StringType
9921          return value;
9922        case 110371416: // title
9923          this.title = TypeConvertor.castToString(value); // StringType
9924          return value;
9925        case -1413299531: // anchor
9926          this.getAnchor().add(TypeConvertor.castToString(value)); // StringType
9927          return value;
9928        default: return super.setProperty(hash, name, value);
9929        }
9930
9931      }
9932
9933      @Override
9934      public Base setProperty(String name, Base value) throws FHIRException {
9935        if (name.equals("name")) {
9936          this.name = TypeConvertor.castToString(value); // StringType
9937        } else if (name.equals("title")) {
9938          this.title = TypeConvertor.castToString(value); // StringType
9939        } else if (name.equals("anchor")) {
9940          this.getAnchor().add(TypeConvertor.castToString(value));
9941        } else
9942          return super.setProperty(name, value);
9943        return value;
9944      }
9945
9946      @Override
9947      public Base makeProperty(int hash, String name) throws FHIRException {
9948        switch (hash) {
9949        case 3373707:  return getNameElement();
9950        case 110371416:  return getTitleElement();
9951        case -1413299531:  return addAnchorElement();
9952        default: return super.makeProperty(hash, name);
9953        }
9954
9955      }
9956
9957      @Override
9958      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
9959        switch (hash) {
9960        case 3373707: /*name*/ return new String[] {"string"};
9961        case 110371416: /*title*/ return new String[] {"string"};
9962        case -1413299531: /*anchor*/ return new String[] {"string"};
9963        default: return super.getTypesForProperty(hash, name);
9964        }
9965
9966      }
9967
9968      @Override
9969      public Base addChild(String name) throws FHIRException {
9970        if (name.equals("name")) {
9971          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.manifest.page.name");
9972        }
9973        else if (name.equals("title")) {
9974          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.manifest.page.title");
9975        }
9976        else if (name.equals("anchor")) {
9977          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.manifest.page.anchor");
9978        }
9979        else
9980          return super.addChild(name);
9981      }
9982
9983      public ManifestPageComponent copy() {
9984        ManifestPageComponent dst = new ManifestPageComponent();
9985        copyValues(dst);
9986        return dst;
9987      }
9988
9989      public void copyValues(ManifestPageComponent dst) {
9990        super.copyValues(dst);
9991        dst.name = name == null ? null : name.copy();
9992        dst.title = title == null ? null : title.copy();
9993        if (anchor != null) {
9994          dst.anchor = new ArrayList<StringType>();
9995          for (StringType i : anchor)
9996            dst.anchor.add(i.copy());
9997        };
9998      }
9999
10000      @Override
10001      public boolean equalsDeep(Base other_) {
10002        if (!super.equalsDeep(other_))
10003          return false;
10004        if (!(other_ instanceof ManifestPageComponent))
10005          return false;
10006        ManifestPageComponent o = (ManifestPageComponent) other_;
10007        return compareDeep(name, o.name, true) && compareDeep(title, o.title, true) && compareDeep(anchor, o.anchor, true)
10008          ;
10009      }
10010
10011      @Override
10012      public boolean equalsShallow(Base other_) {
10013        if (!super.equalsShallow(other_))
10014          return false;
10015        if (!(other_ instanceof ManifestPageComponent))
10016          return false;
10017        ManifestPageComponent o = (ManifestPageComponent) other_;
10018        return compareValues(name, o.name, true) && compareValues(title, o.title, true) && compareValues(anchor, o.anchor, true)
10019          ;
10020      }
10021
10022      public boolean isEmpty() {
10023        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, title, anchor);
10024      }
10025
10026  public String fhirType() {
10027    return "ImplementationGuide.manifest.page";
10028
10029  }
10030
10031  }
10032
10033    /**
10034     * An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.
10035     */
10036    @Child(name = "url", type = {UriType.class}, order=0, min=1, max=1, modifier=false, summary=true)
10037    @Description(shortDefinition="Canonical identifier for this implementation guide, represented as a URI (globally unique)", formalDefinition="An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers." )
10038    protected UriType url;
10039
10040    /**
10041     * The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
10042     */
10043    @Child(name = "version", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=true)
10044    @Description(shortDefinition="Business version of the implementation guide", formalDefinition="The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence." )
10045    protected StringType version;
10046
10047    /**
10048     * A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.
10049     */
10050    @Child(name = "name", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=true)
10051    @Description(shortDefinition="Name for this implementation guide (computer friendly)", formalDefinition="A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation." )
10052    protected StringType name;
10053
10054    /**
10055     * A short, descriptive, user-friendly title for the implementation guide.
10056     */
10057    @Child(name = "title", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
10058    @Description(shortDefinition="Name for this implementation guide (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the implementation guide." )
10059    protected StringType title;
10060
10061    /**
10062     * The status of this implementation guide. Enables tracking the life-cycle of the content.
10063     */
10064    @Child(name = "status", type = {CodeType.class}, order=4, min=1, max=1, modifier=true, summary=true)
10065    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The status of this implementation guide. Enables tracking the life-cycle of the content." )
10066    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
10067    protected Enumeration<PublicationStatus> status;
10068
10069    /**
10070     * A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
10071     */
10072    @Child(name = "experimental", type = {BooleanType.class}, order=5, min=0, max=1, modifier=false, summary=true)
10073    @Description(shortDefinition="For testing purposes, not real usage", formalDefinition="A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage." )
10074    protected BooleanType experimental;
10075
10076    /**
10077     * The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.
10078     */
10079    @Child(name = "date", type = {DateTimeType.class}, order=6, min=0, max=1, modifier=false, summary=true)
10080    @Description(shortDefinition="Date last changed", formalDefinition="The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes." )
10081    protected DateTimeType date;
10082
10083    /**
10084     * The name of the organization or individual that published the implementation guide.
10085     */
10086    @Child(name = "publisher", type = {StringType.class}, order=7, min=0, max=1, modifier=false, summary=true)
10087    @Description(shortDefinition="Name of the publisher (organization or individual)", formalDefinition="The name of the organization or individual that published the implementation guide." )
10088    protected StringType publisher;
10089
10090    /**
10091     * Contact details to assist a user in finding and communicating with the publisher.
10092     */
10093    @Child(name = "contact", type = {ContactDetail.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
10094    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
10095    protected List<ContactDetail> contact;
10096
10097    /**
10098     * A free text natural language description of the implementation guide from a consumer's perspective.
10099     */
10100    @Child(name = "description", type = {MarkdownType.class}, order=9, min=0, max=1, modifier=false, summary=false)
10101    @Description(shortDefinition="Natural language description of the implementation guide", formalDefinition="A free text natural language description of the implementation guide from a consumer's perspective." )
10102    protected MarkdownType description;
10103
10104    /**
10105     * The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate implementation guide instances.
10106     */
10107    @Child(name = "useContext", type = {UsageContext.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
10108    @Description(shortDefinition="The context that the content is intended to support", formalDefinition="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate implementation guide instances." )
10109    protected List<UsageContext> useContext;
10110
10111    /**
10112     * A legal or geographic region in which the implementation guide is intended to be used.
10113     */
10114    @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
10115    @Description(shortDefinition="Intended jurisdiction for implementation guide (if applicable)", formalDefinition="A legal or geographic region in which the implementation guide is intended to be used." )
10116    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction")
10117    protected List<CodeableConcept> jurisdiction;
10118
10119    /**
10120     * A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.
10121     */
10122    @Child(name = "copyright", type = {MarkdownType.class}, order=12, min=0, max=1, modifier=false, summary=false)
10123    @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide." )
10124    protected MarkdownType copyright;
10125
10126    /**
10127     * The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.
10128     */
10129    @Child(name = "packageId", type = {IdType.class}, order=13, min=1, max=1, modifier=false, summary=true)
10130    @Description(shortDefinition="NPM Package name for IG", formalDefinition="The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care." )
10131    protected IdType packageId;
10132
10133    /**
10134     * The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.
10135     */
10136    @Child(name = "license", type = {CodeType.class}, order=14, min=0, max=1, modifier=false, summary=true)
10137    @Description(shortDefinition="SPDX license code for this IG (or not-open-source)", formalDefinition="The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'." )
10138    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/spdx-license")
10139    protected Enumeration<SPDXLicense> license;
10140
10141    /**
10142     * The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.3.0-snapshot1. for this version.
10143     */
10144    @Child(name = "fhirVersion", type = {CodeType.class}, order=15, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
10145    @Description(shortDefinition="FHIR Version(s) this Implementation Guide targets", formalDefinition="The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.3.0-snapshot1. for this version." )
10146    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/FHIR-version")
10147    protected List<Enumeration<FHIRVersion>> fhirVersion;
10148
10149    /**
10150     * Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.
10151     */
10152    @Child(name = "dependsOn", type = {}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
10153    @Description(shortDefinition="Another Implementation guide this depends on", formalDefinition="Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides." )
10154    protected List<ImplementationGuideDependsOnComponent> dependsOn;
10155
10156    /**
10157     * A set of profiles that all resources covered by this implementation guide must conform to.
10158     */
10159    @Child(name = "global", type = {}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
10160    @Description(shortDefinition="Profiles that apply globally", formalDefinition="A set of profiles that all resources covered by this implementation guide must conform to." )
10161    protected List<ImplementationGuideGlobalComponent> global;
10162
10163    /**
10164     * The information needed by an IG publisher tool to publish the whole implementation guide.
10165     */
10166    @Child(name = "definition", type = {}, order=18, min=0, max=1, modifier=false, summary=false)
10167    @Description(shortDefinition="Information needed to build the IG", formalDefinition="The information needed by an IG publisher tool to publish the whole implementation guide." )
10168    protected ImplementationGuideDefinitionComponent definition;
10169
10170    /**
10171     * Information about an assembled implementation guide, created by the publication tooling.
10172     */
10173    @Child(name = "manifest", type = {}, order=19, min=0, max=1, modifier=false, summary=false)
10174    @Description(shortDefinition="Information about an assembled IG", formalDefinition="Information about an assembled implementation guide, created by the publication tooling." )
10175    protected ImplementationGuideManifestComponent manifest;
10176
10177    private static final long serialVersionUID = -362658755L;
10178
10179  /**
10180   * Constructor
10181   */
10182    public ImplementationGuide() {
10183      super();
10184    }
10185
10186  /**
10187   * Constructor
10188   */
10189    public ImplementationGuide(String url, String name, PublicationStatus status, String packageId, FHIRVersion fhirVersion) {
10190      super();
10191      this.setUrl(url);
10192      this.setName(name);
10193      this.setStatus(status);
10194      this.setPackageId(packageId);
10195      this.addFhirVersion(fhirVersion);
10196    }
10197
10198    /**
10199     * @return {@link #url} (An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
10200     */
10201    public UriType getUrlElement() { 
10202      if (this.url == null)
10203        if (Configuration.errorOnAutoCreate())
10204          throw new Error("Attempt to auto-create ImplementationGuide.url");
10205        else if (Configuration.doAutoCreate())
10206          this.url = new UriType(); // bb
10207      return this.url;
10208    }
10209
10210    public boolean hasUrlElement() { 
10211      return this.url != null && !this.url.isEmpty();
10212    }
10213
10214    public boolean hasUrl() { 
10215      return this.url != null && !this.url.isEmpty();
10216    }
10217
10218    /**
10219     * @param value {@link #url} (An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
10220     */
10221    public ImplementationGuide setUrlElement(UriType value) { 
10222      this.url = value;
10223      return this;
10224    }
10225
10226    /**
10227     * @return An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.
10228     */
10229    public String getUrl() { 
10230      return this.url == null ? null : this.url.getValue();
10231    }
10232
10233    /**
10234     * @param value An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.
10235     */
10236    public ImplementationGuide setUrl(String value) { 
10237        if (this.url == null)
10238          this.url = new UriType();
10239        this.url.setValue(value);
10240      return this;
10241    }
10242
10243    /**
10244     * @return {@link #version} (The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
10245     */
10246    public StringType getVersionElement() { 
10247      if (this.version == null)
10248        if (Configuration.errorOnAutoCreate())
10249          throw new Error("Attempt to auto-create ImplementationGuide.version");
10250        else if (Configuration.doAutoCreate())
10251          this.version = new StringType(); // bb
10252      return this.version;
10253    }
10254
10255    public boolean hasVersionElement() { 
10256      return this.version != null && !this.version.isEmpty();
10257    }
10258
10259    public boolean hasVersion() { 
10260      return this.version != null && !this.version.isEmpty();
10261    }
10262
10263    /**
10264     * @param value {@link #version} (The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
10265     */
10266    public ImplementationGuide setVersionElement(StringType value) { 
10267      this.version = value;
10268      return this;
10269    }
10270
10271    /**
10272     * @return The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
10273     */
10274    public String getVersion() { 
10275      return this.version == null ? null : this.version.getValue();
10276    }
10277
10278    /**
10279     * @param value The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
10280     */
10281    public ImplementationGuide setVersion(String value) { 
10282      if (Utilities.noString(value))
10283        this.version = null;
10284      else {
10285        if (this.version == null)
10286          this.version = new StringType();
10287        this.version.setValue(value);
10288      }
10289      return this;
10290    }
10291
10292    /**
10293     * @return {@link #name} (A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
10294     */
10295    public StringType getNameElement() { 
10296      if (this.name == null)
10297        if (Configuration.errorOnAutoCreate())
10298          throw new Error("Attempt to auto-create ImplementationGuide.name");
10299        else if (Configuration.doAutoCreate())
10300          this.name = new StringType(); // bb
10301      return this.name;
10302    }
10303
10304    public boolean hasNameElement() { 
10305      return this.name != null && !this.name.isEmpty();
10306    }
10307
10308    public boolean hasName() { 
10309      return this.name != null && !this.name.isEmpty();
10310    }
10311
10312    /**
10313     * @param value {@link #name} (A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
10314     */
10315    public ImplementationGuide setNameElement(StringType value) { 
10316      this.name = value;
10317      return this;
10318    }
10319
10320    /**
10321     * @return A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.
10322     */
10323    public String getName() { 
10324      return this.name == null ? null : this.name.getValue();
10325    }
10326
10327    /**
10328     * @param value A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.
10329     */
10330    public ImplementationGuide setName(String value) { 
10331        if (this.name == null)
10332          this.name = new StringType();
10333        this.name.setValue(value);
10334      return this;
10335    }
10336
10337    /**
10338     * @return {@link #title} (A short, descriptive, user-friendly title for the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
10339     */
10340    public StringType getTitleElement() { 
10341      if (this.title == null)
10342        if (Configuration.errorOnAutoCreate())
10343          throw new Error("Attempt to auto-create ImplementationGuide.title");
10344        else if (Configuration.doAutoCreate())
10345          this.title = new StringType(); // bb
10346      return this.title;
10347    }
10348
10349    public boolean hasTitleElement() { 
10350      return this.title != null && !this.title.isEmpty();
10351    }
10352
10353    public boolean hasTitle() { 
10354      return this.title != null && !this.title.isEmpty();
10355    }
10356
10357    /**
10358     * @param value {@link #title} (A short, descriptive, user-friendly title for the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
10359     */
10360    public ImplementationGuide setTitleElement(StringType value) { 
10361      this.title = value;
10362      return this;
10363    }
10364
10365    /**
10366     * @return A short, descriptive, user-friendly title for the implementation guide.
10367     */
10368    public String getTitle() { 
10369      return this.title == null ? null : this.title.getValue();
10370    }
10371
10372    /**
10373     * @param value A short, descriptive, user-friendly title for the implementation guide.
10374     */
10375    public ImplementationGuide setTitle(String value) { 
10376      if (Utilities.noString(value))
10377        this.title = null;
10378      else {
10379        if (this.title == null)
10380          this.title = new StringType();
10381        this.title.setValue(value);
10382      }
10383      return this;
10384    }
10385
10386    /**
10387     * @return {@link #status} (The status of this implementation guide. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
10388     */
10389    public Enumeration<PublicationStatus> getStatusElement() { 
10390      if (this.status == null)
10391        if (Configuration.errorOnAutoCreate())
10392          throw new Error("Attempt to auto-create ImplementationGuide.status");
10393        else if (Configuration.doAutoCreate())
10394          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
10395      return this.status;
10396    }
10397
10398    public boolean hasStatusElement() { 
10399      return this.status != null && !this.status.isEmpty();
10400    }
10401
10402    public boolean hasStatus() { 
10403      return this.status != null && !this.status.isEmpty();
10404    }
10405
10406    /**
10407     * @param value {@link #status} (The status of this implementation guide. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
10408     */
10409    public ImplementationGuide setStatusElement(Enumeration<PublicationStatus> value) { 
10410      this.status = value;
10411      return this;
10412    }
10413
10414    /**
10415     * @return The status of this implementation guide. Enables tracking the life-cycle of the content.
10416     */
10417    public PublicationStatus getStatus() { 
10418      return this.status == null ? null : this.status.getValue();
10419    }
10420
10421    /**
10422     * @param value The status of this implementation guide. Enables tracking the life-cycle of the content.
10423     */
10424    public ImplementationGuide setStatus(PublicationStatus value) { 
10425        if (this.status == null)
10426          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
10427        this.status.setValue(value);
10428      return this;
10429    }
10430
10431    /**
10432     * @return {@link #experimental} (A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
10433     */
10434    public BooleanType getExperimentalElement() { 
10435      if (this.experimental == null)
10436        if (Configuration.errorOnAutoCreate())
10437          throw new Error("Attempt to auto-create ImplementationGuide.experimental");
10438        else if (Configuration.doAutoCreate())
10439          this.experimental = new BooleanType(); // bb
10440      return this.experimental;
10441    }
10442
10443    public boolean hasExperimentalElement() { 
10444      return this.experimental != null && !this.experimental.isEmpty();
10445    }
10446
10447    public boolean hasExperimental() { 
10448      return this.experimental != null && !this.experimental.isEmpty();
10449    }
10450
10451    /**
10452     * @param value {@link #experimental} (A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
10453     */
10454    public ImplementationGuide setExperimentalElement(BooleanType value) { 
10455      this.experimental = value;
10456      return this;
10457    }
10458
10459    /**
10460     * @return A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
10461     */
10462    public boolean getExperimental() { 
10463      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
10464    }
10465
10466    /**
10467     * @param value A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
10468     */
10469    public ImplementationGuide setExperimental(boolean value) { 
10470        if (this.experimental == null)
10471          this.experimental = new BooleanType();
10472        this.experimental.setValue(value);
10473      return this;
10474    }
10475
10476    /**
10477     * @return {@link #date} (The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
10478     */
10479    public DateTimeType getDateElement() { 
10480      if (this.date == null)
10481        if (Configuration.errorOnAutoCreate())
10482          throw new Error("Attempt to auto-create ImplementationGuide.date");
10483        else if (Configuration.doAutoCreate())
10484          this.date = new DateTimeType(); // bb
10485      return this.date;
10486    }
10487
10488    public boolean hasDateElement() { 
10489      return this.date != null && !this.date.isEmpty();
10490    }
10491
10492    public boolean hasDate() { 
10493      return this.date != null && !this.date.isEmpty();
10494    }
10495
10496    /**
10497     * @param value {@link #date} (The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
10498     */
10499    public ImplementationGuide setDateElement(DateTimeType value) { 
10500      this.date = value;
10501      return this;
10502    }
10503
10504    /**
10505     * @return The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.
10506     */
10507    public Date getDate() { 
10508      return this.date == null ? null : this.date.getValue();
10509    }
10510
10511    /**
10512     * @param value The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.
10513     */
10514    public ImplementationGuide setDate(Date value) { 
10515      if (value == null)
10516        this.date = null;
10517      else {
10518        if (this.date == null)
10519          this.date = new DateTimeType();
10520        this.date.setValue(value);
10521      }
10522      return this;
10523    }
10524
10525    /**
10526     * @return {@link #publisher} (The name of the organization or individual that published the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
10527     */
10528    public StringType getPublisherElement() { 
10529      if (this.publisher == null)
10530        if (Configuration.errorOnAutoCreate())
10531          throw new Error("Attempt to auto-create ImplementationGuide.publisher");
10532        else if (Configuration.doAutoCreate())
10533          this.publisher = new StringType(); // bb
10534      return this.publisher;
10535    }
10536
10537    public boolean hasPublisherElement() { 
10538      return this.publisher != null && !this.publisher.isEmpty();
10539    }
10540
10541    public boolean hasPublisher() { 
10542      return this.publisher != null && !this.publisher.isEmpty();
10543    }
10544
10545    /**
10546     * @param value {@link #publisher} (The name of the organization or individual that published the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
10547     */
10548    public ImplementationGuide setPublisherElement(StringType value) { 
10549      this.publisher = value;
10550      return this;
10551    }
10552
10553    /**
10554     * @return The name of the organization or individual that published the implementation guide.
10555     */
10556    public String getPublisher() { 
10557      return this.publisher == null ? null : this.publisher.getValue();
10558    }
10559
10560    /**
10561     * @param value The name of the organization or individual that published the implementation guide.
10562     */
10563    public ImplementationGuide setPublisher(String value) { 
10564      if (Utilities.noString(value))
10565        this.publisher = null;
10566      else {
10567        if (this.publisher == null)
10568          this.publisher = new StringType();
10569        this.publisher.setValue(value);
10570      }
10571      return this;
10572    }
10573
10574    /**
10575     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
10576     */
10577    public List<ContactDetail> getContact() { 
10578      if (this.contact == null)
10579        this.contact = new ArrayList<ContactDetail>();
10580      return this.contact;
10581    }
10582
10583    /**
10584     * @return Returns a reference to <code>this</code> for easy method chaining
10585     */
10586    public ImplementationGuide setContact(List<ContactDetail> theContact) { 
10587      this.contact = theContact;
10588      return this;
10589    }
10590
10591    public boolean hasContact() { 
10592      if (this.contact == null)
10593        return false;
10594      for (ContactDetail item : this.contact)
10595        if (!item.isEmpty())
10596          return true;
10597      return false;
10598    }
10599
10600    public ContactDetail addContact() { //3
10601      ContactDetail t = new ContactDetail();
10602      if (this.contact == null)
10603        this.contact = new ArrayList<ContactDetail>();
10604      this.contact.add(t);
10605      return t;
10606    }
10607
10608    public ImplementationGuide addContact(ContactDetail t) { //3
10609      if (t == null)
10610        return this;
10611      if (this.contact == null)
10612        this.contact = new ArrayList<ContactDetail>();
10613      this.contact.add(t);
10614      return this;
10615    }
10616
10617    /**
10618     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
10619     */
10620    public ContactDetail getContactFirstRep() { 
10621      if (getContact().isEmpty()) {
10622        addContact();
10623      }
10624      return getContact().get(0);
10625    }
10626
10627    /**
10628     * @return {@link #description} (A free text natural language description of the implementation guide from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
10629     */
10630    public MarkdownType getDescriptionElement() { 
10631      if (this.description == null)
10632        if (Configuration.errorOnAutoCreate())
10633          throw new Error("Attempt to auto-create ImplementationGuide.description");
10634        else if (Configuration.doAutoCreate())
10635          this.description = new MarkdownType(); // bb
10636      return this.description;
10637    }
10638
10639    public boolean hasDescriptionElement() { 
10640      return this.description != null && !this.description.isEmpty();
10641    }
10642
10643    public boolean hasDescription() { 
10644      return this.description != null && !this.description.isEmpty();
10645    }
10646
10647    /**
10648     * @param value {@link #description} (A free text natural language description of the implementation guide from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
10649     */
10650    public ImplementationGuide setDescriptionElement(MarkdownType value) { 
10651      this.description = value;
10652      return this;
10653    }
10654
10655    /**
10656     * @return A free text natural language description of the implementation guide from a consumer's perspective.
10657     */
10658    public String getDescription() { 
10659      return this.description == null ? null : this.description.getValue();
10660    }
10661
10662    /**
10663     * @param value A free text natural language description of the implementation guide from a consumer's perspective.
10664     */
10665    public ImplementationGuide setDescription(String value) { 
10666      if (value == null)
10667        this.description = null;
10668      else {
10669        if (this.description == null)
10670          this.description = new MarkdownType();
10671        this.description.setValue(value);
10672      }
10673      return this;
10674    }
10675
10676    /**
10677     * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate implementation guide instances.)
10678     */
10679    public List<UsageContext> getUseContext() { 
10680      if (this.useContext == null)
10681        this.useContext = new ArrayList<UsageContext>();
10682      return this.useContext;
10683    }
10684
10685    /**
10686     * @return Returns a reference to <code>this</code> for easy method chaining
10687     */
10688    public ImplementationGuide setUseContext(List<UsageContext> theUseContext) { 
10689      this.useContext = theUseContext;
10690      return this;
10691    }
10692
10693    public boolean hasUseContext() { 
10694      if (this.useContext == null)
10695        return false;
10696      for (UsageContext item : this.useContext)
10697        if (!item.isEmpty())
10698          return true;
10699      return false;
10700    }
10701
10702    public UsageContext addUseContext() { //3
10703      UsageContext t = new UsageContext();
10704      if (this.useContext == null)
10705        this.useContext = new ArrayList<UsageContext>();
10706      this.useContext.add(t);
10707      return t;
10708    }
10709
10710    public ImplementationGuide addUseContext(UsageContext t) { //3
10711      if (t == null)
10712        return this;
10713      if (this.useContext == null)
10714        this.useContext = new ArrayList<UsageContext>();
10715      this.useContext.add(t);
10716      return this;
10717    }
10718
10719    /**
10720     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
10721     */
10722    public UsageContext getUseContextFirstRep() { 
10723      if (getUseContext().isEmpty()) {
10724        addUseContext();
10725      }
10726      return getUseContext().get(0);
10727    }
10728
10729    /**
10730     * @return {@link #jurisdiction} (A legal or geographic region in which the implementation guide is intended to be used.)
10731     */
10732    public List<CodeableConcept> getJurisdiction() { 
10733      if (this.jurisdiction == null)
10734        this.jurisdiction = new ArrayList<CodeableConcept>();
10735      return this.jurisdiction;
10736    }
10737
10738    /**
10739     * @return Returns a reference to <code>this</code> for easy method chaining
10740     */
10741    public ImplementationGuide setJurisdiction(List<CodeableConcept> theJurisdiction) { 
10742      this.jurisdiction = theJurisdiction;
10743      return this;
10744    }
10745
10746    public boolean hasJurisdiction() { 
10747      if (this.jurisdiction == null)
10748        return false;
10749      for (CodeableConcept item : this.jurisdiction)
10750        if (!item.isEmpty())
10751          return true;
10752      return false;
10753    }
10754
10755    public CodeableConcept addJurisdiction() { //3
10756      CodeableConcept t = new CodeableConcept();
10757      if (this.jurisdiction == null)
10758        this.jurisdiction = new ArrayList<CodeableConcept>();
10759      this.jurisdiction.add(t);
10760      return t;
10761    }
10762
10763    public ImplementationGuide addJurisdiction(CodeableConcept t) { //3
10764      if (t == null)
10765        return this;
10766      if (this.jurisdiction == null)
10767        this.jurisdiction = new ArrayList<CodeableConcept>();
10768      this.jurisdiction.add(t);
10769      return this;
10770    }
10771
10772    /**
10773     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3}
10774     */
10775    public CodeableConcept getJurisdictionFirstRep() { 
10776      if (getJurisdiction().isEmpty()) {
10777        addJurisdiction();
10778      }
10779      return getJurisdiction().get(0);
10780    }
10781
10782    /**
10783     * @return {@link #copyright} (A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
10784     */
10785    public MarkdownType getCopyrightElement() { 
10786      if (this.copyright == null)
10787        if (Configuration.errorOnAutoCreate())
10788          throw new Error("Attempt to auto-create ImplementationGuide.copyright");
10789        else if (Configuration.doAutoCreate())
10790          this.copyright = new MarkdownType(); // bb
10791      return this.copyright;
10792    }
10793
10794    public boolean hasCopyrightElement() { 
10795      return this.copyright != null && !this.copyright.isEmpty();
10796    }
10797
10798    public boolean hasCopyright() { 
10799      return this.copyright != null && !this.copyright.isEmpty();
10800    }
10801
10802    /**
10803     * @param value {@link #copyright} (A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
10804     */
10805    public ImplementationGuide setCopyrightElement(MarkdownType value) { 
10806      this.copyright = value;
10807      return this;
10808    }
10809
10810    /**
10811     * @return A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.
10812     */
10813    public String getCopyright() { 
10814      return this.copyright == null ? null : this.copyright.getValue();
10815    }
10816
10817    /**
10818     * @param value A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.
10819     */
10820    public ImplementationGuide setCopyright(String value) { 
10821      if (value == null)
10822        this.copyright = null;
10823      else {
10824        if (this.copyright == null)
10825          this.copyright = new MarkdownType();
10826        this.copyright.setValue(value);
10827      }
10828      return this;
10829    }
10830
10831    /**
10832     * @return {@link #packageId} (The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.). This is the underlying object with id, value and extensions. The accessor "getPackageId" gives direct access to the value
10833     */
10834    public IdType getPackageIdElement() { 
10835      if (this.packageId == null)
10836        if (Configuration.errorOnAutoCreate())
10837          throw new Error("Attempt to auto-create ImplementationGuide.packageId");
10838        else if (Configuration.doAutoCreate())
10839          this.packageId = new IdType(); // bb
10840      return this.packageId;
10841    }
10842
10843    public boolean hasPackageIdElement() { 
10844      return this.packageId != null && !this.packageId.isEmpty();
10845    }
10846
10847    public boolean hasPackageId() { 
10848      return this.packageId != null && !this.packageId.isEmpty();
10849    }
10850
10851    /**
10852     * @param value {@link #packageId} (The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.). This is the underlying object with id, value and extensions. The accessor "getPackageId" gives direct access to the value
10853     */
10854    public ImplementationGuide setPackageIdElement(IdType value) { 
10855      this.packageId = value;
10856      return this;
10857    }
10858
10859    /**
10860     * @return The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.
10861     */
10862    public String getPackageId() { 
10863      return this.packageId == null ? null : this.packageId.getValue();
10864    }
10865
10866    /**
10867     * @param value The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.
10868     */
10869    public ImplementationGuide setPackageId(String value) { 
10870        if (this.packageId == null)
10871          this.packageId = new IdType();
10872        this.packageId.setValue(value);
10873      return this;
10874    }
10875
10876    /**
10877     * @return {@link #license} (The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.). This is the underlying object with id, value and extensions. The accessor "getLicense" gives direct access to the value
10878     */
10879    public Enumeration<SPDXLicense> getLicenseElement() { 
10880      if (this.license == null)
10881        if (Configuration.errorOnAutoCreate())
10882          throw new Error("Attempt to auto-create ImplementationGuide.license");
10883        else if (Configuration.doAutoCreate())
10884          this.license = new Enumeration<SPDXLicense>(new SPDXLicenseEnumFactory()); // bb
10885      return this.license;
10886    }
10887
10888    public boolean hasLicenseElement() { 
10889      return this.license != null && !this.license.isEmpty();
10890    }
10891
10892    public boolean hasLicense() { 
10893      return this.license != null && !this.license.isEmpty();
10894    }
10895
10896    /**
10897     * @param value {@link #license} (The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.). This is the underlying object with id, value and extensions. The accessor "getLicense" gives direct access to the value
10898     */
10899    public ImplementationGuide setLicenseElement(Enumeration<SPDXLicense> value) { 
10900      this.license = value;
10901      return this;
10902    }
10903
10904    /**
10905     * @return The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.
10906     */
10907    public SPDXLicense getLicense() { 
10908      return this.license == null ? null : this.license.getValue();
10909    }
10910
10911    /**
10912     * @param value The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.
10913     */
10914    public ImplementationGuide setLicense(SPDXLicense value) { 
10915      if (value == null)
10916        this.license = null;
10917      else {
10918        if (this.license == null)
10919          this.license = new Enumeration<SPDXLicense>(new SPDXLicenseEnumFactory());
10920        this.license.setValue(value);
10921      }
10922      return this;
10923    }
10924
10925    /**
10926     * @return {@link #fhirVersion} (The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.3.0-snapshot1. for this version.)
10927     */
10928    public List<Enumeration<FHIRVersion>> getFhirVersion() { 
10929      if (this.fhirVersion == null)
10930        this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
10931      return this.fhirVersion;
10932    }
10933
10934    /**
10935     * @return Returns a reference to <code>this</code> for easy method chaining
10936     */
10937    public ImplementationGuide setFhirVersion(List<Enumeration<FHIRVersion>> theFhirVersion) { 
10938      this.fhirVersion = theFhirVersion;
10939      return this;
10940    }
10941
10942    public boolean hasFhirVersion() { 
10943      if (this.fhirVersion == null)
10944        return false;
10945      for (Enumeration<FHIRVersion> item : this.fhirVersion)
10946        if (!item.isEmpty())
10947          return true;
10948      return false;
10949    }
10950
10951    /**
10952     * @return {@link #fhirVersion} (The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.3.0-snapshot1. for this version.)
10953     */
10954    public Enumeration<FHIRVersion> addFhirVersionElement() {//2 
10955      Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
10956      if (this.fhirVersion == null)
10957        this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
10958      this.fhirVersion.add(t);
10959      return t;
10960    }
10961
10962    /**
10963     * @param value {@link #fhirVersion} (The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.3.0-snapshot1. for this version.)
10964     */
10965    public ImplementationGuide addFhirVersion(FHIRVersion value) { //1
10966      Enumeration<FHIRVersion> t = new Enumeration<FHIRVersion>(new FHIRVersionEnumFactory());
10967      t.setValue(value);
10968      if (this.fhirVersion == null)
10969        this.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
10970      this.fhirVersion.add(t);
10971      return this;
10972    }
10973
10974    /**
10975     * @param value {@link #fhirVersion} (The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.3.0-snapshot1. for this version.)
10976     */
10977    public boolean hasFhirVersion(FHIRVersion value) { 
10978      if (this.fhirVersion == null)
10979        return false;
10980      for (Enumeration<FHIRVersion> v : this.fhirVersion)
10981        if (v.getValue().equals(value)) // code
10982          return true;
10983      return false;
10984    }
10985
10986    /**
10987     * @return {@link #dependsOn} (Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.)
10988     */
10989    public List<ImplementationGuideDependsOnComponent> getDependsOn() { 
10990      if (this.dependsOn == null)
10991        this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
10992      return this.dependsOn;
10993    }
10994
10995    /**
10996     * @return Returns a reference to <code>this</code> for easy method chaining
10997     */
10998    public ImplementationGuide setDependsOn(List<ImplementationGuideDependsOnComponent> theDependsOn) { 
10999      this.dependsOn = theDependsOn;
11000      return this;
11001    }
11002
11003    public boolean hasDependsOn() { 
11004      if (this.dependsOn == null)
11005        return false;
11006      for (ImplementationGuideDependsOnComponent item : this.dependsOn)
11007        if (!item.isEmpty())
11008          return true;
11009      return false;
11010    }
11011
11012    public ImplementationGuideDependsOnComponent addDependsOn() { //3
11013      ImplementationGuideDependsOnComponent t = new ImplementationGuideDependsOnComponent();
11014      if (this.dependsOn == null)
11015        this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
11016      this.dependsOn.add(t);
11017      return t;
11018    }
11019
11020    public ImplementationGuide addDependsOn(ImplementationGuideDependsOnComponent t) { //3
11021      if (t == null)
11022        return this;
11023      if (this.dependsOn == null)
11024        this.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
11025      this.dependsOn.add(t);
11026      return this;
11027    }
11028
11029    /**
11030     * @return The first repetition of repeating field {@link #dependsOn}, creating it if it does not already exist {3}
11031     */
11032    public ImplementationGuideDependsOnComponent getDependsOnFirstRep() { 
11033      if (getDependsOn().isEmpty()) {
11034        addDependsOn();
11035      }
11036      return getDependsOn().get(0);
11037    }
11038
11039    /**
11040     * @return {@link #global} (A set of profiles that all resources covered by this implementation guide must conform to.)
11041     */
11042    public List<ImplementationGuideGlobalComponent> getGlobal() { 
11043      if (this.global == null)
11044        this.global = new ArrayList<ImplementationGuideGlobalComponent>();
11045      return this.global;
11046    }
11047
11048    /**
11049     * @return Returns a reference to <code>this</code> for easy method chaining
11050     */
11051    public ImplementationGuide setGlobal(List<ImplementationGuideGlobalComponent> theGlobal) { 
11052      this.global = theGlobal;
11053      return this;
11054    }
11055
11056    public boolean hasGlobal() { 
11057      if (this.global == null)
11058        return false;
11059      for (ImplementationGuideGlobalComponent item : this.global)
11060        if (!item.isEmpty())
11061          return true;
11062      return false;
11063    }
11064
11065    public ImplementationGuideGlobalComponent addGlobal() { //3
11066      ImplementationGuideGlobalComponent t = new ImplementationGuideGlobalComponent();
11067      if (this.global == null)
11068        this.global = new ArrayList<ImplementationGuideGlobalComponent>();
11069      this.global.add(t);
11070      return t;
11071    }
11072
11073    public ImplementationGuide addGlobal(ImplementationGuideGlobalComponent t) { //3
11074      if (t == null)
11075        return this;
11076      if (this.global == null)
11077        this.global = new ArrayList<ImplementationGuideGlobalComponent>();
11078      this.global.add(t);
11079      return this;
11080    }
11081
11082    /**
11083     * @return The first repetition of repeating field {@link #global}, creating it if it does not already exist {3}
11084     */
11085    public ImplementationGuideGlobalComponent getGlobalFirstRep() { 
11086      if (getGlobal().isEmpty()) {
11087        addGlobal();
11088      }
11089      return getGlobal().get(0);
11090    }
11091
11092    /**
11093     * @return {@link #definition} (The information needed by an IG publisher tool to publish the whole implementation guide.)
11094     */
11095    public ImplementationGuideDefinitionComponent getDefinition() { 
11096      if (this.definition == null)
11097        if (Configuration.errorOnAutoCreate())
11098          throw new Error("Attempt to auto-create ImplementationGuide.definition");
11099        else if (Configuration.doAutoCreate())
11100          this.definition = new ImplementationGuideDefinitionComponent(); // cc
11101      return this.definition;
11102    }
11103
11104    public boolean hasDefinition() { 
11105      return this.definition != null && !this.definition.isEmpty();
11106    }
11107
11108    /**
11109     * @param value {@link #definition} (The information needed by an IG publisher tool to publish the whole implementation guide.)
11110     */
11111    public ImplementationGuide setDefinition(ImplementationGuideDefinitionComponent value) { 
11112      this.definition = value;
11113      return this;
11114    }
11115
11116    /**
11117     * @return {@link #manifest} (Information about an assembled implementation guide, created by the publication tooling.)
11118     */
11119    public ImplementationGuideManifestComponent getManifest() { 
11120      if (this.manifest == null)
11121        if (Configuration.errorOnAutoCreate())
11122          throw new Error("Attempt to auto-create ImplementationGuide.manifest");
11123        else if (Configuration.doAutoCreate())
11124          this.manifest = new ImplementationGuideManifestComponent(); // cc
11125      return this.manifest;
11126    }
11127
11128    public boolean hasManifest() { 
11129      return this.manifest != null && !this.manifest.isEmpty();
11130    }
11131
11132    /**
11133     * @param value {@link #manifest} (Information about an assembled implementation guide, created by the publication tooling.)
11134     */
11135    public ImplementationGuide setManifest(ImplementationGuideManifestComponent value) { 
11136      this.manifest = value;
11137      return this;
11138    }
11139
11140      protected void listChildren(List<Property> children) {
11141        super.listChildren(children);
11142        children.add(new Property("url", "uri", "An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.", 0, 1, url));
11143        children.add(new Property("version", "string", "The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version));
11144        children.add(new Property("name", "string", "A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
11145        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the implementation guide.", 0, 1, title));
11146        children.add(new Property("status", "code", "The status of this implementation guide. Enables tracking the life-cycle of the content.", 0, 1, status));
11147        children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental));
11148        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.", 0, 1, date));
11149        children.add(new Property("publisher", "string", "The name of the organization or individual that published the implementation guide.", 0, 1, publisher));
11150        children.add(new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact));
11151        children.add(new Property("description", "markdown", "A free text natural language description of the implementation guide from a consumer's perspective.", 0, 1, description));
11152        children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate implementation guide instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
11153        children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the implementation guide is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction));
11154        children.add(new Property("copyright", "markdown", "A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.", 0, 1, copyright));
11155        children.add(new Property("packageId", "id", "The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.", 0, 1, packageId));
11156        children.add(new Property("license", "code", "The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.", 0, 1, license));
11157        children.add(new Property("fhirVersion", "code", "The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.3.0-snapshot1. for this version.", 0, java.lang.Integer.MAX_VALUE, fhirVersion));
11158        children.add(new Property("dependsOn", "", "Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.", 0, java.lang.Integer.MAX_VALUE, dependsOn));
11159        children.add(new Property("global", "", "A set of profiles that all resources covered by this implementation guide must conform to.", 0, java.lang.Integer.MAX_VALUE, global));
11160        children.add(new Property("definition", "", "The information needed by an IG publisher tool to publish the whole implementation guide.", 0, 1, definition));
11161        children.add(new Property("manifest", "", "Information about an assembled implementation guide, created by the publication tooling.", 0, 1, manifest));
11162      }
11163
11164      @Override
11165      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
11166        switch (_hash) {
11167        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this implementation guide when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers.", 0, 1, url);
11168        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version);
11169        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
11170        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the implementation guide.", 0, 1, title);
11171        case -892481550: /*status*/  return new Property("status", "code", "The status of this implementation guide. Enables tracking the life-cycle of the content.", 0, 1, status);
11172        case -404562712: /*experimental*/  return new Property("experimental", "boolean", "A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental);
11173        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the implementation guide was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the implementation guide changes.", 0, 1, date);
11174        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual that published the implementation guide.", 0, 1, publisher);
11175        case 951526432: /*contact*/  return new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact);
11176        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the implementation guide from a consumer's perspective.", 0, 1, description);
11177        case -669707736: /*useContext*/  return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate implementation guide instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
11178        case -507075711: /*jurisdiction*/  return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the implementation guide is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction);
11179        case 1522889671: /*copyright*/  return new Property("copyright", "markdown", "A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide.", 0, 1, copyright);
11180        case 1802060801: /*packageId*/  return new Property("packageId", "id", "The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care.", 0, 1, packageId);
11181        case 166757441: /*license*/  return new Property("license", "code", "The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'.", 0, 1, license);
11182        case 461006061: /*fhirVersion*/  return new Property("fhirVersion", "code", "The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.3.0-snapshot1. for this version.", 0, java.lang.Integer.MAX_VALUE, fhirVersion);
11183        case -1109214266: /*dependsOn*/  return new Property("dependsOn", "", "Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides.", 0, java.lang.Integer.MAX_VALUE, dependsOn);
11184        case -1243020381: /*global*/  return new Property("global", "", "A set of profiles that all resources covered by this implementation guide must conform to.", 0, java.lang.Integer.MAX_VALUE, global);
11185        case -1014418093: /*definition*/  return new Property("definition", "", "The information needed by an IG publisher tool to publish the whole implementation guide.", 0, 1, definition);
11186        case 130625071: /*manifest*/  return new Property("manifest", "", "Information about an assembled implementation guide, created by the publication tooling.", 0, 1, manifest);
11187        default: return super.getNamedProperty(_hash, _name, _checkValid);
11188        }
11189
11190      }
11191
11192      @Override
11193      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
11194        switch (hash) {
11195        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
11196        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
11197        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
11198        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
11199        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
11200        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
11201        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
11202        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
11203        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
11204        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
11205        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
11206        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
11207        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
11208        case 1802060801: /*packageId*/ return this.packageId == null ? new Base[0] : new Base[] {this.packageId}; // IdType
11209        case 166757441: /*license*/ return this.license == null ? new Base[0] : new Base[] {this.license}; // Enumeration<SPDXLicense>
11210        case 461006061: /*fhirVersion*/ return this.fhirVersion == null ? new Base[0] : this.fhirVersion.toArray(new Base[this.fhirVersion.size()]); // Enumeration<FHIRVersion>
11211        case -1109214266: /*dependsOn*/ return this.dependsOn == null ? new Base[0] : this.dependsOn.toArray(new Base[this.dependsOn.size()]); // ImplementationGuideDependsOnComponent
11212        case -1243020381: /*global*/ return this.global == null ? new Base[0] : this.global.toArray(new Base[this.global.size()]); // ImplementationGuideGlobalComponent
11213        case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : new Base[] {this.definition}; // ImplementationGuideDefinitionComponent
11214        case 130625071: /*manifest*/ return this.manifest == null ? new Base[0] : new Base[] {this.manifest}; // ImplementationGuideManifestComponent
11215        default: return super.getProperty(hash, name, checkValid);
11216        }
11217
11218      }
11219
11220      @Override
11221      public Base setProperty(int hash, String name, Base value) throws FHIRException {
11222        switch (hash) {
11223        case 116079: // url
11224          this.url = TypeConvertor.castToUri(value); // UriType
11225          return value;
11226        case 351608024: // version
11227          this.version = TypeConvertor.castToString(value); // StringType
11228          return value;
11229        case 3373707: // name
11230          this.name = TypeConvertor.castToString(value); // StringType
11231          return value;
11232        case 110371416: // title
11233          this.title = TypeConvertor.castToString(value); // StringType
11234          return value;
11235        case -892481550: // status
11236          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
11237          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
11238          return value;
11239        case -404562712: // experimental
11240          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
11241          return value;
11242        case 3076014: // date
11243          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
11244          return value;
11245        case 1447404028: // publisher
11246          this.publisher = TypeConvertor.castToString(value); // StringType
11247          return value;
11248        case 951526432: // contact
11249          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
11250          return value;
11251        case -1724546052: // description
11252          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
11253          return value;
11254        case -669707736: // useContext
11255          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
11256          return value;
11257        case -507075711: // jurisdiction
11258          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
11259          return value;
11260        case 1522889671: // copyright
11261          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
11262          return value;
11263        case 1802060801: // packageId
11264          this.packageId = TypeConvertor.castToId(value); // IdType
11265          return value;
11266        case 166757441: // license
11267          value = new SPDXLicenseEnumFactory().fromType(TypeConvertor.castToCode(value));
11268          this.license = (Enumeration) value; // Enumeration<SPDXLicense>
11269          return value;
11270        case 461006061: // fhirVersion
11271          value = new FHIRVersionEnumFactory().fromType(TypeConvertor.castToCode(value));
11272          this.getFhirVersion().add((Enumeration) value); // Enumeration<FHIRVersion>
11273          return value;
11274        case -1109214266: // dependsOn
11275          this.getDependsOn().add((ImplementationGuideDependsOnComponent) value); // ImplementationGuideDependsOnComponent
11276          return value;
11277        case -1243020381: // global
11278          this.getGlobal().add((ImplementationGuideGlobalComponent) value); // ImplementationGuideGlobalComponent
11279          return value;
11280        case -1014418093: // definition
11281          this.definition = (ImplementationGuideDefinitionComponent) value; // ImplementationGuideDefinitionComponent
11282          return value;
11283        case 130625071: // manifest
11284          this.manifest = (ImplementationGuideManifestComponent) value; // ImplementationGuideManifestComponent
11285          return value;
11286        default: return super.setProperty(hash, name, value);
11287        }
11288
11289      }
11290
11291      @Override
11292      public Base setProperty(String name, Base value) throws FHIRException {
11293        if (name.equals("url")) {
11294          this.url = TypeConvertor.castToUri(value); // UriType
11295        } else if (name.equals("version")) {
11296          this.version = TypeConvertor.castToString(value); // StringType
11297        } else if (name.equals("name")) {
11298          this.name = TypeConvertor.castToString(value); // StringType
11299        } else if (name.equals("title")) {
11300          this.title = TypeConvertor.castToString(value); // StringType
11301        } else if (name.equals("status")) {
11302          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
11303          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
11304        } else if (name.equals("experimental")) {
11305          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
11306        } else if (name.equals("date")) {
11307          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
11308        } else if (name.equals("publisher")) {
11309          this.publisher = TypeConvertor.castToString(value); // StringType
11310        } else if (name.equals("contact")) {
11311          this.getContact().add(TypeConvertor.castToContactDetail(value));
11312        } else if (name.equals("description")) {
11313          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
11314        } else if (name.equals("useContext")) {
11315          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
11316        } else if (name.equals("jurisdiction")) {
11317          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value));
11318        } else if (name.equals("copyright")) {
11319          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
11320        } else if (name.equals("packageId")) {
11321          this.packageId = TypeConvertor.castToId(value); // IdType
11322        } else if (name.equals("license")) {
11323          value = new SPDXLicenseEnumFactory().fromType(TypeConvertor.castToCode(value));
11324          this.license = (Enumeration) value; // Enumeration<SPDXLicense>
11325        } else if (name.equals("fhirVersion")) {
11326          value = new FHIRVersionEnumFactory().fromType(TypeConvertor.castToCode(value));
11327          this.getFhirVersion().add((Enumeration) value);
11328        } else if (name.equals("dependsOn")) {
11329          this.getDependsOn().add((ImplementationGuideDependsOnComponent) value);
11330        } else if (name.equals("global")) {
11331          this.getGlobal().add((ImplementationGuideGlobalComponent) value);
11332        } else if (name.equals("definition")) {
11333          this.definition = (ImplementationGuideDefinitionComponent) value; // ImplementationGuideDefinitionComponent
11334        } else if (name.equals("manifest")) {
11335          this.manifest = (ImplementationGuideManifestComponent) value; // ImplementationGuideManifestComponent
11336        } else
11337          return super.setProperty(name, value);
11338        return value;
11339      }
11340
11341      @Override
11342      public Base makeProperty(int hash, String name) throws FHIRException {
11343        switch (hash) {
11344        case 116079:  return getUrlElement();
11345        case 351608024:  return getVersionElement();
11346        case 3373707:  return getNameElement();
11347        case 110371416:  return getTitleElement();
11348        case -892481550:  return getStatusElement();
11349        case -404562712:  return getExperimentalElement();
11350        case 3076014:  return getDateElement();
11351        case 1447404028:  return getPublisherElement();
11352        case 951526432:  return addContact(); 
11353        case -1724546052:  return getDescriptionElement();
11354        case -669707736:  return addUseContext(); 
11355        case -507075711:  return addJurisdiction(); 
11356        case 1522889671:  return getCopyrightElement();
11357        case 1802060801:  return getPackageIdElement();
11358        case 166757441:  return getLicenseElement();
11359        case 461006061:  return addFhirVersionElement();
11360        case -1109214266:  return addDependsOn(); 
11361        case -1243020381:  return addGlobal(); 
11362        case -1014418093:  return getDefinition();
11363        case 130625071:  return getManifest();
11364        default: return super.makeProperty(hash, name);
11365        }
11366
11367      }
11368
11369      @Override
11370      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
11371        switch (hash) {
11372        case 116079: /*url*/ return new String[] {"uri"};
11373        case 351608024: /*version*/ return new String[] {"string"};
11374        case 3373707: /*name*/ return new String[] {"string"};
11375        case 110371416: /*title*/ return new String[] {"string"};
11376        case -892481550: /*status*/ return new String[] {"code"};
11377        case -404562712: /*experimental*/ return new String[] {"boolean"};
11378        case 3076014: /*date*/ return new String[] {"dateTime"};
11379        case 1447404028: /*publisher*/ return new String[] {"string"};
11380        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
11381        case -1724546052: /*description*/ return new String[] {"markdown"};
11382        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
11383        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
11384        case 1522889671: /*copyright*/ return new String[] {"markdown"};
11385        case 1802060801: /*packageId*/ return new String[] {"id"};
11386        case 166757441: /*license*/ return new String[] {"code"};
11387        case 461006061: /*fhirVersion*/ return new String[] {"code"};
11388        case -1109214266: /*dependsOn*/ return new String[] {};
11389        case -1243020381: /*global*/ return new String[] {};
11390        case -1014418093: /*definition*/ return new String[] {};
11391        case 130625071: /*manifest*/ return new String[] {};
11392        default: return super.getTypesForProperty(hash, name);
11393        }
11394
11395      }
11396
11397      @Override
11398      public Base addChild(String name) throws FHIRException {
11399        if (name.equals("url")) {
11400          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.url");
11401        }
11402        else if (name.equals("version")) {
11403          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.version");
11404        }
11405        else if (name.equals("name")) {
11406          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.name");
11407        }
11408        else if (name.equals("title")) {
11409          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.title");
11410        }
11411        else if (name.equals("status")) {
11412          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.status");
11413        }
11414        else if (name.equals("experimental")) {
11415          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.experimental");
11416        }
11417        else if (name.equals("date")) {
11418          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.date");
11419        }
11420        else if (name.equals("publisher")) {
11421          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.publisher");
11422        }
11423        else if (name.equals("contact")) {
11424          return addContact();
11425        }
11426        else if (name.equals("description")) {
11427          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.description");
11428        }
11429        else if (name.equals("useContext")) {
11430          return addUseContext();
11431        }
11432        else if (name.equals("jurisdiction")) {
11433          return addJurisdiction();
11434        }
11435        else if (name.equals("copyright")) {
11436          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.copyright");
11437        }
11438        else if (name.equals("packageId")) {
11439          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.packageId");
11440        }
11441        else if (name.equals("license")) {
11442          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.license");
11443        }
11444        else if (name.equals("fhirVersion")) {
11445          throw new FHIRException("Cannot call addChild on a primitive type ImplementationGuide.fhirVersion");
11446        }
11447        else if (name.equals("dependsOn")) {
11448          return addDependsOn();
11449        }
11450        else if (name.equals("global")) {
11451          return addGlobal();
11452        }
11453        else if (name.equals("definition")) {
11454          this.definition = new ImplementationGuideDefinitionComponent();
11455          return this.definition;
11456        }
11457        else if (name.equals("manifest")) {
11458          this.manifest = new ImplementationGuideManifestComponent();
11459          return this.manifest;
11460        }
11461        else
11462          return super.addChild(name);
11463      }
11464
11465  public String fhirType() {
11466    return "ImplementationGuide";
11467
11468  }
11469
11470      public ImplementationGuide copy() {
11471        ImplementationGuide dst = new ImplementationGuide();
11472        copyValues(dst);
11473        return dst;
11474      }
11475
11476      public void copyValues(ImplementationGuide dst) {
11477        super.copyValues(dst);
11478        dst.url = url == null ? null : url.copy();
11479        dst.version = version == null ? null : version.copy();
11480        dst.name = name == null ? null : name.copy();
11481        dst.title = title == null ? null : title.copy();
11482        dst.status = status == null ? null : status.copy();
11483        dst.experimental = experimental == null ? null : experimental.copy();
11484        dst.date = date == null ? null : date.copy();
11485        dst.publisher = publisher == null ? null : publisher.copy();
11486        if (contact != null) {
11487          dst.contact = new ArrayList<ContactDetail>();
11488          for (ContactDetail i : contact)
11489            dst.contact.add(i.copy());
11490        };
11491        dst.description = description == null ? null : description.copy();
11492        if (useContext != null) {
11493          dst.useContext = new ArrayList<UsageContext>();
11494          for (UsageContext i : useContext)
11495            dst.useContext.add(i.copy());
11496        };
11497        if (jurisdiction != null) {
11498          dst.jurisdiction = new ArrayList<CodeableConcept>();
11499          for (CodeableConcept i : jurisdiction)
11500            dst.jurisdiction.add(i.copy());
11501        };
11502        dst.copyright = copyright == null ? null : copyright.copy();
11503        dst.packageId = packageId == null ? null : packageId.copy();
11504        dst.license = license == null ? null : license.copy();
11505        if (fhirVersion != null) {
11506          dst.fhirVersion = new ArrayList<Enumeration<FHIRVersion>>();
11507          for (Enumeration<FHIRVersion> i : fhirVersion)
11508            dst.fhirVersion.add(i.copy());
11509        };
11510        if (dependsOn != null) {
11511          dst.dependsOn = new ArrayList<ImplementationGuideDependsOnComponent>();
11512          for (ImplementationGuideDependsOnComponent i : dependsOn)
11513            dst.dependsOn.add(i.copy());
11514        };
11515        if (global != null) {
11516          dst.global = new ArrayList<ImplementationGuideGlobalComponent>();
11517          for (ImplementationGuideGlobalComponent i : global)
11518            dst.global.add(i.copy());
11519        };
11520        dst.definition = definition == null ? null : definition.copy();
11521        dst.manifest = manifest == null ? null : manifest.copy();
11522      }
11523
11524      protected ImplementationGuide typedCopy() {
11525        return copy();
11526      }
11527
11528      @Override
11529      public boolean equalsDeep(Base other_) {
11530        if (!super.equalsDeep(other_))
11531          return false;
11532        if (!(other_ instanceof ImplementationGuide))
11533          return false;
11534        ImplementationGuide o = (ImplementationGuide) other_;
11535        return compareDeep(url, o.url, true) && compareDeep(version, o.version, true) && compareDeep(name, o.name, true)
11536           && compareDeep(title, o.title, true) && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true)
11537           && compareDeep(date, o.date, true) && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true)
11538           && compareDeep(description, o.description, true) && compareDeep(useContext, o.useContext, true)
11539           && compareDeep(jurisdiction, o.jurisdiction, true) && compareDeep(copyright, o.copyright, true)
11540           && compareDeep(packageId, o.packageId, true) && compareDeep(license, o.license, true) && compareDeep(fhirVersion, o.fhirVersion, true)
11541           && compareDeep(dependsOn, o.dependsOn, true) && compareDeep(global, o.global, true) && compareDeep(definition, o.definition, true)
11542           && compareDeep(manifest, o.manifest, true);
11543      }
11544
11545      @Override
11546      public boolean equalsShallow(Base other_) {
11547        if (!super.equalsShallow(other_))
11548          return false;
11549        if (!(other_ instanceof ImplementationGuide))
11550          return false;
11551        ImplementationGuide o = (ImplementationGuide) other_;
11552        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
11553           && compareValues(title, o.title, true) && compareValues(status, o.status, true) && compareValues(experimental, o.experimental, true)
11554           && compareValues(date, o.date, true) && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true)
11555           && compareValues(copyright, o.copyright, true) && compareValues(packageId, o.packageId, true) && compareValues(license, o.license, true)
11556           && compareValues(fhirVersion, o.fhirVersion, true);
11557      }
11558
11559      public boolean isEmpty() {
11560        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, version, name, title
11561          , status, experimental, date, publisher, contact, description, useContext, jurisdiction
11562          , copyright, packageId, license, fhirVersion, dependsOn, global, definition, manifest
11563          );
11564      }
11565
11566  @Override
11567  public ResourceType getResourceType() {
11568    return ResourceType.ImplementationGuide;
11569   }
11570
11571  @Override
11572  public List<Identifier> getIdentifier() {
11573    return new ArrayList<>();
11574  }
11575
11576  @Override
11577  public CanonicalResource setIdentifier(List<Identifier> theIdentifier) {
11578    return this;
11579  }
11580
11581  @Override
11582  public boolean hasIdentifier() {
11583    return false;
11584  }
11585
11586  @Override
11587  public Identifier addIdentifier() {
11588    return new Identifier();
11589  }
11590
11591  @Override
11592  public CanonicalResource addIdentifier(Identifier t) {
11593    return this;
11594  }
11595
11596  @Override
11597  public Identifier getIdentifierFirstRep() {
11598    return new Identifier();
11599  }
11600
11601  @Override
11602  public MarkdownType getPurposeElement() {
11603    return new MarkdownType();
11604  }
11605
11606  @Override
11607  public boolean hasPurposeElement() {
11608    return false;
11609  }
11610
11611  @Override
11612  public boolean hasPurpose() {
11613    return false;
11614  }
11615
11616  @Override
11617  public CanonicalResource setPurposeElement(MarkdownType value) {
11618    return this;
11619  }
11620
11621  @Override
11622  public String getPurpose() {
11623    return null;
11624  }
11625
11626  @Override
11627  public CanonicalResource setPurpose(String value) {
11628    return this;
11629  }
11630/**
11631   * Search parameter: <b>depends-on</b>
11632   * <p>
11633   * Description: <b>Identity of the IG that this depends on</b><br>
11634   * Type: <b>reference</b><br>
11635   * Path: <b>ImplementationGuide.dependsOn.uri</b><br>
11636   * </p>
11637   */
11638  @SearchParamDefinition(name="depends-on", path="ImplementationGuide.dependsOn.uri", description="Identity of the IG that this depends on", type="reference", target={ImplementationGuide.class } )
11639  public static final String SP_DEPENDS_ON = "depends-on";
11640 /**
11641   * <b>Fluent Client</b> search parameter constant for <b>depends-on</b>
11642   * <p>
11643   * Description: <b>Identity of the IG that this depends on</b><br>
11644   * Type: <b>reference</b><br>
11645   * Path: <b>ImplementationGuide.dependsOn.uri</b><br>
11646   * </p>
11647   */
11648  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DEPENDS_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DEPENDS_ON);
11649
11650/**
11651   * Constant for fluent queries to be used to add include statements. Specifies
11652   * the path value of "<b>ImplementationGuide:depends-on</b>".
11653   */
11654  public static final ca.uhn.fhir.model.api.Include INCLUDE_DEPENDS_ON = new ca.uhn.fhir.model.api.Include("ImplementationGuide:depends-on").toLocked();
11655
11656 /**
11657   * Search parameter: <b>experimental</b>
11658   * <p>
11659   * Description: <b>For testing purposes, not real usage</b><br>
11660   * Type: <b>token</b><br>
11661   * Path: <b>ImplementationGuide.experimental</b><br>
11662   * </p>
11663   */
11664  @SearchParamDefinition(name="experimental", path="ImplementationGuide.experimental", description="For testing purposes, not real usage", type="token" )
11665  public static final String SP_EXPERIMENTAL = "experimental";
11666 /**
11667   * <b>Fluent Client</b> search parameter constant for <b>experimental</b>
11668   * <p>
11669   * Description: <b>For testing purposes, not real usage</b><br>
11670   * Type: <b>token</b><br>
11671   * Path: <b>ImplementationGuide.experimental</b><br>
11672   * </p>
11673   */
11674  public static final ca.uhn.fhir.rest.gclient.TokenClientParam EXPERIMENTAL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EXPERIMENTAL);
11675
11676 /**
11677   * Search parameter: <b>global</b>
11678   * <p>
11679   * Description: <b>Profile that all resources must conform to</b><br>
11680   * Type: <b>reference</b><br>
11681   * Path: <b>ImplementationGuide.global.profile</b><br>
11682   * </p>
11683   */
11684  @SearchParamDefinition(name="global", path="ImplementationGuide.global.profile", description="Profile that all resources must conform to", type="reference", target={StructureDefinition.class } )
11685  public static final String SP_GLOBAL = "global";
11686 /**
11687   * <b>Fluent Client</b> search parameter constant for <b>global</b>
11688   * <p>
11689   * Description: <b>Profile that all resources must conform to</b><br>
11690   * Type: <b>reference</b><br>
11691   * Path: <b>ImplementationGuide.global.profile</b><br>
11692   * </p>
11693   */
11694  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam GLOBAL = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_GLOBAL);
11695
11696/**
11697   * Constant for fluent queries to be used to add include statements. Specifies
11698   * the path value of "<b>ImplementationGuide:global</b>".
11699   */
11700  public static final ca.uhn.fhir.model.api.Include INCLUDE_GLOBAL = new ca.uhn.fhir.model.api.Include("ImplementationGuide:global").toLocked();
11701
11702 /**
11703   * Search parameter: <b>resource</b>
11704   * <p>
11705   * Description: <b>Location of the resource</b><br>
11706   * Type: <b>reference</b><br>
11707   * Path: <b>ImplementationGuide.definition.resource.reference</b><br>
11708   * </p>
11709   */
11710  @SearchParamDefinition(name="resource", path="ImplementationGuide.definition.resource.reference", description="Location of the resource", type="reference", target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, CatalogEntry.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceMetric.class, DeviceRequest.class, DeviceUseStatement.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Media.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchDefinition.class, ResearchElementDefinition.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
11711  public static final String SP_RESOURCE = "resource";
11712 /**
11713   * <b>Fluent Client</b> search parameter constant for <b>resource</b>
11714   * <p>
11715   * Description: <b>Location of the resource</b><br>
11716   * Type: <b>reference</b><br>
11717   * Path: <b>ImplementationGuide.definition.resource.reference</b><br>
11718   * </p>
11719   */
11720  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RESOURCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_RESOURCE);
11721
11722/**
11723   * Constant for fluent queries to be used to add include statements. Specifies
11724   * the path value of "<b>ImplementationGuide:resource</b>".
11725   */
11726  public static final ca.uhn.fhir.model.api.Include INCLUDE_RESOURCE = new ca.uhn.fhir.model.api.Include("ImplementationGuide:resource").toLocked();
11727
11728 /**
11729   * Search parameter: <b>context-quantity</b>
11730   * <p>
11731   * Description: <b>Multiple Resources: 
11732
11733* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
11734* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
11735* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
11736* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
11737* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
11738* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
11739* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
11740* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
11741* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
11742* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
11743* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
11744* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
11745* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
11746* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
11747</b><br>
11748   * Type: <b>quantity</b><br>
11749   * Path: <b>(CapabilityStatement.useContext.value as Quantity) | (CapabilityStatement.useContext.value as Range) | (CodeSystem.useContext.value as Quantity) | (CodeSystem.useContext.value as Range) | (CompartmentDefinition.useContext.value as Quantity) | (CompartmentDefinition.useContext.value as Range) | (ConceptMap.useContext.value as Quantity) | (ConceptMap.useContext.value as Range) | (GraphDefinition.useContext.value as Quantity) | (GraphDefinition.useContext.value as Range) | (ImplementationGuide.useContext.value as Quantity) | (ImplementationGuide.useContext.value as Range) | (MessageDefinition.useContext.value as Quantity) | (MessageDefinition.useContext.value as Range) | (NamingSystem.useContext.value as Quantity) | (NamingSystem.useContext.value as Range) | (OperationDefinition.useContext.value as Quantity) | (OperationDefinition.useContext.value as Range) | (SearchParameter.useContext.value as Quantity) | (SearchParameter.useContext.value as Range) | (StructureDefinition.useContext.value as Quantity) | (StructureDefinition.useContext.value as Range) | (StructureMap.useContext.value as Quantity) | (StructureMap.useContext.value as Range) | (TerminologyCapabilities.useContext.value as Quantity) | (TerminologyCapabilities.useContext.value as Range) | (ValueSet.useContext.value as Quantity) | (ValueSet.useContext.value as Range)</b><br>
11750   * </p>
11751   */
11752  @SearchParamDefinition(name="context-quantity", path="(CapabilityStatement.useContext.value as Quantity) | (CapabilityStatement.useContext.value as Range) | (CodeSystem.useContext.value as Quantity) | (CodeSystem.useContext.value as Range) | (CompartmentDefinition.useContext.value as Quantity) | (CompartmentDefinition.useContext.value as Range) | (ConceptMap.useContext.value as Quantity) | (ConceptMap.useContext.value as Range) | (GraphDefinition.useContext.value as Quantity) | (GraphDefinition.useContext.value as Range) | (ImplementationGuide.useContext.value as Quantity) | (ImplementationGuide.useContext.value as Range) | (MessageDefinition.useContext.value as Quantity) | (MessageDefinition.useContext.value as Range) | (NamingSystem.useContext.value as Quantity) | (NamingSystem.useContext.value as Range) | (OperationDefinition.useContext.value as Quantity) | (OperationDefinition.useContext.value as Range) | (SearchParameter.useContext.value as Quantity) | (SearchParameter.useContext.value as Range) | (StructureDefinition.useContext.value as Quantity) | (StructureDefinition.useContext.value as Range) | (StructureMap.useContext.value as Quantity) | (StructureMap.useContext.value as Range) | (TerminologyCapabilities.useContext.value as Quantity) | (TerminologyCapabilities.useContext.value as Range) | (ValueSet.useContext.value as Quantity) | (ValueSet.useContext.value as Range)", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement\r\n* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map\r\n* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide\r\n* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition\r\n* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities\r\n* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set\r\n", type="quantity" )
11753  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
11754 /**
11755   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
11756   * <p>
11757   * Description: <b>Multiple Resources: 
11758
11759* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
11760* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
11761* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
11762* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
11763* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
11764* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
11765* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
11766* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
11767* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
11768* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
11769* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
11770* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
11771* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
11772* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
11773</b><br>
11774   * Type: <b>quantity</b><br>
11775   * Path: <b>(CapabilityStatement.useContext.value as Quantity) | (CapabilityStatement.useContext.value as Range) | (CodeSystem.useContext.value as Quantity) | (CodeSystem.useContext.value as Range) | (CompartmentDefinition.useContext.value as Quantity) | (CompartmentDefinition.useContext.value as Range) | (ConceptMap.useContext.value as Quantity) | (ConceptMap.useContext.value as Range) | (GraphDefinition.useContext.value as Quantity) | (GraphDefinition.useContext.value as Range) | (ImplementationGuide.useContext.value as Quantity) | (ImplementationGuide.useContext.value as Range) | (MessageDefinition.useContext.value as Quantity) | (MessageDefinition.useContext.value as Range) | (NamingSystem.useContext.value as Quantity) | (NamingSystem.useContext.value as Range) | (OperationDefinition.useContext.value as Quantity) | (OperationDefinition.useContext.value as Range) | (SearchParameter.useContext.value as Quantity) | (SearchParameter.useContext.value as Range) | (StructureDefinition.useContext.value as Quantity) | (StructureDefinition.useContext.value as Range) | (StructureMap.useContext.value as Quantity) | (StructureMap.useContext.value as Range) | (TerminologyCapabilities.useContext.value as Quantity) | (TerminologyCapabilities.useContext.value as Range) | (ValueSet.useContext.value as Quantity) | (ValueSet.useContext.value as Range)</b><br>
11776   * </p>
11777   */
11778  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
11779
11780 /**
11781   * Search parameter: <b>context-type-quantity</b>
11782   * <p>
11783   * Description: <b>Multiple Resources: 
11784
11785* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
11786* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
11787* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
11788* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
11789* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
11790* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
11791* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
11792* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
11793* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
11794* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
11795* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
11796* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
11797* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
11798* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
11799</b><br>
11800   * Type: <b>composite</b><br>
11801   * Path: <b>CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext</b><br>
11802   * </p>
11803   */
11804  @SearchParamDefinition(name="context-type-quantity", path="CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement\r\n* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map\r\n* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide\r\n* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition\r\n* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities\r\n* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set\r\n", type="composite", compositeOf={"context-type", "context-quantity"} )
11805  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
11806 /**
11807   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
11808   * <p>
11809   * Description: <b>Multiple Resources: 
11810
11811* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
11812* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
11813* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
11814* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
11815* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
11816* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
11817* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
11818* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
11819* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
11820* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
11821* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
11822* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
11823* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
11824* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
11825</b><br>
11826   * Type: <b>composite</b><br>
11827   * Path: <b>CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext</b><br>
11828   * </p>
11829   */
11830  public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam> CONTEXT_TYPE_QUANTITY = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam>(SP_CONTEXT_TYPE_QUANTITY);
11831
11832 /**
11833   * Search parameter: <b>context-type-value</b>
11834   * <p>
11835   * Description: <b>Multiple Resources: 
11836
11837* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
11838* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
11839* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
11840* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
11841* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
11842* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
11843* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
11844* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
11845* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
11846* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
11847* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
11848* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
11849* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
11850* [ValueSet](valueset.html): A use context type and value assigned to the value set
11851</b><br>
11852   * Type: <b>composite</b><br>
11853   * Path: <b>CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext</b><br>
11854   * </p>
11855   */
11856  @SearchParamDefinition(name="context-type-value", path="CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement\r\n* [CodeSystem](codesystem.html): A use context type and value assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map\r\n* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide\r\n* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition\r\n* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context type and value assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities\r\n* [ValueSet](valueset.html): A use context type and value assigned to the value set\r\n", type="composite", compositeOf={"context-type", "context"} )
11857  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
11858 /**
11859   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
11860   * <p>
11861   * Description: <b>Multiple Resources: 
11862
11863* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
11864* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
11865* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
11866* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
11867* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
11868* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
11869* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
11870* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
11871* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
11872* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
11873* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
11874* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
11875* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
11876* [ValueSet](valueset.html): A use context type and value assigned to the value set
11877</b><br>
11878   * Type: <b>composite</b><br>
11879   * Path: <b>CapabilityStatement.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | ValueSet.useContext</b><br>
11880   * </p>
11881   */
11882  public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CONTEXT_TYPE_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CONTEXT_TYPE_VALUE);
11883
11884 /**
11885   * Search parameter: <b>context-type</b>
11886   * <p>
11887   * Description: <b>Multiple Resources: 
11888
11889* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
11890* [CodeSystem](codesystem.html): A type of use context assigned to the code system
11891* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
11892* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
11893* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
11894* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
11895* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
11896* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
11897* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
11898* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
11899* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
11900* [StructureMap](structuremap.html): A type of use context assigned to the structure map
11901* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
11902* [ValueSet](valueset.html): A type of use context assigned to the value set
11903</b><br>
11904   * Type: <b>token</b><br>
11905   * Path: <b>CapabilityStatement.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | ValueSet.useContext.code</b><br>
11906   * </p>
11907   */
11908  @SearchParamDefinition(name="context-type", path="CapabilityStatement.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | ValueSet.useContext.code", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement\r\n* [CodeSystem](codesystem.html): A type of use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map\r\n* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide\r\n* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition\r\n* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A type of use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities\r\n* [ValueSet](valueset.html): A type of use context assigned to the value set\r\n", type="token" )
11909  public static final String SP_CONTEXT_TYPE = "context-type";
11910 /**
11911   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
11912   * <p>
11913   * Description: <b>Multiple Resources: 
11914
11915* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
11916* [CodeSystem](codesystem.html): A type of use context assigned to the code system
11917* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
11918* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
11919* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
11920* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
11921* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
11922* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
11923* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
11924* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
11925* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
11926* [StructureMap](structuremap.html): A type of use context assigned to the structure map
11927* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
11928* [ValueSet](valueset.html): A type of use context assigned to the value set
11929</b><br>
11930   * Type: <b>token</b><br>
11931   * Path: <b>CapabilityStatement.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | ValueSet.useContext.code</b><br>
11932   * </p>
11933   */
11934  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
11935
11936 /**
11937   * Search parameter: <b>context</b>
11938   * <p>
11939   * Description: <b>Multiple Resources: 
11940
11941* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
11942* [CodeSystem](codesystem.html): A use context assigned to the code system
11943* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
11944* [ConceptMap](conceptmap.html): A use context assigned to the concept map
11945* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
11946* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
11947* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
11948* [NamingSystem](namingsystem.html): A use context assigned to the naming system
11949* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
11950* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
11951* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
11952* [StructureMap](structuremap.html): A use context assigned to the structure map
11953* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
11954* [ValueSet](valueset.html): A use context assigned to the value set
11955</b><br>
11956   * Type: <b>token</b><br>
11957   * Path: <b>(CapabilityStatement.useContext.value as CodeableConcept) | (CodeSystem.useContext.value as CodeableConcept) | (CompartmentDefinition.useContext.value as CodeableConcept) | (ConceptMap.useContext.value as CodeableConcept) | (GraphDefinition.useContext.value as CodeableConcept) | (ImplementationGuide.useContext.value as CodeableConcept) | (MessageDefinition.useContext.value as CodeableConcept) | (NamingSystem.useContext.value as CodeableConcept) | (OperationDefinition.useContext.value as CodeableConcept) | (SearchParameter.useContext.value as CodeableConcept) | (StructureDefinition.useContext.value as CodeableConcept) | (StructureMap.useContext.value as CodeableConcept) | (TerminologyCapabilities.useContext.value as CodeableConcept) | (ValueSet.useContext.value as CodeableConcept)</b><br>
11958   * </p>
11959   */
11960  @SearchParamDefinition(name="context", path="(CapabilityStatement.useContext.value as CodeableConcept) | (CodeSystem.useContext.value as CodeableConcept) | (CompartmentDefinition.useContext.value as CodeableConcept) | (ConceptMap.useContext.value as CodeableConcept) | (GraphDefinition.useContext.value as CodeableConcept) | (ImplementationGuide.useContext.value as CodeableConcept) | (MessageDefinition.useContext.value as CodeableConcept) | (NamingSystem.useContext.value as CodeableConcept) | (OperationDefinition.useContext.value as CodeableConcept) | (SearchParameter.useContext.value as CodeableConcept) | (StructureDefinition.useContext.value as CodeableConcept) | (StructureMap.useContext.value as CodeableConcept) | (TerminologyCapabilities.useContext.value as CodeableConcept) | (ValueSet.useContext.value as CodeableConcept)", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement\r\n* [CodeSystem](codesystem.html): A use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context assigned to the concept map\r\n* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide\r\n* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition\r\n* [SearchParameter](searchparameter.html): A use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities\r\n* [ValueSet](valueset.html): A use context assigned to the value set\r\n", type="token" )
11961  public static final String SP_CONTEXT = "context";
11962 /**
11963   * <b>Fluent Client</b> search parameter constant for <b>context</b>
11964   * <p>
11965   * Description: <b>Multiple Resources: 
11966
11967* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
11968* [CodeSystem](codesystem.html): A use context assigned to the code system
11969* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
11970* [ConceptMap](conceptmap.html): A use context assigned to the concept map
11971* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
11972* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
11973* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
11974* [NamingSystem](namingsystem.html): A use context assigned to the naming system
11975* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
11976* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
11977* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
11978* [StructureMap](structuremap.html): A use context assigned to the structure map
11979* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
11980* [ValueSet](valueset.html): A use context assigned to the value set
11981</b><br>
11982   * Type: <b>token</b><br>
11983   * Path: <b>(CapabilityStatement.useContext.value as CodeableConcept) | (CodeSystem.useContext.value as CodeableConcept) | (CompartmentDefinition.useContext.value as CodeableConcept) | (ConceptMap.useContext.value as CodeableConcept) | (GraphDefinition.useContext.value as CodeableConcept) | (ImplementationGuide.useContext.value as CodeableConcept) | (MessageDefinition.useContext.value as CodeableConcept) | (NamingSystem.useContext.value as CodeableConcept) | (OperationDefinition.useContext.value as CodeableConcept) | (SearchParameter.useContext.value as CodeableConcept) | (StructureDefinition.useContext.value as CodeableConcept) | (StructureMap.useContext.value as CodeableConcept) | (TerminologyCapabilities.useContext.value as CodeableConcept) | (ValueSet.useContext.value as CodeableConcept)</b><br>
11984   * </p>
11985   */
11986  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
11987
11988 /**
11989   * Search parameter: <b>date</b>
11990   * <p>
11991   * Description: <b>Multiple Resources: 
11992
11993* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
11994* [CodeSystem](codesystem.html): The code system publication date
11995* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
11996* [ConceptMap](conceptmap.html): The concept map publication date
11997* [GraphDefinition](graphdefinition.html): The graph definition publication date
11998* [ImplementationGuide](implementationguide.html): The implementation guide publication date
11999* [MessageDefinition](messagedefinition.html): The message definition publication date
12000* [NamingSystem](namingsystem.html): The naming system publication date
12001* [OperationDefinition](operationdefinition.html): The operation definition publication date
12002* [SearchParameter](searchparameter.html): The search parameter publication date
12003* [StructureDefinition](structuredefinition.html): The structure definition publication date
12004* [StructureMap](structuremap.html): The structure map publication date
12005* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
12006* [ValueSet](valueset.html): The value set publication date
12007</b><br>
12008   * Type: <b>date</b><br>
12009   * Path: <b>CapabilityStatement.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | GraphDefinition.date | ImplementationGuide.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | TerminologyCapabilities.date | ValueSet.date</b><br>
12010   * </p>
12011   */
12012  @SearchParamDefinition(name="date", path="CapabilityStatement.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | GraphDefinition.date | ImplementationGuide.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | TerminologyCapabilities.date | ValueSet.date", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The capability statement publication date\r\n* [CodeSystem](codesystem.html): The code system publication date\r\n* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date\r\n* [ConceptMap](conceptmap.html): The concept map publication date\r\n* [GraphDefinition](graphdefinition.html): The graph definition publication date\r\n* [ImplementationGuide](implementationguide.html): The implementation guide publication date\r\n* [MessageDefinition](messagedefinition.html): The message definition publication date\r\n* [NamingSystem](namingsystem.html): The naming system publication date\r\n* [OperationDefinition](operationdefinition.html): The operation definition publication date\r\n* [SearchParameter](searchparameter.html): The search parameter publication date\r\n* [StructureDefinition](structuredefinition.html): The structure definition publication date\r\n* [StructureMap](structuremap.html): The structure map publication date\r\n* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date\r\n* [ValueSet](valueset.html): The value set publication date\r\n", type="date" )
12013  public static final String SP_DATE = "date";
12014 /**
12015   * <b>Fluent Client</b> search parameter constant for <b>date</b>
12016   * <p>
12017   * Description: <b>Multiple Resources: 
12018
12019* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
12020* [CodeSystem](codesystem.html): The code system publication date
12021* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
12022* [ConceptMap](conceptmap.html): The concept map publication date
12023* [GraphDefinition](graphdefinition.html): The graph definition publication date
12024* [ImplementationGuide](implementationguide.html): The implementation guide publication date
12025* [MessageDefinition](messagedefinition.html): The message definition publication date
12026* [NamingSystem](namingsystem.html): The naming system publication date
12027* [OperationDefinition](operationdefinition.html): The operation definition publication date
12028* [SearchParameter](searchparameter.html): The search parameter publication date
12029* [StructureDefinition](structuredefinition.html): The structure definition publication date
12030* [StructureMap](structuremap.html): The structure map publication date
12031* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
12032* [ValueSet](valueset.html): The value set publication date
12033</b><br>
12034   * Type: <b>date</b><br>
12035   * Path: <b>CapabilityStatement.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | GraphDefinition.date | ImplementationGuide.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | TerminologyCapabilities.date | ValueSet.date</b><br>
12036   * </p>
12037   */
12038  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
12039
12040 /**
12041   * Search parameter: <b>description</b>
12042   * <p>
12043   * Description: <b>Multiple Resources: 
12044
12045* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
12046* [CodeSystem](codesystem.html): The description of the code system
12047* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
12048* [ConceptMap](conceptmap.html): The description of the concept map
12049* [GraphDefinition](graphdefinition.html): The description of the graph definition
12050* [ImplementationGuide](implementationguide.html): The description of the implementation guide
12051* [MessageDefinition](messagedefinition.html): The description of the message definition
12052* [NamingSystem](namingsystem.html): The description of the naming system
12053* [OperationDefinition](operationdefinition.html): The description of the operation definition
12054* [SearchParameter](searchparameter.html): The description of the search parameter
12055* [StructureDefinition](structuredefinition.html): The description of the structure definition
12056* [StructureMap](structuremap.html): The description of the structure map
12057* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
12058* [ValueSet](valueset.html): The description of the value set
12059</b><br>
12060   * Type: <b>string</b><br>
12061   * Path: <b>CapabilityStatement.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | GraphDefinition.description | ImplementationGuide.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | ValueSet.description</b><br>
12062   * </p>
12063   */
12064  @SearchParamDefinition(name="description", path="CapabilityStatement.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | GraphDefinition.description | ImplementationGuide.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | ValueSet.description", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The description of the capability statement\r\n* [CodeSystem](codesystem.html): The description of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition\r\n* [ConceptMap](conceptmap.html): The description of the concept map\r\n* [GraphDefinition](graphdefinition.html): The description of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The description of the implementation guide\r\n* [MessageDefinition](messagedefinition.html): The description of the message definition\r\n* [NamingSystem](namingsystem.html): The description of the naming system\r\n* [OperationDefinition](operationdefinition.html): The description of the operation definition\r\n* [SearchParameter](searchparameter.html): The description of the search parameter\r\n* [StructureDefinition](structuredefinition.html): The description of the structure definition\r\n* [StructureMap](structuremap.html): The description of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities\r\n* [ValueSet](valueset.html): The description of the value set\r\n", type="string" )
12065  public static final String SP_DESCRIPTION = "description";
12066 /**
12067   * <b>Fluent Client</b> search parameter constant for <b>description</b>
12068   * <p>
12069   * Description: <b>Multiple Resources: 
12070
12071* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
12072* [CodeSystem](codesystem.html): The description of the code system
12073* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
12074* [ConceptMap](conceptmap.html): The description of the concept map
12075* [GraphDefinition](graphdefinition.html): The description of the graph definition
12076* [ImplementationGuide](implementationguide.html): The description of the implementation guide
12077* [MessageDefinition](messagedefinition.html): The description of the message definition
12078* [NamingSystem](namingsystem.html): The description of the naming system
12079* [OperationDefinition](operationdefinition.html): The description of the operation definition
12080* [SearchParameter](searchparameter.html): The description of the search parameter
12081* [StructureDefinition](structuredefinition.html): The description of the structure definition
12082* [StructureMap](structuremap.html): The description of the structure map
12083* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
12084* [ValueSet](valueset.html): The description of the value set
12085</b><br>
12086   * Type: <b>string</b><br>
12087   * Path: <b>CapabilityStatement.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | GraphDefinition.description | ImplementationGuide.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | ValueSet.description</b><br>
12088   * </p>
12089   */
12090  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
12091
12092 /**
12093   * Search parameter: <b>jurisdiction</b>
12094   * <p>
12095   * Description: <b>Multiple Resources: 
12096
12097* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
12098* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
12099* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
12100* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
12101* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
12102* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
12103* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
12104* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
12105* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
12106* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
12107* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
12108* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
12109* [ValueSet](valueset.html): Intended jurisdiction for the value set
12110</b><br>
12111   * Type: <b>token</b><br>
12112   * Path: <b>CapabilityStatement.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | ValueSet.jurisdiction</b><br>
12113   * </p>
12114   */
12115  @SearchParamDefinition(name="jurisdiction", path="CapabilityStatement.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | ValueSet.jurisdiction", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement\r\n* [CodeSystem](codesystem.html): Intended jurisdiction for the code system\r\n* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map\r\n* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition\r\n* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide\r\n* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition\r\n* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system\r\n* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition\r\n* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter\r\n* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition\r\n* [StructureMap](structuremap.html): Intended jurisdiction for the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities\r\n* [ValueSet](valueset.html): Intended jurisdiction for the value set\r\n", type="token" )
12116  public static final String SP_JURISDICTION = "jurisdiction";
12117 /**
12118   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
12119   * <p>
12120   * Description: <b>Multiple Resources: 
12121
12122* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
12123* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
12124* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
12125* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
12126* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
12127* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
12128* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
12129* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
12130* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
12131* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
12132* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
12133* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
12134* [ValueSet](valueset.html): Intended jurisdiction for the value set
12135</b><br>
12136   * Type: <b>token</b><br>
12137   * Path: <b>CapabilityStatement.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | ValueSet.jurisdiction</b><br>
12138   * </p>
12139   */
12140  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
12141
12142 /**
12143   * Search parameter: <b>name</b>
12144   * <p>
12145   * Description: <b>Multiple Resources: 
12146
12147* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
12148* [CodeSystem](codesystem.html): Computationally friendly name of the code system
12149* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
12150* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
12151* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
12152* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
12153* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
12154* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
12155* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
12156* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
12157* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
12158* [StructureMap](structuremap.html): Computationally friendly name of the structure map
12159* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
12160* [ValueSet](valueset.html): Computationally friendly name of the value set
12161</b><br>
12162   * Type: <b>string</b><br>
12163   * Path: <b>CapabilityStatement.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | GraphDefinition.name | ImplementationGuide.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | ValueSet.name</b><br>
12164   * </p>
12165   */
12166  @SearchParamDefinition(name="name", path="CapabilityStatement.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | GraphDefinition.name | ImplementationGuide.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | ValueSet.name", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement\r\n* [CodeSystem](codesystem.html): Computationally friendly name of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition\r\n* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map\r\n* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition\r\n* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide\r\n* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition\r\n* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system\r\n* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition\r\n* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter\r\n* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition\r\n* [StructureMap](structuremap.html): Computationally friendly name of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities\r\n* [ValueSet](valueset.html): Computationally friendly name of the value set\r\n", type="string" )
12167  public static final String SP_NAME = "name";
12168 /**
12169   * <b>Fluent Client</b> search parameter constant for <b>name</b>
12170   * <p>
12171   * Description: <b>Multiple Resources: 
12172
12173* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
12174* [CodeSystem](codesystem.html): Computationally friendly name of the code system
12175* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
12176* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
12177* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
12178* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
12179* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
12180* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
12181* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
12182* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
12183* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
12184* [StructureMap](structuremap.html): Computationally friendly name of the structure map
12185* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
12186* [ValueSet](valueset.html): Computationally friendly name of the value set
12187</b><br>
12188   * Type: <b>string</b><br>
12189   * Path: <b>CapabilityStatement.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | GraphDefinition.name | ImplementationGuide.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | ValueSet.name</b><br>
12190   * </p>
12191   */
12192  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
12193
12194 /**
12195   * Search parameter: <b>publisher</b>
12196   * <p>
12197   * Description: <b>Multiple Resources: 
12198
12199* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
12200* [CodeSystem](codesystem.html): Name of the publisher of the code system
12201* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
12202* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
12203* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
12204* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
12205* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
12206* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
12207* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
12208* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
12209* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
12210* [StructureMap](structuremap.html): Name of the publisher of the structure map
12211* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
12212* [ValueSet](valueset.html): Name of the publisher of the value set
12213</b><br>
12214   * Type: <b>string</b><br>
12215   * Path: <b>CapabilityStatement.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | ValueSet.publisher</b><br>
12216   * </p>
12217   */
12218  @SearchParamDefinition(name="publisher", path="CapabilityStatement.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | ValueSet.publisher", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement\r\n* [CodeSystem](codesystem.html): Name of the publisher of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition\r\n* [ConceptMap](conceptmap.html): Name of the publisher of the concept map\r\n* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition\r\n* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide\r\n* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition\r\n* [NamingSystem](namingsystem.html): Name of the publisher of the naming system\r\n* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition\r\n* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter\r\n* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition\r\n* [StructureMap](structuremap.html): Name of the publisher of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities\r\n* [ValueSet](valueset.html): Name of the publisher of the value set\r\n", type="string" )
12219  public static final String SP_PUBLISHER = "publisher";
12220 /**
12221   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
12222   * <p>
12223   * Description: <b>Multiple Resources: 
12224
12225* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
12226* [CodeSystem](codesystem.html): Name of the publisher of the code system
12227* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
12228* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
12229* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
12230* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
12231* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
12232* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
12233* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
12234* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
12235* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
12236* [StructureMap](structuremap.html): Name of the publisher of the structure map
12237* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
12238* [ValueSet](valueset.html): Name of the publisher of the value set
12239</b><br>
12240   * Type: <b>string</b><br>
12241   * Path: <b>CapabilityStatement.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | ValueSet.publisher</b><br>
12242   * </p>
12243   */
12244  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
12245
12246 /**
12247   * Search parameter: <b>status</b>
12248   * <p>
12249   * Description: <b>Multiple Resources: 
12250
12251* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
12252* [CodeSystem](codesystem.html): The current status of the code system
12253* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
12254* [ConceptMap](conceptmap.html): The current status of the concept map
12255* [GraphDefinition](graphdefinition.html): The current status of the graph definition
12256* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
12257* [MessageDefinition](messagedefinition.html): The current status of the message definition
12258* [NamingSystem](namingsystem.html): The current status of the naming system
12259* [OperationDefinition](operationdefinition.html): The current status of the operation definition
12260* [SearchParameter](searchparameter.html): The current status of the search parameter
12261* [StructureDefinition](structuredefinition.html): The current status of the structure definition
12262* [StructureMap](structuremap.html): The current status of the structure map
12263* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
12264* [ValueSet](valueset.html): The current status of the value set
12265</b><br>
12266   * Type: <b>token</b><br>
12267   * Path: <b>CapabilityStatement.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | GraphDefinition.status | ImplementationGuide.status | MessageDefinition.status | NamingSystem.status | OperationDefinition.status | SearchParameter.status | StructureDefinition.status | StructureMap.status | TerminologyCapabilities.status | ValueSet.status</b><br>
12268   * </p>
12269   */
12270  @SearchParamDefinition(name="status", path="CapabilityStatement.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | GraphDefinition.status | ImplementationGuide.status | MessageDefinition.status | NamingSystem.status | OperationDefinition.status | SearchParameter.status | StructureDefinition.status | StructureMap.status | TerminologyCapabilities.status | ValueSet.status", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement\r\n* [CodeSystem](codesystem.html): The current status of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition\r\n* [ConceptMap](conceptmap.html): The current status of the concept map\r\n* [GraphDefinition](graphdefinition.html): The current status of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The current status of the implementation guide\r\n* [MessageDefinition](messagedefinition.html): The current status of the message definition\r\n* [NamingSystem](namingsystem.html): The current status of the naming system\r\n* [OperationDefinition](operationdefinition.html): The current status of the operation definition\r\n* [SearchParameter](searchparameter.html): The current status of the search parameter\r\n* [StructureDefinition](structuredefinition.html): The current status of the structure definition\r\n* [StructureMap](structuremap.html): The current status of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities\r\n* [ValueSet](valueset.html): The current status of the value set\r\n", type="token" )
12271  public static final String SP_STATUS = "status";
12272 /**
12273   * <b>Fluent Client</b> search parameter constant for <b>status</b>
12274   * <p>
12275   * Description: <b>Multiple Resources: 
12276
12277* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
12278* [CodeSystem](codesystem.html): The current status of the code system
12279* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
12280* [ConceptMap](conceptmap.html): The current status of the concept map
12281* [GraphDefinition](graphdefinition.html): The current status of the graph definition
12282* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
12283* [MessageDefinition](messagedefinition.html): The current status of the message definition
12284* [NamingSystem](namingsystem.html): The current status of the naming system
12285* [OperationDefinition](operationdefinition.html): The current status of the operation definition
12286* [SearchParameter](searchparameter.html): The current status of the search parameter
12287* [StructureDefinition](structuredefinition.html): The current status of the structure definition
12288* [StructureMap](structuremap.html): The current status of the structure map
12289* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
12290* [ValueSet](valueset.html): The current status of the value set
12291</b><br>
12292   * Type: <b>token</b><br>
12293   * Path: <b>CapabilityStatement.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | GraphDefinition.status | ImplementationGuide.status | MessageDefinition.status | NamingSystem.status | OperationDefinition.status | SearchParameter.status | StructureDefinition.status | StructureMap.status | TerminologyCapabilities.status | ValueSet.status</b><br>
12294   * </p>
12295   */
12296  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
12297
12298 /**
12299   * Search parameter: <b>title</b>
12300   * <p>
12301   * Description: <b>Multiple Resources: 
12302
12303* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
12304* [CodeSystem](codesystem.html): The human-friendly name of the code system
12305* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
12306* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
12307* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
12308* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
12309* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
12310* [StructureMap](structuremap.html): The human-friendly name of the structure map
12311* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
12312* [ValueSet](valueset.html): The human-friendly name of the value set
12313</b><br>
12314   * Type: <b>string</b><br>
12315   * Path: <b>CapabilityStatement.title | CodeSystem.title | ConceptMap.title | ImplementationGuide.title | MessageDefinition.title | OperationDefinition.title | StructureDefinition.title | StructureMap.title | TerminologyCapabilities.title | ValueSet.title</b><br>
12316   * </p>
12317   */
12318  @SearchParamDefinition(name="title", path="CapabilityStatement.title | CodeSystem.title | ConceptMap.title | ImplementationGuide.title | MessageDefinition.title | OperationDefinition.title | StructureDefinition.title | StructureMap.title | TerminologyCapabilities.title | ValueSet.title", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement\r\n* [CodeSystem](codesystem.html): The human-friendly name of the code system\r\n* [ConceptMap](conceptmap.html): The human-friendly name of the concept map\r\n* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide\r\n* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition\r\n* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition\r\n* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition\r\n* [StructureMap](structuremap.html): The human-friendly name of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities\r\n* [ValueSet](valueset.html): The human-friendly name of the value set\r\n", type="string" )
12319  public static final String SP_TITLE = "title";
12320 /**
12321   * <b>Fluent Client</b> search parameter constant for <b>title</b>
12322   * <p>
12323   * Description: <b>Multiple Resources: 
12324
12325* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
12326* [CodeSystem](codesystem.html): The human-friendly name of the code system
12327* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
12328* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
12329* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
12330* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
12331* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
12332* [StructureMap](structuremap.html): The human-friendly name of the structure map
12333* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
12334* [ValueSet](valueset.html): The human-friendly name of the value set
12335</b><br>
12336   * Type: <b>string</b><br>
12337   * Path: <b>CapabilityStatement.title | CodeSystem.title | ConceptMap.title | ImplementationGuide.title | MessageDefinition.title | OperationDefinition.title | StructureDefinition.title | StructureMap.title | TerminologyCapabilities.title | ValueSet.title</b><br>
12338   * </p>
12339   */
12340  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
12341
12342 /**
12343   * Search parameter: <b>url</b>
12344   * <p>
12345   * Description: <b>Multiple Resources: 
12346
12347* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
12348* [CodeSystem](codesystem.html): The uri that identifies the code system
12349* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
12350* [ConceptMap](conceptmap.html): The uri that identifies the concept map
12351* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
12352* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
12353* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
12354* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
12355* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
12356* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
12357* [StructureMap](structuremap.html): The uri that identifies the structure map
12358* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
12359* [ValueSet](valueset.html): The uri that identifies the value set
12360</b><br>
12361   * Type: <b>uri</b><br>
12362   * Path: <b>CapabilityStatement.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | GraphDefinition.url | ImplementationGuide.url | MessageDefinition.url | OperationDefinition.url | SearchParameter.url | StructureDefinition.url | StructureMap.url | TerminologyCapabilities.url | ValueSet.url</b><br>
12363   * </p>
12364   */
12365  @SearchParamDefinition(name="url", path="CapabilityStatement.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | GraphDefinition.url | ImplementationGuide.url | MessageDefinition.url | OperationDefinition.url | SearchParameter.url | StructureDefinition.url | StructureMap.url | TerminologyCapabilities.url | ValueSet.url", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement\r\n* [CodeSystem](codesystem.html): The uri that identifies the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition\r\n* [ConceptMap](conceptmap.html): The uri that identifies the concept map\r\n* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition\r\n* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide\r\n* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition\r\n* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition\r\n* [SearchParameter](searchparameter.html): The uri that identifies the search parameter\r\n* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition\r\n* [StructureMap](structuremap.html): The uri that identifies the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities\r\n* [ValueSet](valueset.html): The uri that identifies the value set\r\n", type="uri" )
12366  public static final String SP_URL = "url";
12367 /**
12368   * <b>Fluent Client</b> search parameter constant for <b>url</b>
12369   * <p>
12370   * Description: <b>Multiple Resources: 
12371
12372* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
12373* [CodeSystem](codesystem.html): The uri that identifies the code system
12374* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
12375* [ConceptMap](conceptmap.html): The uri that identifies the concept map
12376* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
12377* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
12378* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
12379* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
12380* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
12381* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
12382* [StructureMap](structuremap.html): The uri that identifies the structure map
12383* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
12384* [ValueSet](valueset.html): The uri that identifies the value set
12385</b><br>
12386   * Type: <b>uri</b><br>
12387   * Path: <b>CapabilityStatement.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | GraphDefinition.url | ImplementationGuide.url | MessageDefinition.url | OperationDefinition.url | SearchParameter.url | StructureDefinition.url | StructureMap.url | TerminologyCapabilities.url | ValueSet.url</b><br>
12388   * </p>
12389   */
12390  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
12391
12392 /**
12393   * Search parameter: <b>version</b>
12394   * <p>
12395   * Description: <b>Multiple Resources: 
12396
12397* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
12398* [CodeSystem](codesystem.html): The business version of the code system
12399* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
12400* [ConceptMap](conceptmap.html): The business version of the concept map
12401* [GraphDefinition](graphdefinition.html): The business version of the graph definition
12402* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
12403* [MessageDefinition](messagedefinition.html): The business version of the message definition
12404* [OperationDefinition](operationdefinition.html): The business version of the operation definition
12405* [SearchParameter](searchparameter.html): The business version of the search parameter
12406* [StructureDefinition](structuredefinition.html): The business version of the structure definition
12407* [StructureMap](structuremap.html): The business version of the structure map
12408* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
12409* [ValueSet](valueset.html): The business version of the value set
12410</b><br>
12411   * Type: <b>token</b><br>
12412   * Path: <b>CapabilityStatement.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | GraphDefinition.version | ImplementationGuide.version | MessageDefinition.version | OperationDefinition.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | TerminologyCapabilities.version | ValueSet.version</b><br>
12413   * </p>
12414   */
12415  @SearchParamDefinition(name="version", path="CapabilityStatement.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | GraphDefinition.version | ImplementationGuide.version | MessageDefinition.version | OperationDefinition.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | TerminologyCapabilities.version | ValueSet.version", description="Multiple Resources: \r\n\r\n* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement\r\n* [CodeSystem](codesystem.html): The business version of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition\r\n* [ConceptMap](conceptmap.html): The business version of the concept map\r\n* [GraphDefinition](graphdefinition.html): The business version of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The business version of the implementation guide\r\n* [MessageDefinition](messagedefinition.html): The business version of the message definition\r\n* [OperationDefinition](operationdefinition.html): The business version of the operation definition\r\n* [SearchParameter](searchparameter.html): The business version of the search parameter\r\n* [StructureDefinition](structuredefinition.html): The business version of the structure definition\r\n* [StructureMap](structuremap.html): The business version of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities\r\n* [ValueSet](valueset.html): The business version of the value set\r\n", type="token" )
12416  public static final String SP_VERSION = "version";
12417 /**
12418   * <b>Fluent Client</b> search parameter constant for <b>version</b>
12419   * <p>
12420   * Description: <b>Multiple Resources: 
12421
12422* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
12423* [CodeSystem](codesystem.html): The business version of the code system
12424* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
12425* [ConceptMap](conceptmap.html): The business version of the concept map
12426* [GraphDefinition](graphdefinition.html): The business version of the graph definition
12427* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
12428* [MessageDefinition](messagedefinition.html): The business version of the message definition
12429* [OperationDefinition](operationdefinition.html): The business version of the operation definition
12430* [SearchParameter](searchparameter.html): The business version of the search parameter
12431* [StructureDefinition](structuredefinition.html): The business version of the structure definition
12432* [StructureMap](structuremap.html): The business version of the structure map
12433* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
12434* [ValueSet](valueset.html): The business version of the value set
12435</b><br>
12436   * Type: <b>token</b><br>
12437   * Path: <b>CapabilityStatement.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | GraphDefinition.version | ImplementationGuide.version | MessageDefinition.version | OperationDefinition.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | TerminologyCapabilities.version | ValueSet.version</b><br>
12438   * </p>
12439   */
12440  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
12441
12442
12443}
12444