001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Tue, Dec 28, 2021 07:16+1100 for FHIR v5.0.0-snapshot1
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * A compartment definition that defines how resources are accessed on a server.
052 */
053@ResourceDef(name="CompartmentDefinition", profile="http://hl7.org/fhir/StructureDefinition/CompartmentDefinition")
054public class CompartmentDefinition extends CanonicalResource {
055
056    @Block()
057    public static class CompartmentDefinitionResourceComponent extends BackboneElement implements IBaseBackboneElement {
058        /**
059         * The name of a resource supported by the server.
060         */
061        @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
062        @Description(shortDefinition="Name of resource type", formalDefinition="The name of a resource supported by the server." )
063        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types")
064        protected CodeType code;
065
066        /**
067         * The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.
068         */
069        @Child(name = "param", type = {StringType.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
070        @Description(shortDefinition="Search Parameter Name, or chained parameters", formalDefinition="The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,." )
071        protected List<StringType> param;
072
073        /**
074         * Additional documentation about the resource and compartment.
075         */
076        @Child(name = "documentation", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false)
077        @Description(shortDefinition="Additional documentation about the resource and compartment", formalDefinition="Additional documentation about the resource and compartment." )
078        protected StringType documentation;
079
080        private static final long serialVersionUID = 988080897L;
081
082    /**
083     * Constructor
084     */
085      public CompartmentDefinitionResourceComponent() {
086        super();
087      }
088
089    /**
090     * Constructor
091     */
092      public CompartmentDefinitionResourceComponent(String code) {
093        super();
094        this.setCode(code);
095      }
096
097        /**
098         * @return {@link #code} (The name of a resource supported by the server.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
099         */
100        public CodeType getCodeElement() { 
101          if (this.code == null)
102            if (Configuration.errorOnAutoCreate())
103              throw new Error("Attempt to auto-create CompartmentDefinitionResourceComponent.code");
104            else if (Configuration.doAutoCreate())
105              this.code = new CodeType(); // bb
106          return this.code;
107        }
108
109        public boolean hasCodeElement() { 
110          return this.code != null && !this.code.isEmpty();
111        }
112
113        public boolean hasCode() { 
114          return this.code != null && !this.code.isEmpty();
115        }
116
117        /**
118         * @param value {@link #code} (The name of a resource supported by the server.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
119         */
120        public CompartmentDefinitionResourceComponent setCodeElement(CodeType value) { 
121          this.code = value;
122          return this;
123        }
124
125        /**
126         * @return The name of a resource supported by the server.
127         */
128        public String getCode() { 
129          return this.code == null ? null : this.code.getValue();
130        }
131
132        /**
133         * @param value The name of a resource supported by the server.
134         */
135        public CompartmentDefinitionResourceComponent setCode(String value) { 
136            if (this.code == null)
137              this.code = new CodeType();
138            this.code.setValue(value);
139          return this;
140        }
141
142        /**
143         * @return {@link #param} (The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.)
144         */
145        public List<StringType> getParam() { 
146          if (this.param == null)
147            this.param = new ArrayList<StringType>();
148          return this.param;
149        }
150
151        /**
152         * @return Returns a reference to <code>this</code> for easy method chaining
153         */
154        public CompartmentDefinitionResourceComponent setParam(List<StringType> theParam) { 
155          this.param = theParam;
156          return this;
157        }
158
159        public boolean hasParam() { 
160          if (this.param == null)
161            return false;
162          for (StringType item : this.param)
163            if (!item.isEmpty())
164              return true;
165          return false;
166        }
167
168        /**
169         * @return {@link #param} (The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.)
170         */
171        public StringType addParamElement() {//2 
172          StringType t = new StringType();
173          if (this.param == null)
174            this.param = new ArrayList<StringType>();
175          this.param.add(t);
176          return t;
177        }
178
179        /**
180         * @param value {@link #param} (The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.)
181         */
182        public CompartmentDefinitionResourceComponent addParam(String value) { //1
183          StringType t = new StringType();
184          t.setValue(value);
185          if (this.param == null)
186            this.param = new ArrayList<StringType>();
187          this.param.add(t);
188          return this;
189        }
190
191        /**
192         * @param value {@link #param} (The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.)
193         */
194        public boolean hasParam(String value) { 
195          if (this.param == null)
196            return false;
197          for (StringType v : this.param)
198            if (v.getValue().equals(value)) // string
199              return true;
200          return false;
201        }
202
203        /**
204         * @return {@link #documentation} (Additional documentation about the resource and compartment.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
205         */
206        public StringType getDocumentationElement() { 
207          if (this.documentation == null)
208            if (Configuration.errorOnAutoCreate())
209              throw new Error("Attempt to auto-create CompartmentDefinitionResourceComponent.documentation");
210            else if (Configuration.doAutoCreate())
211              this.documentation = new StringType(); // bb
212          return this.documentation;
213        }
214
215        public boolean hasDocumentationElement() { 
216          return this.documentation != null && !this.documentation.isEmpty();
217        }
218
219        public boolean hasDocumentation() { 
220          return this.documentation != null && !this.documentation.isEmpty();
221        }
222
223        /**
224         * @param value {@link #documentation} (Additional documentation about the resource and compartment.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
225         */
226        public CompartmentDefinitionResourceComponent setDocumentationElement(StringType value) { 
227          this.documentation = value;
228          return this;
229        }
230
231        /**
232         * @return Additional documentation about the resource and compartment.
233         */
234        public String getDocumentation() { 
235          return this.documentation == null ? null : this.documentation.getValue();
236        }
237
238        /**
239         * @param value Additional documentation about the resource and compartment.
240         */
241        public CompartmentDefinitionResourceComponent setDocumentation(String value) { 
242          if (Utilities.noString(value))
243            this.documentation = null;
244          else {
245            if (this.documentation == null)
246              this.documentation = new StringType();
247            this.documentation.setValue(value);
248          }
249          return this;
250        }
251
252        protected void listChildren(List<Property> children) {
253          super.listChildren(children);
254          children.add(new Property("code", "code", "The name of a resource supported by the server.", 0, 1, code));
255          children.add(new Property("param", "string", "The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.", 0, java.lang.Integer.MAX_VALUE, param));
256          children.add(new Property("documentation", "string", "Additional documentation about the resource and compartment.", 0, 1, documentation));
257        }
258
259        @Override
260        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
261          switch (_hash) {
262          case 3059181: /*code*/  return new Property("code", "code", "The name of a resource supported by the server.", 0, 1, code);
263          case 106436749: /*param*/  return new Property("param", "string", "The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,.", 0, java.lang.Integer.MAX_VALUE, param);
264          case 1587405498: /*documentation*/  return new Property("documentation", "string", "Additional documentation about the resource and compartment.", 0, 1, documentation);
265          default: return super.getNamedProperty(_hash, _name, _checkValid);
266          }
267
268        }
269
270      @Override
271      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
272        switch (hash) {
273        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType
274        case 106436749: /*param*/ return this.param == null ? new Base[0] : this.param.toArray(new Base[this.param.size()]); // StringType
275        case 1587405498: /*documentation*/ return this.documentation == null ? new Base[0] : new Base[] {this.documentation}; // StringType
276        default: return super.getProperty(hash, name, checkValid);
277        }
278
279      }
280
281      @Override
282      public Base setProperty(int hash, String name, Base value) throws FHIRException {
283        switch (hash) {
284        case 3059181: // code
285          this.code = TypeConvertor.castToCode(value); // CodeType
286          return value;
287        case 106436749: // param
288          this.getParam().add(TypeConvertor.castToString(value)); // StringType
289          return value;
290        case 1587405498: // documentation
291          this.documentation = TypeConvertor.castToString(value); // StringType
292          return value;
293        default: return super.setProperty(hash, name, value);
294        }
295
296      }
297
298      @Override
299      public Base setProperty(String name, Base value) throws FHIRException {
300        if (name.equals("code")) {
301          this.code = TypeConvertor.castToCode(value); // CodeType
302        } else if (name.equals("param")) {
303          this.getParam().add(TypeConvertor.castToString(value));
304        } else if (name.equals("documentation")) {
305          this.documentation = TypeConvertor.castToString(value); // StringType
306        } else
307          return super.setProperty(name, value);
308        return value;
309      }
310
311      @Override
312      public Base makeProperty(int hash, String name) throws FHIRException {
313        switch (hash) {
314        case 3059181:  return getCodeElement();
315        case 106436749:  return addParamElement();
316        case 1587405498:  return getDocumentationElement();
317        default: return super.makeProperty(hash, name);
318        }
319
320      }
321
322      @Override
323      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
324        switch (hash) {
325        case 3059181: /*code*/ return new String[] {"code"};
326        case 106436749: /*param*/ return new String[] {"string"};
327        case 1587405498: /*documentation*/ return new String[] {"string"};
328        default: return super.getTypesForProperty(hash, name);
329        }
330
331      }
332
333      @Override
334      public Base addChild(String name) throws FHIRException {
335        if (name.equals("code")) {
336          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.resource.code");
337        }
338        else if (name.equals("param")) {
339          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.resource.param");
340        }
341        else if (name.equals("documentation")) {
342          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.resource.documentation");
343        }
344        else
345          return super.addChild(name);
346      }
347
348      public CompartmentDefinitionResourceComponent copy() {
349        CompartmentDefinitionResourceComponent dst = new CompartmentDefinitionResourceComponent();
350        copyValues(dst);
351        return dst;
352      }
353
354      public void copyValues(CompartmentDefinitionResourceComponent dst) {
355        super.copyValues(dst);
356        dst.code = code == null ? null : code.copy();
357        if (param != null) {
358          dst.param = new ArrayList<StringType>();
359          for (StringType i : param)
360            dst.param.add(i.copy());
361        };
362        dst.documentation = documentation == null ? null : documentation.copy();
363      }
364
365      @Override
366      public boolean equalsDeep(Base other_) {
367        if (!super.equalsDeep(other_))
368          return false;
369        if (!(other_ instanceof CompartmentDefinitionResourceComponent))
370          return false;
371        CompartmentDefinitionResourceComponent o = (CompartmentDefinitionResourceComponent) other_;
372        return compareDeep(code, o.code, true) && compareDeep(param, o.param, true) && compareDeep(documentation, o.documentation, true)
373          ;
374      }
375
376      @Override
377      public boolean equalsShallow(Base other_) {
378        if (!super.equalsShallow(other_))
379          return false;
380        if (!(other_ instanceof CompartmentDefinitionResourceComponent))
381          return false;
382        CompartmentDefinitionResourceComponent o = (CompartmentDefinitionResourceComponent) other_;
383        return compareValues(code, o.code, true) && compareValues(param, o.param, true) && compareValues(documentation, o.documentation, true)
384          ;
385      }
386
387      public boolean isEmpty() {
388        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, param, documentation
389          );
390      }
391
392  public String fhirType() {
393    return "CompartmentDefinition.resource";
394
395  }
396
397  }
398
399    /**
400     * An absolute URI that is used to identify this compartment definition 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 compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.
401     */
402    @Child(name = "url", type = {UriType.class}, order=0, min=1, max=1, modifier=false, summary=true)
403    @Description(shortDefinition="Canonical identifier for this compartment definition, represented as a URI (globally unique)", formalDefinition="An absolute URI that is used to identify this compartment definition 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 compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers." )
404    protected UriType url;
405
406    /**
407     * The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment definition 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.
408     */
409    @Child(name = "version", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=true)
410    @Description(shortDefinition="Business version of the compartment definition", formalDefinition="The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment definition 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." )
411    protected StringType version;
412
413    /**
414     * A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.
415     */
416    @Child(name = "name", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=true)
417    @Description(shortDefinition="Name for this compartment definition (computer friendly)", formalDefinition="A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation." )
418    protected StringType name;
419
420    /**
421     * The status of this compartment definition. Enables tracking the life-cycle of the content.
422     */
423    @Child(name = "status", type = {CodeType.class}, order=3, min=1, max=1, modifier=true, summary=true)
424    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The status of this compartment definition. Enables tracking the life-cycle of the content." )
425    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
426    protected Enumeration<PublicationStatus> status;
427
428    /**
429     * A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
430     */
431    @Child(name = "experimental", type = {BooleanType.class}, order=4, min=0, max=1, modifier=false, summary=true)
432    @Description(shortDefinition="For testing purposes, not real usage", formalDefinition="A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage." )
433    protected BooleanType experimental;
434
435    /**
436     * The date  (and optionally time) when the compartment definition 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 compartment definition changes.
437     */
438    @Child(name = "date", type = {DateTimeType.class}, order=5, min=0, max=1, modifier=false, summary=true)
439    @Description(shortDefinition="Date last changed", formalDefinition="The date  (and optionally time) when the compartment definition 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 compartment definition changes." )
440    protected DateTimeType date;
441
442    /**
443     * The name of the organization or individual that published the compartment definition.
444     */
445    @Child(name = "publisher", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=true)
446    @Description(shortDefinition="Name of the publisher (organization or individual)", formalDefinition="The name of the organization or individual that published the compartment definition." )
447    protected StringType publisher;
448
449    /**
450     * Contact details to assist a user in finding and communicating with the publisher.
451     */
452    @Child(name = "contact", type = {ContactDetail.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
453    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
454    protected List<ContactDetail> contact;
455
456    /**
457     * A free text natural language description of the compartment definition from a consumer's perspective.
458     */
459    @Child(name = "description", type = {MarkdownType.class}, order=8, min=0, max=1, modifier=false, summary=false)
460    @Description(shortDefinition="Natural language description of the compartment definition", formalDefinition="A free text natural language description of the compartment definition from a consumer's perspective." )
461    protected MarkdownType description;
462
463    /**
464     * 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 compartment definition instances.
465     */
466    @Child(name = "useContext", type = {UsageContext.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
467    @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 compartment definition instances." )
468    protected List<UsageContext> useContext;
469
470    /**
471     * Explanation of why this compartment definition is needed and why it has been designed as it has.
472     */
473    @Child(name = "purpose", type = {MarkdownType.class}, order=10, min=0, max=1, modifier=false, summary=false)
474    @Description(shortDefinition="Why this compartment definition is defined", formalDefinition="Explanation of why this compartment definition is needed and why it has been designed as it has." )
475    protected MarkdownType purpose;
476
477    /**
478     * Which compartment this definition describes.
479     */
480    @Child(name = "code", type = {CodeType.class}, order=11, min=1, max=1, modifier=false, summary=true)
481    @Description(shortDefinition="Patient | Encounter | RelatedPerson | Practitioner | Device", formalDefinition="Which compartment this definition describes." )
482    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/compartment-type")
483    protected Enumeration<CompartmentType> code;
484
485    /**
486     * Whether the search syntax is supported,.
487     */
488    @Child(name = "search", type = {BooleanType.class}, order=12, min=1, max=1, modifier=false, summary=true)
489    @Description(shortDefinition="Whether the search syntax is supported", formalDefinition="Whether the search syntax is supported,." )
490    protected BooleanType search;
491
492    /**
493     * Information about how a resource is related to the compartment.
494     */
495    @Child(name = "resource", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
496    @Description(shortDefinition="How a resource is related to the compartment", formalDefinition="Information about how a resource is related to the compartment." )
497    protected List<CompartmentDefinitionResourceComponent> resource;
498
499    private static final long serialVersionUID = 1358693010L;
500
501  /**
502   * Constructor
503   */
504    public CompartmentDefinition() {
505      super();
506    }
507
508  /**
509   * Constructor
510   */
511    public CompartmentDefinition(String url, String name, PublicationStatus status, CompartmentType code, boolean search) {
512      super();
513      this.setUrl(url);
514      this.setName(name);
515      this.setStatus(status);
516      this.setCode(code);
517      this.setSearch(search);
518    }
519
520    /**
521     * @return {@link #url} (An absolute URI that is used to identify this compartment definition 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 compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
522     */
523    public UriType getUrlElement() { 
524      if (this.url == null)
525        if (Configuration.errorOnAutoCreate())
526          throw new Error("Attempt to auto-create CompartmentDefinition.url");
527        else if (Configuration.doAutoCreate())
528          this.url = new UriType(); // bb
529      return this.url;
530    }
531
532    public boolean hasUrlElement() { 
533      return this.url != null && !this.url.isEmpty();
534    }
535
536    public boolean hasUrl() { 
537      return this.url != null && !this.url.isEmpty();
538    }
539
540    /**
541     * @param value {@link #url} (An absolute URI that is used to identify this compartment definition 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 compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
542     */
543    public CompartmentDefinition setUrlElement(UriType value) { 
544      this.url = value;
545      return this;
546    }
547
548    /**
549     * @return An absolute URI that is used to identify this compartment definition 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 compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.
550     */
551    public String getUrl() { 
552      return this.url == null ? null : this.url.getValue();
553    }
554
555    /**
556     * @param value An absolute URI that is used to identify this compartment definition 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 compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.
557     */
558    public CompartmentDefinition setUrl(String value) { 
559        if (this.url == null)
560          this.url = new UriType();
561        this.url.setValue(value);
562      return this;
563    }
564
565    /**
566     * @return {@link #version} (The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment definition 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
567     */
568    public StringType getVersionElement() { 
569      if (this.version == null)
570        if (Configuration.errorOnAutoCreate())
571          throw new Error("Attempt to auto-create CompartmentDefinition.version");
572        else if (Configuration.doAutoCreate())
573          this.version = new StringType(); // bb
574      return this.version;
575    }
576
577    public boolean hasVersionElement() { 
578      return this.version != null && !this.version.isEmpty();
579    }
580
581    public boolean hasVersion() { 
582      return this.version != null && !this.version.isEmpty();
583    }
584
585    /**
586     * @param value {@link #version} (The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment definition 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
587     */
588    public CompartmentDefinition setVersionElement(StringType value) { 
589      this.version = value;
590      return this;
591    }
592
593    /**
594     * @return The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment definition 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.
595     */
596    public String getVersion() { 
597      return this.version == null ? null : this.version.getValue();
598    }
599
600    /**
601     * @param value The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment definition 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.
602     */
603    public CompartmentDefinition setVersion(String value) { 
604      if (Utilities.noString(value))
605        this.version = null;
606      else {
607        if (this.version == null)
608          this.version = new StringType();
609        this.version.setValue(value);
610      }
611      return this;
612    }
613
614    /**
615     * @return {@link #name} (A natural language name identifying the compartment definition. 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
616     */
617    public StringType getNameElement() { 
618      if (this.name == null)
619        if (Configuration.errorOnAutoCreate())
620          throw new Error("Attempt to auto-create CompartmentDefinition.name");
621        else if (Configuration.doAutoCreate())
622          this.name = new StringType(); // bb
623      return this.name;
624    }
625
626    public boolean hasNameElement() { 
627      return this.name != null && !this.name.isEmpty();
628    }
629
630    public boolean hasName() { 
631      return this.name != null && !this.name.isEmpty();
632    }
633
634    /**
635     * @param value {@link #name} (A natural language name identifying the compartment definition. 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
636     */
637    public CompartmentDefinition setNameElement(StringType value) { 
638      this.name = value;
639      return this;
640    }
641
642    /**
643     * @return A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.
644     */
645    public String getName() { 
646      return this.name == null ? null : this.name.getValue();
647    }
648
649    /**
650     * @param value A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.
651     */
652    public CompartmentDefinition setName(String value) { 
653        if (this.name == null)
654          this.name = new StringType();
655        this.name.setValue(value);
656      return this;
657    }
658
659    /**
660     * @return {@link #status} (The status of this compartment definition. 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
661     */
662    public Enumeration<PublicationStatus> getStatusElement() { 
663      if (this.status == null)
664        if (Configuration.errorOnAutoCreate())
665          throw new Error("Attempt to auto-create CompartmentDefinition.status");
666        else if (Configuration.doAutoCreate())
667          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
668      return this.status;
669    }
670
671    public boolean hasStatusElement() { 
672      return this.status != null && !this.status.isEmpty();
673    }
674
675    public boolean hasStatus() { 
676      return this.status != null && !this.status.isEmpty();
677    }
678
679    /**
680     * @param value {@link #status} (The status of this compartment definition. 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
681     */
682    public CompartmentDefinition setStatusElement(Enumeration<PublicationStatus> value) { 
683      this.status = value;
684      return this;
685    }
686
687    /**
688     * @return The status of this compartment definition. Enables tracking the life-cycle of the content.
689     */
690    public PublicationStatus getStatus() { 
691      return this.status == null ? null : this.status.getValue();
692    }
693
694    /**
695     * @param value The status of this compartment definition. Enables tracking the life-cycle of the content.
696     */
697    public CompartmentDefinition setStatus(PublicationStatus value) { 
698        if (this.status == null)
699          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
700        this.status.setValue(value);
701      return this;
702    }
703
704    /**
705     * @return {@link #experimental} (A Boolean value to indicate that this compartment definition 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
706     */
707    public BooleanType getExperimentalElement() { 
708      if (this.experimental == null)
709        if (Configuration.errorOnAutoCreate())
710          throw new Error("Attempt to auto-create CompartmentDefinition.experimental");
711        else if (Configuration.doAutoCreate())
712          this.experimental = new BooleanType(); // bb
713      return this.experimental;
714    }
715
716    public boolean hasExperimentalElement() { 
717      return this.experimental != null && !this.experimental.isEmpty();
718    }
719
720    public boolean hasExperimental() { 
721      return this.experimental != null && !this.experimental.isEmpty();
722    }
723
724    /**
725     * @param value {@link #experimental} (A Boolean value to indicate that this compartment definition 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
726     */
727    public CompartmentDefinition setExperimentalElement(BooleanType value) { 
728      this.experimental = value;
729      return this;
730    }
731
732    /**
733     * @return A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
734     */
735    public boolean getExperimental() { 
736      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
737    }
738
739    /**
740     * @param value A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
741     */
742    public CompartmentDefinition setExperimental(boolean value) { 
743        if (this.experimental == null)
744          this.experimental = new BooleanType();
745        this.experimental.setValue(value);
746      return this;
747    }
748
749    /**
750     * @return {@link #date} (The date  (and optionally time) when the compartment definition 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 compartment definition changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
751     */
752    public DateTimeType getDateElement() { 
753      if (this.date == null)
754        if (Configuration.errorOnAutoCreate())
755          throw new Error("Attempt to auto-create CompartmentDefinition.date");
756        else if (Configuration.doAutoCreate())
757          this.date = new DateTimeType(); // bb
758      return this.date;
759    }
760
761    public boolean hasDateElement() { 
762      return this.date != null && !this.date.isEmpty();
763    }
764
765    public boolean hasDate() { 
766      return this.date != null && !this.date.isEmpty();
767    }
768
769    /**
770     * @param value {@link #date} (The date  (and optionally time) when the compartment definition 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 compartment definition changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
771     */
772    public CompartmentDefinition setDateElement(DateTimeType value) { 
773      this.date = value;
774      return this;
775    }
776
777    /**
778     * @return The date  (and optionally time) when the compartment definition 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 compartment definition changes.
779     */
780    public Date getDate() { 
781      return this.date == null ? null : this.date.getValue();
782    }
783
784    /**
785     * @param value The date  (and optionally time) when the compartment definition 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 compartment definition changes.
786     */
787    public CompartmentDefinition setDate(Date value) { 
788      if (value == null)
789        this.date = null;
790      else {
791        if (this.date == null)
792          this.date = new DateTimeType();
793        this.date.setValue(value);
794      }
795      return this;
796    }
797
798    /**
799     * @return {@link #publisher} (The name of the organization or individual that published the compartment definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
800     */
801    public StringType getPublisherElement() { 
802      if (this.publisher == null)
803        if (Configuration.errorOnAutoCreate())
804          throw new Error("Attempt to auto-create CompartmentDefinition.publisher");
805        else if (Configuration.doAutoCreate())
806          this.publisher = new StringType(); // bb
807      return this.publisher;
808    }
809
810    public boolean hasPublisherElement() { 
811      return this.publisher != null && !this.publisher.isEmpty();
812    }
813
814    public boolean hasPublisher() { 
815      return this.publisher != null && !this.publisher.isEmpty();
816    }
817
818    /**
819     * @param value {@link #publisher} (The name of the organization or individual that published the compartment definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
820     */
821    public CompartmentDefinition setPublisherElement(StringType value) { 
822      this.publisher = value;
823      return this;
824    }
825
826    /**
827     * @return The name of the organization or individual that published the compartment definition.
828     */
829    public String getPublisher() { 
830      return this.publisher == null ? null : this.publisher.getValue();
831    }
832
833    /**
834     * @param value The name of the organization or individual that published the compartment definition.
835     */
836    public CompartmentDefinition setPublisher(String value) { 
837      if (Utilities.noString(value))
838        this.publisher = null;
839      else {
840        if (this.publisher == null)
841          this.publisher = new StringType();
842        this.publisher.setValue(value);
843      }
844      return this;
845    }
846
847    /**
848     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
849     */
850    public List<ContactDetail> getContact() { 
851      if (this.contact == null)
852        this.contact = new ArrayList<ContactDetail>();
853      return this.contact;
854    }
855
856    /**
857     * @return Returns a reference to <code>this</code> for easy method chaining
858     */
859    public CompartmentDefinition setContact(List<ContactDetail> theContact) { 
860      this.contact = theContact;
861      return this;
862    }
863
864    public boolean hasContact() { 
865      if (this.contact == null)
866        return false;
867      for (ContactDetail item : this.contact)
868        if (!item.isEmpty())
869          return true;
870      return false;
871    }
872
873    public ContactDetail addContact() { //3
874      ContactDetail t = new ContactDetail();
875      if (this.contact == null)
876        this.contact = new ArrayList<ContactDetail>();
877      this.contact.add(t);
878      return t;
879    }
880
881    public CompartmentDefinition addContact(ContactDetail t) { //3
882      if (t == null)
883        return this;
884      if (this.contact == null)
885        this.contact = new ArrayList<ContactDetail>();
886      this.contact.add(t);
887      return this;
888    }
889
890    /**
891     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
892     */
893    public ContactDetail getContactFirstRep() { 
894      if (getContact().isEmpty()) {
895        addContact();
896      }
897      return getContact().get(0);
898    }
899
900    /**
901     * @return {@link #description} (A free text natural language description of the compartment definition from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
902     */
903    public MarkdownType getDescriptionElement() { 
904      if (this.description == null)
905        if (Configuration.errorOnAutoCreate())
906          throw new Error("Attempt to auto-create CompartmentDefinition.description");
907        else if (Configuration.doAutoCreate())
908          this.description = new MarkdownType(); // bb
909      return this.description;
910    }
911
912    public boolean hasDescriptionElement() { 
913      return this.description != null && !this.description.isEmpty();
914    }
915
916    public boolean hasDescription() { 
917      return this.description != null && !this.description.isEmpty();
918    }
919
920    /**
921     * @param value {@link #description} (A free text natural language description of the compartment definition from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
922     */
923    public CompartmentDefinition setDescriptionElement(MarkdownType value) { 
924      this.description = value;
925      return this;
926    }
927
928    /**
929     * @return A free text natural language description of the compartment definition from a consumer's perspective.
930     */
931    public String getDescription() { 
932      return this.description == null ? null : this.description.getValue();
933    }
934
935    /**
936     * @param value A free text natural language description of the compartment definition from a consumer's perspective.
937     */
938    public CompartmentDefinition setDescription(String value) { 
939      if (value == null)
940        this.description = null;
941      else {
942        if (this.description == null)
943          this.description = new MarkdownType();
944        this.description.setValue(value);
945      }
946      return this;
947    }
948
949    /**
950     * @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 compartment definition instances.)
951     */
952    public List<UsageContext> getUseContext() { 
953      if (this.useContext == null)
954        this.useContext = new ArrayList<UsageContext>();
955      return this.useContext;
956    }
957
958    /**
959     * @return Returns a reference to <code>this</code> for easy method chaining
960     */
961    public CompartmentDefinition setUseContext(List<UsageContext> theUseContext) { 
962      this.useContext = theUseContext;
963      return this;
964    }
965
966    public boolean hasUseContext() { 
967      if (this.useContext == null)
968        return false;
969      for (UsageContext item : this.useContext)
970        if (!item.isEmpty())
971          return true;
972      return false;
973    }
974
975    public UsageContext addUseContext() { //3
976      UsageContext t = new UsageContext();
977      if (this.useContext == null)
978        this.useContext = new ArrayList<UsageContext>();
979      this.useContext.add(t);
980      return t;
981    }
982
983    public CompartmentDefinition addUseContext(UsageContext t) { //3
984      if (t == null)
985        return this;
986      if (this.useContext == null)
987        this.useContext = new ArrayList<UsageContext>();
988      this.useContext.add(t);
989      return this;
990    }
991
992    /**
993     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
994     */
995    public UsageContext getUseContextFirstRep() { 
996      if (getUseContext().isEmpty()) {
997        addUseContext();
998      }
999      return getUseContext().get(0);
1000    }
1001
1002    /**
1003     * @return {@link #purpose} (Explanation of why this compartment definition is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
1004     */
1005    public MarkdownType getPurposeElement() { 
1006      if (this.purpose == null)
1007        if (Configuration.errorOnAutoCreate())
1008          throw new Error("Attempt to auto-create CompartmentDefinition.purpose");
1009        else if (Configuration.doAutoCreate())
1010          this.purpose = new MarkdownType(); // bb
1011      return this.purpose;
1012    }
1013
1014    public boolean hasPurposeElement() { 
1015      return this.purpose != null && !this.purpose.isEmpty();
1016    }
1017
1018    public boolean hasPurpose() { 
1019      return this.purpose != null && !this.purpose.isEmpty();
1020    }
1021
1022    /**
1023     * @param value {@link #purpose} (Explanation of why this compartment definition is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
1024     */
1025    public CompartmentDefinition setPurposeElement(MarkdownType value) { 
1026      this.purpose = value;
1027      return this;
1028    }
1029
1030    /**
1031     * @return Explanation of why this compartment definition is needed and why it has been designed as it has.
1032     */
1033    public String getPurpose() { 
1034      return this.purpose == null ? null : this.purpose.getValue();
1035    }
1036
1037    /**
1038     * @param value Explanation of why this compartment definition is needed and why it has been designed as it has.
1039     */
1040    public CompartmentDefinition setPurpose(String value) { 
1041      if (value == null)
1042        this.purpose = null;
1043      else {
1044        if (this.purpose == null)
1045          this.purpose = new MarkdownType();
1046        this.purpose.setValue(value);
1047      }
1048      return this;
1049    }
1050
1051    /**
1052     * @return {@link #code} (Which compartment this definition describes.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
1053     */
1054    public Enumeration<CompartmentType> getCodeElement() { 
1055      if (this.code == null)
1056        if (Configuration.errorOnAutoCreate())
1057          throw new Error("Attempt to auto-create CompartmentDefinition.code");
1058        else if (Configuration.doAutoCreate())
1059          this.code = new Enumeration<CompartmentType>(new CompartmentTypeEnumFactory()); // bb
1060      return this.code;
1061    }
1062
1063    public boolean hasCodeElement() { 
1064      return this.code != null && !this.code.isEmpty();
1065    }
1066
1067    public boolean hasCode() { 
1068      return this.code != null && !this.code.isEmpty();
1069    }
1070
1071    /**
1072     * @param value {@link #code} (Which compartment this definition describes.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value
1073     */
1074    public CompartmentDefinition setCodeElement(Enumeration<CompartmentType> value) { 
1075      this.code = value;
1076      return this;
1077    }
1078
1079    /**
1080     * @return Which compartment this definition describes.
1081     */
1082    public CompartmentType getCode() { 
1083      return this.code == null ? null : this.code.getValue();
1084    }
1085
1086    /**
1087     * @param value Which compartment this definition describes.
1088     */
1089    public CompartmentDefinition setCode(CompartmentType value) { 
1090        if (this.code == null)
1091          this.code = new Enumeration<CompartmentType>(new CompartmentTypeEnumFactory());
1092        this.code.setValue(value);
1093      return this;
1094    }
1095
1096    /**
1097     * @return {@link #search} (Whether the search syntax is supported,.). This is the underlying object with id, value and extensions. The accessor "getSearch" gives direct access to the value
1098     */
1099    public BooleanType getSearchElement() { 
1100      if (this.search == null)
1101        if (Configuration.errorOnAutoCreate())
1102          throw new Error("Attempt to auto-create CompartmentDefinition.search");
1103        else if (Configuration.doAutoCreate())
1104          this.search = new BooleanType(); // bb
1105      return this.search;
1106    }
1107
1108    public boolean hasSearchElement() { 
1109      return this.search != null && !this.search.isEmpty();
1110    }
1111
1112    public boolean hasSearch() { 
1113      return this.search != null && !this.search.isEmpty();
1114    }
1115
1116    /**
1117     * @param value {@link #search} (Whether the search syntax is supported,.). This is the underlying object with id, value and extensions. The accessor "getSearch" gives direct access to the value
1118     */
1119    public CompartmentDefinition setSearchElement(BooleanType value) { 
1120      this.search = value;
1121      return this;
1122    }
1123
1124    /**
1125     * @return Whether the search syntax is supported,.
1126     */
1127    public boolean getSearch() { 
1128      return this.search == null || this.search.isEmpty() ? false : this.search.getValue();
1129    }
1130
1131    /**
1132     * @param value Whether the search syntax is supported,.
1133     */
1134    public CompartmentDefinition setSearch(boolean value) { 
1135        if (this.search == null)
1136          this.search = new BooleanType();
1137        this.search.setValue(value);
1138      return this;
1139    }
1140
1141    /**
1142     * @return {@link #resource} (Information about how a resource is related to the compartment.)
1143     */
1144    public List<CompartmentDefinitionResourceComponent> getResource() { 
1145      if (this.resource == null)
1146        this.resource = new ArrayList<CompartmentDefinitionResourceComponent>();
1147      return this.resource;
1148    }
1149
1150    /**
1151     * @return Returns a reference to <code>this</code> for easy method chaining
1152     */
1153    public CompartmentDefinition setResource(List<CompartmentDefinitionResourceComponent> theResource) { 
1154      this.resource = theResource;
1155      return this;
1156    }
1157
1158    public boolean hasResource() { 
1159      if (this.resource == null)
1160        return false;
1161      for (CompartmentDefinitionResourceComponent item : this.resource)
1162        if (!item.isEmpty())
1163          return true;
1164      return false;
1165    }
1166
1167    public CompartmentDefinitionResourceComponent addResource() { //3
1168      CompartmentDefinitionResourceComponent t = new CompartmentDefinitionResourceComponent();
1169      if (this.resource == null)
1170        this.resource = new ArrayList<CompartmentDefinitionResourceComponent>();
1171      this.resource.add(t);
1172      return t;
1173    }
1174
1175    public CompartmentDefinition addResource(CompartmentDefinitionResourceComponent t) { //3
1176      if (t == null)
1177        return this;
1178      if (this.resource == null)
1179        this.resource = new ArrayList<CompartmentDefinitionResourceComponent>();
1180      this.resource.add(t);
1181      return this;
1182    }
1183
1184    /**
1185     * @return The first repetition of repeating field {@link #resource}, creating it if it does not already exist {3}
1186     */
1187    public CompartmentDefinitionResourceComponent getResourceFirstRep() { 
1188      if (getResource().isEmpty()) {
1189        addResource();
1190      }
1191      return getResource().get(0);
1192    }
1193
1194    /**
1195     * not supported on this implementation
1196     */
1197    @Override
1198    public int getIdentifierMax() { 
1199      return 0;
1200    }
1201    /**
1202     * @return {@link #identifier} (A formal identifier that is used to identify this compartment definition when it is represented in other formats, or referenced in a specification, model, design or an instance.)
1203     */
1204    public List<Identifier> getIdentifier() { 
1205      return new ArrayList<>();
1206    }
1207    /**
1208     * @return Returns a reference to <code>this</code> for easy method chaining
1209     */
1210    public CompartmentDefinition setIdentifier(List<Identifier> theIdentifier) { 
1211      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"identifier\"");
1212    }
1213    public boolean hasIdentifier() { 
1214      return false;
1215    }
1216
1217    public Identifier addIdentifier() { //3
1218      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"identifier\"");
1219    }
1220    public CompartmentDefinition addIdentifier(Identifier t) { //3
1221      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"identifier\"");
1222    }
1223    /**
1224     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {2}
1225     */
1226    public Identifier getIdentifierFirstRep() { 
1227      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"identifier\"");
1228    }
1229    /**
1230     * not supported on this implementation
1231     */
1232    @Override
1233    public int getTitleMax() { 
1234      return 0;
1235    }
1236    /**
1237     * @return {@link #title} (A short, descriptive, user-friendly title for the compartment definition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
1238     */
1239    public StringType getTitleElement() { 
1240      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"title\"");
1241    }
1242
1243    public boolean hasTitleElement() { 
1244      return false;
1245    }
1246    public boolean hasTitle() {
1247      return false;
1248    }
1249
1250    /**
1251     * @param value {@link #title} (A short, descriptive, user-friendly title for the compartment definition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
1252     */
1253    public CompartmentDefinition setTitleElement(StringType value) { 
1254      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"title\"");
1255    }
1256    public String getTitle() { 
1257      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"title\"");
1258    }
1259    /**
1260     * @param value A short, descriptive, user-friendly title for the compartment definition.
1261     */
1262    public CompartmentDefinition setTitle(String value) { 
1263      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"title\"");
1264    }
1265    /**
1266     * not supported on this implementation
1267     */
1268    @Override
1269    public int getJurisdictionMax() { 
1270      return 0;
1271    }
1272    /**
1273     * @return {@link #jurisdiction} (A legal or geographic region in which the compartment definition is intended to be used.)
1274     */
1275    public List<CodeableConcept> getJurisdiction() { 
1276      return new ArrayList<>();
1277    }
1278    /**
1279     * @return Returns a reference to <code>this</code> for easy method chaining
1280     */
1281    public CompartmentDefinition setJurisdiction(List<CodeableConcept> theJurisdiction) { 
1282      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"jurisdiction\"");
1283    }
1284    public boolean hasJurisdiction() { 
1285      return false;
1286    }
1287
1288    public CodeableConcept addJurisdiction() { //3
1289      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"jurisdiction\"");
1290    }
1291    public CompartmentDefinition addJurisdiction(CodeableConcept t) { //3
1292      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"jurisdiction\"");
1293    }
1294    /**
1295     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {2}
1296     */
1297    public CodeableConcept getJurisdictionFirstRep() { 
1298      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"jurisdiction\"");
1299    }
1300    /**
1301     * not supported on this implementation
1302     */
1303    @Override
1304    public int getCopyrightMax() { 
1305      return 0;
1306    }
1307    /**
1308     * @return {@link #copyright} (A copyright statement relating to the compartment definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the compartment definition.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
1309     */
1310    public MarkdownType getCopyrightElement() { 
1311      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"copyright\"");
1312    }
1313
1314    public boolean hasCopyrightElement() { 
1315      return false;
1316    }
1317    public boolean hasCopyright() {
1318      return false;
1319    }
1320
1321    /**
1322     * @param value {@link #copyright} (A copyright statement relating to the compartment definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the compartment definition.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
1323     */
1324    public CompartmentDefinition setCopyrightElement(MarkdownType value) { 
1325      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"copyright\"");
1326    }
1327    public String getCopyright() { 
1328      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"copyright\"");
1329    }
1330    /**
1331     * @param value A copyright statement relating to the compartment definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the compartment definition.
1332     */
1333    public CompartmentDefinition setCopyright(String value) { 
1334      throw new Error("The resource type \"CompartmentDefinition\" does not implement the property \"copyright\"");
1335    }
1336      protected void listChildren(List<Property> children) {
1337        super.listChildren(children);
1338        children.add(new Property("url", "uri", "An absolute URI that is used to identify this compartment definition 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 compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.", 0, 1, url));
1339        children.add(new Property("version", "string", "The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment definition 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));
1340        children.add(new Property("name", "string", "A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
1341        children.add(new Property("status", "code", "The status of this compartment definition. Enables tracking the life-cycle of the content.", 0, 1, status));
1342        children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental));
1343        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the compartment definition 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 compartment definition changes.", 0, 1, date));
1344        children.add(new Property("publisher", "string", "The name of the organization or individual that published the compartment definition.", 0, 1, publisher));
1345        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));
1346        children.add(new Property("description", "markdown", "A free text natural language description of the compartment definition from a consumer's perspective.", 0, 1, description));
1347        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 compartment definition instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
1348        children.add(new Property("purpose", "markdown", "Explanation of why this compartment definition is needed and why it has been designed as it has.", 0, 1, purpose));
1349        children.add(new Property("code", "code", "Which compartment this definition describes.", 0, 1, code));
1350        children.add(new Property("search", "boolean", "Whether the search syntax is supported,.", 0, 1, search));
1351        children.add(new Property("resource", "", "Information about how a resource is related to the compartment.", 0, java.lang.Integer.MAX_VALUE, resource));
1352      }
1353
1354      @Override
1355      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1356        switch (_hash) {
1357        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this compartment definition 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 compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers.", 0, 1, url);
1358        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment definition 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);
1359        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
1360        case -892481550: /*status*/  return new Property("status", "code", "The status of this compartment definition. Enables tracking the life-cycle of the content.", 0, 1, status);
1361        case -404562712: /*experimental*/  return new Property("experimental", "boolean", "A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental);
1362        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the compartment definition 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 compartment definition changes.", 0, 1, date);
1363        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual that published the compartment definition.", 0, 1, publisher);
1364        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);
1365        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the compartment definition from a consumer's perspective.", 0, 1, description);
1366        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 compartment definition instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
1367        case -220463842: /*purpose*/  return new Property("purpose", "markdown", "Explanation of why this compartment definition is needed and why it has been designed as it has.", 0, 1, purpose);
1368        case 3059181: /*code*/  return new Property("code", "code", "Which compartment this definition describes.", 0, 1, code);
1369        case -906336856: /*search*/  return new Property("search", "boolean", "Whether the search syntax is supported,.", 0, 1, search);
1370        case -341064690: /*resource*/  return new Property("resource", "", "Information about how a resource is related to the compartment.", 0, java.lang.Integer.MAX_VALUE, resource);
1371        default: return super.getNamedProperty(_hash, _name, _checkValid);
1372        }
1373
1374      }
1375
1376      @Override
1377      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1378        switch (hash) {
1379        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
1380        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
1381        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
1382        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
1383        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
1384        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
1385        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
1386        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
1387        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
1388        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
1389        case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType
1390        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // Enumeration<CompartmentType>
1391        case -906336856: /*search*/ return this.search == null ? new Base[0] : new Base[] {this.search}; // BooleanType
1392        case -341064690: /*resource*/ return this.resource == null ? new Base[0] : this.resource.toArray(new Base[this.resource.size()]); // CompartmentDefinitionResourceComponent
1393        default: return super.getProperty(hash, name, checkValid);
1394        }
1395
1396      }
1397
1398      @Override
1399      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1400        switch (hash) {
1401        case 116079: // url
1402          this.url = TypeConvertor.castToUri(value); // UriType
1403          return value;
1404        case 351608024: // version
1405          this.version = TypeConvertor.castToString(value); // StringType
1406          return value;
1407        case 3373707: // name
1408          this.name = TypeConvertor.castToString(value); // StringType
1409          return value;
1410        case -892481550: // status
1411          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1412          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
1413          return value;
1414        case -404562712: // experimental
1415          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
1416          return value;
1417        case 3076014: // date
1418          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
1419          return value;
1420        case 1447404028: // publisher
1421          this.publisher = TypeConvertor.castToString(value); // StringType
1422          return value;
1423        case 951526432: // contact
1424          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
1425          return value;
1426        case -1724546052: // description
1427          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1428          return value;
1429        case -669707736: // useContext
1430          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
1431          return value;
1432        case -220463842: // purpose
1433          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
1434          return value;
1435        case 3059181: // code
1436          value = new CompartmentTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1437          this.code = (Enumeration) value; // Enumeration<CompartmentType>
1438          return value;
1439        case -906336856: // search
1440          this.search = TypeConvertor.castToBoolean(value); // BooleanType
1441          return value;
1442        case -341064690: // resource
1443          this.getResource().add((CompartmentDefinitionResourceComponent) value); // CompartmentDefinitionResourceComponent
1444          return value;
1445        default: return super.setProperty(hash, name, value);
1446        }
1447
1448      }
1449
1450      @Override
1451      public Base setProperty(String name, Base value) throws FHIRException {
1452        if (name.equals("url")) {
1453          this.url = TypeConvertor.castToUri(value); // UriType
1454        } else if (name.equals("version")) {
1455          this.version = TypeConvertor.castToString(value); // StringType
1456        } else if (name.equals("name")) {
1457          this.name = TypeConvertor.castToString(value); // StringType
1458        } else if (name.equals("status")) {
1459          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
1460          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
1461        } else if (name.equals("experimental")) {
1462          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
1463        } else if (name.equals("date")) {
1464          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
1465        } else if (name.equals("publisher")) {
1466          this.publisher = TypeConvertor.castToString(value); // StringType
1467        } else if (name.equals("contact")) {
1468          this.getContact().add(TypeConvertor.castToContactDetail(value));
1469        } else if (name.equals("description")) {
1470          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1471        } else if (name.equals("useContext")) {
1472          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
1473        } else if (name.equals("purpose")) {
1474          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
1475        } else if (name.equals("code")) {
1476          value = new CompartmentTypeEnumFactory().fromType(TypeConvertor.castToCode(value));
1477          this.code = (Enumeration) value; // Enumeration<CompartmentType>
1478        } else if (name.equals("search")) {
1479          this.search = TypeConvertor.castToBoolean(value); // BooleanType
1480        } else if (name.equals("resource")) {
1481          this.getResource().add((CompartmentDefinitionResourceComponent) value);
1482        } else
1483          return super.setProperty(name, value);
1484        return value;
1485      }
1486
1487      @Override
1488      public Base makeProperty(int hash, String name) throws FHIRException {
1489        switch (hash) {
1490        case 116079:  return getUrlElement();
1491        case 351608024:  return getVersionElement();
1492        case 3373707:  return getNameElement();
1493        case -892481550:  return getStatusElement();
1494        case -404562712:  return getExperimentalElement();
1495        case 3076014:  return getDateElement();
1496        case 1447404028:  return getPublisherElement();
1497        case 951526432:  return addContact(); 
1498        case -1724546052:  return getDescriptionElement();
1499        case -669707736:  return addUseContext(); 
1500        case -220463842:  return getPurposeElement();
1501        case 3059181:  return getCodeElement();
1502        case -906336856:  return getSearchElement();
1503        case -341064690:  return addResource(); 
1504        default: return super.makeProperty(hash, name);
1505        }
1506
1507      }
1508
1509      @Override
1510      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1511        switch (hash) {
1512        case 116079: /*url*/ return new String[] {"uri"};
1513        case 351608024: /*version*/ return new String[] {"string"};
1514        case 3373707: /*name*/ return new String[] {"string"};
1515        case -892481550: /*status*/ return new String[] {"code"};
1516        case -404562712: /*experimental*/ return new String[] {"boolean"};
1517        case 3076014: /*date*/ return new String[] {"dateTime"};
1518        case 1447404028: /*publisher*/ return new String[] {"string"};
1519        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
1520        case -1724546052: /*description*/ return new String[] {"markdown"};
1521        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
1522        case -220463842: /*purpose*/ return new String[] {"markdown"};
1523        case 3059181: /*code*/ return new String[] {"code"};
1524        case -906336856: /*search*/ return new String[] {"boolean"};
1525        case -341064690: /*resource*/ return new String[] {};
1526        default: return super.getTypesForProperty(hash, name);
1527        }
1528
1529      }
1530
1531      @Override
1532      public Base addChild(String name) throws FHIRException {
1533        if (name.equals("url")) {
1534          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.url");
1535        }
1536        else if (name.equals("version")) {
1537          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.version");
1538        }
1539        else if (name.equals("name")) {
1540          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.name");
1541        }
1542        else if (name.equals("status")) {
1543          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.status");
1544        }
1545        else if (name.equals("experimental")) {
1546          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.experimental");
1547        }
1548        else if (name.equals("date")) {
1549          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.date");
1550        }
1551        else if (name.equals("publisher")) {
1552          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.publisher");
1553        }
1554        else if (name.equals("contact")) {
1555          return addContact();
1556        }
1557        else if (name.equals("description")) {
1558          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.description");
1559        }
1560        else if (name.equals("useContext")) {
1561          return addUseContext();
1562        }
1563        else if (name.equals("purpose")) {
1564          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.purpose");
1565        }
1566        else if (name.equals("code")) {
1567          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.code");
1568        }
1569        else if (name.equals("search")) {
1570          throw new FHIRException("Cannot call addChild on a primitive type CompartmentDefinition.search");
1571        }
1572        else if (name.equals("resource")) {
1573          return addResource();
1574        }
1575        else
1576          return super.addChild(name);
1577      }
1578
1579  public String fhirType() {
1580    return "CompartmentDefinition";
1581
1582  }
1583
1584      public CompartmentDefinition copy() {
1585        CompartmentDefinition dst = new CompartmentDefinition();
1586        copyValues(dst);
1587        return dst;
1588      }
1589
1590      public void copyValues(CompartmentDefinition dst) {
1591        super.copyValues(dst);
1592        dst.url = url == null ? null : url.copy();
1593        dst.version = version == null ? null : version.copy();
1594        dst.name = name == null ? null : name.copy();
1595        dst.status = status == null ? null : status.copy();
1596        dst.experimental = experimental == null ? null : experimental.copy();
1597        dst.date = date == null ? null : date.copy();
1598        dst.publisher = publisher == null ? null : publisher.copy();
1599        if (contact != null) {
1600          dst.contact = new ArrayList<ContactDetail>();
1601          for (ContactDetail i : contact)
1602            dst.contact.add(i.copy());
1603        };
1604        dst.description = description == null ? null : description.copy();
1605        if (useContext != null) {
1606          dst.useContext = new ArrayList<UsageContext>();
1607          for (UsageContext i : useContext)
1608            dst.useContext.add(i.copy());
1609        };
1610        dst.purpose = purpose == null ? null : purpose.copy();
1611        dst.code = code == null ? null : code.copy();
1612        dst.search = search == null ? null : search.copy();
1613        if (resource != null) {
1614          dst.resource = new ArrayList<CompartmentDefinitionResourceComponent>();
1615          for (CompartmentDefinitionResourceComponent i : resource)
1616            dst.resource.add(i.copy());
1617        };
1618      }
1619
1620      protected CompartmentDefinition typedCopy() {
1621        return copy();
1622      }
1623
1624      @Override
1625      public boolean equalsDeep(Base other_) {
1626        if (!super.equalsDeep(other_))
1627          return false;
1628        if (!(other_ instanceof CompartmentDefinition))
1629          return false;
1630        CompartmentDefinition o = (CompartmentDefinition) other_;
1631        return compareDeep(url, o.url, true) && compareDeep(version, o.version, true) && compareDeep(name, o.name, true)
1632           && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true) && compareDeep(date, o.date, true)
1633           && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true) && compareDeep(description, o.description, true)
1634           && compareDeep(useContext, o.useContext, true) && compareDeep(purpose, o.purpose, true) && compareDeep(code, o.code, true)
1635           && compareDeep(search, o.search, true) && compareDeep(resource, o.resource, true);
1636      }
1637
1638      @Override
1639      public boolean equalsShallow(Base other_) {
1640        if (!super.equalsShallow(other_))
1641          return false;
1642        if (!(other_ instanceof CompartmentDefinition))
1643          return false;
1644        CompartmentDefinition o = (CompartmentDefinition) other_;
1645        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
1646           && compareValues(status, o.status, true) && compareValues(experimental, o.experimental, true) && compareValues(date, o.date, true)
1647           && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true) && compareValues(purpose, o.purpose, true)
1648           && compareValues(code, o.code, true) && compareValues(search, o.search, true);
1649      }
1650
1651      public boolean isEmpty() {
1652        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, version, name, status
1653          , experimental, date, publisher, contact, description, useContext, purpose, code
1654          , search, resource);
1655      }
1656
1657  @Override
1658  public ResourceType getResourceType() {
1659    return ResourceType.CompartmentDefinition;
1660   }
1661
1662 /**
1663   * Search parameter: <b>code</b>
1664   * <p>
1665   * Description: <b>Patient | Encounter | RelatedPerson | Practitioner | Device</b><br>
1666   * Type: <b>token</b><br>
1667   * Path: <b>CompartmentDefinition.code</b><br>
1668   * </p>
1669   */
1670  @SearchParamDefinition(name="code", path="CompartmentDefinition.code", description="Patient | Encounter | RelatedPerson | Practitioner | Device", type="token" )
1671  public static final String SP_CODE = "code";
1672 /**
1673   * <b>Fluent Client</b> search parameter constant for <b>code</b>
1674   * <p>
1675   * Description: <b>Patient | Encounter | RelatedPerson | Practitioner | Device</b><br>
1676   * Type: <b>token</b><br>
1677   * Path: <b>CompartmentDefinition.code</b><br>
1678   * </p>
1679   */
1680  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
1681
1682 /**
1683   * Search parameter: <b>resource</b>
1684   * <p>
1685   * Description: <b>Name of resource type</b><br>
1686   * Type: <b>token</b><br>
1687   * Path: <b>CompartmentDefinition.resource.code</b><br>
1688   * </p>
1689   */
1690  @SearchParamDefinition(name="resource", path="CompartmentDefinition.resource.code", description="Name of resource type", type="token" )
1691  public static final String SP_RESOURCE = "resource";
1692 /**
1693   * <b>Fluent Client</b> search parameter constant for <b>resource</b>
1694   * <p>
1695   * Description: <b>Name of resource type</b><br>
1696   * Type: <b>token</b><br>
1697   * Path: <b>CompartmentDefinition.resource.code</b><br>
1698   * </p>
1699   */
1700  public static final ca.uhn.fhir.rest.gclient.TokenClientParam RESOURCE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_RESOURCE);
1701
1702 /**
1703   * Search parameter: <b>context-quantity</b>
1704   * <p>
1705   * Description: <b>Multiple Resources: 
1706
1707* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
1708* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
1709* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
1710* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
1711* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
1712* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
1713* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
1714* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
1715* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
1716* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
1717* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
1718* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
1719* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
1720* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
1721</b><br>
1722   * Type: <b>quantity</b><br>
1723   * 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>
1724   * </p>
1725   */
1726  @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" )
1727  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
1728 /**
1729   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
1730   * <p>
1731   * Description: <b>Multiple Resources: 
1732
1733* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
1734* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
1735* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
1736* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
1737* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
1738* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
1739* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
1740* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
1741* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
1742* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
1743* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
1744* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
1745* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
1746* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
1747</b><br>
1748   * Type: <b>quantity</b><br>
1749   * 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>
1750   * </p>
1751   */
1752  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
1753
1754 /**
1755   * Search parameter: <b>context-type-quantity</b>
1756   * <p>
1757   * Description: <b>Multiple Resources: 
1758
1759* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
1760* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
1761* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
1762* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
1763* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
1764* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
1765* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
1766* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
1767* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
1768* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
1769* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
1770* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
1771* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
1772* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
1773</b><br>
1774   * Type: <b>composite</b><br>
1775   * 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>
1776   * </p>
1777   */
1778  @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"} )
1779  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
1780 /**
1781   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
1782   * <p>
1783   * Description: <b>Multiple Resources: 
1784
1785* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
1786* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
1787* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
1788* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
1789* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
1790* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
1791* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
1792* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
1793* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
1794* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
1795* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
1796* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
1797* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
1798* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
1799</b><br>
1800   * Type: <b>composite</b><br>
1801   * 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>
1802   * </p>
1803   */
1804  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);
1805
1806 /**
1807   * Search parameter: <b>context-type-value</b>
1808   * <p>
1809   * Description: <b>Multiple Resources: 
1810
1811* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
1812* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
1813* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
1814* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
1815* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
1816* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
1817* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
1818* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
1819* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
1820* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
1821* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
1822* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
1823* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
1824* [ValueSet](valueset.html): A use context type and value assigned to the value set
1825</b><br>
1826   * Type: <b>composite</b><br>
1827   * 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>
1828   * </p>
1829   */
1830  @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"} )
1831  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
1832 /**
1833   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
1834   * <p>
1835   * Description: <b>Multiple Resources: 
1836
1837* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
1838* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
1839* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
1840* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
1841* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
1842* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
1843* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
1844* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
1845* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
1846* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
1847* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
1848* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
1849* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
1850* [ValueSet](valueset.html): A use context type and value assigned to the value set
1851</b><br>
1852   * Type: <b>composite</b><br>
1853   * 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>
1854   * </p>
1855   */
1856  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);
1857
1858 /**
1859   * Search parameter: <b>context-type</b>
1860   * <p>
1861   * Description: <b>Multiple Resources: 
1862
1863* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
1864* [CodeSystem](codesystem.html): A type of use context assigned to the code system
1865* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
1866* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
1867* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
1868* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
1869* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
1870* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
1871* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
1872* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
1873* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
1874* [StructureMap](structuremap.html): A type of use context assigned to the structure map
1875* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
1876* [ValueSet](valueset.html): A type of use context assigned to the value set
1877</b><br>
1878   * Type: <b>token</b><br>
1879   * 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>
1880   * </p>
1881   */
1882  @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" )
1883  public static final String SP_CONTEXT_TYPE = "context-type";
1884 /**
1885   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
1886   * <p>
1887   * Description: <b>Multiple Resources: 
1888
1889* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
1890* [CodeSystem](codesystem.html): A type of use context assigned to the code system
1891* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
1892* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
1893* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
1894* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
1895* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
1896* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
1897* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
1898* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
1899* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
1900* [StructureMap](structuremap.html): A type of use context assigned to the structure map
1901* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
1902* [ValueSet](valueset.html): A type of use context assigned to the value set
1903</b><br>
1904   * Type: <b>token</b><br>
1905   * 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>
1906   * </p>
1907   */
1908  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
1909
1910 /**
1911   * Search parameter: <b>context</b>
1912   * <p>
1913   * Description: <b>Multiple Resources: 
1914
1915* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
1916* [CodeSystem](codesystem.html): A use context assigned to the code system
1917* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
1918* [ConceptMap](conceptmap.html): A use context assigned to the concept map
1919* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
1920* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
1921* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
1922* [NamingSystem](namingsystem.html): A use context assigned to the naming system
1923* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
1924* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
1925* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
1926* [StructureMap](structuremap.html): A use context assigned to the structure map
1927* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
1928* [ValueSet](valueset.html): A use context assigned to the value set
1929</b><br>
1930   * Type: <b>token</b><br>
1931   * 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>
1932   * </p>
1933   */
1934  @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" )
1935  public static final String SP_CONTEXT = "context";
1936 /**
1937   * <b>Fluent Client</b> search parameter constant for <b>context</b>
1938   * <p>
1939   * Description: <b>Multiple Resources: 
1940
1941* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
1942* [CodeSystem](codesystem.html): A use context assigned to the code system
1943* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
1944* [ConceptMap](conceptmap.html): A use context assigned to the concept map
1945* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
1946* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
1947* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
1948* [NamingSystem](namingsystem.html): A use context assigned to the naming system
1949* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
1950* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
1951* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
1952* [StructureMap](structuremap.html): A use context assigned to the structure map
1953* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
1954* [ValueSet](valueset.html): A use context assigned to the value set
1955</b><br>
1956   * Type: <b>token</b><br>
1957   * 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>
1958   * </p>
1959   */
1960  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
1961
1962 /**
1963   * Search parameter: <b>date</b>
1964   * <p>
1965   * Description: <b>Multiple Resources: 
1966
1967* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
1968* [CodeSystem](codesystem.html): The code system publication date
1969* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
1970* [ConceptMap](conceptmap.html): The concept map publication date
1971* [GraphDefinition](graphdefinition.html): The graph definition publication date
1972* [ImplementationGuide](implementationguide.html): The implementation guide publication date
1973* [MessageDefinition](messagedefinition.html): The message definition publication date
1974* [NamingSystem](namingsystem.html): The naming system publication date
1975* [OperationDefinition](operationdefinition.html): The operation definition publication date
1976* [SearchParameter](searchparameter.html): The search parameter publication date
1977* [StructureDefinition](structuredefinition.html): The structure definition publication date
1978* [StructureMap](structuremap.html): The structure map publication date
1979* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
1980* [ValueSet](valueset.html): The value set publication date
1981</b><br>
1982   * Type: <b>date</b><br>
1983   * 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>
1984   * </p>
1985   */
1986  @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" )
1987  public static final String SP_DATE = "date";
1988 /**
1989   * <b>Fluent Client</b> search parameter constant for <b>date</b>
1990   * <p>
1991   * Description: <b>Multiple Resources: 
1992
1993* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
1994* [CodeSystem](codesystem.html): The code system publication date
1995* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
1996* [ConceptMap](conceptmap.html): The concept map publication date
1997* [GraphDefinition](graphdefinition.html): The graph definition publication date
1998* [ImplementationGuide](implementationguide.html): The implementation guide publication date
1999* [MessageDefinition](messagedefinition.html): The message definition publication date
2000* [NamingSystem](namingsystem.html): The naming system publication date
2001* [OperationDefinition](operationdefinition.html): The operation definition publication date
2002* [SearchParameter](searchparameter.html): The search parameter publication date
2003* [StructureDefinition](structuredefinition.html): The structure definition publication date
2004* [StructureMap](structuremap.html): The structure map publication date
2005* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
2006* [ValueSet](valueset.html): The value set publication date
2007</b><br>
2008   * Type: <b>date</b><br>
2009   * 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>
2010   * </p>
2011   */
2012  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
2013
2014 /**
2015   * Search parameter: <b>description</b>
2016   * <p>
2017   * Description: <b>Multiple Resources: 
2018
2019* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
2020* [CodeSystem](codesystem.html): The description of the code system
2021* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
2022* [ConceptMap](conceptmap.html): The description of the concept map
2023* [GraphDefinition](graphdefinition.html): The description of the graph definition
2024* [ImplementationGuide](implementationguide.html): The description of the implementation guide
2025* [MessageDefinition](messagedefinition.html): The description of the message definition
2026* [NamingSystem](namingsystem.html): The description of the naming system
2027* [OperationDefinition](operationdefinition.html): The description of the operation definition
2028* [SearchParameter](searchparameter.html): The description of the search parameter
2029* [StructureDefinition](structuredefinition.html): The description of the structure definition
2030* [StructureMap](structuremap.html): The description of the structure map
2031* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
2032* [ValueSet](valueset.html): The description of the value set
2033</b><br>
2034   * Type: <b>string</b><br>
2035   * 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>
2036   * </p>
2037   */
2038  @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" )
2039  public static final String SP_DESCRIPTION = "description";
2040 /**
2041   * <b>Fluent Client</b> search parameter constant for <b>description</b>
2042   * <p>
2043   * Description: <b>Multiple Resources: 
2044
2045* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
2046* [CodeSystem](codesystem.html): The description of the code system
2047* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
2048* [ConceptMap](conceptmap.html): The description of the concept map
2049* [GraphDefinition](graphdefinition.html): The description of the graph definition
2050* [ImplementationGuide](implementationguide.html): The description of the implementation guide
2051* [MessageDefinition](messagedefinition.html): The description of the message definition
2052* [NamingSystem](namingsystem.html): The description of the naming system
2053* [OperationDefinition](operationdefinition.html): The description of the operation definition
2054* [SearchParameter](searchparameter.html): The description of the search parameter
2055* [StructureDefinition](structuredefinition.html): The description of the structure definition
2056* [StructureMap](structuremap.html): The description of the structure map
2057* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
2058* [ValueSet](valueset.html): The description of the value set
2059</b><br>
2060   * Type: <b>string</b><br>
2061   * 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>
2062   * </p>
2063   */
2064  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
2065
2066 /**
2067   * Search parameter: <b>name</b>
2068   * <p>
2069   * Description: <b>Multiple Resources: 
2070
2071* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
2072* [CodeSystem](codesystem.html): Computationally friendly name of the code system
2073* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
2074* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
2075* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
2076* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
2077* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
2078* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
2079* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
2080* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
2081* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
2082* [StructureMap](structuremap.html): Computationally friendly name of the structure map
2083* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
2084* [ValueSet](valueset.html): Computationally friendly name of the value set
2085</b><br>
2086   * Type: <b>string</b><br>
2087   * 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>
2088   * </p>
2089   */
2090  @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" )
2091  public static final String SP_NAME = "name";
2092 /**
2093   * <b>Fluent Client</b> search parameter constant for <b>name</b>
2094   * <p>
2095   * Description: <b>Multiple Resources: 
2096
2097* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
2098* [CodeSystem](codesystem.html): Computationally friendly name of the code system
2099* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
2100* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
2101* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
2102* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
2103* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
2104* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
2105* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
2106* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
2107* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
2108* [StructureMap](structuremap.html): Computationally friendly name of the structure map
2109* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
2110* [ValueSet](valueset.html): Computationally friendly name of the value set
2111</b><br>
2112   * Type: <b>string</b><br>
2113   * 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>
2114   * </p>
2115   */
2116  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
2117
2118 /**
2119   * Search parameter: <b>publisher</b>
2120   * <p>
2121   * Description: <b>Multiple Resources: 
2122
2123* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
2124* [CodeSystem](codesystem.html): Name of the publisher of the code system
2125* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
2126* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
2127* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
2128* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
2129* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
2130* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
2131* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
2132* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
2133* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
2134* [StructureMap](structuremap.html): Name of the publisher of the structure map
2135* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
2136* [ValueSet](valueset.html): Name of the publisher of the value set
2137</b><br>
2138   * Type: <b>string</b><br>
2139   * 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>
2140   * </p>
2141   */
2142  @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" )
2143  public static final String SP_PUBLISHER = "publisher";
2144 /**
2145   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
2146   * <p>
2147   * Description: <b>Multiple Resources: 
2148
2149* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
2150* [CodeSystem](codesystem.html): Name of the publisher of the code system
2151* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
2152* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
2153* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
2154* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
2155* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
2156* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
2157* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
2158* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
2159* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
2160* [StructureMap](structuremap.html): Name of the publisher of the structure map
2161* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
2162* [ValueSet](valueset.html): Name of the publisher of the value set
2163</b><br>
2164   * Type: <b>string</b><br>
2165   * 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>
2166   * </p>
2167   */
2168  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
2169
2170 /**
2171   * Search parameter: <b>status</b>
2172   * <p>
2173   * Description: <b>Multiple Resources: 
2174
2175* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
2176* [CodeSystem](codesystem.html): The current status of the code system
2177* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
2178* [ConceptMap](conceptmap.html): The current status of the concept map
2179* [GraphDefinition](graphdefinition.html): The current status of the graph definition
2180* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
2181* [MessageDefinition](messagedefinition.html): The current status of the message definition
2182* [NamingSystem](namingsystem.html): The current status of the naming system
2183* [OperationDefinition](operationdefinition.html): The current status of the operation definition
2184* [SearchParameter](searchparameter.html): The current status of the search parameter
2185* [StructureDefinition](structuredefinition.html): The current status of the structure definition
2186* [StructureMap](structuremap.html): The current status of the structure map
2187* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
2188* [ValueSet](valueset.html): The current status of the value set
2189</b><br>
2190   * Type: <b>token</b><br>
2191   * 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>
2192   * </p>
2193   */
2194  @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" )
2195  public static final String SP_STATUS = "status";
2196 /**
2197   * <b>Fluent Client</b> search parameter constant for <b>status</b>
2198   * <p>
2199   * Description: <b>Multiple Resources: 
2200
2201* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
2202* [CodeSystem](codesystem.html): The current status of the code system
2203* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
2204* [ConceptMap](conceptmap.html): The current status of the concept map
2205* [GraphDefinition](graphdefinition.html): The current status of the graph definition
2206* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
2207* [MessageDefinition](messagedefinition.html): The current status of the message definition
2208* [NamingSystem](namingsystem.html): The current status of the naming system
2209* [OperationDefinition](operationdefinition.html): The current status of the operation definition
2210* [SearchParameter](searchparameter.html): The current status of the search parameter
2211* [StructureDefinition](structuredefinition.html): The current status of the structure definition
2212* [StructureMap](structuremap.html): The current status of the structure map
2213* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
2214* [ValueSet](valueset.html): The current status of the value set
2215</b><br>
2216   * Type: <b>token</b><br>
2217   * 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>
2218   * </p>
2219   */
2220  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
2221
2222 /**
2223   * Search parameter: <b>url</b>
2224   * <p>
2225   * Description: <b>Multiple Resources: 
2226
2227* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
2228* [CodeSystem](codesystem.html): The uri that identifies the code system
2229* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
2230* [ConceptMap](conceptmap.html): The uri that identifies the concept map
2231* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
2232* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
2233* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
2234* [NamingSystem](namingsystem.html): The uri that identifies the naming system
2235* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
2236* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
2237* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
2238* [StructureMap](structuremap.html): The uri that identifies the structure map
2239* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
2240* [ValueSet](valueset.html): The uri that identifies the value set
2241</b><br>
2242   * Type: <b>uri</b><br>
2243   * Path: <b>CapabilityStatement.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | GraphDefinition.url | ImplementationGuide.url | MessageDefinition.url | NamingSystem.url | OperationDefinition.url | SearchParameter.url | StructureDefinition.url | StructureMap.url | TerminologyCapabilities.url | ValueSet.url</b><br>
2244   * </p>
2245   */
2246  @SearchParamDefinition(name="url", path="CapabilityStatement.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | GraphDefinition.url | ImplementationGuide.url | MessageDefinition.url | NamingSystem.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* [NamingSystem](namingsystem.html): The uri that identifies the naming system\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" )
2247  public static final String SP_URL = "url";
2248 /**
2249   * <b>Fluent Client</b> search parameter constant for <b>url</b>
2250   * <p>
2251   * Description: <b>Multiple Resources: 
2252
2253* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
2254* [CodeSystem](codesystem.html): The uri that identifies the code system
2255* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
2256* [ConceptMap](conceptmap.html): The uri that identifies the concept map
2257* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
2258* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
2259* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
2260* [NamingSystem](namingsystem.html): The uri that identifies the naming system
2261* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
2262* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
2263* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
2264* [StructureMap](structuremap.html): The uri that identifies the structure map
2265* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
2266* [ValueSet](valueset.html): The uri that identifies the value set
2267</b><br>
2268   * Type: <b>uri</b><br>
2269   * Path: <b>CapabilityStatement.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | GraphDefinition.url | ImplementationGuide.url | MessageDefinition.url | NamingSystem.url | OperationDefinition.url | SearchParameter.url | StructureDefinition.url | StructureMap.url | TerminologyCapabilities.url | ValueSet.url</b><br>
2270   * </p>
2271   */
2272  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
2273
2274 /**
2275   * Search parameter: <b>version</b>
2276   * <p>
2277   * Description: <b>Multiple Resources: 
2278
2279* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
2280* [CodeSystem](codesystem.html): The business version of the code system
2281* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
2282* [ConceptMap](conceptmap.html): The business version of the concept map
2283* [GraphDefinition](graphdefinition.html): The business version of the graph definition
2284* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
2285* [MessageDefinition](messagedefinition.html): The business version of the message definition
2286* [NamingSystem](namingsystem.html): The business version of the naming system
2287* [OperationDefinition](operationdefinition.html): The business version of the operation definition
2288* [SearchParameter](searchparameter.html): The business version of the search parameter
2289* [StructureDefinition](structuredefinition.html): The business version of the structure definition
2290* [StructureMap](structuremap.html): The business version of the structure map
2291* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
2292* [ValueSet](valueset.html): The business version of the value set
2293</b><br>
2294   * Type: <b>token</b><br>
2295   * Path: <b>CapabilityStatement.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | GraphDefinition.version | ImplementationGuide.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | TerminologyCapabilities.version | ValueSet.version</b><br>
2296   * </p>
2297   */
2298  @SearchParamDefinition(name="version", path="CapabilityStatement.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | GraphDefinition.version | ImplementationGuide.version | MessageDefinition.version | NamingSystem.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* [NamingSystem](namingsystem.html): The business version of the naming system\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" )
2299  public static final String SP_VERSION = "version";
2300 /**
2301   * <b>Fluent Client</b> search parameter constant for <b>version</b>
2302   * <p>
2303   * Description: <b>Multiple Resources: 
2304
2305* [CapabilityStatement](capabilitystatement.html): The business version of the capability statement
2306* [CodeSystem](codesystem.html): The business version of the code system
2307* [CompartmentDefinition](compartmentdefinition.html): The business version of the compartment definition
2308* [ConceptMap](conceptmap.html): The business version of the concept map
2309* [GraphDefinition](graphdefinition.html): The business version of the graph definition
2310* [ImplementationGuide](implementationguide.html): The business version of the implementation guide
2311* [MessageDefinition](messagedefinition.html): The business version of the message definition
2312* [NamingSystem](namingsystem.html): The business version of the naming system
2313* [OperationDefinition](operationdefinition.html): The business version of the operation definition
2314* [SearchParameter](searchparameter.html): The business version of the search parameter
2315* [StructureDefinition](structuredefinition.html): The business version of the structure definition
2316* [StructureMap](structuremap.html): The business version of the structure map
2317* [TerminologyCapabilities](terminologycapabilities.html): The business version of the terminology capabilities
2318* [ValueSet](valueset.html): The business version of the value set
2319</b><br>
2320   * Type: <b>token</b><br>
2321   * Path: <b>CapabilityStatement.version | CodeSystem.version | CompartmentDefinition.version | ConceptMap.version | GraphDefinition.version | ImplementationGuide.version | MessageDefinition.version | NamingSystem.version | OperationDefinition.version | SearchParameter.version | StructureDefinition.version | StructureMap.version | TerminologyCapabilities.version | ValueSet.version</b><br>
2322   * </p>
2323   */
2324  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
2325
2326// Manual code (from Configuration.txt):
2327  public boolean supportsCopyright() {
2328    return false;
2329  }
2330  
2331// end addition
2332
2333}
2334