001package org.hl7.fhir.r4.model; 002 003 004 005/* 006 Copyright (c) 2011+, HL7, Inc. 007 All rights reserved. 008 009 Redistribution and use in source and binary forms, with or without modification, 010 are permitted provided that the following conditions are met: 011 012 * Redistributions of source code must retain the above copyright notice, this 013 list of conditions and the following disclaimer. 014 * Redistributions in binary form must reproduce the above copyright notice, 015 this list of conditions and the following disclaimer in the documentation 016 and/or other materials provided with the distribution. 017 * Neither the name of HL7 nor the names of its contributors may be used to 018 endorse or promote products derived from this software without specific 019 prior written permission. 020 021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 022 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 023 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 024 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 025 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 026 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 027 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 028 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 029 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 030 POSSIBILITY OF SUCH DAMAGE. 031 032*/ 033 034 035// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1 036 037import java.util.*; 038 039import org.hl7.fhir.utilities.Utilities; 040import org.hl7.fhir.r4.model.Enumerations.*; 041import ca.uhn.fhir.model.api.annotation.ResourceDef; 042import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 043import ca.uhn.fhir.model.api.annotation.Child; 044import ca.uhn.fhir.model.api.annotation.ChildOrder; 045import ca.uhn.fhir.model.api.annotation.Description; 046import ca.uhn.fhir.model.api.annotation.Block; 047import org.hl7.fhir.instance.model.api.*; 048import org.hl7.fhir.exceptions.FHIRException; 049/** 050 * A TerminologyCapabilities resource documents a set of capabilities (behaviors) of a FHIR Terminology Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation. 051 */ 052@ResourceDef(name="TerminologyCapabilities", profile="http://hl7.org/fhir/StructureDefinition/TerminologyCapabilities") 053@ChildOrder(names={"url", "version", "name", "title", "status", "experimental", "date", "publisher", "contact", "description", "useContext", "jurisdiction", "purpose", "copyright", "kind", "software", "implementation", "lockedDate", "codeSystem", "expansion", "codeSearch", "validateCode", "translation", "closure"}) 054public class TerminologyCapabilities extends MetadataResource { 055 056 public enum CapabilityStatementKind { 057 /** 058 * The CapabilityStatement instance represents the present capabilities of a specific system instance. This is the kind returned by /metadata for a FHIR server end-point. 059 */ 060 INSTANCE, 061 /** 062 * The CapabilityStatement instance represents the capabilities of a system or piece of software, independent of a particular installation. 063 */ 064 CAPABILITY, 065 /** 066 * The CapabilityStatement instance represents a set of requirements for other systems to meet; e.g. as part of an implementation guide or 'request for proposal'. 067 */ 068 REQUIREMENTS, 069 /** 070 * added to help the parsers with the generic types 071 */ 072 NULL; 073 public static CapabilityStatementKind fromCode(String codeString) throws FHIRException { 074 if (codeString == null || "".equals(codeString)) 075 return null; 076 if ("instance".equals(codeString)) 077 return INSTANCE; 078 if ("capability".equals(codeString)) 079 return CAPABILITY; 080 if ("requirements".equals(codeString)) 081 return REQUIREMENTS; 082 if (Configuration.isAcceptInvalidEnums()) 083 return null; 084 else 085 throw new FHIRException("Unknown CapabilityStatementKind code '"+codeString+"'"); 086 } 087 public String toCode() { 088 switch (this) { 089 case INSTANCE: return "instance"; 090 case CAPABILITY: return "capability"; 091 case REQUIREMENTS: return "requirements"; 092 case NULL: return null; 093 default: return "?"; 094 } 095 } 096 public String getSystem() { 097 switch (this) { 098 case INSTANCE: return "http://hl7.org/fhir/capability-statement-kind"; 099 case CAPABILITY: return "http://hl7.org/fhir/capability-statement-kind"; 100 case REQUIREMENTS: return "http://hl7.org/fhir/capability-statement-kind"; 101 case NULL: return null; 102 default: return "?"; 103 } 104 } 105 public String getDefinition() { 106 switch (this) { 107 case INSTANCE: return "The CapabilityStatement instance represents the present capabilities of a specific system instance. This is the kind returned by /metadata for a FHIR server end-point."; 108 case CAPABILITY: return "The CapabilityStatement instance represents the capabilities of a system or piece of software, independent of a particular installation."; 109 case REQUIREMENTS: return "The CapabilityStatement instance represents a set of requirements for other systems to meet; e.g. as part of an implementation guide or 'request for proposal'."; 110 case NULL: return null; 111 default: return "?"; 112 } 113 } 114 public String getDisplay() { 115 switch (this) { 116 case INSTANCE: return "Instance"; 117 case CAPABILITY: return "Capability"; 118 case REQUIREMENTS: return "Requirements"; 119 case NULL: return null; 120 default: return "?"; 121 } 122 } 123 } 124 125 public static class CapabilityStatementKindEnumFactory implements EnumFactory<CapabilityStatementKind> { 126 public CapabilityStatementKind fromCode(String codeString) throws IllegalArgumentException { 127 if (codeString == null || "".equals(codeString)) 128 if (codeString == null || "".equals(codeString)) 129 return null; 130 if ("instance".equals(codeString)) 131 return CapabilityStatementKind.INSTANCE; 132 if ("capability".equals(codeString)) 133 return CapabilityStatementKind.CAPABILITY; 134 if ("requirements".equals(codeString)) 135 return CapabilityStatementKind.REQUIREMENTS; 136 throw new IllegalArgumentException("Unknown CapabilityStatementKind code '"+codeString+"'"); 137 } 138 public Enumeration<CapabilityStatementKind> fromType(Base code) throws FHIRException { 139 if (code == null) 140 return null; 141 if (code.isEmpty()) 142 return new Enumeration<CapabilityStatementKind>(this); 143 String codeString = ((PrimitiveType) code).asStringValue(); 144 if (codeString == null || "".equals(codeString)) 145 return null; 146 if ("instance".equals(codeString)) 147 return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.INSTANCE); 148 if ("capability".equals(codeString)) 149 return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.CAPABILITY); 150 if ("requirements".equals(codeString)) 151 return new Enumeration<CapabilityStatementKind>(this, CapabilityStatementKind.REQUIREMENTS); 152 throw new FHIRException("Unknown CapabilityStatementKind code '"+codeString+"'"); 153 } 154 public String toCode(CapabilityStatementKind code) { 155 if (code == CapabilityStatementKind.INSTANCE) 156 return "instance"; 157 if (code == CapabilityStatementKind.CAPABILITY) 158 return "capability"; 159 if (code == CapabilityStatementKind.REQUIREMENTS) 160 return "requirements"; 161 return "?"; 162 } 163 public String toSystem(CapabilityStatementKind code) { 164 return code.getSystem(); 165 } 166 } 167 168 public enum CodeSearchSupport { 169 /** 170 * The search for code on ValueSet only includes codes explicitly detailed on includes or expansions. 171 */ 172 EXPLICIT, 173 /** 174 * The search for code on ValueSet only includes all codes based on the expansion of the value set. 175 */ 176 ALL, 177 /** 178 * added to help the parsers with the generic types 179 */ 180 NULL; 181 public static CodeSearchSupport fromCode(String codeString) throws FHIRException { 182 if (codeString == null || "".equals(codeString)) 183 return null; 184 if ("explicit".equals(codeString)) 185 return EXPLICIT; 186 if ("all".equals(codeString)) 187 return ALL; 188 if (Configuration.isAcceptInvalidEnums()) 189 return null; 190 else 191 throw new FHIRException("Unknown CodeSearchSupport code '"+codeString+"'"); 192 } 193 public String toCode() { 194 switch (this) { 195 case EXPLICIT: return "explicit"; 196 case ALL: return "all"; 197 case NULL: return null; 198 default: return "?"; 199 } 200 } 201 public String getSystem() { 202 switch (this) { 203 case EXPLICIT: return "http://hl7.org/fhir/code-search-support"; 204 case ALL: return "http://hl7.org/fhir/code-search-support"; 205 case NULL: return null; 206 default: return "?"; 207 } 208 } 209 public String getDefinition() { 210 switch (this) { 211 case EXPLICIT: return "The search for code on ValueSet only includes codes explicitly detailed on includes or expansions."; 212 case ALL: return "The search for code on ValueSet only includes all codes based on the expansion of the value set."; 213 case NULL: return null; 214 default: return "?"; 215 } 216 } 217 public String getDisplay() { 218 switch (this) { 219 case EXPLICIT: return "Explicit Codes"; 220 case ALL: return "Implicit Codes"; 221 case NULL: return null; 222 default: return "?"; 223 } 224 } 225 } 226 227 public static class CodeSearchSupportEnumFactory implements EnumFactory<CodeSearchSupport> { 228 public CodeSearchSupport fromCode(String codeString) throws IllegalArgumentException { 229 if (codeString == null || "".equals(codeString)) 230 if (codeString == null || "".equals(codeString)) 231 return null; 232 if ("explicit".equals(codeString)) 233 return CodeSearchSupport.EXPLICIT; 234 if ("all".equals(codeString)) 235 return CodeSearchSupport.ALL; 236 throw new IllegalArgumentException("Unknown CodeSearchSupport code '"+codeString+"'"); 237 } 238 public Enumeration<CodeSearchSupport> fromType(Base code) throws FHIRException { 239 if (code == null) 240 return null; 241 if (code.isEmpty()) 242 return new Enumeration<CodeSearchSupport>(this); 243 String codeString = ((PrimitiveType) code).asStringValue(); 244 if (codeString == null || "".equals(codeString)) 245 return null; 246 if ("explicit".equals(codeString)) 247 return new Enumeration<CodeSearchSupport>(this, CodeSearchSupport.EXPLICIT); 248 if ("all".equals(codeString)) 249 return new Enumeration<CodeSearchSupport>(this, CodeSearchSupport.ALL); 250 throw new FHIRException("Unknown CodeSearchSupport code '"+codeString+"'"); 251 } 252 public String toCode(CodeSearchSupport code) { 253 if (code == CodeSearchSupport.EXPLICIT) 254 return "explicit"; 255 if (code == CodeSearchSupport.ALL) 256 return "all"; 257 return "?"; 258 } 259 public String toSystem(CodeSearchSupport code) { 260 return code.getSystem(); 261 } 262 } 263 264 @Block() 265 public static class TerminologyCapabilitiesSoftwareComponent extends BackboneElement implements IBaseBackboneElement { 266 /** 267 * Name the software is known by. 268 */ 269 @Child(name = "name", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=true) 270 @Description(shortDefinition="A name the software is known by", formalDefinition="Name the software is known by." ) 271 protected StringType name; 272 273 /** 274 * The version identifier for the software covered by this statement. 275 */ 276 @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true) 277 @Description(shortDefinition="Version covered by this statement", formalDefinition="The version identifier for the software covered by this statement." ) 278 protected StringType version; 279 280 private static final long serialVersionUID = -790299911L; 281 282 /** 283 * Constructor 284 */ 285 public TerminologyCapabilitiesSoftwareComponent() { 286 super(); 287 } 288 289 /** 290 * Constructor 291 */ 292 public TerminologyCapabilitiesSoftwareComponent(StringType name) { 293 super(); 294 this.name = name; 295 } 296 297 /** 298 * @return {@link #name} (Name the software is known by.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 299 */ 300 public StringType getNameElement() { 301 if (this.name == null) 302 if (Configuration.errorOnAutoCreate()) 303 throw new Error("Attempt to auto-create TerminologyCapabilitiesSoftwareComponent.name"); 304 else if (Configuration.doAutoCreate()) 305 this.name = new StringType(); // bb 306 return this.name; 307 } 308 309 public boolean hasNameElement() { 310 return this.name != null && !this.name.isEmpty(); 311 } 312 313 public boolean hasName() { 314 return this.name != null && !this.name.isEmpty(); 315 } 316 317 /** 318 * @param value {@link #name} (Name the software is known by.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 319 */ 320 public TerminologyCapabilitiesSoftwareComponent setNameElement(StringType value) { 321 this.name = value; 322 return this; 323 } 324 325 /** 326 * @return Name the software is known by. 327 */ 328 public String getName() { 329 return this.name == null ? null : this.name.getValue(); 330 } 331 332 /** 333 * @param value Name the software is known by. 334 */ 335 public TerminologyCapabilitiesSoftwareComponent setName(String value) { 336 if (this.name == null) 337 this.name = new StringType(); 338 this.name.setValue(value); 339 return this; 340 } 341 342 /** 343 * @return {@link #version} (The version identifier for the software covered by this statement.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 344 */ 345 public StringType getVersionElement() { 346 if (this.version == null) 347 if (Configuration.errorOnAutoCreate()) 348 throw new Error("Attempt to auto-create TerminologyCapabilitiesSoftwareComponent.version"); 349 else if (Configuration.doAutoCreate()) 350 this.version = new StringType(); // bb 351 return this.version; 352 } 353 354 public boolean hasVersionElement() { 355 return this.version != null && !this.version.isEmpty(); 356 } 357 358 public boolean hasVersion() { 359 return this.version != null && !this.version.isEmpty(); 360 } 361 362 /** 363 * @param value {@link #version} (The version identifier for the software covered by this statement.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 364 */ 365 public TerminologyCapabilitiesSoftwareComponent setVersionElement(StringType value) { 366 this.version = value; 367 return this; 368 } 369 370 /** 371 * @return The version identifier for the software covered by this statement. 372 */ 373 public String getVersion() { 374 return this.version == null ? null : this.version.getValue(); 375 } 376 377 /** 378 * @param value The version identifier for the software covered by this statement. 379 */ 380 public TerminologyCapabilitiesSoftwareComponent setVersion(String value) { 381 if (Utilities.noString(value)) 382 this.version = null; 383 else { 384 if (this.version == null) 385 this.version = new StringType(); 386 this.version.setValue(value); 387 } 388 return this; 389 } 390 391 protected void listChildren(List<Property> children) { 392 super.listChildren(children); 393 children.add(new Property("name", "string", "Name the software is known by.", 0, 1, name)); 394 children.add(new Property("version", "string", "The version identifier for the software covered by this statement.", 0, 1, version)); 395 } 396 397 @Override 398 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 399 switch (_hash) { 400 case 3373707: /*name*/ return new Property("name", "string", "Name the software is known by.", 0, 1, name); 401 case 351608024: /*version*/ return new Property("version", "string", "The version identifier for the software covered by this statement.", 0, 1, version); 402 default: return super.getNamedProperty(_hash, _name, _checkValid); 403 } 404 405 } 406 407 @Override 408 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 409 switch (hash) { 410 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 411 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 412 default: return super.getProperty(hash, name, checkValid); 413 } 414 415 } 416 417 @Override 418 public Base setProperty(int hash, String name, Base value) throws FHIRException { 419 switch (hash) { 420 case 3373707: // name 421 this.name = castToString(value); // StringType 422 return value; 423 case 351608024: // version 424 this.version = castToString(value); // StringType 425 return value; 426 default: return super.setProperty(hash, name, value); 427 } 428 429 } 430 431 @Override 432 public Base setProperty(String name, Base value) throws FHIRException { 433 if (name.equals("name")) { 434 this.name = castToString(value); // StringType 435 } else if (name.equals("version")) { 436 this.version = castToString(value); // StringType 437 } else 438 return super.setProperty(name, value); 439 return value; 440 } 441 442 @Override 443 public Base makeProperty(int hash, String name) throws FHIRException { 444 switch (hash) { 445 case 3373707: return getNameElement(); 446 case 351608024: return getVersionElement(); 447 default: return super.makeProperty(hash, name); 448 } 449 450 } 451 452 @Override 453 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 454 switch (hash) { 455 case 3373707: /*name*/ return new String[] {"string"}; 456 case 351608024: /*version*/ return new String[] {"string"}; 457 default: return super.getTypesForProperty(hash, name); 458 } 459 460 } 461 462 @Override 463 public Base addChild(String name) throws FHIRException { 464 if (name.equals("name")) { 465 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.name"); 466 } 467 else if (name.equals("version")) { 468 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.version"); 469 } 470 else 471 return super.addChild(name); 472 } 473 474 public TerminologyCapabilitiesSoftwareComponent copy() { 475 TerminologyCapabilitiesSoftwareComponent dst = new TerminologyCapabilitiesSoftwareComponent(); 476 copyValues(dst); 477 return dst; 478 } 479 480 public void copyValues(TerminologyCapabilitiesSoftwareComponent dst) { 481 super.copyValues(dst); 482 dst.name = name == null ? null : name.copy(); 483 dst.version = version == null ? null : version.copy(); 484 } 485 486 @Override 487 public boolean equalsDeep(Base other_) { 488 if (!super.equalsDeep(other_)) 489 return false; 490 if (!(other_ instanceof TerminologyCapabilitiesSoftwareComponent)) 491 return false; 492 TerminologyCapabilitiesSoftwareComponent o = (TerminologyCapabilitiesSoftwareComponent) other_; 493 return compareDeep(name, o.name, true) && compareDeep(version, o.version, true); 494 } 495 496 @Override 497 public boolean equalsShallow(Base other_) { 498 if (!super.equalsShallow(other_)) 499 return false; 500 if (!(other_ instanceof TerminologyCapabilitiesSoftwareComponent)) 501 return false; 502 TerminologyCapabilitiesSoftwareComponent o = (TerminologyCapabilitiesSoftwareComponent) other_; 503 return compareValues(name, o.name, true) && compareValues(version, o.version, true); 504 } 505 506 public boolean isEmpty() { 507 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, version); 508 } 509 510 public String fhirType() { 511 return "TerminologyCapabilities.software"; 512 513 } 514 515 } 516 517 @Block() 518 public static class TerminologyCapabilitiesImplementationComponent extends BackboneElement implements IBaseBackboneElement { 519 /** 520 * Information about the specific installation that this terminology capability statement relates to. 521 */ 522 @Child(name = "description", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=true) 523 @Description(shortDefinition="Describes this specific instance", formalDefinition="Information about the specific installation that this terminology capability statement relates to." ) 524 protected StringType description; 525 526 /** 527 * An absolute base URL for the implementation. 528 */ 529 @Child(name = "url", type = {UrlType.class}, order=2, min=0, max=1, modifier=false, summary=true) 530 @Description(shortDefinition="Base URL for the implementation", formalDefinition="An absolute base URL for the implementation." ) 531 protected UrlType url; 532 533 private static final long serialVersionUID = 98009649L; 534 535 /** 536 * Constructor 537 */ 538 public TerminologyCapabilitiesImplementationComponent() { 539 super(); 540 } 541 542 /** 543 * Constructor 544 */ 545 public TerminologyCapabilitiesImplementationComponent(StringType description) { 546 super(); 547 this.description = description; 548 } 549 550 /** 551 * @return {@link #description} (Information about the specific installation that this terminology capability statement relates to.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 552 */ 553 public StringType getDescriptionElement() { 554 if (this.description == null) 555 if (Configuration.errorOnAutoCreate()) 556 throw new Error("Attempt to auto-create TerminologyCapabilitiesImplementationComponent.description"); 557 else if (Configuration.doAutoCreate()) 558 this.description = new StringType(); // bb 559 return this.description; 560 } 561 562 public boolean hasDescriptionElement() { 563 return this.description != null && !this.description.isEmpty(); 564 } 565 566 public boolean hasDescription() { 567 return this.description != null && !this.description.isEmpty(); 568 } 569 570 /** 571 * @param value {@link #description} (Information about the specific installation that this terminology capability statement relates to.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 572 */ 573 public TerminologyCapabilitiesImplementationComponent setDescriptionElement(StringType value) { 574 this.description = value; 575 return this; 576 } 577 578 /** 579 * @return Information about the specific installation that this terminology capability statement relates to. 580 */ 581 public String getDescription() { 582 return this.description == null ? null : this.description.getValue(); 583 } 584 585 /** 586 * @param value Information about the specific installation that this terminology capability statement relates to. 587 */ 588 public TerminologyCapabilitiesImplementationComponent setDescription(String value) { 589 if (this.description == null) 590 this.description = new StringType(); 591 this.description.setValue(value); 592 return this; 593 } 594 595 /** 596 * @return {@link #url} (An absolute base URL for the implementation.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 597 */ 598 public UrlType getUrlElement() { 599 if (this.url == null) 600 if (Configuration.errorOnAutoCreate()) 601 throw new Error("Attempt to auto-create TerminologyCapabilitiesImplementationComponent.url"); 602 else if (Configuration.doAutoCreate()) 603 this.url = new UrlType(); // bb 604 return this.url; 605 } 606 607 public boolean hasUrlElement() { 608 return this.url != null && !this.url.isEmpty(); 609 } 610 611 public boolean hasUrl() { 612 return this.url != null && !this.url.isEmpty(); 613 } 614 615 /** 616 * @param value {@link #url} (An absolute base URL for the implementation.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 617 */ 618 public TerminologyCapabilitiesImplementationComponent setUrlElement(UrlType value) { 619 this.url = value; 620 return this; 621 } 622 623 /** 624 * @return An absolute base URL for the implementation. 625 */ 626 public String getUrl() { 627 return this.url == null ? null : this.url.getValue(); 628 } 629 630 /** 631 * @param value An absolute base URL for the implementation. 632 */ 633 public TerminologyCapabilitiesImplementationComponent setUrl(String value) { 634 if (Utilities.noString(value)) 635 this.url = null; 636 else { 637 if (this.url == null) 638 this.url = new UrlType(); 639 this.url.setValue(value); 640 } 641 return this; 642 } 643 644 protected void listChildren(List<Property> children) { 645 super.listChildren(children); 646 children.add(new Property("description", "string", "Information about the specific installation that this terminology capability statement relates to.", 0, 1, description)); 647 children.add(new Property("url", "url", "An absolute base URL for the implementation.", 0, 1, url)); 648 } 649 650 @Override 651 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 652 switch (_hash) { 653 case -1724546052: /*description*/ return new Property("description", "string", "Information about the specific installation that this terminology capability statement relates to.", 0, 1, description); 654 case 116079: /*url*/ return new Property("url", "url", "An absolute base URL for the implementation.", 0, 1, url); 655 default: return super.getNamedProperty(_hash, _name, _checkValid); 656 } 657 658 } 659 660 @Override 661 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 662 switch (hash) { 663 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 664 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UrlType 665 default: return super.getProperty(hash, name, checkValid); 666 } 667 668 } 669 670 @Override 671 public Base setProperty(int hash, String name, Base value) throws FHIRException { 672 switch (hash) { 673 case -1724546052: // description 674 this.description = castToString(value); // StringType 675 return value; 676 case 116079: // url 677 this.url = castToUrl(value); // UrlType 678 return value; 679 default: return super.setProperty(hash, name, value); 680 } 681 682 } 683 684 @Override 685 public Base setProperty(String name, Base value) throws FHIRException { 686 if (name.equals("description")) { 687 this.description = castToString(value); // StringType 688 } else if (name.equals("url")) { 689 this.url = castToUrl(value); // UrlType 690 } else 691 return super.setProperty(name, value); 692 return value; 693 } 694 695 @Override 696 public Base makeProperty(int hash, String name) throws FHIRException { 697 switch (hash) { 698 case -1724546052: return getDescriptionElement(); 699 case 116079: return getUrlElement(); 700 default: return super.makeProperty(hash, name); 701 } 702 703 } 704 705 @Override 706 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 707 switch (hash) { 708 case -1724546052: /*description*/ return new String[] {"string"}; 709 case 116079: /*url*/ return new String[] {"url"}; 710 default: return super.getTypesForProperty(hash, name); 711 } 712 713 } 714 715 @Override 716 public Base addChild(String name) throws FHIRException { 717 if (name.equals("description")) { 718 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.description"); 719 } 720 else if (name.equals("url")) { 721 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.url"); 722 } 723 else 724 return super.addChild(name); 725 } 726 727 public TerminologyCapabilitiesImplementationComponent copy() { 728 TerminologyCapabilitiesImplementationComponent dst = new TerminologyCapabilitiesImplementationComponent(); 729 copyValues(dst); 730 return dst; 731 } 732 733 public void copyValues(TerminologyCapabilitiesImplementationComponent dst) { 734 super.copyValues(dst); 735 dst.description = description == null ? null : description.copy(); 736 dst.url = url == null ? null : url.copy(); 737 } 738 739 @Override 740 public boolean equalsDeep(Base other_) { 741 if (!super.equalsDeep(other_)) 742 return false; 743 if (!(other_ instanceof TerminologyCapabilitiesImplementationComponent)) 744 return false; 745 TerminologyCapabilitiesImplementationComponent o = (TerminologyCapabilitiesImplementationComponent) other_; 746 return compareDeep(description, o.description, true) && compareDeep(url, o.url, true); 747 } 748 749 @Override 750 public boolean equalsShallow(Base other_) { 751 if (!super.equalsShallow(other_)) 752 return false; 753 if (!(other_ instanceof TerminologyCapabilitiesImplementationComponent)) 754 return false; 755 TerminologyCapabilitiesImplementationComponent o = (TerminologyCapabilitiesImplementationComponent) other_; 756 return compareValues(description, o.description, true) && compareValues(url, o.url, true); 757 } 758 759 public boolean isEmpty() { 760 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(description, url); 761 } 762 763 public String fhirType() { 764 return "TerminologyCapabilities.implementation"; 765 766 } 767 768 } 769 770 @Block() 771 public static class TerminologyCapabilitiesCodeSystemComponent extends BackboneElement implements IBaseBackboneElement { 772 /** 773 * URI for the Code System. 774 */ 775 @Child(name = "uri", type = {CanonicalType.class}, order=1, min=0, max=1, modifier=false, summary=false) 776 @Description(shortDefinition="URI for the Code System", formalDefinition="URI for the Code System." ) 777 protected CanonicalType uri; 778 779 /** 780 * For the code system, a list of versions that are supported by the server. 781 */ 782 @Child(name = "version", type = {}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 783 @Description(shortDefinition="Version of Code System supported", formalDefinition="For the code system, a list of versions that are supported by the server." ) 784 protected List<TerminologyCapabilitiesCodeSystemVersionComponent> version; 785 786 /** 787 * True if subsumption is supported for this version of the code system. 788 */ 789 @Child(name = "subsumption", type = {BooleanType.class}, order=3, min=0, max=1, modifier=false, summary=false) 790 @Description(shortDefinition="Whether subsumption is supported", formalDefinition="True if subsumption is supported for this version of the code system." ) 791 protected BooleanType subsumption; 792 793 private static final long serialVersionUID = -1593622817L; 794 795 /** 796 * Constructor 797 */ 798 public TerminologyCapabilitiesCodeSystemComponent() { 799 super(); 800 } 801 802 /** 803 * @return {@link #uri} (URI for the Code System.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value 804 */ 805 public CanonicalType getUriElement() { 806 if (this.uri == null) 807 if (Configuration.errorOnAutoCreate()) 808 throw new Error("Attempt to auto-create TerminologyCapabilitiesCodeSystemComponent.uri"); 809 else if (Configuration.doAutoCreate()) 810 this.uri = new CanonicalType(); // bb 811 return this.uri; 812 } 813 814 public boolean hasUriElement() { 815 return this.uri != null && !this.uri.isEmpty(); 816 } 817 818 public boolean hasUri() { 819 return this.uri != null && !this.uri.isEmpty(); 820 } 821 822 /** 823 * @param value {@link #uri} (URI for the Code System.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value 824 */ 825 public TerminologyCapabilitiesCodeSystemComponent setUriElement(CanonicalType value) { 826 this.uri = value; 827 return this; 828 } 829 830 /** 831 * @return URI for the Code System. 832 */ 833 public String getUri() { 834 return this.uri == null ? null : this.uri.getValue(); 835 } 836 837 /** 838 * @param value URI for the Code System. 839 */ 840 public TerminologyCapabilitiesCodeSystemComponent setUri(String value) { 841 if (Utilities.noString(value)) 842 this.uri = null; 843 else { 844 if (this.uri == null) 845 this.uri = new CanonicalType(); 846 this.uri.setValue(value); 847 } 848 return this; 849 } 850 851 /** 852 * @return {@link #version} (For the code system, a list of versions that are supported by the server.) 853 */ 854 public List<TerminologyCapabilitiesCodeSystemVersionComponent> getVersion() { 855 if (this.version == null) 856 this.version = new ArrayList<TerminologyCapabilitiesCodeSystemVersionComponent>(); 857 return this.version; 858 } 859 860 /** 861 * @return Returns a reference to <code>this</code> for easy method chaining 862 */ 863 public TerminologyCapabilitiesCodeSystemComponent setVersion(List<TerminologyCapabilitiesCodeSystemVersionComponent> theVersion) { 864 this.version = theVersion; 865 return this; 866 } 867 868 public boolean hasVersion() { 869 if (this.version == null) 870 return false; 871 for (TerminologyCapabilitiesCodeSystemVersionComponent item : this.version) 872 if (!item.isEmpty()) 873 return true; 874 return false; 875 } 876 877 public TerminologyCapabilitiesCodeSystemVersionComponent addVersion() { //3 878 TerminologyCapabilitiesCodeSystemVersionComponent t = new TerminologyCapabilitiesCodeSystemVersionComponent(); 879 if (this.version == null) 880 this.version = new ArrayList<TerminologyCapabilitiesCodeSystemVersionComponent>(); 881 this.version.add(t); 882 return t; 883 } 884 885 public TerminologyCapabilitiesCodeSystemComponent addVersion(TerminologyCapabilitiesCodeSystemVersionComponent t) { //3 886 if (t == null) 887 return this; 888 if (this.version == null) 889 this.version = new ArrayList<TerminologyCapabilitiesCodeSystemVersionComponent>(); 890 this.version.add(t); 891 return this; 892 } 893 894 /** 895 * @return The first repetition of repeating field {@link #version}, creating it if it does not already exist 896 */ 897 public TerminologyCapabilitiesCodeSystemVersionComponent getVersionFirstRep() { 898 if (getVersion().isEmpty()) { 899 addVersion(); 900 } 901 return getVersion().get(0); 902 } 903 904 /** 905 * @return {@link #subsumption} (True if subsumption is supported for this version of the code system.). This is the underlying object with id, value and extensions. The accessor "getSubsumption" gives direct access to the value 906 */ 907 public BooleanType getSubsumptionElement() { 908 if (this.subsumption == null) 909 if (Configuration.errorOnAutoCreate()) 910 throw new Error("Attempt to auto-create TerminologyCapabilitiesCodeSystemComponent.subsumption"); 911 else if (Configuration.doAutoCreate()) 912 this.subsumption = new BooleanType(); // bb 913 return this.subsumption; 914 } 915 916 public boolean hasSubsumptionElement() { 917 return this.subsumption != null && !this.subsumption.isEmpty(); 918 } 919 920 public boolean hasSubsumption() { 921 return this.subsumption != null && !this.subsumption.isEmpty(); 922 } 923 924 /** 925 * @param value {@link #subsumption} (True if subsumption is supported for this version of the code system.). This is the underlying object with id, value and extensions. The accessor "getSubsumption" gives direct access to the value 926 */ 927 public TerminologyCapabilitiesCodeSystemComponent setSubsumptionElement(BooleanType value) { 928 this.subsumption = value; 929 return this; 930 } 931 932 /** 933 * @return True if subsumption is supported for this version of the code system. 934 */ 935 public boolean getSubsumption() { 936 return this.subsumption == null || this.subsumption.isEmpty() ? false : this.subsumption.getValue(); 937 } 938 939 /** 940 * @param value True if subsumption is supported for this version of the code system. 941 */ 942 public TerminologyCapabilitiesCodeSystemComponent setSubsumption(boolean value) { 943 if (this.subsumption == null) 944 this.subsumption = new BooleanType(); 945 this.subsumption.setValue(value); 946 return this; 947 } 948 949 protected void listChildren(List<Property> children) { 950 super.listChildren(children); 951 children.add(new Property("uri", "canonical(CodeSystem)", "URI for the Code System.", 0, 1, uri)); 952 children.add(new Property("version", "", "For the code system, a list of versions that are supported by the server.", 0, java.lang.Integer.MAX_VALUE, version)); 953 children.add(new Property("subsumption", "boolean", "True if subsumption is supported for this version of the code system.", 0, 1, subsumption)); 954 } 955 956 @Override 957 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 958 switch (_hash) { 959 case 116076: /*uri*/ return new Property("uri", "canonical(CodeSystem)", "URI for the Code System.", 0, 1, uri); 960 case 351608024: /*version*/ return new Property("version", "", "For the code system, a list of versions that are supported by the server.", 0, java.lang.Integer.MAX_VALUE, version); 961 case -499084711: /*subsumption*/ return new Property("subsumption", "boolean", "True if subsumption is supported for this version of the code system.", 0, 1, subsumption); 962 default: return super.getNamedProperty(_hash, _name, _checkValid); 963 } 964 965 } 966 967 @Override 968 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 969 switch (hash) { 970 case 116076: /*uri*/ return this.uri == null ? new Base[0] : new Base[] {this.uri}; // CanonicalType 971 case 351608024: /*version*/ return this.version == null ? new Base[0] : this.version.toArray(new Base[this.version.size()]); // TerminologyCapabilitiesCodeSystemVersionComponent 972 case -499084711: /*subsumption*/ return this.subsumption == null ? new Base[0] : new Base[] {this.subsumption}; // BooleanType 973 default: return super.getProperty(hash, name, checkValid); 974 } 975 976 } 977 978 @Override 979 public Base setProperty(int hash, String name, Base value) throws FHIRException { 980 switch (hash) { 981 case 116076: // uri 982 this.uri = castToCanonical(value); // CanonicalType 983 return value; 984 case 351608024: // version 985 this.getVersion().add((TerminologyCapabilitiesCodeSystemVersionComponent) value); // TerminologyCapabilitiesCodeSystemVersionComponent 986 return value; 987 case -499084711: // subsumption 988 this.subsumption = castToBoolean(value); // BooleanType 989 return value; 990 default: return super.setProperty(hash, name, value); 991 } 992 993 } 994 995 @Override 996 public Base setProperty(String name, Base value) throws FHIRException { 997 if (name.equals("uri")) { 998 this.uri = castToCanonical(value); // CanonicalType 999 } else if (name.equals("version")) { 1000 this.getVersion().add((TerminologyCapabilitiesCodeSystemVersionComponent) value); 1001 } else if (name.equals("subsumption")) { 1002 this.subsumption = castToBoolean(value); // BooleanType 1003 } else 1004 return super.setProperty(name, value); 1005 return value; 1006 } 1007 1008 @Override 1009 public Base makeProperty(int hash, String name) throws FHIRException { 1010 switch (hash) { 1011 case 116076: return getUriElement(); 1012 case 351608024: return addVersion(); 1013 case -499084711: return getSubsumptionElement(); 1014 default: return super.makeProperty(hash, name); 1015 } 1016 1017 } 1018 1019 @Override 1020 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1021 switch (hash) { 1022 case 116076: /*uri*/ return new String[] {"canonical"}; 1023 case 351608024: /*version*/ return new String[] {}; 1024 case -499084711: /*subsumption*/ return new String[] {"boolean"}; 1025 default: return super.getTypesForProperty(hash, name); 1026 } 1027 1028 } 1029 1030 @Override 1031 public Base addChild(String name) throws FHIRException { 1032 if (name.equals("uri")) { 1033 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.uri"); 1034 } 1035 else if (name.equals("version")) { 1036 return addVersion(); 1037 } 1038 else if (name.equals("subsumption")) { 1039 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.subsumption"); 1040 } 1041 else 1042 return super.addChild(name); 1043 } 1044 1045 public TerminologyCapabilitiesCodeSystemComponent copy() { 1046 TerminologyCapabilitiesCodeSystemComponent dst = new TerminologyCapabilitiesCodeSystemComponent(); 1047 copyValues(dst); 1048 return dst; 1049 } 1050 1051 public void copyValues(TerminologyCapabilitiesCodeSystemComponent dst) { 1052 super.copyValues(dst); 1053 dst.uri = uri == null ? null : uri.copy(); 1054 if (version != null) { 1055 dst.version = new ArrayList<TerminologyCapabilitiesCodeSystemVersionComponent>(); 1056 for (TerminologyCapabilitiesCodeSystemVersionComponent i : version) 1057 dst.version.add(i.copy()); 1058 }; 1059 dst.subsumption = subsumption == null ? null : subsumption.copy(); 1060 } 1061 1062 @Override 1063 public boolean equalsDeep(Base other_) { 1064 if (!super.equalsDeep(other_)) 1065 return false; 1066 if (!(other_ instanceof TerminologyCapabilitiesCodeSystemComponent)) 1067 return false; 1068 TerminologyCapabilitiesCodeSystemComponent o = (TerminologyCapabilitiesCodeSystemComponent) other_; 1069 return compareDeep(uri, o.uri, true) && compareDeep(version, o.version, true) && compareDeep(subsumption, o.subsumption, true) 1070 ; 1071 } 1072 1073 @Override 1074 public boolean equalsShallow(Base other_) { 1075 if (!super.equalsShallow(other_)) 1076 return false; 1077 if (!(other_ instanceof TerminologyCapabilitiesCodeSystemComponent)) 1078 return false; 1079 TerminologyCapabilitiesCodeSystemComponent o = (TerminologyCapabilitiesCodeSystemComponent) other_; 1080 return compareValues(subsumption, o.subsumption, true); 1081 } 1082 1083 public boolean isEmpty() { 1084 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(uri, version, subsumption 1085 ); 1086 } 1087 1088 public String fhirType() { 1089 return "TerminologyCapabilities.codeSystem"; 1090 1091 } 1092 1093 } 1094 1095 @Block() 1096 public static class TerminologyCapabilitiesCodeSystemVersionComponent extends BackboneElement implements IBaseBackboneElement { 1097 /** 1098 * For version-less code systems, there should be a single version with no identifier. 1099 */ 1100 @Child(name = "code", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=true) 1101 @Description(shortDefinition="Version identifier for this version", formalDefinition="For version-less code systems, there should be a single version with no identifier." ) 1102 protected StringType code; 1103 1104 /** 1105 * If this is the default version for this code system. 1106 */ 1107 @Child(name = "isDefault", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=true) 1108 @Description(shortDefinition="If this is the default version for this code system", formalDefinition="If this is the default version for this code system." ) 1109 protected BooleanType isDefault; 1110 1111 /** 1112 * If the compositional grammar defined by the code system is supported. 1113 */ 1114 @Child(name = "compositional", type = {BooleanType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1115 @Description(shortDefinition="If compositional grammar is supported", formalDefinition="If the compositional grammar defined by the code system is supported." ) 1116 protected BooleanType compositional; 1117 1118 /** 1119 * Language Displays supported. 1120 */ 1121 @Child(name = "language", type = {CodeType.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1122 @Description(shortDefinition="Language Displays supported", formalDefinition="Language Displays supported." ) 1123 protected List<CodeType> language; 1124 1125 /** 1126 * Filter Properties supported. 1127 */ 1128 @Child(name = "filter", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1129 @Description(shortDefinition="Filter Properties supported", formalDefinition="Filter Properties supported." ) 1130 protected List<TerminologyCapabilitiesCodeSystemVersionFilterComponent> filter; 1131 1132 /** 1133 * Properties supported for $lookup. 1134 */ 1135 @Child(name = "property", type = {CodeType.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1136 @Description(shortDefinition="Properties supported for $lookup", formalDefinition="Properties supported for $lookup." ) 1137 protected List<CodeType> property; 1138 1139 private static final long serialVersionUID = 1857571343L; 1140 1141 /** 1142 * Constructor 1143 */ 1144 public TerminologyCapabilitiesCodeSystemVersionComponent() { 1145 super(); 1146 } 1147 1148 /** 1149 * @return {@link #code} (For version-less code systems, there should be a single version with no identifier.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 1150 */ 1151 public StringType getCodeElement() { 1152 if (this.code == null) 1153 if (Configuration.errorOnAutoCreate()) 1154 throw new Error("Attempt to auto-create TerminologyCapabilitiesCodeSystemVersionComponent.code"); 1155 else if (Configuration.doAutoCreate()) 1156 this.code = new StringType(); // bb 1157 return this.code; 1158 } 1159 1160 public boolean hasCodeElement() { 1161 return this.code != null && !this.code.isEmpty(); 1162 } 1163 1164 public boolean hasCode() { 1165 return this.code != null && !this.code.isEmpty(); 1166 } 1167 1168 /** 1169 * @param value {@link #code} (For version-less code systems, there should be a single version with no identifier.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 1170 */ 1171 public TerminologyCapabilitiesCodeSystemVersionComponent setCodeElement(StringType value) { 1172 this.code = value; 1173 return this; 1174 } 1175 1176 /** 1177 * @return For version-less code systems, there should be a single version with no identifier. 1178 */ 1179 public String getCode() { 1180 return this.code == null ? null : this.code.getValue(); 1181 } 1182 1183 /** 1184 * @param value For version-less code systems, there should be a single version with no identifier. 1185 */ 1186 public TerminologyCapabilitiesCodeSystemVersionComponent setCode(String value) { 1187 if (Utilities.noString(value)) 1188 this.code = null; 1189 else { 1190 if (this.code == null) 1191 this.code = new StringType(); 1192 this.code.setValue(value); 1193 } 1194 return this; 1195 } 1196 1197 /** 1198 * @return {@link #isDefault} (If this is the default version for this code system.). This is the underlying object with id, value and extensions. The accessor "getIsDefault" gives direct access to the value 1199 */ 1200 public BooleanType getIsDefaultElement() { 1201 if (this.isDefault == null) 1202 if (Configuration.errorOnAutoCreate()) 1203 throw new Error("Attempt to auto-create TerminologyCapabilitiesCodeSystemVersionComponent.isDefault"); 1204 else if (Configuration.doAutoCreate()) 1205 this.isDefault = new BooleanType(); // bb 1206 return this.isDefault; 1207 } 1208 1209 public boolean hasIsDefaultElement() { 1210 return this.isDefault != null && !this.isDefault.isEmpty(); 1211 } 1212 1213 public boolean hasIsDefault() { 1214 return this.isDefault != null && !this.isDefault.isEmpty(); 1215 } 1216 1217 /** 1218 * @param value {@link #isDefault} (If this is the default version for this code system.). This is the underlying object with id, value and extensions. The accessor "getIsDefault" gives direct access to the value 1219 */ 1220 public TerminologyCapabilitiesCodeSystemVersionComponent setIsDefaultElement(BooleanType value) { 1221 this.isDefault = value; 1222 return this; 1223 } 1224 1225 /** 1226 * @return If this is the default version for this code system. 1227 */ 1228 public boolean getIsDefault() { 1229 return this.isDefault == null || this.isDefault.isEmpty() ? false : this.isDefault.getValue(); 1230 } 1231 1232 /** 1233 * @param value If this is the default version for this code system. 1234 */ 1235 public TerminologyCapabilitiesCodeSystemVersionComponent setIsDefault(boolean value) { 1236 if (this.isDefault == null) 1237 this.isDefault = new BooleanType(); 1238 this.isDefault.setValue(value); 1239 return this; 1240 } 1241 1242 /** 1243 * @return {@link #compositional} (If the compositional grammar defined by the code system is supported.). This is the underlying object with id, value and extensions. The accessor "getCompositional" gives direct access to the value 1244 */ 1245 public BooleanType getCompositionalElement() { 1246 if (this.compositional == null) 1247 if (Configuration.errorOnAutoCreate()) 1248 throw new Error("Attempt to auto-create TerminologyCapabilitiesCodeSystemVersionComponent.compositional"); 1249 else if (Configuration.doAutoCreate()) 1250 this.compositional = new BooleanType(); // bb 1251 return this.compositional; 1252 } 1253 1254 public boolean hasCompositionalElement() { 1255 return this.compositional != null && !this.compositional.isEmpty(); 1256 } 1257 1258 public boolean hasCompositional() { 1259 return this.compositional != null && !this.compositional.isEmpty(); 1260 } 1261 1262 /** 1263 * @param value {@link #compositional} (If the compositional grammar defined by the code system is supported.). This is the underlying object with id, value and extensions. The accessor "getCompositional" gives direct access to the value 1264 */ 1265 public TerminologyCapabilitiesCodeSystemVersionComponent setCompositionalElement(BooleanType value) { 1266 this.compositional = value; 1267 return this; 1268 } 1269 1270 /** 1271 * @return If the compositional grammar defined by the code system is supported. 1272 */ 1273 public boolean getCompositional() { 1274 return this.compositional == null || this.compositional.isEmpty() ? false : this.compositional.getValue(); 1275 } 1276 1277 /** 1278 * @param value If the compositional grammar defined by the code system is supported. 1279 */ 1280 public TerminologyCapabilitiesCodeSystemVersionComponent setCompositional(boolean value) { 1281 if (this.compositional == null) 1282 this.compositional = new BooleanType(); 1283 this.compositional.setValue(value); 1284 return this; 1285 } 1286 1287 /** 1288 * @return {@link #language} (Language Displays supported.) 1289 */ 1290 public List<CodeType> getLanguage() { 1291 if (this.language == null) 1292 this.language = new ArrayList<CodeType>(); 1293 return this.language; 1294 } 1295 1296 /** 1297 * @return Returns a reference to <code>this</code> for easy method chaining 1298 */ 1299 public TerminologyCapabilitiesCodeSystemVersionComponent setLanguage(List<CodeType> theLanguage) { 1300 this.language = theLanguage; 1301 return this; 1302 } 1303 1304 public boolean hasLanguage() { 1305 if (this.language == null) 1306 return false; 1307 for (CodeType item : this.language) 1308 if (!item.isEmpty()) 1309 return true; 1310 return false; 1311 } 1312 1313 /** 1314 * @return {@link #language} (Language Displays supported.) 1315 */ 1316 public CodeType addLanguageElement() {//2 1317 CodeType t = new CodeType(); 1318 if (this.language == null) 1319 this.language = new ArrayList<CodeType>(); 1320 this.language.add(t); 1321 return t; 1322 } 1323 1324 /** 1325 * @param value {@link #language} (Language Displays supported.) 1326 */ 1327 public TerminologyCapabilitiesCodeSystemVersionComponent addLanguage(String value) { //1 1328 CodeType t = new CodeType(); 1329 t.setValue(value); 1330 if (this.language == null) 1331 this.language = new ArrayList<CodeType>(); 1332 this.language.add(t); 1333 return this; 1334 } 1335 1336 /** 1337 * @param value {@link #language} (Language Displays supported.) 1338 */ 1339 public boolean hasLanguage(String value) { 1340 if (this.language == null) 1341 return false; 1342 for (CodeType v : this.language) 1343 if (v.getValue().equals(value)) // code 1344 return true; 1345 return false; 1346 } 1347 1348 /** 1349 * @return {@link #filter} (Filter Properties supported.) 1350 */ 1351 public List<TerminologyCapabilitiesCodeSystemVersionFilterComponent> getFilter() { 1352 if (this.filter == null) 1353 this.filter = new ArrayList<TerminologyCapabilitiesCodeSystemVersionFilterComponent>(); 1354 return this.filter; 1355 } 1356 1357 /** 1358 * @return Returns a reference to <code>this</code> for easy method chaining 1359 */ 1360 public TerminologyCapabilitiesCodeSystemVersionComponent setFilter(List<TerminologyCapabilitiesCodeSystemVersionFilterComponent> theFilter) { 1361 this.filter = theFilter; 1362 return this; 1363 } 1364 1365 public boolean hasFilter() { 1366 if (this.filter == null) 1367 return false; 1368 for (TerminologyCapabilitiesCodeSystemVersionFilterComponent item : this.filter) 1369 if (!item.isEmpty()) 1370 return true; 1371 return false; 1372 } 1373 1374 public TerminologyCapabilitiesCodeSystemVersionFilterComponent addFilter() { //3 1375 TerminologyCapabilitiesCodeSystemVersionFilterComponent t = new TerminologyCapabilitiesCodeSystemVersionFilterComponent(); 1376 if (this.filter == null) 1377 this.filter = new ArrayList<TerminologyCapabilitiesCodeSystemVersionFilterComponent>(); 1378 this.filter.add(t); 1379 return t; 1380 } 1381 1382 public TerminologyCapabilitiesCodeSystemVersionComponent addFilter(TerminologyCapabilitiesCodeSystemVersionFilterComponent t) { //3 1383 if (t == null) 1384 return this; 1385 if (this.filter == null) 1386 this.filter = new ArrayList<TerminologyCapabilitiesCodeSystemVersionFilterComponent>(); 1387 this.filter.add(t); 1388 return this; 1389 } 1390 1391 /** 1392 * @return The first repetition of repeating field {@link #filter}, creating it if it does not already exist 1393 */ 1394 public TerminologyCapabilitiesCodeSystemVersionFilterComponent getFilterFirstRep() { 1395 if (getFilter().isEmpty()) { 1396 addFilter(); 1397 } 1398 return getFilter().get(0); 1399 } 1400 1401 /** 1402 * @return {@link #property} (Properties supported for $lookup.) 1403 */ 1404 public List<CodeType> getProperty() { 1405 if (this.property == null) 1406 this.property = new ArrayList<CodeType>(); 1407 return this.property; 1408 } 1409 1410 /** 1411 * @return Returns a reference to <code>this</code> for easy method chaining 1412 */ 1413 public TerminologyCapabilitiesCodeSystemVersionComponent setProperty(List<CodeType> theProperty) { 1414 this.property = theProperty; 1415 return this; 1416 } 1417 1418 public boolean hasProperty() { 1419 if (this.property == null) 1420 return false; 1421 for (CodeType item : this.property) 1422 if (!item.isEmpty()) 1423 return true; 1424 return false; 1425 } 1426 1427 /** 1428 * @return {@link #property} (Properties supported for $lookup.) 1429 */ 1430 public CodeType addPropertyElement() {//2 1431 CodeType t = new CodeType(); 1432 if (this.property == null) 1433 this.property = new ArrayList<CodeType>(); 1434 this.property.add(t); 1435 return t; 1436 } 1437 1438 /** 1439 * @param value {@link #property} (Properties supported for $lookup.) 1440 */ 1441 public TerminologyCapabilitiesCodeSystemVersionComponent addProperty(String value) { //1 1442 CodeType t = new CodeType(); 1443 t.setValue(value); 1444 if (this.property == null) 1445 this.property = new ArrayList<CodeType>(); 1446 this.property.add(t); 1447 return this; 1448 } 1449 1450 /** 1451 * @param value {@link #property} (Properties supported for $lookup.) 1452 */ 1453 public boolean hasProperty(String value) { 1454 if (this.property == null) 1455 return false; 1456 for (CodeType v : this.property) 1457 if (v.getValue().equals(value)) // code 1458 return true; 1459 return false; 1460 } 1461 1462 protected void listChildren(List<Property> children) { 1463 super.listChildren(children); 1464 children.add(new Property("code", "string", "For version-less code systems, there should be a single version with no identifier.", 0, 1, code)); 1465 children.add(new Property("isDefault", "boolean", "If this is the default version for this code system.", 0, 1, isDefault)); 1466 children.add(new Property("compositional", "boolean", "If the compositional grammar defined by the code system is supported.", 0, 1, compositional)); 1467 children.add(new Property("language", "code", "Language Displays supported.", 0, java.lang.Integer.MAX_VALUE, language)); 1468 children.add(new Property("filter", "", "Filter Properties supported.", 0, java.lang.Integer.MAX_VALUE, filter)); 1469 children.add(new Property("property", "code", "Properties supported for $lookup.", 0, java.lang.Integer.MAX_VALUE, property)); 1470 } 1471 1472 @Override 1473 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1474 switch (_hash) { 1475 case 3059181: /*code*/ return new Property("code", "string", "For version-less code systems, there should be a single version with no identifier.", 0, 1, code); 1476 case 965025207: /*isDefault*/ return new Property("isDefault", "boolean", "If this is the default version for this code system.", 0, 1, isDefault); 1477 case 1248023381: /*compositional*/ return new Property("compositional", "boolean", "If the compositional grammar defined by the code system is supported.", 0, 1, compositional); 1478 case -1613589672: /*language*/ return new Property("language", "code", "Language Displays supported.", 0, java.lang.Integer.MAX_VALUE, language); 1479 case -1274492040: /*filter*/ return new Property("filter", "", "Filter Properties supported.", 0, java.lang.Integer.MAX_VALUE, filter); 1480 case -993141291: /*property*/ return new Property("property", "code", "Properties supported for $lookup.", 0, java.lang.Integer.MAX_VALUE, property); 1481 default: return super.getNamedProperty(_hash, _name, _checkValid); 1482 } 1483 1484 } 1485 1486 @Override 1487 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1488 switch (hash) { 1489 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // StringType 1490 case 965025207: /*isDefault*/ return this.isDefault == null ? new Base[0] : new Base[] {this.isDefault}; // BooleanType 1491 case 1248023381: /*compositional*/ return this.compositional == null ? new Base[0] : new Base[] {this.compositional}; // BooleanType 1492 case -1613589672: /*language*/ return this.language == null ? new Base[0] : this.language.toArray(new Base[this.language.size()]); // CodeType 1493 case -1274492040: /*filter*/ return this.filter == null ? new Base[0] : this.filter.toArray(new Base[this.filter.size()]); // TerminologyCapabilitiesCodeSystemVersionFilterComponent 1494 case -993141291: /*property*/ return this.property == null ? new Base[0] : this.property.toArray(new Base[this.property.size()]); // CodeType 1495 default: return super.getProperty(hash, name, checkValid); 1496 } 1497 1498 } 1499 1500 @Override 1501 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1502 switch (hash) { 1503 case 3059181: // code 1504 this.code = castToString(value); // StringType 1505 return value; 1506 case 965025207: // isDefault 1507 this.isDefault = castToBoolean(value); // BooleanType 1508 return value; 1509 case 1248023381: // compositional 1510 this.compositional = castToBoolean(value); // BooleanType 1511 return value; 1512 case -1613589672: // language 1513 this.getLanguage().add(castToCode(value)); // CodeType 1514 return value; 1515 case -1274492040: // filter 1516 this.getFilter().add((TerminologyCapabilitiesCodeSystemVersionFilterComponent) value); // TerminologyCapabilitiesCodeSystemVersionFilterComponent 1517 return value; 1518 case -993141291: // property 1519 this.getProperty().add(castToCode(value)); // CodeType 1520 return value; 1521 default: return super.setProperty(hash, name, value); 1522 } 1523 1524 } 1525 1526 @Override 1527 public Base setProperty(String name, Base value) throws FHIRException { 1528 if (name.equals("code")) { 1529 this.code = castToString(value); // StringType 1530 } else if (name.equals("isDefault")) { 1531 this.isDefault = castToBoolean(value); // BooleanType 1532 } else if (name.equals("compositional")) { 1533 this.compositional = castToBoolean(value); // BooleanType 1534 } else if (name.equals("language")) { 1535 this.getLanguage().add(castToCode(value)); 1536 } else if (name.equals("filter")) { 1537 this.getFilter().add((TerminologyCapabilitiesCodeSystemVersionFilterComponent) value); 1538 } else if (name.equals("property")) { 1539 this.getProperty().add(castToCode(value)); 1540 } else 1541 return super.setProperty(name, value); 1542 return value; 1543 } 1544 1545 @Override 1546 public Base makeProperty(int hash, String name) throws FHIRException { 1547 switch (hash) { 1548 case 3059181: return getCodeElement(); 1549 case 965025207: return getIsDefaultElement(); 1550 case 1248023381: return getCompositionalElement(); 1551 case -1613589672: return addLanguageElement(); 1552 case -1274492040: return addFilter(); 1553 case -993141291: return addPropertyElement(); 1554 default: return super.makeProperty(hash, name); 1555 } 1556 1557 } 1558 1559 @Override 1560 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1561 switch (hash) { 1562 case 3059181: /*code*/ return new String[] {"string"}; 1563 case 965025207: /*isDefault*/ return new String[] {"boolean"}; 1564 case 1248023381: /*compositional*/ return new String[] {"boolean"}; 1565 case -1613589672: /*language*/ return new String[] {"code"}; 1566 case -1274492040: /*filter*/ return new String[] {}; 1567 case -993141291: /*property*/ return new String[] {"code"}; 1568 default: return super.getTypesForProperty(hash, name); 1569 } 1570 1571 } 1572 1573 @Override 1574 public Base addChild(String name) throws FHIRException { 1575 if (name.equals("code")) { 1576 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.code"); 1577 } 1578 else if (name.equals("isDefault")) { 1579 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.isDefault"); 1580 } 1581 else if (name.equals("compositional")) { 1582 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.compositional"); 1583 } 1584 else if (name.equals("language")) { 1585 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.language"); 1586 } 1587 else if (name.equals("filter")) { 1588 return addFilter(); 1589 } 1590 else if (name.equals("property")) { 1591 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.property"); 1592 } 1593 else 1594 return super.addChild(name); 1595 } 1596 1597 public TerminologyCapabilitiesCodeSystemVersionComponent copy() { 1598 TerminologyCapabilitiesCodeSystemVersionComponent dst = new TerminologyCapabilitiesCodeSystemVersionComponent(); 1599 copyValues(dst); 1600 return dst; 1601 } 1602 1603 public void copyValues(TerminologyCapabilitiesCodeSystemVersionComponent dst) { 1604 super.copyValues(dst); 1605 dst.code = code == null ? null : code.copy(); 1606 dst.isDefault = isDefault == null ? null : isDefault.copy(); 1607 dst.compositional = compositional == null ? null : compositional.copy(); 1608 if (language != null) { 1609 dst.language = new ArrayList<CodeType>(); 1610 for (CodeType i : language) 1611 dst.language.add(i.copy()); 1612 }; 1613 if (filter != null) { 1614 dst.filter = new ArrayList<TerminologyCapabilitiesCodeSystemVersionFilterComponent>(); 1615 for (TerminologyCapabilitiesCodeSystemVersionFilterComponent i : filter) 1616 dst.filter.add(i.copy()); 1617 }; 1618 if (property != null) { 1619 dst.property = new ArrayList<CodeType>(); 1620 for (CodeType i : property) 1621 dst.property.add(i.copy()); 1622 }; 1623 } 1624 1625 @Override 1626 public boolean equalsDeep(Base other_) { 1627 if (!super.equalsDeep(other_)) 1628 return false; 1629 if (!(other_ instanceof TerminologyCapabilitiesCodeSystemVersionComponent)) 1630 return false; 1631 TerminologyCapabilitiesCodeSystemVersionComponent o = (TerminologyCapabilitiesCodeSystemVersionComponent) other_; 1632 return compareDeep(code, o.code, true) && compareDeep(isDefault, o.isDefault, true) && compareDeep(compositional, o.compositional, true) 1633 && compareDeep(language, o.language, true) && compareDeep(filter, o.filter, true) && compareDeep(property, o.property, true) 1634 ; 1635 } 1636 1637 @Override 1638 public boolean equalsShallow(Base other_) { 1639 if (!super.equalsShallow(other_)) 1640 return false; 1641 if (!(other_ instanceof TerminologyCapabilitiesCodeSystemVersionComponent)) 1642 return false; 1643 TerminologyCapabilitiesCodeSystemVersionComponent o = (TerminologyCapabilitiesCodeSystemVersionComponent) other_; 1644 return compareValues(code, o.code, true) && compareValues(isDefault, o.isDefault, true) && compareValues(compositional, o.compositional, true) 1645 && compareValues(language, o.language, true) && compareValues(property, o.property, true); 1646 } 1647 1648 public boolean isEmpty() { 1649 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, isDefault, compositional 1650 , language, filter, property); 1651 } 1652 1653 public String fhirType() { 1654 return "TerminologyCapabilities.codeSystem.version"; 1655 1656 } 1657 1658 } 1659 1660 @Block() 1661 public static class TerminologyCapabilitiesCodeSystemVersionFilterComponent extends BackboneElement implements IBaseBackboneElement { 1662 /** 1663 * Code of the property supported. 1664 */ 1665 @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false) 1666 @Description(shortDefinition="Code of the property supported", formalDefinition="Code of the property supported." ) 1667 protected CodeType code; 1668 1669 /** 1670 * Operations supported for the property. 1671 */ 1672 @Child(name = "op", type = {CodeType.class}, order=2, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1673 @Description(shortDefinition="Operations supported for the property", formalDefinition="Operations supported for the property." ) 1674 protected List<CodeType> op; 1675 1676 private static final long serialVersionUID = -489160282L; 1677 1678 /** 1679 * Constructor 1680 */ 1681 public TerminologyCapabilitiesCodeSystemVersionFilterComponent() { 1682 super(); 1683 } 1684 1685 /** 1686 * Constructor 1687 */ 1688 public TerminologyCapabilitiesCodeSystemVersionFilterComponent(CodeType code) { 1689 super(); 1690 this.code = code; 1691 } 1692 1693 /** 1694 * @return {@link #code} (Code of the property supported.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 1695 */ 1696 public CodeType getCodeElement() { 1697 if (this.code == null) 1698 if (Configuration.errorOnAutoCreate()) 1699 throw new Error("Attempt to auto-create TerminologyCapabilitiesCodeSystemVersionFilterComponent.code"); 1700 else if (Configuration.doAutoCreate()) 1701 this.code = new CodeType(); // bb 1702 return this.code; 1703 } 1704 1705 public boolean hasCodeElement() { 1706 return this.code != null && !this.code.isEmpty(); 1707 } 1708 1709 public boolean hasCode() { 1710 return this.code != null && !this.code.isEmpty(); 1711 } 1712 1713 /** 1714 * @param value {@link #code} (Code of the property supported.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 1715 */ 1716 public TerminologyCapabilitiesCodeSystemVersionFilterComponent setCodeElement(CodeType value) { 1717 this.code = value; 1718 return this; 1719 } 1720 1721 /** 1722 * @return Code of the property supported. 1723 */ 1724 public String getCode() { 1725 return this.code == null ? null : this.code.getValue(); 1726 } 1727 1728 /** 1729 * @param value Code of the property supported. 1730 */ 1731 public TerminologyCapabilitiesCodeSystemVersionFilterComponent setCode(String value) { 1732 if (this.code == null) 1733 this.code = new CodeType(); 1734 this.code.setValue(value); 1735 return this; 1736 } 1737 1738 /** 1739 * @return {@link #op} (Operations supported for the property.) 1740 */ 1741 public List<CodeType> getOp() { 1742 if (this.op == null) 1743 this.op = new ArrayList<CodeType>(); 1744 return this.op; 1745 } 1746 1747 /** 1748 * @return Returns a reference to <code>this</code> for easy method chaining 1749 */ 1750 public TerminologyCapabilitiesCodeSystemVersionFilterComponent setOp(List<CodeType> theOp) { 1751 this.op = theOp; 1752 return this; 1753 } 1754 1755 public boolean hasOp() { 1756 if (this.op == null) 1757 return false; 1758 for (CodeType item : this.op) 1759 if (!item.isEmpty()) 1760 return true; 1761 return false; 1762 } 1763 1764 /** 1765 * @return {@link #op} (Operations supported for the property.) 1766 */ 1767 public CodeType addOpElement() {//2 1768 CodeType t = new CodeType(); 1769 if (this.op == null) 1770 this.op = new ArrayList<CodeType>(); 1771 this.op.add(t); 1772 return t; 1773 } 1774 1775 /** 1776 * @param value {@link #op} (Operations supported for the property.) 1777 */ 1778 public TerminologyCapabilitiesCodeSystemVersionFilterComponent addOp(String value) { //1 1779 CodeType t = new CodeType(); 1780 t.setValue(value); 1781 if (this.op == null) 1782 this.op = new ArrayList<CodeType>(); 1783 this.op.add(t); 1784 return this; 1785 } 1786 1787 /** 1788 * @param value {@link #op} (Operations supported for the property.) 1789 */ 1790 public boolean hasOp(String value) { 1791 if (this.op == null) 1792 return false; 1793 for (CodeType v : this.op) 1794 if (v.getValue().equals(value)) // code 1795 return true; 1796 return false; 1797 } 1798 1799 protected void listChildren(List<Property> children) { 1800 super.listChildren(children); 1801 children.add(new Property("code", "code", "Code of the property supported.", 0, 1, code)); 1802 children.add(new Property("op", "code", "Operations supported for the property.", 0, java.lang.Integer.MAX_VALUE, op)); 1803 } 1804 1805 @Override 1806 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1807 switch (_hash) { 1808 case 3059181: /*code*/ return new Property("code", "code", "Code of the property supported.", 0, 1, code); 1809 case 3553: /*op*/ return new Property("op", "code", "Operations supported for the property.", 0, java.lang.Integer.MAX_VALUE, op); 1810 default: return super.getNamedProperty(_hash, _name, _checkValid); 1811 } 1812 1813 } 1814 1815 @Override 1816 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1817 switch (hash) { 1818 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType 1819 case 3553: /*op*/ return this.op == null ? new Base[0] : this.op.toArray(new Base[this.op.size()]); // CodeType 1820 default: return super.getProperty(hash, name, checkValid); 1821 } 1822 1823 } 1824 1825 @Override 1826 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1827 switch (hash) { 1828 case 3059181: // code 1829 this.code = castToCode(value); // CodeType 1830 return value; 1831 case 3553: // op 1832 this.getOp().add(castToCode(value)); // CodeType 1833 return value; 1834 default: return super.setProperty(hash, name, value); 1835 } 1836 1837 } 1838 1839 @Override 1840 public Base setProperty(String name, Base value) throws FHIRException { 1841 if (name.equals("code")) { 1842 this.code = castToCode(value); // CodeType 1843 } else if (name.equals("op")) { 1844 this.getOp().add(castToCode(value)); 1845 } else 1846 return super.setProperty(name, value); 1847 return value; 1848 } 1849 1850 @Override 1851 public Base makeProperty(int hash, String name) throws FHIRException { 1852 switch (hash) { 1853 case 3059181: return getCodeElement(); 1854 case 3553: return addOpElement(); 1855 default: return super.makeProperty(hash, name); 1856 } 1857 1858 } 1859 1860 @Override 1861 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1862 switch (hash) { 1863 case 3059181: /*code*/ return new String[] {"code"}; 1864 case 3553: /*op*/ return new String[] {"code"}; 1865 default: return super.getTypesForProperty(hash, name); 1866 } 1867 1868 } 1869 1870 @Override 1871 public Base addChild(String name) throws FHIRException { 1872 if (name.equals("code")) { 1873 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.code"); 1874 } 1875 else if (name.equals("op")) { 1876 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.op"); 1877 } 1878 else 1879 return super.addChild(name); 1880 } 1881 1882 public TerminologyCapabilitiesCodeSystemVersionFilterComponent copy() { 1883 TerminologyCapabilitiesCodeSystemVersionFilterComponent dst = new TerminologyCapabilitiesCodeSystemVersionFilterComponent(); 1884 copyValues(dst); 1885 return dst; 1886 } 1887 1888 public void copyValues(TerminologyCapabilitiesCodeSystemVersionFilterComponent dst) { 1889 super.copyValues(dst); 1890 dst.code = code == null ? null : code.copy(); 1891 if (op != null) { 1892 dst.op = new ArrayList<CodeType>(); 1893 for (CodeType i : op) 1894 dst.op.add(i.copy()); 1895 }; 1896 } 1897 1898 @Override 1899 public boolean equalsDeep(Base other_) { 1900 if (!super.equalsDeep(other_)) 1901 return false; 1902 if (!(other_ instanceof TerminologyCapabilitiesCodeSystemVersionFilterComponent)) 1903 return false; 1904 TerminologyCapabilitiesCodeSystemVersionFilterComponent o = (TerminologyCapabilitiesCodeSystemVersionFilterComponent) other_; 1905 return compareDeep(code, o.code, true) && compareDeep(op, o.op, true); 1906 } 1907 1908 @Override 1909 public boolean equalsShallow(Base other_) { 1910 if (!super.equalsShallow(other_)) 1911 return false; 1912 if (!(other_ instanceof TerminologyCapabilitiesCodeSystemVersionFilterComponent)) 1913 return false; 1914 TerminologyCapabilitiesCodeSystemVersionFilterComponent o = (TerminologyCapabilitiesCodeSystemVersionFilterComponent) other_; 1915 return compareValues(code, o.code, true) && compareValues(op, o.op, true); 1916 } 1917 1918 public boolean isEmpty() { 1919 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, op); 1920 } 1921 1922 public String fhirType() { 1923 return "TerminologyCapabilities.codeSystem.version.filter"; 1924 1925 } 1926 1927 } 1928 1929 @Block() 1930 public static class TerminologyCapabilitiesExpansionComponent extends BackboneElement implements IBaseBackboneElement { 1931 /** 1932 * Whether the server can return nested value sets. 1933 */ 1934 @Child(name = "hierarchical", type = {BooleanType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1935 @Description(shortDefinition="Whether the server can return nested value sets", formalDefinition="Whether the server can return nested value sets." ) 1936 protected BooleanType hierarchical; 1937 1938 /** 1939 * Whether the server supports paging on expansion. 1940 */ 1941 @Child(name = "paging", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1942 @Description(shortDefinition="Whether the server supports paging on expansion", formalDefinition="Whether the server supports paging on expansion." ) 1943 protected BooleanType paging; 1944 1945 /** 1946 * Allow request for incomplete expansions? 1947 */ 1948 @Child(name = "incomplete", type = {BooleanType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1949 @Description(shortDefinition="Allow request for incomplete expansions?", formalDefinition="Allow request for incomplete expansions?" ) 1950 protected BooleanType incomplete; 1951 1952 /** 1953 * Supported expansion parameter. 1954 */ 1955 @Child(name = "parameter", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1956 @Description(shortDefinition="Supported expansion parameter", formalDefinition="Supported expansion parameter." ) 1957 protected List<TerminologyCapabilitiesExpansionParameterComponent> parameter; 1958 1959 /** 1960 * Documentation about text searching works. 1961 */ 1962 @Child(name = "textFilter", type = {MarkdownType.class}, order=5, min=0, max=1, modifier=false, summary=false) 1963 @Description(shortDefinition="Documentation about text searching works", formalDefinition="Documentation about text searching works." ) 1964 protected MarkdownType textFilter; 1965 1966 private static final long serialVersionUID = -1011350616L; 1967 1968 /** 1969 * Constructor 1970 */ 1971 public TerminologyCapabilitiesExpansionComponent() { 1972 super(); 1973 } 1974 1975 /** 1976 * @return {@link #hierarchical} (Whether the server can return nested value sets.). This is the underlying object with id, value and extensions. The accessor "getHierarchical" gives direct access to the value 1977 */ 1978 public BooleanType getHierarchicalElement() { 1979 if (this.hierarchical == null) 1980 if (Configuration.errorOnAutoCreate()) 1981 throw new Error("Attempt to auto-create TerminologyCapabilitiesExpansionComponent.hierarchical"); 1982 else if (Configuration.doAutoCreate()) 1983 this.hierarchical = new BooleanType(); // bb 1984 return this.hierarchical; 1985 } 1986 1987 public boolean hasHierarchicalElement() { 1988 return this.hierarchical != null && !this.hierarchical.isEmpty(); 1989 } 1990 1991 public boolean hasHierarchical() { 1992 return this.hierarchical != null && !this.hierarchical.isEmpty(); 1993 } 1994 1995 /** 1996 * @param value {@link #hierarchical} (Whether the server can return nested value sets.). This is the underlying object with id, value and extensions. The accessor "getHierarchical" gives direct access to the value 1997 */ 1998 public TerminologyCapabilitiesExpansionComponent setHierarchicalElement(BooleanType value) { 1999 this.hierarchical = value; 2000 return this; 2001 } 2002 2003 /** 2004 * @return Whether the server can return nested value sets. 2005 */ 2006 public boolean getHierarchical() { 2007 return this.hierarchical == null || this.hierarchical.isEmpty() ? false : this.hierarchical.getValue(); 2008 } 2009 2010 /** 2011 * @param value Whether the server can return nested value sets. 2012 */ 2013 public TerminologyCapabilitiesExpansionComponent setHierarchical(boolean value) { 2014 if (this.hierarchical == null) 2015 this.hierarchical = new BooleanType(); 2016 this.hierarchical.setValue(value); 2017 return this; 2018 } 2019 2020 /** 2021 * @return {@link #paging} (Whether the server supports paging on expansion.). This is the underlying object with id, value and extensions. The accessor "getPaging" gives direct access to the value 2022 */ 2023 public BooleanType getPagingElement() { 2024 if (this.paging == null) 2025 if (Configuration.errorOnAutoCreate()) 2026 throw new Error("Attempt to auto-create TerminologyCapabilitiesExpansionComponent.paging"); 2027 else if (Configuration.doAutoCreate()) 2028 this.paging = new BooleanType(); // bb 2029 return this.paging; 2030 } 2031 2032 public boolean hasPagingElement() { 2033 return this.paging != null && !this.paging.isEmpty(); 2034 } 2035 2036 public boolean hasPaging() { 2037 return this.paging != null && !this.paging.isEmpty(); 2038 } 2039 2040 /** 2041 * @param value {@link #paging} (Whether the server supports paging on expansion.). This is the underlying object with id, value and extensions. The accessor "getPaging" gives direct access to the value 2042 */ 2043 public TerminologyCapabilitiesExpansionComponent setPagingElement(BooleanType value) { 2044 this.paging = value; 2045 return this; 2046 } 2047 2048 /** 2049 * @return Whether the server supports paging on expansion. 2050 */ 2051 public boolean getPaging() { 2052 return this.paging == null || this.paging.isEmpty() ? false : this.paging.getValue(); 2053 } 2054 2055 /** 2056 * @param value Whether the server supports paging on expansion. 2057 */ 2058 public TerminologyCapabilitiesExpansionComponent setPaging(boolean value) { 2059 if (this.paging == null) 2060 this.paging = new BooleanType(); 2061 this.paging.setValue(value); 2062 return this; 2063 } 2064 2065 /** 2066 * @return {@link #incomplete} (Allow request for incomplete expansions?). This is the underlying object with id, value and extensions. The accessor "getIncomplete" gives direct access to the value 2067 */ 2068 public BooleanType getIncompleteElement() { 2069 if (this.incomplete == null) 2070 if (Configuration.errorOnAutoCreate()) 2071 throw new Error("Attempt to auto-create TerminologyCapabilitiesExpansionComponent.incomplete"); 2072 else if (Configuration.doAutoCreate()) 2073 this.incomplete = new BooleanType(); // bb 2074 return this.incomplete; 2075 } 2076 2077 public boolean hasIncompleteElement() { 2078 return this.incomplete != null && !this.incomplete.isEmpty(); 2079 } 2080 2081 public boolean hasIncomplete() { 2082 return this.incomplete != null && !this.incomplete.isEmpty(); 2083 } 2084 2085 /** 2086 * @param value {@link #incomplete} (Allow request for incomplete expansions?). This is the underlying object with id, value and extensions. The accessor "getIncomplete" gives direct access to the value 2087 */ 2088 public TerminologyCapabilitiesExpansionComponent setIncompleteElement(BooleanType value) { 2089 this.incomplete = value; 2090 return this; 2091 } 2092 2093 /** 2094 * @return Allow request for incomplete expansions? 2095 */ 2096 public boolean getIncomplete() { 2097 return this.incomplete == null || this.incomplete.isEmpty() ? false : this.incomplete.getValue(); 2098 } 2099 2100 /** 2101 * @param value Allow request for incomplete expansions? 2102 */ 2103 public TerminologyCapabilitiesExpansionComponent setIncomplete(boolean value) { 2104 if (this.incomplete == null) 2105 this.incomplete = new BooleanType(); 2106 this.incomplete.setValue(value); 2107 return this; 2108 } 2109 2110 /** 2111 * @return {@link #parameter} (Supported expansion parameter.) 2112 */ 2113 public List<TerminologyCapabilitiesExpansionParameterComponent> getParameter() { 2114 if (this.parameter == null) 2115 this.parameter = new ArrayList<TerminologyCapabilitiesExpansionParameterComponent>(); 2116 return this.parameter; 2117 } 2118 2119 /** 2120 * @return Returns a reference to <code>this</code> for easy method chaining 2121 */ 2122 public TerminologyCapabilitiesExpansionComponent setParameter(List<TerminologyCapabilitiesExpansionParameterComponent> theParameter) { 2123 this.parameter = theParameter; 2124 return this; 2125 } 2126 2127 public boolean hasParameter() { 2128 if (this.parameter == null) 2129 return false; 2130 for (TerminologyCapabilitiesExpansionParameterComponent item : this.parameter) 2131 if (!item.isEmpty()) 2132 return true; 2133 return false; 2134 } 2135 2136 public TerminologyCapabilitiesExpansionParameterComponent addParameter() { //3 2137 TerminologyCapabilitiesExpansionParameterComponent t = new TerminologyCapabilitiesExpansionParameterComponent(); 2138 if (this.parameter == null) 2139 this.parameter = new ArrayList<TerminologyCapabilitiesExpansionParameterComponent>(); 2140 this.parameter.add(t); 2141 return t; 2142 } 2143 2144 public TerminologyCapabilitiesExpansionComponent addParameter(TerminologyCapabilitiesExpansionParameterComponent t) { //3 2145 if (t == null) 2146 return this; 2147 if (this.parameter == null) 2148 this.parameter = new ArrayList<TerminologyCapabilitiesExpansionParameterComponent>(); 2149 this.parameter.add(t); 2150 return this; 2151 } 2152 2153 /** 2154 * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist 2155 */ 2156 public TerminologyCapabilitiesExpansionParameterComponent getParameterFirstRep() { 2157 if (getParameter().isEmpty()) { 2158 addParameter(); 2159 } 2160 return getParameter().get(0); 2161 } 2162 2163 /** 2164 * @return {@link #textFilter} (Documentation about text searching works.). This is the underlying object with id, value and extensions. The accessor "getTextFilter" gives direct access to the value 2165 */ 2166 public MarkdownType getTextFilterElement() { 2167 if (this.textFilter == null) 2168 if (Configuration.errorOnAutoCreate()) 2169 throw new Error("Attempt to auto-create TerminologyCapabilitiesExpansionComponent.textFilter"); 2170 else if (Configuration.doAutoCreate()) 2171 this.textFilter = new MarkdownType(); // bb 2172 return this.textFilter; 2173 } 2174 2175 public boolean hasTextFilterElement() { 2176 return this.textFilter != null && !this.textFilter.isEmpty(); 2177 } 2178 2179 public boolean hasTextFilter() { 2180 return this.textFilter != null && !this.textFilter.isEmpty(); 2181 } 2182 2183 /** 2184 * @param value {@link #textFilter} (Documentation about text searching works.). This is the underlying object with id, value and extensions. The accessor "getTextFilter" gives direct access to the value 2185 */ 2186 public TerminologyCapabilitiesExpansionComponent setTextFilterElement(MarkdownType value) { 2187 this.textFilter = value; 2188 return this; 2189 } 2190 2191 /** 2192 * @return Documentation about text searching works. 2193 */ 2194 public String getTextFilter() { 2195 return this.textFilter == null ? null : this.textFilter.getValue(); 2196 } 2197 2198 /** 2199 * @param value Documentation about text searching works. 2200 */ 2201 public TerminologyCapabilitiesExpansionComponent setTextFilter(String value) { 2202 if (value == null) 2203 this.textFilter = null; 2204 else { 2205 if (this.textFilter == null) 2206 this.textFilter = new MarkdownType(); 2207 this.textFilter.setValue(value); 2208 } 2209 return this; 2210 } 2211 2212 protected void listChildren(List<Property> children) { 2213 super.listChildren(children); 2214 children.add(new Property("hierarchical", "boolean", "Whether the server can return nested value sets.", 0, 1, hierarchical)); 2215 children.add(new Property("paging", "boolean", "Whether the server supports paging on expansion.", 0, 1, paging)); 2216 children.add(new Property("incomplete", "boolean", "Allow request for incomplete expansions?", 0, 1, incomplete)); 2217 children.add(new Property("parameter", "", "Supported expansion parameter.", 0, java.lang.Integer.MAX_VALUE, parameter)); 2218 children.add(new Property("textFilter", "markdown", "Documentation about text searching works.", 0, 1, textFilter)); 2219 } 2220 2221 @Override 2222 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2223 switch (_hash) { 2224 case 857636745: /*hierarchical*/ return new Property("hierarchical", "boolean", "Whether the server can return nested value sets.", 0, 1, hierarchical); 2225 case -995747956: /*paging*/ return new Property("paging", "boolean", "Whether the server supports paging on expansion.", 0, 1, paging); 2226 case -1010022050: /*incomplete*/ return new Property("incomplete", "boolean", "Allow request for incomplete expansions?", 0, 1, incomplete); 2227 case 1954460585: /*parameter*/ return new Property("parameter", "", "Supported expansion parameter.", 0, java.lang.Integer.MAX_VALUE, parameter); 2228 case 1469359877: /*textFilter*/ return new Property("textFilter", "markdown", "Documentation about text searching works.", 0, 1, textFilter); 2229 default: return super.getNamedProperty(_hash, _name, _checkValid); 2230 } 2231 2232 } 2233 2234 @Override 2235 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2236 switch (hash) { 2237 case 857636745: /*hierarchical*/ return this.hierarchical == null ? new Base[0] : new Base[] {this.hierarchical}; // BooleanType 2238 case -995747956: /*paging*/ return this.paging == null ? new Base[0] : new Base[] {this.paging}; // BooleanType 2239 case -1010022050: /*incomplete*/ return this.incomplete == null ? new Base[0] : new Base[] {this.incomplete}; // BooleanType 2240 case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // TerminologyCapabilitiesExpansionParameterComponent 2241 case 1469359877: /*textFilter*/ return this.textFilter == null ? new Base[0] : new Base[] {this.textFilter}; // MarkdownType 2242 default: return super.getProperty(hash, name, checkValid); 2243 } 2244 2245 } 2246 2247 @Override 2248 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2249 switch (hash) { 2250 case 857636745: // hierarchical 2251 this.hierarchical = castToBoolean(value); // BooleanType 2252 return value; 2253 case -995747956: // paging 2254 this.paging = castToBoolean(value); // BooleanType 2255 return value; 2256 case -1010022050: // incomplete 2257 this.incomplete = castToBoolean(value); // BooleanType 2258 return value; 2259 case 1954460585: // parameter 2260 this.getParameter().add((TerminologyCapabilitiesExpansionParameterComponent) value); // TerminologyCapabilitiesExpansionParameterComponent 2261 return value; 2262 case 1469359877: // textFilter 2263 this.textFilter = castToMarkdown(value); // MarkdownType 2264 return value; 2265 default: return super.setProperty(hash, name, value); 2266 } 2267 2268 } 2269 2270 @Override 2271 public Base setProperty(String name, Base value) throws FHIRException { 2272 if (name.equals("hierarchical")) { 2273 this.hierarchical = castToBoolean(value); // BooleanType 2274 } else if (name.equals("paging")) { 2275 this.paging = castToBoolean(value); // BooleanType 2276 } else if (name.equals("incomplete")) { 2277 this.incomplete = castToBoolean(value); // BooleanType 2278 } else if (name.equals("parameter")) { 2279 this.getParameter().add((TerminologyCapabilitiesExpansionParameterComponent) value); 2280 } else if (name.equals("textFilter")) { 2281 this.textFilter = castToMarkdown(value); // MarkdownType 2282 } else 2283 return super.setProperty(name, value); 2284 return value; 2285 } 2286 2287 @Override 2288 public Base makeProperty(int hash, String name) throws FHIRException { 2289 switch (hash) { 2290 case 857636745: return getHierarchicalElement(); 2291 case -995747956: return getPagingElement(); 2292 case -1010022050: return getIncompleteElement(); 2293 case 1954460585: return addParameter(); 2294 case 1469359877: return getTextFilterElement(); 2295 default: return super.makeProperty(hash, name); 2296 } 2297 2298 } 2299 2300 @Override 2301 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2302 switch (hash) { 2303 case 857636745: /*hierarchical*/ return new String[] {"boolean"}; 2304 case -995747956: /*paging*/ return new String[] {"boolean"}; 2305 case -1010022050: /*incomplete*/ return new String[] {"boolean"}; 2306 case 1954460585: /*parameter*/ return new String[] {}; 2307 case 1469359877: /*textFilter*/ return new String[] {"markdown"}; 2308 default: return super.getTypesForProperty(hash, name); 2309 } 2310 2311 } 2312 2313 @Override 2314 public Base addChild(String name) throws FHIRException { 2315 if (name.equals("hierarchical")) { 2316 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.hierarchical"); 2317 } 2318 else if (name.equals("paging")) { 2319 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.paging"); 2320 } 2321 else if (name.equals("incomplete")) { 2322 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.incomplete"); 2323 } 2324 else if (name.equals("parameter")) { 2325 return addParameter(); 2326 } 2327 else if (name.equals("textFilter")) { 2328 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.textFilter"); 2329 } 2330 else 2331 return super.addChild(name); 2332 } 2333 2334 public TerminologyCapabilitiesExpansionComponent copy() { 2335 TerminologyCapabilitiesExpansionComponent dst = new TerminologyCapabilitiesExpansionComponent(); 2336 copyValues(dst); 2337 return dst; 2338 } 2339 2340 public void copyValues(TerminologyCapabilitiesExpansionComponent dst) { 2341 super.copyValues(dst); 2342 dst.hierarchical = hierarchical == null ? null : hierarchical.copy(); 2343 dst.paging = paging == null ? null : paging.copy(); 2344 dst.incomplete = incomplete == null ? null : incomplete.copy(); 2345 if (parameter != null) { 2346 dst.parameter = new ArrayList<TerminologyCapabilitiesExpansionParameterComponent>(); 2347 for (TerminologyCapabilitiesExpansionParameterComponent i : parameter) 2348 dst.parameter.add(i.copy()); 2349 }; 2350 dst.textFilter = textFilter == null ? null : textFilter.copy(); 2351 } 2352 2353 @Override 2354 public boolean equalsDeep(Base other_) { 2355 if (!super.equalsDeep(other_)) 2356 return false; 2357 if (!(other_ instanceof TerminologyCapabilitiesExpansionComponent)) 2358 return false; 2359 TerminologyCapabilitiesExpansionComponent o = (TerminologyCapabilitiesExpansionComponent) other_; 2360 return compareDeep(hierarchical, o.hierarchical, true) && compareDeep(paging, o.paging, true) && compareDeep(incomplete, o.incomplete, true) 2361 && compareDeep(parameter, o.parameter, true) && compareDeep(textFilter, o.textFilter, true); 2362 } 2363 2364 @Override 2365 public boolean equalsShallow(Base other_) { 2366 if (!super.equalsShallow(other_)) 2367 return false; 2368 if (!(other_ instanceof TerminologyCapabilitiesExpansionComponent)) 2369 return false; 2370 TerminologyCapabilitiesExpansionComponent o = (TerminologyCapabilitiesExpansionComponent) other_; 2371 return compareValues(hierarchical, o.hierarchical, true) && compareValues(paging, o.paging, true) && compareValues(incomplete, o.incomplete, true) 2372 && compareValues(textFilter, o.textFilter, true); 2373 } 2374 2375 public boolean isEmpty() { 2376 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(hierarchical, paging, incomplete 2377 , parameter, textFilter); 2378 } 2379 2380 public String fhirType() { 2381 return "TerminologyCapabilities.expansion"; 2382 2383 } 2384 2385 } 2386 2387 @Block() 2388 public static class TerminologyCapabilitiesExpansionParameterComponent extends BackboneElement implements IBaseBackboneElement { 2389 /** 2390 * Expansion Parameter name. 2391 */ 2392 @Child(name = "name", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false) 2393 @Description(shortDefinition="Expansion Parameter name", formalDefinition="Expansion Parameter name." ) 2394 protected CodeType name; 2395 2396 /** 2397 * Description of support for parameter. 2398 */ 2399 @Child(name = "documentation", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 2400 @Description(shortDefinition="Description of support for parameter", formalDefinition="Description of support for parameter." ) 2401 protected StringType documentation; 2402 2403 private static final long serialVersionUID = -1703372741L; 2404 2405 /** 2406 * Constructor 2407 */ 2408 public TerminologyCapabilitiesExpansionParameterComponent() { 2409 super(); 2410 } 2411 2412 /** 2413 * Constructor 2414 */ 2415 public TerminologyCapabilitiesExpansionParameterComponent(CodeType name) { 2416 super(); 2417 this.name = name; 2418 } 2419 2420 /** 2421 * @return {@link #name} (Expansion Parameter name.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2422 */ 2423 public CodeType getNameElement() { 2424 if (this.name == null) 2425 if (Configuration.errorOnAutoCreate()) 2426 throw new Error("Attempt to auto-create TerminologyCapabilitiesExpansionParameterComponent.name"); 2427 else if (Configuration.doAutoCreate()) 2428 this.name = new CodeType(); // bb 2429 return this.name; 2430 } 2431 2432 public boolean hasNameElement() { 2433 return this.name != null && !this.name.isEmpty(); 2434 } 2435 2436 public boolean hasName() { 2437 return this.name != null && !this.name.isEmpty(); 2438 } 2439 2440 /** 2441 * @param value {@link #name} (Expansion Parameter name.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2442 */ 2443 public TerminologyCapabilitiesExpansionParameterComponent setNameElement(CodeType value) { 2444 this.name = value; 2445 return this; 2446 } 2447 2448 /** 2449 * @return Expansion Parameter name. 2450 */ 2451 public String getName() { 2452 return this.name == null ? null : this.name.getValue(); 2453 } 2454 2455 /** 2456 * @param value Expansion Parameter name. 2457 */ 2458 public TerminologyCapabilitiesExpansionParameterComponent setName(String value) { 2459 if (this.name == null) 2460 this.name = new CodeType(); 2461 this.name.setValue(value); 2462 return this; 2463 } 2464 2465 /** 2466 * @return {@link #documentation} (Description of support for parameter.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value 2467 */ 2468 public StringType getDocumentationElement() { 2469 if (this.documentation == null) 2470 if (Configuration.errorOnAutoCreate()) 2471 throw new Error("Attempt to auto-create TerminologyCapabilitiesExpansionParameterComponent.documentation"); 2472 else if (Configuration.doAutoCreate()) 2473 this.documentation = new StringType(); // bb 2474 return this.documentation; 2475 } 2476 2477 public boolean hasDocumentationElement() { 2478 return this.documentation != null && !this.documentation.isEmpty(); 2479 } 2480 2481 public boolean hasDocumentation() { 2482 return this.documentation != null && !this.documentation.isEmpty(); 2483 } 2484 2485 /** 2486 * @param value {@link #documentation} (Description of support for parameter.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value 2487 */ 2488 public TerminologyCapabilitiesExpansionParameterComponent setDocumentationElement(StringType value) { 2489 this.documentation = value; 2490 return this; 2491 } 2492 2493 /** 2494 * @return Description of support for parameter. 2495 */ 2496 public String getDocumentation() { 2497 return this.documentation == null ? null : this.documentation.getValue(); 2498 } 2499 2500 /** 2501 * @param value Description of support for parameter. 2502 */ 2503 public TerminologyCapabilitiesExpansionParameterComponent setDocumentation(String value) { 2504 if (Utilities.noString(value)) 2505 this.documentation = null; 2506 else { 2507 if (this.documentation == null) 2508 this.documentation = new StringType(); 2509 this.documentation.setValue(value); 2510 } 2511 return this; 2512 } 2513 2514 protected void listChildren(List<Property> children) { 2515 super.listChildren(children); 2516 children.add(new Property("name", "code", "Expansion Parameter name.", 0, 1, name)); 2517 children.add(new Property("documentation", "string", "Description of support for parameter.", 0, 1, documentation)); 2518 } 2519 2520 @Override 2521 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2522 switch (_hash) { 2523 case 3373707: /*name*/ return new Property("name", "code", "Expansion Parameter name.", 0, 1, name); 2524 case 1587405498: /*documentation*/ return new Property("documentation", "string", "Description of support for parameter.", 0, 1, documentation); 2525 default: return super.getNamedProperty(_hash, _name, _checkValid); 2526 } 2527 2528 } 2529 2530 @Override 2531 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2532 switch (hash) { 2533 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // CodeType 2534 case 1587405498: /*documentation*/ return this.documentation == null ? new Base[0] : new Base[] {this.documentation}; // StringType 2535 default: return super.getProperty(hash, name, checkValid); 2536 } 2537 2538 } 2539 2540 @Override 2541 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2542 switch (hash) { 2543 case 3373707: // name 2544 this.name = castToCode(value); // CodeType 2545 return value; 2546 case 1587405498: // documentation 2547 this.documentation = castToString(value); // StringType 2548 return value; 2549 default: return super.setProperty(hash, name, value); 2550 } 2551 2552 } 2553 2554 @Override 2555 public Base setProperty(String name, Base value) throws FHIRException { 2556 if (name.equals("name")) { 2557 this.name = castToCode(value); // CodeType 2558 } else if (name.equals("documentation")) { 2559 this.documentation = castToString(value); // StringType 2560 } else 2561 return super.setProperty(name, value); 2562 return value; 2563 } 2564 2565 @Override 2566 public Base makeProperty(int hash, String name) throws FHIRException { 2567 switch (hash) { 2568 case 3373707: return getNameElement(); 2569 case 1587405498: return getDocumentationElement(); 2570 default: return super.makeProperty(hash, name); 2571 } 2572 2573 } 2574 2575 @Override 2576 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2577 switch (hash) { 2578 case 3373707: /*name*/ return new String[] {"code"}; 2579 case 1587405498: /*documentation*/ return new String[] {"string"}; 2580 default: return super.getTypesForProperty(hash, name); 2581 } 2582 2583 } 2584 2585 @Override 2586 public Base addChild(String name) throws FHIRException { 2587 if (name.equals("name")) { 2588 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.name"); 2589 } 2590 else if (name.equals("documentation")) { 2591 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.documentation"); 2592 } 2593 else 2594 return super.addChild(name); 2595 } 2596 2597 public TerminologyCapabilitiesExpansionParameterComponent copy() { 2598 TerminologyCapabilitiesExpansionParameterComponent dst = new TerminologyCapabilitiesExpansionParameterComponent(); 2599 copyValues(dst); 2600 return dst; 2601 } 2602 2603 public void copyValues(TerminologyCapabilitiesExpansionParameterComponent dst) { 2604 super.copyValues(dst); 2605 dst.name = name == null ? null : name.copy(); 2606 dst.documentation = documentation == null ? null : documentation.copy(); 2607 } 2608 2609 @Override 2610 public boolean equalsDeep(Base other_) { 2611 if (!super.equalsDeep(other_)) 2612 return false; 2613 if (!(other_ instanceof TerminologyCapabilitiesExpansionParameterComponent)) 2614 return false; 2615 TerminologyCapabilitiesExpansionParameterComponent o = (TerminologyCapabilitiesExpansionParameterComponent) other_; 2616 return compareDeep(name, o.name, true) && compareDeep(documentation, o.documentation, true); 2617 } 2618 2619 @Override 2620 public boolean equalsShallow(Base other_) { 2621 if (!super.equalsShallow(other_)) 2622 return false; 2623 if (!(other_ instanceof TerminologyCapabilitiesExpansionParameterComponent)) 2624 return false; 2625 TerminologyCapabilitiesExpansionParameterComponent o = (TerminologyCapabilitiesExpansionParameterComponent) other_; 2626 return compareValues(name, o.name, true) && compareValues(documentation, o.documentation, true); 2627 } 2628 2629 public boolean isEmpty() { 2630 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, documentation); 2631 } 2632 2633 public String fhirType() { 2634 return "TerminologyCapabilities.expansion.parameter"; 2635 2636 } 2637 2638 } 2639 2640 @Block() 2641 public static class TerminologyCapabilitiesValidateCodeComponent extends BackboneElement implements IBaseBackboneElement { 2642 /** 2643 * Whether translations are validated. 2644 */ 2645 @Child(name = "translations", type = {BooleanType.class}, order=1, min=1, max=1, modifier=false, summary=false) 2646 @Description(shortDefinition="Whether translations are validated", formalDefinition="Whether translations are validated." ) 2647 protected BooleanType translations; 2648 2649 private static final long serialVersionUID = -1212814906L; 2650 2651 /** 2652 * Constructor 2653 */ 2654 public TerminologyCapabilitiesValidateCodeComponent() { 2655 super(); 2656 } 2657 2658 /** 2659 * Constructor 2660 */ 2661 public TerminologyCapabilitiesValidateCodeComponent(BooleanType translations) { 2662 super(); 2663 this.translations = translations; 2664 } 2665 2666 /** 2667 * @return {@link #translations} (Whether translations are validated.). This is the underlying object with id, value and extensions. The accessor "getTranslations" gives direct access to the value 2668 */ 2669 public BooleanType getTranslationsElement() { 2670 if (this.translations == null) 2671 if (Configuration.errorOnAutoCreate()) 2672 throw new Error("Attempt to auto-create TerminologyCapabilitiesValidateCodeComponent.translations"); 2673 else if (Configuration.doAutoCreate()) 2674 this.translations = new BooleanType(); // bb 2675 return this.translations; 2676 } 2677 2678 public boolean hasTranslationsElement() { 2679 return this.translations != null && !this.translations.isEmpty(); 2680 } 2681 2682 public boolean hasTranslations() { 2683 return this.translations != null && !this.translations.isEmpty(); 2684 } 2685 2686 /** 2687 * @param value {@link #translations} (Whether translations are validated.). This is the underlying object with id, value and extensions. The accessor "getTranslations" gives direct access to the value 2688 */ 2689 public TerminologyCapabilitiesValidateCodeComponent setTranslationsElement(BooleanType value) { 2690 this.translations = value; 2691 return this; 2692 } 2693 2694 /** 2695 * @return Whether translations are validated. 2696 */ 2697 public boolean getTranslations() { 2698 return this.translations == null || this.translations.isEmpty() ? false : this.translations.getValue(); 2699 } 2700 2701 /** 2702 * @param value Whether translations are validated. 2703 */ 2704 public TerminologyCapabilitiesValidateCodeComponent setTranslations(boolean value) { 2705 if (this.translations == null) 2706 this.translations = new BooleanType(); 2707 this.translations.setValue(value); 2708 return this; 2709 } 2710 2711 protected void listChildren(List<Property> children) { 2712 super.listChildren(children); 2713 children.add(new Property("translations", "boolean", "Whether translations are validated.", 0, 1, translations)); 2714 } 2715 2716 @Override 2717 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2718 switch (_hash) { 2719 case -1225497630: /*translations*/ return new Property("translations", "boolean", "Whether translations are validated.", 0, 1, translations); 2720 default: return super.getNamedProperty(_hash, _name, _checkValid); 2721 } 2722 2723 } 2724 2725 @Override 2726 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2727 switch (hash) { 2728 case -1225497630: /*translations*/ return this.translations == null ? new Base[0] : new Base[] {this.translations}; // BooleanType 2729 default: return super.getProperty(hash, name, checkValid); 2730 } 2731 2732 } 2733 2734 @Override 2735 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2736 switch (hash) { 2737 case -1225497630: // translations 2738 this.translations = castToBoolean(value); // BooleanType 2739 return value; 2740 default: return super.setProperty(hash, name, value); 2741 } 2742 2743 } 2744 2745 @Override 2746 public Base setProperty(String name, Base value) throws FHIRException { 2747 if (name.equals("translations")) { 2748 this.translations = castToBoolean(value); // BooleanType 2749 } else 2750 return super.setProperty(name, value); 2751 return value; 2752 } 2753 2754 @Override 2755 public Base makeProperty(int hash, String name) throws FHIRException { 2756 switch (hash) { 2757 case -1225497630: return getTranslationsElement(); 2758 default: return super.makeProperty(hash, name); 2759 } 2760 2761 } 2762 2763 @Override 2764 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2765 switch (hash) { 2766 case -1225497630: /*translations*/ return new String[] {"boolean"}; 2767 default: return super.getTypesForProperty(hash, name); 2768 } 2769 2770 } 2771 2772 @Override 2773 public Base addChild(String name) throws FHIRException { 2774 if (name.equals("translations")) { 2775 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.translations"); 2776 } 2777 else 2778 return super.addChild(name); 2779 } 2780 2781 public TerminologyCapabilitiesValidateCodeComponent copy() { 2782 TerminologyCapabilitiesValidateCodeComponent dst = new TerminologyCapabilitiesValidateCodeComponent(); 2783 copyValues(dst); 2784 return dst; 2785 } 2786 2787 public void copyValues(TerminologyCapabilitiesValidateCodeComponent dst) { 2788 super.copyValues(dst); 2789 dst.translations = translations == null ? null : translations.copy(); 2790 } 2791 2792 @Override 2793 public boolean equalsDeep(Base other_) { 2794 if (!super.equalsDeep(other_)) 2795 return false; 2796 if (!(other_ instanceof TerminologyCapabilitiesValidateCodeComponent)) 2797 return false; 2798 TerminologyCapabilitiesValidateCodeComponent o = (TerminologyCapabilitiesValidateCodeComponent) other_; 2799 return compareDeep(translations, o.translations, true); 2800 } 2801 2802 @Override 2803 public boolean equalsShallow(Base other_) { 2804 if (!super.equalsShallow(other_)) 2805 return false; 2806 if (!(other_ instanceof TerminologyCapabilitiesValidateCodeComponent)) 2807 return false; 2808 TerminologyCapabilitiesValidateCodeComponent o = (TerminologyCapabilitiesValidateCodeComponent) other_; 2809 return compareValues(translations, o.translations, true); 2810 } 2811 2812 public boolean isEmpty() { 2813 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(translations); 2814 } 2815 2816 public String fhirType() { 2817 return "TerminologyCapabilities.validateCode"; 2818 2819 } 2820 2821 } 2822 2823 @Block() 2824 public static class TerminologyCapabilitiesTranslationComponent extends BackboneElement implements IBaseBackboneElement { 2825 /** 2826 * Whether the client must identify the map. 2827 */ 2828 @Child(name = "needsMap", type = {BooleanType.class}, order=1, min=1, max=1, modifier=false, summary=false) 2829 @Description(shortDefinition="Whether the client must identify the map", formalDefinition="Whether the client must identify the map." ) 2830 protected BooleanType needsMap; 2831 2832 private static final long serialVersionUID = -1727843575L; 2833 2834 /** 2835 * Constructor 2836 */ 2837 public TerminologyCapabilitiesTranslationComponent() { 2838 super(); 2839 } 2840 2841 /** 2842 * Constructor 2843 */ 2844 public TerminologyCapabilitiesTranslationComponent(BooleanType needsMap) { 2845 super(); 2846 this.needsMap = needsMap; 2847 } 2848 2849 /** 2850 * @return {@link #needsMap} (Whether the client must identify the map.). This is the underlying object with id, value and extensions. The accessor "getNeedsMap" gives direct access to the value 2851 */ 2852 public BooleanType getNeedsMapElement() { 2853 if (this.needsMap == null) 2854 if (Configuration.errorOnAutoCreate()) 2855 throw new Error("Attempt to auto-create TerminologyCapabilitiesTranslationComponent.needsMap"); 2856 else if (Configuration.doAutoCreate()) 2857 this.needsMap = new BooleanType(); // bb 2858 return this.needsMap; 2859 } 2860 2861 public boolean hasNeedsMapElement() { 2862 return this.needsMap != null && !this.needsMap.isEmpty(); 2863 } 2864 2865 public boolean hasNeedsMap() { 2866 return this.needsMap != null && !this.needsMap.isEmpty(); 2867 } 2868 2869 /** 2870 * @param value {@link #needsMap} (Whether the client must identify the map.). This is the underlying object with id, value and extensions. The accessor "getNeedsMap" gives direct access to the value 2871 */ 2872 public TerminologyCapabilitiesTranslationComponent setNeedsMapElement(BooleanType value) { 2873 this.needsMap = value; 2874 return this; 2875 } 2876 2877 /** 2878 * @return Whether the client must identify the map. 2879 */ 2880 public boolean getNeedsMap() { 2881 return this.needsMap == null || this.needsMap.isEmpty() ? false : this.needsMap.getValue(); 2882 } 2883 2884 /** 2885 * @param value Whether the client must identify the map. 2886 */ 2887 public TerminologyCapabilitiesTranslationComponent setNeedsMap(boolean value) { 2888 if (this.needsMap == null) 2889 this.needsMap = new BooleanType(); 2890 this.needsMap.setValue(value); 2891 return this; 2892 } 2893 2894 protected void listChildren(List<Property> children) { 2895 super.listChildren(children); 2896 children.add(new Property("needsMap", "boolean", "Whether the client must identify the map.", 0, 1, needsMap)); 2897 } 2898 2899 @Override 2900 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2901 switch (_hash) { 2902 case 866566527: /*needsMap*/ return new Property("needsMap", "boolean", "Whether the client must identify the map.", 0, 1, needsMap); 2903 default: return super.getNamedProperty(_hash, _name, _checkValid); 2904 } 2905 2906 } 2907 2908 @Override 2909 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2910 switch (hash) { 2911 case 866566527: /*needsMap*/ return this.needsMap == null ? new Base[0] : new Base[] {this.needsMap}; // BooleanType 2912 default: return super.getProperty(hash, name, checkValid); 2913 } 2914 2915 } 2916 2917 @Override 2918 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2919 switch (hash) { 2920 case 866566527: // needsMap 2921 this.needsMap = castToBoolean(value); // BooleanType 2922 return value; 2923 default: return super.setProperty(hash, name, value); 2924 } 2925 2926 } 2927 2928 @Override 2929 public Base setProperty(String name, Base value) throws FHIRException { 2930 if (name.equals("needsMap")) { 2931 this.needsMap = castToBoolean(value); // BooleanType 2932 } else 2933 return super.setProperty(name, value); 2934 return value; 2935 } 2936 2937 @Override 2938 public Base makeProperty(int hash, String name) throws FHIRException { 2939 switch (hash) { 2940 case 866566527: return getNeedsMapElement(); 2941 default: return super.makeProperty(hash, name); 2942 } 2943 2944 } 2945 2946 @Override 2947 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2948 switch (hash) { 2949 case 866566527: /*needsMap*/ return new String[] {"boolean"}; 2950 default: return super.getTypesForProperty(hash, name); 2951 } 2952 2953 } 2954 2955 @Override 2956 public Base addChild(String name) throws FHIRException { 2957 if (name.equals("needsMap")) { 2958 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.needsMap"); 2959 } 2960 else 2961 return super.addChild(name); 2962 } 2963 2964 public TerminologyCapabilitiesTranslationComponent copy() { 2965 TerminologyCapabilitiesTranslationComponent dst = new TerminologyCapabilitiesTranslationComponent(); 2966 copyValues(dst); 2967 return dst; 2968 } 2969 2970 public void copyValues(TerminologyCapabilitiesTranslationComponent dst) { 2971 super.copyValues(dst); 2972 dst.needsMap = needsMap == null ? null : needsMap.copy(); 2973 } 2974 2975 @Override 2976 public boolean equalsDeep(Base other_) { 2977 if (!super.equalsDeep(other_)) 2978 return false; 2979 if (!(other_ instanceof TerminologyCapabilitiesTranslationComponent)) 2980 return false; 2981 TerminologyCapabilitiesTranslationComponent o = (TerminologyCapabilitiesTranslationComponent) other_; 2982 return compareDeep(needsMap, o.needsMap, true); 2983 } 2984 2985 @Override 2986 public boolean equalsShallow(Base other_) { 2987 if (!super.equalsShallow(other_)) 2988 return false; 2989 if (!(other_ instanceof TerminologyCapabilitiesTranslationComponent)) 2990 return false; 2991 TerminologyCapabilitiesTranslationComponent o = (TerminologyCapabilitiesTranslationComponent) other_; 2992 return compareValues(needsMap, o.needsMap, true); 2993 } 2994 2995 public boolean isEmpty() { 2996 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(needsMap); 2997 } 2998 2999 public String fhirType() { 3000 return "TerminologyCapabilities.translation"; 3001 3002 } 3003 3004 } 3005 3006 @Block() 3007 public static class TerminologyCapabilitiesClosureComponent extends BackboneElement implements IBaseBackboneElement { 3008 /** 3009 * If cross-system closure is supported. 3010 */ 3011 @Child(name = "translation", type = {BooleanType.class}, order=1, min=0, max=1, modifier=false, summary=false) 3012 @Description(shortDefinition="If cross-system closure is supported", formalDefinition="If cross-system closure is supported." ) 3013 protected BooleanType translation; 3014 3015 private static final long serialVersionUID = 1900484343L; 3016 3017 /** 3018 * Constructor 3019 */ 3020 public TerminologyCapabilitiesClosureComponent() { 3021 super(); 3022 } 3023 3024 /** 3025 * @return {@link #translation} (If cross-system closure is supported.). This is the underlying object with id, value and extensions. The accessor "getTranslation" gives direct access to the value 3026 */ 3027 public BooleanType getTranslationElement() { 3028 if (this.translation == null) 3029 if (Configuration.errorOnAutoCreate()) 3030 throw new Error("Attempt to auto-create TerminologyCapabilitiesClosureComponent.translation"); 3031 else if (Configuration.doAutoCreate()) 3032 this.translation = new BooleanType(); // bb 3033 return this.translation; 3034 } 3035 3036 public boolean hasTranslationElement() { 3037 return this.translation != null && !this.translation.isEmpty(); 3038 } 3039 3040 public boolean hasTranslation() { 3041 return this.translation != null && !this.translation.isEmpty(); 3042 } 3043 3044 /** 3045 * @param value {@link #translation} (If cross-system closure is supported.). This is the underlying object with id, value and extensions. The accessor "getTranslation" gives direct access to the value 3046 */ 3047 public TerminologyCapabilitiesClosureComponent setTranslationElement(BooleanType value) { 3048 this.translation = value; 3049 return this; 3050 } 3051 3052 /** 3053 * @return If cross-system closure is supported. 3054 */ 3055 public boolean getTranslation() { 3056 return this.translation == null || this.translation.isEmpty() ? false : this.translation.getValue(); 3057 } 3058 3059 /** 3060 * @param value If cross-system closure is supported. 3061 */ 3062 public TerminologyCapabilitiesClosureComponent setTranslation(boolean value) { 3063 if (this.translation == null) 3064 this.translation = new BooleanType(); 3065 this.translation.setValue(value); 3066 return this; 3067 } 3068 3069 protected void listChildren(List<Property> children) { 3070 super.listChildren(children); 3071 children.add(new Property("translation", "boolean", "If cross-system closure is supported.", 0, 1, translation)); 3072 } 3073 3074 @Override 3075 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3076 switch (_hash) { 3077 case -1840647503: /*translation*/ return new Property("translation", "boolean", "If cross-system closure is supported.", 0, 1, translation); 3078 default: return super.getNamedProperty(_hash, _name, _checkValid); 3079 } 3080 3081 } 3082 3083 @Override 3084 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3085 switch (hash) { 3086 case -1840647503: /*translation*/ return this.translation == null ? new Base[0] : new Base[] {this.translation}; // BooleanType 3087 default: return super.getProperty(hash, name, checkValid); 3088 } 3089 3090 } 3091 3092 @Override 3093 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3094 switch (hash) { 3095 case -1840647503: // translation 3096 this.translation = castToBoolean(value); // BooleanType 3097 return value; 3098 default: return super.setProperty(hash, name, value); 3099 } 3100 3101 } 3102 3103 @Override 3104 public Base setProperty(String name, Base value) throws FHIRException { 3105 if (name.equals("translation")) { 3106 this.translation = castToBoolean(value); // BooleanType 3107 } else 3108 return super.setProperty(name, value); 3109 return value; 3110 } 3111 3112 @Override 3113 public Base makeProperty(int hash, String name) throws FHIRException { 3114 switch (hash) { 3115 case -1840647503: return getTranslationElement(); 3116 default: return super.makeProperty(hash, name); 3117 } 3118 3119 } 3120 3121 @Override 3122 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3123 switch (hash) { 3124 case -1840647503: /*translation*/ return new String[] {"boolean"}; 3125 default: return super.getTypesForProperty(hash, name); 3126 } 3127 3128 } 3129 3130 @Override 3131 public Base addChild(String name) throws FHIRException { 3132 if (name.equals("translation")) { 3133 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.translation"); 3134 } 3135 else 3136 return super.addChild(name); 3137 } 3138 3139 public TerminologyCapabilitiesClosureComponent copy() { 3140 TerminologyCapabilitiesClosureComponent dst = new TerminologyCapabilitiesClosureComponent(); 3141 copyValues(dst); 3142 return dst; 3143 } 3144 3145 public void copyValues(TerminologyCapabilitiesClosureComponent dst) { 3146 super.copyValues(dst); 3147 dst.translation = translation == null ? null : translation.copy(); 3148 } 3149 3150 @Override 3151 public boolean equalsDeep(Base other_) { 3152 if (!super.equalsDeep(other_)) 3153 return false; 3154 if (!(other_ instanceof TerminologyCapabilitiesClosureComponent)) 3155 return false; 3156 TerminologyCapabilitiesClosureComponent o = (TerminologyCapabilitiesClosureComponent) other_; 3157 return compareDeep(translation, o.translation, true); 3158 } 3159 3160 @Override 3161 public boolean equalsShallow(Base other_) { 3162 if (!super.equalsShallow(other_)) 3163 return false; 3164 if (!(other_ instanceof TerminologyCapabilitiesClosureComponent)) 3165 return false; 3166 TerminologyCapabilitiesClosureComponent o = (TerminologyCapabilitiesClosureComponent) other_; 3167 return compareValues(translation, o.translation, true); 3168 } 3169 3170 public boolean isEmpty() { 3171 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(translation); 3172 } 3173 3174 public String fhirType() { 3175 return "TerminologyCapabilities.closure"; 3176 3177 } 3178 3179 } 3180 3181 /** 3182 * Explanation of why this terminology capabilities is needed and why it has been designed as it has. 3183 */ 3184 @Child(name = "purpose", type = {MarkdownType.class}, order=0, min=0, max=1, modifier=false, summary=false) 3185 @Description(shortDefinition="Why this terminology capabilities is defined", formalDefinition="Explanation of why this terminology capabilities is needed and why it has been designed as it has." ) 3186 protected MarkdownType purpose; 3187 3188 /** 3189 * A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilities. 3190 */ 3191 @Child(name = "copyright", type = {MarkdownType.class}, order=1, min=0, max=1, modifier=false, summary=true) 3192 @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilities." ) 3193 protected MarkdownType copyright; 3194 3195 /** 3196 * The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase). 3197 */ 3198 @Child(name = "kind", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=true) 3199 @Description(shortDefinition="instance | capability | requirements", formalDefinition="The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase)." ) 3200 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/capability-statement-kind") 3201 protected Enumeration<CapabilityStatementKind> kind; 3202 3203 /** 3204 * Software that is covered by this terminology capability statement. It is used when the statement describes the capabilities of a particular software version, independent of an installation. 3205 */ 3206 @Child(name = "software", type = {}, order=3, min=0, max=1, modifier=false, summary=true) 3207 @Description(shortDefinition="Software that is covered by this terminology capability statement", formalDefinition="Software that is covered by this terminology capability statement. It is used when the statement describes the capabilities of a particular software version, independent of an installation." ) 3208 protected TerminologyCapabilitiesSoftwareComponent software; 3209 3210 /** 3211 * Identifies a specific implementation instance that is described by the terminology capability statement - i.e. a particular installation, rather than the capabilities of a software program. 3212 */ 3213 @Child(name = "implementation", type = {}, order=4, min=0, max=1, modifier=false, summary=true) 3214 @Description(shortDefinition="If this describes a specific instance", formalDefinition="Identifies a specific implementation instance that is described by the terminology capability statement - i.e. a particular installation, rather than the capabilities of a software program." ) 3215 protected TerminologyCapabilitiesImplementationComponent implementation; 3216 3217 /** 3218 * Whether the server supports lockedDate. 3219 */ 3220 @Child(name = "lockedDate", type = {BooleanType.class}, order=5, min=0, max=1, modifier=false, summary=true) 3221 @Description(shortDefinition="Whether lockedDate is supported", formalDefinition="Whether the server supports lockedDate." ) 3222 protected BooleanType lockedDate; 3223 3224 /** 3225 * Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resource. 3226 */ 3227 @Child(name = "codeSystem", type = {}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3228 @Description(shortDefinition="A code system supported by the server", formalDefinition="Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resource." ) 3229 protected List<TerminologyCapabilitiesCodeSystemComponent> codeSystem; 3230 3231 /** 3232 * Information about the [ValueSet/$expand](valueset-operation-expand.html) operation. 3233 */ 3234 @Child(name = "expansion", type = {}, order=7, min=0, max=1, modifier=false, summary=false) 3235 @Description(shortDefinition="Information about the [ValueSet/$expand](valueset-operation-expand.html) operation", formalDefinition="Information about the [ValueSet/$expand](valueset-operation-expand.html) operation." ) 3236 protected TerminologyCapabilitiesExpansionComponent expansion; 3237 3238 /** 3239 * The degree to which the server supports the code search parameter on ValueSet, if it is supported. 3240 */ 3241 @Child(name = "codeSearch", type = {CodeType.class}, order=8, min=0, max=1, modifier=false, summary=false) 3242 @Description(shortDefinition="explicit | all", formalDefinition="The degree to which the server supports the code search parameter on ValueSet, if it is supported." ) 3243 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/code-search-support") 3244 protected Enumeration<CodeSearchSupport> codeSearch; 3245 3246 /** 3247 * Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation. 3248 */ 3249 @Child(name = "validateCode", type = {}, order=9, min=0, max=1, modifier=false, summary=false) 3250 @Description(shortDefinition="Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation", formalDefinition="Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation." ) 3251 protected TerminologyCapabilitiesValidateCodeComponent validateCode; 3252 3253 /** 3254 * Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation. 3255 */ 3256 @Child(name = "translation", type = {}, order=10, min=0, max=1, modifier=false, summary=false) 3257 @Description(shortDefinition="Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation", formalDefinition="Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation." ) 3258 protected TerminologyCapabilitiesTranslationComponent translation; 3259 3260 /** 3261 * Whether the $closure operation is supported. 3262 */ 3263 @Child(name = "closure", type = {}, order=11, min=0, max=1, modifier=false, summary=false) 3264 @Description(shortDefinition="Information about the [ConceptMap/$closure](conceptmap-operation-closure.html) operation", formalDefinition="Whether the $closure operation is supported." ) 3265 protected TerminologyCapabilitiesClosureComponent closure; 3266 3267 private static final long serialVersionUID = -1899106119L; 3268 3269 /** 3270 * Constructor 3271 */ 3272 public TerminologyCapabilities() { 3273 super(); 3274 } 3275 3276 /** 3277 * Constructor 3278 */ 3279 public TerminologyCapabilities(Enumeration<PublicationStatus> status, DateTimeType date, Enumeration<CapabilityStatementKind> kind) { 3280 super(); 3281 this.status = status; 3282 this.date = date; 3283 this.kind = kind; 3284 } 3285 3286 /** 3287 * @return {@link #url} (An absolute URI that is used to identify this terminology capabilities 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 terminology capabilities is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the terminology capabilities is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 3288 */ 3289 public UriType getUrlElement() { 3290 if (this.url == null) 3291 if (Configuration.errorOnAutoCreate()) 3292 throw new Error("Attempt to auto-create TerminologyCapabilities.url"); 3293 else if (Configuration.doAutoCreate()) 3294 this.url = new UriType(); // bb 3295 return this.url; 3296 } 3297 3298 public boolean hasUrlElement() { 3299 return this.url != null && !this.url.isEmpty(); 3300 } 3301 3302 public boolean hasUrl() { 3303 return this.url != null && !this.url.isEmpty(); 3304 } 3305 3306 /** 3307 * @param value {@link #url} (An absolute URI that is used to identify this terminology capabilities 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 terminology capabilities is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the terminology capabilities is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 3308 */ 3309 public TerminologyCapabilities setUrlElement(UriType value) { 3310 this.url = value; 3311 return this; 3312 } 3313 3314 /** 3315 * @return An absolute URI that is used to identify this terminology capabilities 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 terminology capabilities is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the terminology capabilities is stored on different servers. 3316 */ 3317 public String getUrl() { 3318 return this.url == null ? null : this.url.getValue(); 3319 } 3320 3321 /** 3322 * @param value An absolute URI that is used to identify this terminology capabilities 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 terminology capabilities is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the terminology capabilities is stored on different servers. 3323 */ 3324 public TerminologyCapabilities setUrl(String value) { 3325 if (Utilities.noString(value)) 3326 this.url = null; 3327 else { 3328 if (this.url == null) 3329 this.url = new UriType(); 3330 this.url.setValue(value); 3331 } 3332 return this; 3333 } 3334 3335 /** 3336 * @return {@link #version} (The identifier that is used to identify this version of the terminology capabilities when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the terminology capabilities 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 3337 */ 3338 public StringType getVersionElement() { 3339 if (this.version == null) 3340 if (Configuration.errorOnAutoCreate()) 3341 throw new Error("Attempt to auto-create TerminologyCapabilities.version"); 3342 else if (Configuration.doAutoCreate()) 3343 this.version = new StringType(); // bb 3344 return this.version; 3345 } 3346 3347 public boolean hasVersionElement() { 3348 return this.version != null && !this.version.isEmpty(); 3349 } 3350 3351 public boolean hasVersion() { 3352 return this.version != null && !this.version.isEmpty(); 3353 } 3354 3355 /** 3356 * @param value {@link #version} (The identifier that is used to identify this version of the terminology capabilities when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the terminology capabilities 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 3357 */ 3358 public TerminologyCapabilities setVersionElement(StringType value) { 3359 this.version = value; 3360 return this; 3361 } 3362 3363 /** 3364 * @return The identifier that is used to identify this version of the terminology capabilities when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the terminology capabilities 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. 3365 */ 3366 public String getVersion() { 3367 return this.version == null ? null : this.version.getValue(); 3368 } 3369 3370 /** 3371 * @param value The identifier that is used to identify this version of the terminology capabilities when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the terminology capabilities 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. 3372 */ 3373 public TerminologyCapabilities setVersion(String value) { 3374 if (Utilities.noString(value)) 3375 this.version = null; 3376 else { 3377 if (this.version == null) 3378 this.version = new StringType(); 3379 this.version.setValue(value); 3380 } 3381 return this; 3382 } 3383 3384 /** 3385 * @return {@link #name} (A natural language name identifying the terminology capabilities. 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 3386 */ 3387 public StringType getNameElement() { 3388 if (this.name == null) 3389 if (Configuration.errorOnAutoCreate()) 3390 throw new Error("Attempt to auto-create TerminologyCapabilities.name"); 3391 else if (Configuration.doAutoCreate()) 3392 this.name = new StringType(); // bb 3393 return this.name; 3394 } 3395 3396 public boolean hasNameElement() { 3397 return this.name != null && !this.name.isEmpty(); 3398 } 3399 3400 public boolean hasName() { 3401 return this.name != null && !this.name.isEmpty(); 3402 } 3403 3404 /** 3405 * @param value {@link #name} (A natural language name identifying the terminology capabilities. 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 3406 */ 3407 public TerminologyCapabilities setNameElement(StringType value) { 3408 this.name = value; 3409 return this; 3410 } 3411 3412 /** 3413 * @return A natural language name identifying the terminology capabilities. This name should be usable as an identifier for the module by machine processing applications such as code generation. 3414 */ 3415 public String getName() { 3416 return this.name == null ? null : this.name.getValue(); 3417 } 3418 3419 /** 3420 * @param value A natural language name identifying the terminology capabilities. This name should be usable as an identifier for the module by machine processing applications such as code generation. 3421 */ 3422 public TerminologyCapabilities setName(String value) { 3423 if (Utilities.noString(value)) 3424 this.name = null; 3425 else { 3426 if (this.name == null) 3427 this.name = new StringType(); 3428 this.name.setValue(value); 3429 } 3430 return this; 3431 } 3432 3433 /** 3434 * @return {@link #title} (A short, descriptive, user-friendly title for the terminology capabilities.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 3435 */ 3436 public StringType getTitleElement() { 3437 if (this.title == null) 3438 if (Configuration.errorOnAutoCreate()) 3439 throw new Error("Attempt to auto-create TerminologyCapabilities.title"); 3440 else if (Configuration.doAutoCreate()) 3441 this.title = new StringType(); // bb 3442 return this.title; 3443 } 3444 3445 public boolean hasTitleElement() { 3446 return this.title != null && !this.title.isEmpty(); 3447 } 3448 3449 public boolean hasTitle() { 3450 return this.title != null && !this.title.isEmpty(); 3451 } 3452 3453 /** 3454 * @param value {@link #title} (A short, descriptive, user-friendly title for the terminology capabilities.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 3455 */ 3456 public TerminologyCapabilities setTitleElement(StringType value) { 3457 this.title = value; 3458 return this; 3459 } 3460 3461 /** 3462 * @return A short, descriptive, user-friendly title for the terminology capabilities. 3463 */ 3464 public String getTitle() { 3465 return this.title == null ? null : this.title.getValue(); 3466 } 3467 3468 /** 3469 * @param value A short, descriptive, user-friendly title for the terminology capabilities. 3470 */ 3471 public TerminologyCapabilities setTitle(String value) { 3472 if (Utilities.noString(value)) 3473 this.title = null; 3474 else { 3475 if (this.title == null) 3476 this.title = new StringType(); 3477 this.title.setValue(value); 3478 } 3479 return this; 3480 } 3481 3482 /** 3483 * @return {@link #status} (The status of this terminology capabilities. 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 3484 */ 3485 public Enumeration<PublicationStatus> getStatusElement() { 3486 if (this.status == null) 3487 if (Configuration.errorOnAutoCreate()) 3488 throw new Error("Attempt to auto-create TerminologyCapabilities.status"); 3489 else if (Configuration.doAutoCreate()) 3490 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 3491 return this.status; 3492 } 3493 3494 public boolean hasStatusElement() { 3495 return this.status != null && !this.status.isEmpty(); 3496 } 3497 3498 public boolean hasStatus() { 3499 return this.status != null && !this.status.isEmpty(); 3500 } 3501 3502 /** 3503 * @param value {@link #status} (The status of this terminology capabilities. 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 3504 */ 3505 public TerminologyCapabilities setStatusElement(Enumeration<PublicationStatus> value) { 3506 this.status = value; 3507 return this; 3508 } 3509 3510 /** 3511 * @return The status of this terminology capabilities. Enables tracking the life-cycle of the content. 3512 */ 3513 public PublicationStatus getStatus() { 3514 return this.status == null ? null : this.status.getValue(); 3515 } 3516 3517 /** 3518 * @param value The status of this terminology capabilities. Enables tracking the life-cycle of the content. 3519 */ 3520 public TerminologyCapabilities setStatus(PublicationStatus value) { 3521 if (this.status == null) 3522 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 3523 this.status.setValue(value); 3524 return this; 3525 } 3526 3527 /** 3528 * @return {@link #experimental} (A Boolean value to indicate that this terminology capabilities 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 3529 */ 3530 public BooleanType getExperimentalElement() { 3531 if (this.experimental == null) 3532 if (Configuration.errorOnAutoCreate()) 3533 throw new Error("Attempt to auto-create TerminologyCapabilities.experimental"); 3534 else if (Configuration.doAutoCreate()) 3535 this.experimental = new BooleanType(); // bb 3536 return this.experimental; 3537 } 3538 3539 public boolean hasExperimentalElement() { 3540 return this.experimental != null && !this.experimental.isEmpty(); 3541 } 3542 3543 public boolean hasExperimental() { 3544 return this.experimental != null && !this.experimental.isEmpty(); 3545 } 3546 3547 /** 3548 * @param value {@link #experimental} (A Boolean value to indicate that this terminology capabilities 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 3549 */ 3550 public TerminologyCapabilities setExperimentalElement(BooleanType value) { 3551 this.experimental = value; 3552 return this; 3553 } 3554 3555 /** 3556 * @return A Boolean value to indicate that this terminology capabilities is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 3557 */ 3558 public boolean getExperimental() { 3559 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 3560 } 3561 3562 /** 3563 * @param value A Boolean value to indicate that this terminology capabilities is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 3564 */ 3565 public TerminologyCapabilities setExperimental(boolean value) { 3566 if (this.experimental == null) 3567 this.experimental = new BooleanType(); 3568 this.experimental.setValue(value); 3569 return this; 3570 } 3571 3572 /** 3573 * @return {@link #date} (The date (and optionally time) when the terminology capabilities 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 terminology capabilities changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 3574 */ 3575 public DateTimeType getDateElement() { 3576 if (this.date == null) 3577 if (Configuration.errorOnAutoCreate()) 3578 throw new Error("Attempt to auto-create TerminologyCapabilities.date"); 3579 else if (Configuration.doAutoCreate()) 3580 this.date = new DateTimeType(); // bb 3581 return this.date; 3582 } 3583 3584 public boolean hasDateElement() { 3585 return this.date != null && !this.date.isEmpty(); 3586 } 3587 3588 public boolean hasDate() { 3589 return this.date != null && !this.date.isEmpty(); 3590 } 3591 3592 /** 3593 * @param value {@link #date} (The date (and optionally time) when the terminology capabilities 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 terminology capabilities changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 3594 */ 3595 public TerminologyCapabilities setDateElement(DateTimeType value) { 3596 this.date = value; 3597 return this; 3598 } 3599 3600 /** 3601 * @return The date (and optionally time) when the terminology capabilities 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 terminology capabilities changes. 3602 */ 3603 public Date getDate() { 3604 return this.date == null ? null : this.date.getValue(); 3605 } 3606 3607 /** 3608 * @param value The date (and optionally time) when the terminology capabilities 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 terminology capabilities changes. 3609 */ 3610 public TerminologyCapabilities setDate(Date value) { 3611 if (this.date == null) 3612 this.date = new DateTimeType(); 3613 this.date.setValue(value); 3614 return this; 3615 } 3616 3617 /** 3618 * @return {@link #publisher} (The name of the organization or individual that published the terminology capabilities.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 3619 */ 3620 public StringType getPublisherElement() { 3621 if (this.publisher == null) 3622 if (Configuration.errorOnAutoCreate()) 3623 throw new Error("Attempt to auto-create TerminologyCapabilities.publisher"); 3624 else if (Configuration.doAutoCreate()) 3625 this.publisher = new StringType(); // bb 3626 return this.publisher; 3627 } 3628 3629 public boolean hasPublisherElement() { 3630 return this.publisher != null && !this.publisher.isEmpty(); 3631 } 3632 3633 public boolean hasPublisher() { 3634 return this.publisher != null && !this.publisher.isEmpty(); 3635 } 3636 3637 /** 3638 * @param value {@link #publisher} (The name of the organization or individual that published the terminology capabilities.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 3639 */ 3640 public TerminologyCapabilities setPublisherElement(StringType value) { 3641 this.publisher = value; 3642 return this; 3643 } 3644 3645 /** 3646 * @return The name of the organization or individual that published the terminology capabilities. 3647 */ 3648 public String getPublisher() { 3649 return this.publisher == null ? null : this.publisher.getValue(); 3650 } 3651 3652 /** 3653 * @param value The name of the organization or individual that published the terminology capabilities. 3654 */ 3655 public TerminologyCapabilities setPublisher(String value) { 3656 if (Utilities.noString(value)) 3657 this.publisher = null; 3658 else { 3659 if (this.publisher == null) 3660 this.publisher = new StringType(); 3661 this.publisher.setValue(value); 3662 } 3663 return this; 3664 } 3665 3666 /** 3667 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 3668 */ 3669 public List<ContactDetail> getContact() { 3670 if (this.contact == null) 3671 this.contact = new ArrayList<ContactDetail>(); 3672 return this.contact; 3673 } 3674 3675 /** 3676 * @return Returns a reference to <code>this</code> for easy method chaining 3677 */ 3678 public TerminologyCapabilities setContact(List<ContactDetail> theContact) { 3679 this.contact = theContact; 3680 return this; 3681 } 3682 3683 public boolean hasContact() { 3684 if (this.contact == null) 3685 return false; 3686 for (ContactDetail item : this.contact) 3687 if (!item.isEmpty()) 3688 return true; 3689 return false; 3690 } 3691 3692 public ContactDetail addContact() { //3 3693 ContactDetail t = new ContactDetail(); 3694 if (this.contact == null) 3695 this.contact = new ArrayList<ContactDetail>(); 3696 this.contact.add(t); 3697 return t; 3698 } 3699 3700 public TerminologyCapabilities addContact(ContactDetail t) { //3 3701 if (t == null) 3702 return this; 3703 if (this.contact == null) 3704 this.contact = new ArrayList<ContactDetail>(); 3705 this.contact.add(t); 3706 return this; 3707 } 3708 3709 /** 3710 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 3711 */ 3712 public ContactDetail getContactFirstRep() { 3713 if (getContact().isEmpty()) { 3714 addContact(); 3715 } 3716 return getContact().get(0); 3717 } 3718 3719 /** 3720 * @return {@link #description} (A free text natural language description of the terminology capabilities from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 3721 */ 3722 public MarkdownType getDescriptionElement() { 3723 if (this.description == null) 3724 if (Configuration.errorOnAutoCreate()) 3725 throw new Error("Attempt to auto-create TerminologyCapabilities.description"); 3726 else if (Configuration.doAutoCreate()) 3727 this.description = new MarkdownType(); // bb 3728 return this.description; 3729 } 3730 3731 public boolean hasDescriptionElement() { 3732 return this.description != null && !this.description.isEmpty(); 3733 } 3734 3735 public boolean hasDescription() { 3736 return this.description != null && !this.description.isEmpty(); 3737 } 3738 3739 /** 3740 * @param value {@link #description} (A free text natural language description of the terminology capabilities from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 3741 */ 3742 public TerminologyCapabilities setDescriptionElement(MarkdownType value) { 3743 this.description = value; 3744 return this; 3745 } 3746 3747 /** 3748 * @return A free text natural language description of the terminology capabilities from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP. 3749 */ 3750 public String getDescription() { 3751 return this.description == null ? null : this.description.getValue(); 3752 } 3753 3754 /** 3755 * @param value A free text natural language description of the terminology capabilities from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP. 3756 */ 3757 public TerminologyCapabilities setDescription(String value) { 3758 if (value == null) 3759 this.description = null; 3760 else { 3761 if (this.description == null) 3762 this.description = new MarkdownType(); 3763 this.description.setValue(value); 3764 } 3765 return this; 3766 } 3767 3768 /** 3769 * @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 terminology capabilities instances.) 3770 */ 3771 public List<UsageContext> getUseContext() { 3772 if (this.useContext == null) 3773 this.useContext = new ArrayList<UsageContext>(); 3774 return this.useContext; 3775 } 3776 3777 /** 3778 * @return Returns a reference to <code>this</code> for easy method chaining 3779 */ 3780 public TerminologyCapabilities setUseContext(List<UsageContext> theUseContext) { 3781 this.useContext = theUseContext; 3782 return this; 3783 } 3784 3785 public boolean hasUseContext() { 3786 if (this.useContext == null) 3787 return false; 3788 for (UsageContext item : this.useContext) 3789 if (!item.isEmpty()) 3790 return true; 3791 return false; 3792 } 3793 3794 public UsageContext addUseContext() { //3 3795 UsageContext t = new UsageContext(); 3796 if (this.useContext == null) 3797 this.useContext = new ArrayList<UsageContext>(); 3798 this.useContext.add(t); 3799 return t; 3800 } 3801 3802 public TerminologyCapabilities addUseContext(UsageContext t) { //3 3803 if (t == null) 3804 return this; 3805 if (this.useContext == null) 3806 this.useContext = new ArrayList<UsageContext>(); 3807 this.useContext.add(t); 3808 return this; 3809 } 3810 3811 /** 3812 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist 3813 */ 3814 public UsageContext getUseContextFirstRep() { 3815 if (getUseContext().isEmpty()) { 3816 addUseContext(); 3817 } 3818 return getUseContext().get(0); 3819 } 3820 3821 /** 3822 * @return {@link #jurisdiction} (A legal or geographic region in which the terminology capabilities is intended to be used.) 3823 */ 3824 public List<CodeableConcept> getJurisdiction() { 3825 if (this.jurisdiction == null) 3826 this.jurisdiction = new ArrayList<CodeableConcept>(); 3827 return this.jurisdiction; 3828 } 3829 3830 /** 3831 * @return Returns a reference to <code>this</code> for easy method chaining 3832 */ 3833 public TerminologyCapabilities setJurisdiction(List<CodeableConcept> theJurisdiction) { 3834 this.jurisdiction = theJurisdiction; 3835 return this; 3836 } 3837 3838 public boolean hasJurisdiction() { 3839 if (this.jurisdiction == null) 3840 return false; 3841 for (CodeableConcept item : this.jurisdiction) 3842 if (!item.isEmpty()) 3843 return true; 3844 return false; 3845 } 3846 3847 public CodeableConcept addJurisdiction() { //3 3848 CodeableConcept t = new CodeableConcept(); 3849 if (this.jurisdiction == null) 3850 this.jurisdiction = new ArrayList<CodeableConcept>(); 3851 this.jurisdiction.add(t); 3852 return t; 3853 } 3854 3855 public TerminologyCapabilities addJurisdiction(CodeableConcept t) { //3 3856 if (t == null) 3857 return this; 3858 if (this.jurisdiction == null) 3859 this.jurisdiction = new ArrayList<CodeableConcept>(); 3860 this.jurisdiction.add(t); 3861 return this; 3862 } 3863 3864 /** 3865 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist 3866 */ 3867 public CodeableConcept getJurisdictionFirstRep() { 3868 if (getJurisdiction().isEmpty()) { 3869 addJurisdiction(); 3870 } 3871 return getJurisdiction().get(0); 3872 } 3873 3874 /** 3875 * @return {@link #purpose} (Explanation of why this terminology capabilities 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 3876 */ 3877 public MarkdownType getPurposeElement() { 3878 if (this.purpose == null) 3879 if (Configuration.errorOnAutoCreate()) 3880 throw new Error("Attempt to auto-create TerminologyCapabilities.purpose"); 3881 else if (Configuration.doAutoCreate()) 3882 this.purpose = new MarkdownType(); // bb 3883 return this.purpose; 3884 } 3885 3886 public boolean hasPurposeElement() { 3887 return this.purpose != null && !this.purpose.isEmpty(); 3888 } 3889 3890 public boolean hasPurpose() { 3891 return this.purpose != null && !this.purpose.isEmpty(); 3892 } 3893 3894 /** 3895 * @param value {@link #purpose} (Explanation of why this terminology capabilities 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 3896 */ 3897 public TerminologyCapabilities setPurposeElement(MarkdownType value) { 3898 this.purpose = value; 3899 return this; 3900 } 3901 3902 /** 3903 * @return Explanation of why this terminology capabilities is needed and why it has been designed as it has. 3904 */ 3905 public String getPurpose() { 3906 return this.purpose == null ? null : this.purpose.getValue(); 3907 } 3908 3909 /** 3910 * @param value Explanation of why this terminology capabilities is needed and why it has been designed as it has. 3911 */ 3912 public TerminologyCapabilities setPurpose(String value) { 3913 if (value == null) 3914 this.purpose = null; 3915 else { 3916 if (this.purpose == null) 3917 this.purpose = new MarkdownType(); 3918 this.purpose.setValue(value); 3919 } 3920 return this; 3921 } 3922 3923 /** 3924 * @return {@link #copyright} (A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilities.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 3925 */ 3926 public MarkdownType getCopyrightElement() { 3927 if (this.copyright == null) 3928 if (Configuration.errorOnAutoCreate()) 3929 throw new Error("Attempt to auto-create TerminologyCapabilities.copyright"); 3930 else if (Configuration.doAutoCreate()) 3931 this.copyright = new MarkdownType(); // bb 3932 return this.copyright; 3933 } 3934 3935 public boolean hasCopyrightElement() { 3936 return this.copyright != null && !this.copyright.isEmpty(); 3937 } 3938 3939 public boolean hasCopyright() { 3940 return this.copyright != null && !this.copyright.isEmpty(); 3941 } 3942 3943 /** 3944 * @param value {@link #copyright} (A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilities.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 3945 */ 3946 public TerminologyCapabilities setCopyrightElement(MarkdownType value) { 3947 this.copyright = value; 3948 return this; 3949 } 3950 3951 /** 3952 * @return A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilities. 3953 */ 3954 public String getCopyright() { 3955 return this.copyright == null ? null : this.copyright.getValue(); 3956 } 3957 3958 /** 3959 * @param value A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilities. 3960 */ 3961 public TerminologyCapabilities setCopyright(String value) { 3962 if (value == null) 3963 this.copyright = null; 3964 else { 3965 if (this.copyright == null) 3966 this.copyright = new MarkdownType(); 3967 this.copyright.setValue(value); 3968 } 3969 return this; 3970 } 3971 3972 /** 3973 * @return {@link #kind} (The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase).). This is the underlying object with id, value and extensions. The accessor "getKind" gives direct access to the value 3974 */ 3975 public Enumeration<CapabilityStatementKind> getKindElement() { 3976 if (this.kind == null) 3977 if (Configuration.errorOnAutoCreate()) 3978 throw new Error("Attempt to auto-create TerminologyCapabilities.kind"); 3979 else if (Configuration.doAutoCreate()) 3980 this.kind = new Enumeration<CapabilityStatementKind>(new CapabilityStatementKindEnumFactory()); // bb 3981 return this.kind; 3982 } 3983 3984 public boolean hasKindElement() { 3985 return this.kind != null && !this.kind.isEmpty(); 3986 } 3987 3988 public boolean hasKind() { 3989 return this.kind != null && !this.kind.isEmpty(); 3990 } 3991 3992 /** 3993 * @param value {@link #kind} (The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase).). This is the underlying object with id, value and extensions. The accessor "getKind" gives direct access to the value 3994 */ 3995 public TerminologyCapabilities setKindElement(Enumeration<CapabilityStatementKind> value) { 3996 this.kind = value; 3997 return this; 3998 } 3999 4000 /** 4001 * @return The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase). 4002 */ 4003 public CapabilityStatementKind getKind() { 4004 return this.kind == null ? null : this.kind.getValue(); 4005 } 4006 4007 /** 4008 * @param value The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase). 4009 */ 4010 public TerminologyCapabilities setKind(CapabilityStatementKind value) { 4011 if (this.kind == null) 4012 this.kind = new Enumeration<CapabilityStatementKind>(new CapabilityStatementKindEnumFactory()); 4013 this.kind.setValue(value); 4014 return this; 4015 } 4016 4017 /** 4018 * @return {@link #software} (Software that is covered by this terminology capability statement. It is used when the statement describes the capabilities of a particular software version, independent of an installation.) 4019 */ 4020 public TerminologyCapabilitiesSoftwareComponent getSoftware() { 4021 if (this.software == null) 4022 if (Configuration.errorOnAutoCreate()) 4023 throw new Error("Attempt to auto-create TerminologyCapabilities.software"); 4024 else if (Configuration.doAutoCreate()) 4025 this.software = new TerminologyCapabilitiesSoftwareComponent(); // cc 4026 return this.software; 4027 } 4028 4029 public boolean hasSoftware() { 4030 return this.software != null && !this.software.isEmpty(); 4031 } 4032 4033 /** 4034 * @param value {@link #software} (Software that is covered by this terminology capability statement. It is used when the statement describes the capabilities of a particular software version, independent of an installation.) 4035 */ 4036 public TerminologyCapabilities setSoftware(TerminologyCapabilitiesSoftwareComponent value) { 4037 this.software = value; 4038 return this; 4039 } 4040 4041 /** 4042 * @return {@link #implementation} (Identifies a specific implementation instance that is described by the terminology capability statement - i.e. a particular installation, rather than the capabilities of a software program.) 4043 */ 4044 public TerminologyCapabilitiesImplementationComponent getImplementation() { 4045 if (this.implementation == null) 4046 if (Configuration.errorOnAutoCreate()) 4047 throw new Error("Attempt to auto-create TerminologyCapabilities.implementation"); 4048 else if (Configuration.doAutoCreate()) 4049 this.implementation = new TerminologyCapabilitiesImplementationComponent(); // cc 4050 return this.implementation; 4051 } 4052 4053 public boolean hasImplementation() { 4054 return this.implementation != null && !this.implementation.isEmpty(); 4055 } 4056 4057 /** 4058 * @param value {@link #implementation} (Identifies a specific implementation instance that is described by the terminology capability statement - i.e. a particular installation, rather than the capabilities of a software program.) 4059 */ 4060 public TerminologyCapabilities setImplementation(TerminologyCapabilitiesImplementationComponent value) { 4061 this.implementation = value; 4062 return this; 4063 } 4064 4065 /** 4066 * @return {@link #lockedDate} (Whether the server supports lockedDate.). This is the underlying object with id, value and extensions. The accessor "getLockedDate" gives direct access to the value 4067 */ 4068 public BooleanType getLockedDateElement() { 4069 if (this.lockedDate == null) 4070 if (Configuration.errorOnAutoCreate()) 4071 throw new Error("Attempt to auto-create TerminologyCapabilities.lockedDate"); 4072 else if (Configuration.doAutoCreate()) 4073 this.lockedDate = new BooleanType(); // bb 4074 return this.lockedDate; 4075 } 4076 4077 public boolean hasLockedDateElement() { 4078 return this.lockedDate != null && !this.lockedDate.isEmpty(); 4079 } 4080 4081 public boolean hasLockedDate() { 4082 return this.lockedDate != null && !this.lockedDate.isEmpty(); 4083 } 4084 4085 /** 4086 * @param value {@link #lockedDate} (Whether the server supports lockedDate.). This is the underlying object with id, value and extensions. The accessor "getLockedDate" gives direct access to the value 4087 */ 4088 public TerminologyCapabilities setLockedDateElement(BooleanType value) { 4089 this.lockedDate = value; 4090 return this; 4091 } 4092 4093 /** 4094 * @return Whether the server supports lockedDate. 4095 */ 4096 public boolean getLockedDate() { 4097 return this.lockedDate == null || this.lockedDate.isEmpty() ? false : this.lockedDate.getValue(); 4098 } 4099 4100 /** 4101 * @param value Whether the server supports lockedDate. 4102 */ 4103 public TerminologyCapabilities setLockedDate(boolean value) { 4104 if (this.lockedDate == null) 4105 this.lockedDate = new BooleanType(); 4106 this.lockedDate.setValue(value); 4107 return this; 4108 } 4109 4110 /** 4111 * @return {@link #codeSystem} (Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resource.) 4112 */ 4113 public List<TerminologyCapabilitiesCodeSystemComponent> getCodeSystem() { 4114 if (this.codeSystem == null) 4115 this.codeSystem = new ArrayList<TerminologyCapabilitiesCodeSystemComponent>(); 4116 return this.codeSystem; 4117 } 4118 4119 /** 4120 * @return Returns a reference to <code>this</code> for easy method chaining 4121 */ 4122 public TerminologyCapabilities setCodeSystem(List<TerminologyCapabilitiesCodeSystemComponent> theCodeSystem) { 4123 this.codeSystem = theCodeSystem; 4124 return this; 4125 } 4126 4127 public boolean hasCodeSystem() { 4128 if (this.codeSystem == null) 4129 return false; 4130 for (TerminologyCapabilitiesCodeSystemComponent item : this.codeSystem) 4131 if (!item.isEmpty()) 4132 return true; 4133 return false; 4134 } 4135 4136 public TerminologyCapabilitiesCodeSystemComponent addCodeSystem() { //3 4137 TerminologyCapabilitiesCodeSystemComponent t = new TerminologyCapabilitiesCodeSystemComponent(); 4138 if (this.codeSystem == null) 4139 this.codeSystem = new ArrayList<TerminologyCapabilitiesCodeSystemComponent>(); 4140 this.codeSystem.add(t); 4141 return t; 4142 } 4143 4144 public TerminologyCapabilities addCodeSystem(TerminologyCapabilitiesCodeSystemComponent t) { //3 4145 if (t == null) 4146 return this; 4147 if (this.codeSystem == null) 4148 this.codeSystem = new ArrayList<TerminologyCapabilitiesCodeSystemComponent>(); 4149 this.codeSystem.add(t); 4150 return this; 4151 } 4152 4153 /** 4154 * @return The first repetition of repeating field {@link #codeSystem}, creating it if it does not already exist 4155 */ 4156 public TerminologyCapabilitiesCodeSystemComponent getCodeSystemFirstRep() { 4157 if (getCodeSystem().isEmpty()) { 4158 addCodeSystem(); 4159 } 4160 return getCodeSystem().get(0); 4161 } 4162 4163 /** 4164 * @return {@link #expansion} (Information about the [ValueSet/$expand](valueset-operation-expand.html) operation.) 4165 */ 4166 public TerminologyCapabilitiesExpansionComponent getExpansion() { 4167 if (this.expansion == null) 4168 if (Configuration.errorOnAutoCreate()) 4169 throw new Error("Attempt to auto-create TerminologyCapabilities.expansion"); 4170 else if (Configuration.doAutoCreate()) 4171 this.expansion = new TerminologyCapabilitiesExpansionComponent(); // cc 4172 return this.expansion; 4173 } 4174 4175 public boolean hasExpansion() { 4176 return this.expansion != null && !this.expansion.isEmpty(); 4177 } 4178 4179 /** 4180 * @param value {@link #expansion} (Information about the [ValueSet/$expand](valueset-operation-expand.html) operation.) 4181 */ 4182 public TerminologyCapabilities setExpansion(TerminologyCapabilitiesExpansionComponent value) { 4183 this.expansion = value; 4184 return this; 4185 } 4186 4187 /** 4188 * @return {@link #codeSearch} (The degree to which the server supports the code search parameter on ValueSet, if it is supported.). This is the underlying object with id, value and extensions. The accessor "getCodeSearch" gives direct access to the value 4189 */ 4190 public Enumeration<CodeSearchSupport> getCodeSearchElement() { 4191 if (this.codeSearch == null) 4192 if (Configuration.errorOnAutoCreate()) 4193 throw new Error("Attempt to auto-create TerminologyCapabilities.codeSearch"); 4194 else if (Configuration.doAutoCreate()) 4195 this.codeSearch = new Enumeration<CodeSearchSupport>(new CodeSearchSupportEnumFactory()); // bb 4196 return this.codeSearch; 4197 } 4198 4199 public boolean hasCodeSearchElement() { 4200 return this.codeSearch != null && !this.codeSearch.isEmpty(); 4201 } 4202 4203 public boolean hasCodeSearch() { 4204 return this.codeSearch != null && !this.codeSearch.isEmpty(); 4205 } 4206 4207 /** 4208 * @param value {@link #codeSearch} (The degree to which the server supports the code search parameter on ValueSet, if it is supported.). This is the underlying object with id, value and extensions. The accessor "getCodeSearch" gives direct access to the value 4209 */ 4210 public TerminologyCapabilities setCodeSearchElement(Enumeration<CodeSearchSupport> value) { 4211 this.codeSearch = value; 4212 return this; 4213 } 4214 4215 /** 4216 * @return The degree to which the server supports the code search parameter on ValueSet, if it is supported. 4217 */ 4218 public CodeSearchSupport getCodeSearch() { 4219 return this.codeSearch == null ? null : this.codeSearch.getValue(); 4220 } 4221 4222 /** 4223 * @param value The degree to which the server supports the code search parameter on ValueSet, if it is supported. 4224 */ 4225 public TerminologyCapabilities setCodeSearch(CodeSearchSupport value) { 4226 if (value == null) 4227 this.codeSearch = null; 4228 else { 4229 if (this.codeSearch == null) 4230 this.codeSearch = new Enumeration<CodeSearchSupport>(new CodeSearchSupportEnumFactory()); 4231 this.codeSearch.setValue(value); 4232 } 4233 return this; 4234 } 4235 4236 /** 4237 * @return {@link #validateCode} (Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation.) 4238 */ 4239 public TerminologyCapabilitiesValidateCodeComponent getValidateCode() { 4240 if (this.validateCode == null) 4241 if (Configuration.errorOnAutoCreate()) 4242 throw new Error("Attempt to auto-create TerminologyCapabilities.validateCode"); 4243 else if (Configuration.doAutoCreate()) 4244 this.validateCode = new TerminologyCapabilitiesValidateCodeComponent(); // cc 4245 return this.validateCode; 4246 } 4247 4248 public boolean hasValidateCode() { 4249 return this.validateCode != null && !this.validateCode.isEmpty(); 4250 } 4251 4252 /** 4253 * @param value {@link #validateCode} (Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation.) 4254 */ 4255 public TerminologyCapabilities setValidateCode(TerminologyCapabilitiesValidateCodeComponent value) { 4256 this.validateCode = value; 4257 return this; 4258 } 4259 4260 /** 4261 * @return {@link #translation} (Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation.) 4262 */ 4263 public TerminologyCapabilitiesTranslationComponent getTranslation() { 4264 if (this.translation == null) 4265 if (Configuration.errorOnAutoCreate()) 4266 throw new Error("Attempt to auto-create TerminologyCapabilities.translation"); 4267 else if (Configuration.doAutoCreate()) 4268 this.translation = new TerminologyCapabilitiesTranslationComponent(); // cc 4269 return this.translation; 4270 } 4271 4272 public boolean hasTranslation() { 4273 return this.translation != null && !this.translation.isEmpty(); 4274 } 4275 4276 /** 4277 * @param value {@link #translation} (Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation.) 4278 */ 4279 public TerminologyCapabilities setTranslation(TerminologyCapabilitiesTranslationComponent value) { 4280 this.translation = value; 4281 return this; 4282 } 4283 4284 /** 4285 * @return {@link #closure} (Whether the $closure operation is supported.) 4286 */ 4287 public TerminologyCapabilitiesClosureComponent getClosure() { 4288 if (this.closure == null) 4289 if (Configuration.errorOnAutoCreate()) 4290 throw new Error("Attempt to auto-create TerminologyCapabilities.closure"); 4291 else if (Configuration.doAutoCreate()) 4292 this.closure = new TerminologyCapabilitiesClosureComponent(); // cc 4293 return this.closure; 4294 } 4295 4296 public boolean hasClosure() { 4297 return this.closure != null && !this.closure.isEmpty(); 4298 } 4299 4300 /** 4301 * @param value {@link #closure} (Whether the $closure operation is supported.) 4302 */ 4303 public TerminologyCapabilities setClosure(TerminologyCapabilitiesClosureComponent value) { 4304 this.closure = value; 4305 return this; 4306 } 4307 4308 protected void listChildren(List<Property> children) { 4309 super.listChildren(children); 4310 children.add(new Property("url", "uri", "An absolute URI that is used to identify this terminology capabilities 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 terminology capabilities is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the terminology capabilities is stored on different servers.", 0, 1, url)); 4311 children.add(new Property("version", "string", "The identifier that is used to identify this version of the terminology capabilities when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the terminology capabilities 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)); 4312 children.add(new Property("name", "string", "A natural language name identifying the terminology capabilities. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name)); 4313 children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the terminology capabilities.", 0, 1, title)); 4314 children.add(new Property("status", "code", "The status of this terminology capabilities. Enables tracking the life-cycle of the content.", 0, 1, status)); 4315 children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this terminology capabilities is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental)); 4316 children.add(new Property("date", "dateTime", "The date (and optionally time) when the terminology capabilities 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 terminology capabilities changes.", 0, 1, date)); 4317 children.add(new Property("publisher", "string", "The name of the organization or individual that published the terminology capabilities.", 0, 1, publisher)); 4318 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)); 4319 children.add(new Property("description", "markdown", "A free text natural language description of the terminology capabilities from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.", 0, 1, description)); 4320 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 terminology capabilities instances.", 0, java.lang.Integer.MAX_VALUE, useContext)); 4321 children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the terminology capabilities is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction)); 4322 children.add(new Property("purpose", "markdown", "Explanation of why this terminology capabilities is needed and why it has been designed as it has.", 0, 1, purpose)); 4323 children.add(new Property("copyright", "markdown", "A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilities.", 0, 1, copyright)); 4324 children.add(new Property("kind", "code", "The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase).", 0, 1, kind)); 4325 children.add(new Property("software", "", "Software that is covered by this terminology capability statement. It is used when the statement describes the capabilities of a particular software version, independent of an installation.", 0, 1, software)); 4326 children.add(new Property("implementation", "", "Identifies a specific implementation instance that is described by the terminology capability statement - i.e. a particular installation, rather than the capabilities of a software program.", 0, 1, implementation)); 4327 children.add(new Property("lockedDate", "boolean", "Whether the server supports lockedDate.", 0, 1, lockedDate)); 4328 children.add(new Property("codeSystem", "", "Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resource.", 0, java.lang.Integer.MAX_VALUE, codeSystem)); 4329 children.add(new Property("expansion", "", "Information about the [ValueSet/$expand](valueset-operation-expand.html) operation.", 0, 1, expansion)); 4330 children.add(new Property("codeSearch", "code", "The degree to which the server supports the code search parameter on ValueSet, if it is supported.", 0, 1, codeSearch)); 4331 children.add(new Property("validateCode", "", "Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation.", 0, 1, validateCode)); 4332 children.add(new Property("translation", "", "Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation.", 0, 1, translation)); 4333 children.add(new Property("closure", "", "Whether the $closure operation is supported.", 0, 1, closure)); 4334 } 4335 4336 @Override 4337 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 4338 switch (_hash) { 4339 case 116079: /*url*/ return new Property("url", "uri", "An absolute URI that is used to identify this terminology capabilities 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 terminology capabilities is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the terminology capabilities is stored on different servers.", 0, 1, url); 4340 case 351608024: /*version*/ return new Property("version", "string", "The identifier that is used to identify this version of the terminology capabilities when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the terminology capabilities 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); 4341 case 3373707: /*name*/ return new Property("name", "string", "A natural language name identifying the terminology capabilities. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name); 4342 case 110371416: /*title*/ return new Property("title", "string", "A short, descriptive, user-friendly title for the terminology capabilities.", 0, 1, title); 4343 case -892481550: /*status*/ return new Property("status", "code", "The status of this terminology capabilities. Enables tracking the life-cycle of the content.", 0, 1, status); 4344 case -404562712: /*experimental*/ return new Property("experimental", "boolean", "A Boolean value to indicate that this terminology capabilities is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental); 4345 case 3076014: /*date*/ return new Property("date", "dateTime", "The date (and optionally time) when the terminology capabilities 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 terminology capabilities changes.", 0, 1, date); 4346 case 1447404028: /*publisher*/ return new Property("publisher", "string", "The name of the organization or individual that published the terminology capabilities.", 0, 1, publisher); 4347 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); 4348 case -1724546052: /*description*/ return new Property("description", "markdown", "A free text natural language description of the terminology capabilities from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.", 0, 1, description); 4349 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 terminology capabilities instances.", 0, java.lang.Integer.MAX_VALUE, useContext); 4350 case -507075711: /*jurisdiction*/ return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the terminology capabilities is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction); 4351 case -220463842: /*purpose*/ return new Property("purpose", "markdown", "Explanation of why this terminology capabilities is needed and why it has been designed as it has.", 0, 1, purpose); 4352 case 1522889671: /*copyright*/ return new Property("copyright", "markdown", "A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilities.", 0, 1, copyright); 4353 case 3292052: /*kind*/ return new Property("kind", "code", "The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase).", 0, 1, kind); 4354 case 1319330215: /*software*/ return new Property("software", "", "Software that is covered by this terminology capability statement. It is used when the statement describes the capabilities of a particular software version, independent of an installation.", 0, 1, software); 4355 case 1683336114: /*implementation*/ return new Property("implementation", "", "Identifies a specific implementation instance that is described by the terminology capability statement - i.e. a particular installation, rather than the capabilities of a software program.", 0, 1, implementation); 4356 case 1391591896: /*lockedDate*/ return new Property("lockedDate", "boolean", "Whether the server supports lockedDate.", 0, 1, lockedDate); 4357 case -916511108: /*codeSystem*/ return new Property("codeSystem", "", "Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resource.", 0, java.lang.Integer.MAX_VALUE, codeSystem); 4358 case 17878207: /*expansion*/ return new Property("expansion", "", "Information about the [ValueSet/$expand](valueset-operation-expand.html) operation.", 0, 1, expansion); 4359 case -935519755: /*codeSearch*/ return new Property("codeSearch", "code", "The degree to which the server supports the code search parameter on ValueSet, if it is supported.", 0, 1, codeSearch); 4360 case 1080737827: /*validateCode*/ return new Property("validateCode", "", "Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation.", 0, 1, validateCode); 4361 case -1840647503: /*translation*/ return new Property("translation", "", "Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation.", 0, 1, translation); 4362 case 866552379: /*closure*/ return new Property("closure", "", "Whether the $closure operation is supported.", 0, 1, closure); 4363 default: return super.getNamedProperty(_hash, _name, _checkValid); 4364 } 4365 4366 } 4367 4368 @Override 4369 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 4370 switch (hash) { 4371 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 4372 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 4373 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 4374 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 4375 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 4376 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 4377 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 4378 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 4379 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 4380 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 4381 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 4382 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 4383 case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType 4384 case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType 4385 case 3292052: /*kind*/ return this.kind == null ? new Base[0] : new Base[] {this.kind}; // Enumeration<CapabilityStatementKind> 4386 case 1319330215: /*software*/ return this.software == null ? new Base[0] : new Base[] {this.software}; // TerminologyCapabilitiesSoftwareComponent 4387 case 1683336114: /*implementation*/ return this.implementation == null ? new Base[0] : new Base[] {this.implementation}; // TerminologyCapabilitiesImplementationComponent 4388 case 1391591896: /*lockedDate*/ return this.lockedDate == null ? new Base[0] : new Base[] {this.lockedDate}; // BooleanType 4389 case -916511108: /*codeSystem*/ return this.codeSystem == null ? new Base[0] : this.codeSystem.toArray(new Base[this.codeSystem.size()]); // TerminologyCapabilitiesCodeSystemComponent 4390 case 17878207: /*expansion*/ return this.expansion == null ? new Base[0] : new Base[] {this.expansion}; // TerminologyCapabilitiesExpansionComponent 4391 case -935519755: /*codeSearch*/ return this.codeSearch == null ? new Base[0] : new Base[] {this.codeSearch}; // Enumeration<CodeSearchSupport> 4392 case 1080737827: /*validateCode*/ return this.validateCode == null ? new Base[0] : new Base[] {this.validateCode}; // TerminologyCapabilitiesValidateCodeComponent 4393 case -1840647503: /*translation*/ return this.translation == null ? new Base[0] : new Base[] {this.translation}; // TerminologyCapabilitiesTranslationComponent 4394 case 866552379: /*closure*/ return this.closure == null ? new Base[0] : new Base[] {this.closure}; // TerminologyCapabilitiesClosureComponent 4395 default: return super.getProperty(hash, name, checkValid); 4396 } 4397 4398 } 4399 4400 @Override 4401 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4402 switch (hash) { 4403 case 116079: // url 4404 this.url = castToUri(value); // UriType 4405 return value; 4406 case 351608024: // version 4407 this.version = castToString(value); // StringType 4408 return value; 4409 case 3373707: // name 4410 this.name = castToString(value); // StringType 4411 return value; 4412 case 110371416: // title 4413 this.title = castToString(value); // StringType 4414 return value; 4415 case -892481550: // status 4416 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 4417 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 4418 return value; 4419 case -404562712: // experimental 4420 this.experimental = castToBoolean(value); // BooleanType 4421 return value; 4422 case 3076014: // date 4423 this.date = castToDateTime(value); // DateTimeType 4424 return value; 4425 case 1447404028: // publisher 4426 this.publisher = castToString(value); // StringType 4427 return value; 4428 case 951526432: // contact 4429 this.getContact().add(castToContactDetail(value)); // ContactDetail 4430 return value; 4431 case -1724546052: // description 4432 this.description = castToMarkdown(value); // MarkdownType 4433 return value; 4434 case -669707736: // useContext 4435 this.getUseContext().add(castToUsageContext(value)); // UsageContext 4436 return value; 4437 case -507075711: // jurisdiction 4438 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 4439 return value; 4440 case -220463842: // purpose 4441 this.purpose = castToMarkdown(value); // MarkdownType 4442 return value; 4443 case 1522889671: // copyright 4444 this.copyright = castToMarkdown(value); // MarkdownType 4445 return value; 4446 case 3292052: // kind 4447 value = new CapabilityStatementKindEnumFactory().fromType(castToCode(value)); 4448 this.kind = (Enumeration) value; // Enumeration<CapabilityStatementKind> 4449 return value; 4450 case 1319330215: // software 4451 this.software = (TerminologyCapabilitiesSoftwareComponent) value; // TerminologyCapabilitiesSoftwareComponent 4452 return value; 4453 case 1683336114: // implementation 4454 this.implementation = (TerminologyCapabilitiesImplementationComponent) value; // TerminologyCapabilitiesImplementationComponent 4455 return value; 4456 case 1391591896: // lockedDate 4457 this.lockedDate = castToBoolean(value); // BooleanType 4458 return value; 4459 case -916511108: // codeSystem 4460 this.getCodeSystem().add((TerminologyCapabilitiesCodeSystemComponent) value); // TerminologyCapabilitiesCodeSystemComponent 4461 return value; 4462 case 17878207: // expansion 4463 this.expansion = (TerminologyCapabilitiesExpansionComponent) value; // TerminologyCapabilitiesExpansionComponent 4464 return value; 4465 case -935519755: // codeSearch 4466 value = new CodeSearchSupportEnumFactory().fromType(castToCode(value)); 4467 this.codeSearch = (Enumeration) value; // Enumeration<CodeSearchSupport> 4468 return value; 4469 case 1080737827: // validateCode 4470 this.validateCode = (TerminologyCapabilitiesValidateCodeComponent) value; // TerminologyCapabilitiesValidateCodeComponent 4471 return value; 4472 case -1840647503: // translation 4473 this.translation = (TerminologyCapabilitiesTranslationComponent) value; // TerminologyCapabilitiesTranslationComponent 4474 return value; 4475 case 866552379: // closure 4476 this.closure = (TerminologyCapabilitiesClosureComponent) value; // TerminologyCapabilitiesClosureComponent 4477 return value; 4478 default: return super.setProperty(hash, name, value); 4479 } 4480 4481 } 4482 4483 @Override 4484 public Base setProperty(String name, Base value) throws FHIRException { 4485 if (name.equals("url")) { 4486 this.url = castToUri(value); // UriType 4487 } else if (name.equals("version")) { 4488 this.version = castToString(value); // StringType 4489 } else if (name.equals("name")) { 4490 this.name = castToString(value); // StringType 4491 } else if (name.equals("title")) { 4492 this.title = castToString(value); // StringType 4493 } else if (name.equals("status")) { 4494 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 4495 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 4496 } else if (name.equals("experimental")) { 4497 this.experimental = castToBoolean(value); // BooleanType 4498 } else if (name.equals("date")) { 4499 this.date = castToDateTime(value); // DateTimeType 4500 } else if (name.equals("publisher")) { 4501 this.publisher = castToString(value); // StringType 4502 } else if (name.equals("contact")) { 4503 this.getContact().add(castToContactDetail(value)); 4504 } else if (name.equals("description")) { 4505 this.description = castToMarkdown(value); // MarkdownType 4506 } else if (name.equals("useContext")) { 4507 this.getUseContext().add(castToUsageContext(value)); 4508 } else if (name.equals("jurisdiction")) { 4509 this.getJurisdiction().add(castToCodeableConcept(value)); 4510 } else if (name.equals("purpose")) { 4511 this.purpose = castToMarkdown(value); // MarkdownType 4512 } else if (name.equals("copyright")) { 4513 this.copyright = castToMarkdown(value); // MarkdownType 4514 } else if (name.equals("kind")) { 4515 value = new CapabilityStatementKindEnumFactory().fromType(castToCode(value)); 4516 this.kind = (Enumeration) value; // Enumeration<CapabilityStatementKind> 4517 } else if (name.equals("software")) { 4518 this.software = (TerminologyCapabilitiesSoftwareComponent) value; // TerminologyCapabilitiesSoftwareComponent 4519 } else if (name.equals("implementation")) { 4520 this.implementation = (TerminologyCapabilitiesImplementationComponent) value; // TerminologyCapabilitiesImplementationComponent 4521 } else if (name.equals("lockedDate")) { 4522 this.lockedDate = castToBoolean(value); // BooleanType 4523 } else if (name.equals("codeSystem")) { 4524 this.getCodeSystem().add((TerminologyCapabilitiesCodeSystemComponent) value); 4525 } else if (name.equals("expansion")) { 4526 this.expansion = (TerminologyCapabilitiesExpansionComponent) value; // TerminologyCapabilitiesExpansionComponent 4527 } else if (name.equals("codeSearch")) { 4528 value = new CodeSearchSupportEnumFactory().fromType(castToCode(value)); 4529 this.codeSearch = (Enumeration) value; // Enumeration<CodeSearchSupport> 4530 } else if (name.equals("validateCode")) { 4531 this.validateCode = (TerminologyCapabilitiesValidateCodeComponent) value; // TerminologyCapabilitiesValidateCodeComponent 4532 } else if (name.equals("translation")) { 4533 this.translation = (TerminologyCapabilitiesTranslationComponent) value; // TerminologyCapabilitiesTranslationComponent 4534 } else if (name.equals("closure")) { 4535 this.closure = (TerminologyCapabilitiesClosureComponent) value; // TerminologyCapabilitiesClosureComponent 4536 } else 4537 return super.setProperty(name, value); 4538 return value; 4539 } 4540 4541 @Override 4542 public Base makeProperty(int hash, String name) throws FHIRException { 4543 switch (hash) { 4544 case 116079: return getUrlElement(); 4545 case 351608024: return getVersionElement(); 4546 case 3373707: return getNameElement(); 4547 case 110371416: return getTitleElement(); 4548 case -892481550: return getStatusElement(); 4549 case -404562712: return getExperimentalElement(); 4550 case 3076014: return getDateElement(); 4551 case 1447404028: return getPublisherElement(); 4552 case 951526432: return addContact(); 4553 case -1724546052: return getDescriptionElement(); 4554 case -669707736: return addUseContext(); 4555 case -507075711: return addJurisdiction(); 4556 case -220463842: return getPurposeElement(); 4557 case 1522889671: return getCopyrightElement(); 4558 case 3292052: return getKindElement(); 4559 case 1319330215: return getSoftware(); 4560 case 1683336114: return getImplementation(); 4561 case 1391591896: return getLockedDateElement(); 4562 case -916511108: return addCodeSystem(); 4563 case 17878207: return getExpansion(); 4564 case -935519755: return getCodeSearchElement(); 4565 case 1080737827: return getValidateCode(); 4566 case -1840647503: return getTranslation(); 4567 case 866552379: return getClosure(); 4568 default: return super.makeProperty(hash, name); 4569 } 4570 4571 } 4572 4573 @Override 4574 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4575 switch (hash) { 4576 case 116079: /*url*/ return new String[] {"uri"}; 4577 case 351608024: /*version*/ return new String[] {"string"}; 4578 case 3373707: /*name*/ return new String[] {"string"}; 4579 case 110371416: /*title*/ return new String[] {"string"}; 4580 case -892481550: /*status*/ return new String[] {"code"}; 4581 case -404562712: /*experimental*/ return new String[] {"boolean"}; 4582 case 3076014: /*date*/ return new String[] {"dateTime"}; 4583 case 1447404028: /*publisher*/ return new String[] {"string"}; 4584 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 4585 case -1724546052: /*description*/ return new String[] {"markdown"}; 4586 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 4587 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 4588 case -220463842: /*purpose*/ return new String[] {"markdown"}; 4589 case 1522889671: /*copyright*/ return new String[] {"markdown"}; 4590 case 3292052: /*kind*/ return new String[] {"code"}; 4591 case 1319330215: /*software*/ return new String[] {}; 4592 case 1683336114: /*implementation*/ return new String[] {}; 4593 case 1391591896: /*lockedDate*/ return new String[] {"boolean"}; 4594 case -916511108: /*codeSystem*/ return new String[] {}; 4595 case 17878207: /*expansion*/ return new String[] {}; 4596 case -935519755: /*codeSearch*/ return new String[] {"code"}; 4597 case 1080737827: /*validateCode*/ return new String[] {}; 4598 case -1840647503: /*translation*/ return new String[] {}; 4599 case 866552379: /*closure*/ return new String[] {}; 4600 default: return super.getTypesForProperty(hash, name); 4601 } 4602 4603 } 4604 4605 @Override 4606 public Base addChild(String name) throws FHIRException { 4607 if (name.equals("url")) { 4608 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.url"); 4609 } 4610 else if (name.equals("version")) { 4611 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.version"); 4612 } 4613 else if (name.equals("name")) { 4614 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.name"); 4615 } 4616 else if (name.equals("title")) { 4617 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.title"); 4618 } 4619 else if (name.equals("status")) { 4620 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.status"); 4621 } 4622 else if (name.equals("experimental")) { 4623 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.experimental"); 4624 } 4625 else if (name.equals("date")) { 4626 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.date"); 4627 } 4628 else if (name.equals("publisher")) { 4629 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.publisher"); 4630 } 4631 else if (name.equals("contact")) { 4632 return addContact(); 4633 } 4634 else if (name.equals("description")) { 4635 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.description"); 4636 } 4637 else if (name.equals("useContext")) { 4638 return addUseContext(); 4639 } 4640 else if (name.equals("jurisdiction")) { 4641 return addJurisdiction(); 4642 } 4643 else if (name.equals("purpose")) { 4644 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.purpose"); 4645 } 4646 else if (name.equals("copyright")) { 4647 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.copyright"); 4648 } 4649 else if (name.equals("kind")) { 4650 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.kind"); 4651 } 4652 else if (name.equals("software")) { 4653 this.software = new TerminologyCapabilitiesSoftwareComponent(); 4654 return this.software; 4655 } 4656 else if (name.equals("implementation")) { 4657 this.implementation = new TerminologyCapabilitiesImplementationComponent(); 4658 return this.implementation; 4659 } 4660 else if (name.equals("lockedDate")) { 4661 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.lockedDate"); 4662 } 4663 else if (name.equals("codeSystem")) { 4664 return addCodeSystem(); 4665 } 4666 else if (name.equals("expansion")) { 4667 this.expansion = new TerminologyCapabilitiesExpansionComponent(); 4668 return this.expansion; 4669 } 4670 else if (name.equals("codeSearch")) { 4671 throw new FHIRException("Cannot call addChild on a primitive type TerminologyCapabilities.codeSearch"); 4672 } 4673 else if (name.equals("validateCode")) { 4674 this.validateCode = new TerminologyCapabilitiesValidateCodeComponent(); 4675 return this.validateCode; 4676 } 4677 else if (name.equals("translation")) { 4678 this.translation = new TerminologyCapabilitiesTranslationComponent(); 4679 return this.translation; 4680 } 4681 else if (name.equals("closure")) { 4682 this.closure = new TerminologyCapabilitiesClosureComponent(); 4683 return this.closure; 4684 } 4685 else 4686 return super.addChild(name); 4687 } 4688 4689 public String fhirType() { 4690 return "TerminologyCapabilities"; 4691 4692 } 4693 4694 public TerminologyCapabilities copy() { 4695 TerminologyCapabilities dst = new TerminologyCapabilities(); 4696 copyValues(dst); 4697 return dst; 4698 } 4699 4700 public void copyValues(TerminologyCapabilities dst) { 4701 super.copyValues(dst); 4702 dst.url = url == null ? null : url.copy(); 4703 dst.version = version == null ? null : version.copy(); 4704 dst.name = name == null ? null : name.copy(); 4705 dst.title = title == null ? null : title.copy(); 4706 dst.status = status == null ? null : status.copy(); 4707 dst.experimental = experimental == null ? null : experimental.copy(); 4708 dst.date = date == null ? null : date.copy(); 4709 dst.publisher = publisher == null ? null : publisher.copy(); 4710 if (contact != null) { 4711 dst.contact = new ArrayList<ContactDetail>(); 4712 for (ContactDetail i : contact) 4713 dst.contact.add(i.copy()); 4714 }; 4715 dst.description = description == null ? null : description.copy(); 4716 if (useContext != null) { 4717 dst.useContext = new ArrayList<UsageContext>(); 4718 for (UsageContext i : useContext) 4719 dst.useContext.add(i.copy()); 4720 }; 4721 if (jurisdiction != null) { 4722 dst.jurisdiction = new ArrayList<CodeableConcept>(); 4723 for (CodeableConcept i : jurisdiction) 4724 dst.jurisdiction.add(i.copy()); 4725 }; 4726 dst.purpose = purpose == null ? null : purpose.copy(); 4727 dst.copyright = copyright == null ? null : copyright.copy(); 4728 dst.kind = kind == null ? null : kind.copy(); 4729 dst.software = software == null ? null : software.copy(); 4730 dst.implementation = implementation == null ? null : implementation.copy(); 4731 dst.lockedDate = lockedDate == null ? null : lockedDate.copy(); 4732 if (codeSystem != null) { 4733 dst.codeSystem = new ArrayList<TerminologyCapabilitiesCodeSystemComponent>(); 4734 for (TerminologyCapabilitiesCodeSystemComponent i : codeSystem) 4735 dst.codeSystem.add(i.copy()); 4736 }; 4737 dst.expansion = expansion == null ? null : expansion.copy(); 4738 dst.codeSearch = codeSearch == null ? null : codeSearch.copy(); 4739 dst.validateCode = validateCode == null ? null : validateCode.copy(); 4740 dst.translation = translation == null ? null : translation.copy(); 4741 dst.closure = closure == null ? null : closure.copy(); 4742 } 4743 4744 protected TerminologyCapabilities typedCopy() { 4745 return copy(); 4746 } 4747 4748 @Override 4749 public boolean equalsDeep(Base other_) { 4750 if (!super.equalsDeep(other_)) 4751 return false; 4752 if (!(other_ instanceof TerminologyCapabilities)) 4753 return false; 4754 TerminologyCapabilities o = (TerminologyCapabilities) other_; 4755 return compareDeep(purpose, o.purpose, true) && compareDeep(copyright, o.copyright, true) && compareDeep(kind, o.kind, true) 4756 && compareDeep(software, o.software, true) && compareDeep(implementation, o.implementation, true) 4757 && compareDeep(lockedDate, o.lockedDate, true) && compareDeep(codeSystem, o.codeSystem, true) && compareDeep(expansion, o.expansion, true) 4758 && compareDeep(codeSearch, o.codeSearch, true) && compareDeep(validateCode, o.validateCode, true) 4759 && compareDeep(translation, o.translation, true) && compareDeep(closure, o.closure, true); 4760 } 4761 4762 @Override 4763 public boolean equalsShallow(Base other_) { 4764 if (!super.equalsShallow(other_)) 4765 return false; 4766 if (!(other_ instanceof TerminologyCapabilities)) 4767 return false; 4768 TerminologyCapabilities o = (TerminologyCapabilities) other_; 4769 return compareValues(purpose, o.purpose, true) && compareValues(copyright, o.copyright, true) && compareValues(kind, o.kind, true) 4770 && compareValues(lockedDate, o.lockedDate, true) && compareValues(codeSearch, o.codeSearch, true); 4771 } 4772 4773 public boolean isEmpty() { 4774 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(purpose, copyright, kind 4775 , software, implementation, lockedDate, codeSystem, expansion, codeSearch, validateCode 4776 , translation, closure); 4777 } 4778 4779 @Override 4780 public ResourceType getResourceType() { 4781 return ResourceType.TerminologyCapabilities; 4782 } 4783 4784 /** 4785 * Search parameter: <b>date</b> 4786 * <p> 4787 * Description: <b>The terminology capabilities publication date</b><br> 4788 * Type: <b>date</b><br> 4789 * Path: <b>TerminologyCapabilities.date</b><br> 4790 * </p> 4791 */ 4792 @SearchParamDefinition(name="date", path="TerminologyCapabilities.date", description="The terminology capabilities publication date", type="date" ) 4793 public static final String SP_DATE = "date"; 4794 /** 4795 * <b>Fluent Client</b> search parameter constant for <b>date</b> 4796 * <p> 4797 * Description: <b>The terminology capabilities publication date</b><br> 4798 * Type: <b>date</b><br> 4799 * Path: <b>TerminologyCapabilities.date</b><br> 4800 * </p> 4801 */ 4802 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 4803 4804 /** 4805 * Search parameter: <b>context-type-value</b> 4806 * <p> 4807 * Description: <b>A use context type and value assigned to the terminology capabilities</b><br> 4808 * Type: <b>composite</b><br> 4809 * Path: <b></b><br> 4810 * </p> 4811 */ 4812 @SearchParamDefinition(name="context-type-value", path="TerminologyCapabilities.useContext", description="A use context type and value assigned to the terminology capabilities", type="composite", compositeOf={"context-type", "context"} ) 4813 public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value"; 4814 /** 4815 * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b> 4816 * <p> 4817 * Description: <b>A use context type and value assigned to the terminology capabilities</b><br> 4818 * Type: <b>composite</b><br> 4819 * Path: <b></b><br> 4820 * </p> 4821 */ 4822 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); 4823 4824 /** 4825 * Search parameter: <b>jurisdiction</b> 4826 * <p> 4827 * Description: <b>Intended jurisdiction for the terminology capabilities</b><br> 4828 * Type: <b>token</b><br> 4829 * Path: <b>TerminologyCapabilities.jurisdiction</b><br> 4830 * </p> 4831 */ 4832 @SearchParamDefinition(name="jurisdiction", path="TerminologyCapabilities.jurisdiction", description="Intended jurisdiction for the terminology capabilities", type="token" ) 4833 public static final String SP_JURISDICTION = "jurisdiction"; 4834 /** 4835 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 4836 * <p> 4837 * Description: <b>Intended jurisdiction for the terminology capabilities</b><br> 4838 * Type: <b>token</b><br> 4839 * Path: <b>TerminologyCapabilities.jurisdiction</b><br> 4840 * </p> 4841 */ 4842 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 4843 4844 /** 4845 * Search parameter: <b>description</b> 4846 * <p> 4847 * Description: <b>The description of the terminology capabilities</b><br> 4848 * Type: <b>string</b><br> 4849 * Path: <b>TerminologyCapabilities.description</b><br> 4850 * </p> 4851 */ 4852 @SearchParamDefinition(name="description", path="TerminologyCapabilities.description", description="The description of the terminology capabilities", type="string" ) 4853 public static final String SP_DESCRIPTION = "description"; 4854 /** 4855 * <b>Fluent Client</b> search parameter constant for <b>description</b> 4856 * <p> 4857 * Description: <b>The description of the terminology capabilities</b><br> 4858 * Type: <b>string</b><br> 4859 * Path: <b>TerminologyCapabilities.description</b><br> 4860 * </p> 4861 */ 4862 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 4863 4864 /** 4865 * Search parameter: <b>context-type</b> 4866 * <p> 4867 * Description: <b>A type of use context assigned to the terminology capabilities</b><br> 4868 * Type: <b>token</b><br> 4869 * Path: <b>TerminologyCapabilities.useContext.code</b><br> 4870 * </p> 4871 */ 4872 @SearchParamDefinition(name="context-type", path="TerminologyCapabilities.useContext.code", description="A type of use context assigned to the terminology capabilities", type="token" ) 4873 public static final String SP_CONTEXT_TYPE = "context-type"; 4874 /** 4875 * <b>Fluent Client</b> search parameter constant for <b>context-type</b> 4876 * <p> 4877 * Description: <b>A type of use context assigned to the terminology capabilities</b><br> 4878 * Type: <b>token</b><br> 4879 * Path: <b>TerminologyCapabilities.useContext.code</b><br> 4880 * </p> 4881 */ 4882 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE); 4883 4884 /** 4885 * Search parameter: <b>title</b> 4886 * <p> 4887 * Description: <b>The human-friendly name of the terminology capabilities</b><br> 4888 * Type: <b>string</b><br> 4889 * Path: <b>TerminologyCapabilities.title</b><br> 4890 * </p> 4891 */ 4892 @SearchParamDefinition(name="title", path="TerminologyCapabilities.title", description="The human-friendly name of the terminology capabilities", type="string" ) 4893 public static final String SP_TITLE = "title"; 4894 /** 4895 * <b>Fluent Client</b> search parameter constant for <b>title</b> 4896 * <p> 4897 * Description: <b>The human-friendly name of the terminology capabilities</b><br> 4898 * Type: <b>string</b><br> 4899 * Path: <b>TerminologyCapabilities.title</b><br> 4900 * </p> 4901 */ 4902 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 4903 4904 /** 4905 * Search parameter: <b>version</b> 4906 * <p> 4907 * Description: <b>The business version of the terminology capabilities</b><br> 4908 * Type: <b>token</b><br> 4909 * Path: <b>TerminologyCapabilities.version</b><br> 4910 * </p> 4911 */ 4912 @SearchParamDefinition(name="version", path="TerminologyCapabilities.version", description="The business version of the terminology capabilities", type="token" ) 4913 public static final String SP_VERSION = "version"; 4914 /** 4915 * <b>Fluent Client</b> search parameter constant for <b>version</b> 4916 * <p> 4917 * Description: <b>The business version of the terminology capabilities</b><br> 4918 * Type: <b>token</b><br> 4919 * Path: <b>TerminologyCapabilities.version</b><br> 4920 * </p> 4921 */ 4922 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 4923 4924 /** 4925 * Search parameter: <b>url</b> 4926 * <p> 4927 * Description: <b>The uri that identifies the terminology capabilities</b><br> 4928 * Type: <b>uri</b><br> 4929 * Path: <b>TerminologyCapabilities.url</b><br> 4930 * </p> 4931 */ 4932 @SearchParamDefinition(name="url", path="TerminologyCapabilities.url", description="The uri that identifies the terminology capabilities", type="uri" ) 4933 public static final String SP_URL = "url"; 4934 /** 4935 * <b>Fluent Client</b> search parameter constant for <b>url</b> 4936 * <p> 4937 * Description: <b>The uri that identifies the terminology capabilities</b><br> 4938 * Type: <b>uri</b><br> 4939 * Path: <b>TerminologyCapabilities.url</b><br> 4940 * </p> 4941 */ 4942 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 4943 4944 /** 4945 * Search parameter: <b>context-quantity</b> 4946 * <p> 4947 * Description: <b>A quantity- or range-valued use context assigned to the terminology capabilities</b><br> 4948 * Type: <b>quantity</b><br> 4949 * Path: <b>TerminologyCapabilities.useContext.valueQuantity, TerminologyCapabilities.useContext.valueRange</b><br> 4950 * </p> 4951 */ 4952 @SearchParamDefinition(name="context-quantity", path="(TerminologyCapabilities.useContext.value as Quantity) | (TerminologyCapabilities.useContext.value as Range)", description="A quantity- or range-valued use context assigned to the terminology capabilities", type="quantity" ) 4953 public static final String SP_CONTEXT_QUANTITY = "context-quantity"; 4954 /** 4955 * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b> 4956 * <p> 4957 * Description: <b>A quantity- or range-valued use context assigned to the terminology capabilities</b><br> 4958 * Type: <b>quantity</b><br> 4959 * Path: <b>TerminologyCapabilities.useContext.valueQuantity, TerminologyCapabilities.useContext.valueRange</b><br> 4960 * </p> 4961 */ 4962 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY); 4963 4964 /** 4965 * Search parameter: <b>name</b> 4966 * <p> 4967 * Description: <b>Computationally friendly name of the terminology capabilities</b><br> 4968 * Type: <b>string</b><br> 4969 * Path: <b>TerminologyCapabilities.name</b><br> 4970 * </p> 4971 */ 4972 @SearchParamDefinition(name="name", path="TerminologyCapabilities.name", description="Computationally friendly name of the terminology capabilities", type="string" ) 4973 public static final String SP_NAME = "name"; 4974 /** 4975 * <b>Fluent Client</b> search parameter constant for <b>name</b> 4976 * <p> 4977 * Description: <b>Computationally friendly name of the terminology capabilities</b><br> 4978 * Type: <b>string</b><br> 4979 * Path: <b>TerminologyCapabilities.name</b><br> 4980 * </p> 4981 */ 4982 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 4983 4984 /** 4985 * Search parameter: <b>context</b> 4986 * <p> 4987 * Description: <b>A use context assigned to the terminology capabilities</b><br> 4988 * Type: <b>token</b><br> 4989 * Path: <b>TerminologyCapabilities.useContext.valueCodeableConcept</b><br> 4990 * </p> 4991 */ 4992 @SearchParamDefinition(name="context", path="(TerminologyCapabilities.useContext.value as CodeableConcept)", description="A use context assigned to the terminology capabilities", type="token" ) 4993 public static final String SP_CONTEXT = "context"; 4994 /** 4995 * <b>Fluent Client</b> search parameter constant for <b>context</b> 4996 * <p> 4997 * Description: <b>A use context assigned to the terminology capabilities</b><br> 4998 * Type: <b>token</b><br> 4999 * Path: <b>TerminologyCapabilities.useContext.valueCodeableConcept</b><br> 5000 * </p> 5001 */ 5002 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT); 5003 5004 /** 5005 * Search parameter: <b>publisher</b> 5006 * <p> 5007 * Description: <b>Name of the publisher of the terminology capabilities</b><br> 5008 * Type: <b>string</b><br> 5009 * Path: <b>TerminologyCapabilities.publisher</b><br> 5010 * </p> 5011 */ 5012 @SearchParamDefinition(name="publisher", path="TerminologyCapabilities.publisher", description="Name of the publisher of the terminology capabilities", type="string" ) 5013 public static final String SP_PUBLISHER = "publisher"; 5014 /** 5015 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 5016 * <p> 5017 * Description: <b>Name of the publisher of the terminology capabilities</b><br> 5018 * Type: <b>string</b><br> 5019 * Path: <b>TerminologyCapabilities.publisher</b><br> 5020 * </p> 5021 */ 5022 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 5023 5024 /** 5025 * Search parameter: <b>context-type-quantity</b> 5026 * <p> 5027 * Description: <b>A use context type and quantity- or range-based value assigned to the terminology capabilities</b><br> 5028 * Type: <b>composite</b><br> 5029 * Path: <b></b><br> 5030 * </p> 5031 */ 5032 @SearchParamDefinition(name="context-type-quantity", path="TerminologyCapabilities.useContext", description="A use context type and quantity- or range-based value assigned to the terminology capabilities", type="composite", compositeOf={"context-type", "context-quantity"} ) 5033 public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity"; 5034 /** 5035 * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b> 5036 * <p> 5037 * Description: <b>A use context type and quantity- or range-based value assigned to the terminology capabilities</b><br> 5038 * Type: <b>composite</b><br> 5039 * Path: <b></b><br> 5040 * </p> 5041 */ 5042 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); 5043 5044 /** 5045 * Search parameter: <b>status</b> 5046 * <p> 5047 * Description: <b>The current status of the terminology capabilities</b><br> 5048 * Type: <b>token</b><br> 5049 * Path: <b>TerminologyCapabilities.status</b><br> 5050 * </p> 5051 */ 5052 @SearchParamDefinition(name="status", path="TerminologyCapabilities.status", description="The current status of the terminology capabilities", type="token" ) 5053 public static final String SP_STATUS = "status"; 5054 /** 5055 * <b>Fluent Client</b> search parameter constant for <b>status</b> 5056 * <p> 5057 * Description: <b>The current status of the terminology capabilities</b><br> 5058 * Type: <b>token</b><br> 5059 * Path: <b>TerminologyCapabilities.status</b><br> 5060 * </p> 5061 */ 5062 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 5063 5064 5065}