001package org.hl7.fhir.dstu2016may.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Sun, May 8, 2016 03:05+1000 for FHIR v1.4.0 033import java.util.ArrayList; 034import java.util.Date; 035import java.util.List; 036 037import org.hl7.fhir.dstu2016may.model.Enumerations.ConformanceResourceStatus; 038import org.hl7.fhir.dstu2016may.model.Enumerations.ConformanceResourceStatusEnumFactory; 039import org.hl7.fhir.exceptions.FHIRException; 040import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 041import org.hl7.fhir.utilities.Utilities; 042 043import ca.uhn.fhir.model.api.annotation.Block; 044import ca.uhn.fhir.model.api.annotation.Child; 045import ca.uhn.fhir.model.api.annotation.Description; 046import ca.uhn.fhir.model.api.annotation.ResourceDef; 047import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 048/** 049 * A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions, and constraints on resources and data types. 050 */ 051@ResourceDef(name="StructureDefinition", profile="http://hl7.org/fhir/Profile/StructureDefinition") 052public class StructureDefinition extends DomainResource { 053 054 public enum StructureDefinitionKind { 055 /** 056 * A data type - either a primitive or complex structure that defines a set of data elements. These can be used throughout Resource and extension definitions. 057 */ 058 DATATYPE, 059 /** 060 * A resource defined by the FHIR specification. 061 */ 062 RESOURCE, 063 /** 064 * A logical model - a conceptual package of data that will be mapped to resources for implementation. 065 */ 066 LOGICAL, 067 /** 068 * added to help the parsers 069 */ 070 NULL; 071 public static StructureDefinitionKind fromCode(String codeString) throws FHIRException { 072 if (codeString == null || "".equals(codeString)) 073 return null; 074 if ("datatype".equals(codeString)) 075 return DATATYPE; 076 if ("resource".equals(codeString)) 077 return RESOURCE; 078 if ("logical".equals(codeString)) 079 return LOGICAL; 080 throw new FHIRException("Unknown StructureDefinitionKind code '"+codeString+"'"); 081 } 082 public String toCode() { 083 switch (this) { 084 case DATATYPE: return "datatype"; 085 case RESOURCE: return "resource"; 086 case LOGICAL: return "logical"; 087 default: return "?"; 088 } 089 } 090 public String getSystem() { 091 switch (this) { 092 case DATATYPE: return "http://hl7.org/fhir/structure-definition-kind"; 093 case RESOURCE: return "http://hl7.org/fhir/structure-definition-kind"; 094 case LOGICAL: return "http://hl7.org/fhir/structure-definition-kind"; 095 default: return "?"; 096 } 097 } 098 public String getDefinition() { 099 switch (this) { 100 case DATATYPE: return "A data type - either a primitive or complex structure that defines a set of data elements. These can be used throughout Resource and extension definitions."; 101 case RESOURCE: return "A resource defined by the FHIR specification."; 102 case LOGICAL: return "A logical model - a conceptual package of data that will be mapped to resources for implementation."; 103 default: return "?"; 104 } 105 } 106 public String getDisplay() { 107 switch (this) { 108 case DATATYPE: return "Data Type"; 109 case RESOURCE: return "Resource"; 110 case LOGICAL: return "Logical Model"; 111 default: return "?"; 112 } 113 } 114 } 115 116 public static class StructureDefinitionKindEnumFactory implements EnumFactory<StructureDefinitionKind> { 117 public StructureDefinitionKind fromCode(String codeString) throws IllegalArgumentException { 118 if (codeString == null || "".equals(codeString)) 119 if (codeString == null || "".equals(codeString)) 120 return null; 121 if ("datatype".equals(codeString)) 122 return StructureDefinitionKind.DATATYPE; 123 if ("resource".equals(codeString)) 124 return StructureDefinitionKind.RESOURCE; 125 if ("logical".equals(codeString)) 126 return StructureDefinitionKind.LOGICAL; 127 throw new IllegalArgumentException("Unknown StructureDefinitionKind code '"+codeString+"'"); 128 } 129 public Enumeration<StructureDefinitionKind> fromType(Base code) throws FHIRException { 130 if (code == null || code.isEmpty()) 131 return null; 132 String codeString = ((PrimitiveType) code).asStringValue(); 133 if (codeString == null || "".equals(codeString)) 134 return null; 135 if ("datatype".equals(codeString)) 136 return new Enumeration<StructureDefinitionKind>(this, StructureDefinitionKind.DATATYPE); 137 if ("resource".equals(codeString)) 138 return new Enumeration<StructureDefinitionKind>(this, StructureDefinitionKind.RESOURCE); 139 if ("logical".equals(codeString)) 140 return new Enumeration<StructureDefinitionKind>(this, StructureDefinitionKind.LOGICAL); 141 throw new FHIRException("Unknown StructureDefinitionKind code '"+codeString+"'"); 142 } 143 public String toCode(StructureDefinitionKind code) { 144 if (code == StructureDefinitionKind.DATATYPE) 145 return "datatype"; 146 if (code == StructureDefinitionKind.RESOURCE) 147 return "resource"; 148 if (code == StructureDefinitionKind.LOGICAL) 149 return "logical"; 150 return "?"; 151 } 152 public String toSystem(StructureDefinitionKind code) { 153 return code.getSystem(); 154 } 155 } 156 157 public enum ExtensionContext { 158 /** 159 * The context is all elements matching a particular resource element path. 160 */ 161 RESOURCE, 162 /** 163 * The context is all nodes matching a particular data type element path (root or repeating element) or all elements referencing a particular primitive data type (expressed as the datatype name). 164 */ 165 DATATYPE, 166 /** 167 * The context is a particular extension from a particular profile, a uri that identifies the extension definition. 168 */ 169 EXTENSION, 170 /** 171 * added to help the parsers 172 */ 173 NULL; 174 public static ExtensionContext fromCode(String codeString) throws FHIRException { 175 if (codeString == null || "".equals(codeString)) 176 return null; 177 if ("resource".equals(codeString)) 178 return RESOURCE; 179 if ("datatype".equals(codeString)) 180 return DATATYPE; 181 if ("extension".equals(codeString)) 182 return EXTENSION; 183 throw new FHIRException("Unknown ExtensionContext code '"+codeString+"'"); 184 } 185 public String toCode() { 186 switch (this) { 187 case RESOURCE: return "resource"; 188 case DATATYPE: return "datatype"; 189 case EXTENSION: return "extension"; 190 default: return "?"; 191 } 192 } 193 public String getSystem() { 194 switch (this) { 195 case RESOURCE: return "http://hl7.org/fhir/extension-context"; 196 case DATATYPE: return "http://hl7.org/fhir/extension-context"; 197 case EXTENSION: return "http://hl7.org/fhir/extension-context"; 198 default: return "?"; 199 } 200 } 201 public String getDefinition() { 202 switch (this) { 203 case RESOURCE: return "The context is all elements matching a particular resource element path."; 204 case DATATYPE: return "The context is all nodes matching a particular data type element path (root or repeating element) or all elements referencing a particular primitive data type (expressed as the datatype name)."; 205 case EXTENSION: return "The context is a particular extension from a particular profile, a uri that identifies the extension definition."; 206 default: return "?"; 207 } 208 } 209 public String getDisplay() { 210 switch (this) { 211 case RESOURCE: return "Resource"; 212 case DATATYPE: return "Datatype"; 213 case EXTENSION: return "Extension"; 214 default: return "?"; 215 } 216 } 217 } 218 219 public static class ExtensionContextEnumFactory implements EnumFactory<ExtensionContext> { 220 public ExtensionContext fromCode(String codeString) throws IllegalArgumentException { 221 if (codeString == null || "".equals(codeString)) 222 if (codeString == null || "".equals(codeString)) 223 return null; 224 if ("resource".equals(codeString)) 225 return ExtensionContext.RESOURCE; 226 if ("datatype".equals(codeString)) 227 return ExtensionContext.DATATYPE; 228 if ("extension".equals(codeString)) 229 return ExtensionContext.EXTENSION; 230 throw new IllegalArgumentException("Unknown ExtensionContext code '"+codeString+"'"); 231 } 232 public Enumeration<ExtensionContext> fromType(Base code) throws FHIRException { 233 if (code == null || code.isEmpty()) 234 return null; 235 String codeString = ((PrimitiveType) code).asStringValue(); 236 if (codeString == null || "".equals(codeString)) 237 return null; 238 if ("resource".equals(codeString)) 239 return new Enumeration<ExtensionContext>(this, ExtensionContext.RESOURCE); 240 if ("datatype".equals(codeString)) 241 return new Enumeration<ExtensionContext>(this, ExtensionContext.DATATYPE); 242 if ("extension".equals(codeString)) 243 return new Enumeration<ExtensionContext>(this, ExtensionContext.EXTENSION); 244 throw new FHIRException("Unknown ExtensionContext code '"+codeString+"'"); 245 } 246 public String toCode(ExtensionContext code) { 247 if (code == ExtensionContext.RESOURCE) 248 return "resource"; 249 if (code == ExtensionContext.DATATYPE) 250 return "datatype"; 251 if (code == ExtensionContext.EXTENSION) 252 return "extension"; 253 return "?"; 254 } 255 public String toSystem(ExtensionContext code) { 256 return code.getSystem(); 257 } 258 } 259 260 public enum TypeDerivationRule { 261 /** 262 * This definition defines a new type that adds additional elements to the base type 263 */ 264 SPECIALIZATION, 265 /** 266 * This definition adds additional rules to an existing concrete type 267 */ 268 CONSTRAINT, 269 /** 270 * added to help the parsers 271 */ 272 NULL; 273 public static TypeDerivationRule fromCode(String codeString) throws FHIRException { 274 if (codeString == null || "".equals(codeString)) 275 return null; 276 if ("specialization".equals(codeString)) 277 return SPECIALIZATION; 278 if ("constraint".equals(codeString)) 279 return CONSTRAINT; 280 throw new FHIRException("Unknown TypeDerivationRule code '"+codeString+"'"); 281 } 282 public String toCode() { 283 switch (this) { 284 case SPECIALIZATION: return "specialization"; 285 case CONSTRAINT: return "constraint"; 286 default: return "?"; 287 } 288 } 289 public String getSystem() { 290 switch (this) { 291 case SPECIALIZATION: return "http://hl7.org/fhir/type-derivation-rule"; 292 case CONSTRAINT: return "http://hl7.org/fhir/type-derivation-rule"; 293 default: return "?"; 294 } 295 } 296 public String getDefinition() { 297 switch (this) { 298 case SPECIALIZATION: return "This definition defines a new type that adds additional elements to the base type"; 299 case CONSTRAINT: return "This definition adds additional rules to an existing concrete type"; 300 default: return "?"; 301 } 302 } 303 public String getDisplay() { 304 switch (this) { 305 case SPECIALIZATION: return "Specialization"; 306 case CONSTRAINT: return "Constraint"; 307 default: return "?"; 308 } 309 } 310 } 311 312 public static class TypeDerivationRuleEnumFactory implements EnumFactory<TypeDerivationRule> { 313 public TypeDerivationRule fromCode(String codeString) throws IllegalArgumentException { 314 if (codeString == null || "".equals(codeString)) 315 if (codeString == null || "".equals(codeString)) 316 return null; 317 if ("specialization".equals(codeString)) 318 return TypeDerivationRule.SPECIALIZATION; 319 if ("constraint".equals(codeString)) 320 return TypeDerivationRule.CONSTRAINT; 321 throw new IllegalArgumentException("Unknown TypeDerivationRule code '"+codeString+"'"); 322 } 323 public Enumeration<TypeDerivationRule> fromType(Base code) throws FHIRException { 324 if (code == null || code.isEmpty()) 325 return null; 326 String codeString = ((PrimitiveType) code).asStringValue(); 327 if (codeString == null || "".equals(codeString)) 328 return null; 329 if ("specialization".equals(codeString)) 330 return new Enumeration<TypeDerivationRule>(this, TypeDerivationRule.SPECIALIZATION); 331 if ("constraint".equals(codeString)) 332 return new Enumeration<TypeDerivationRule>(this, TypeDerivationRule.CONSTRAINT); 333 throw new FHIRException("Unknown TypeDerivationRule code '"+codeString+"'"); 334 } 335 public String toCode(TypeDerivationRule code) { 336 if (code == TypeDerivationRule.SPECIALIZATION) 337 return "specialization"; 338 if (code == TypeDerivationRule.CONSTRAINT) 339 return "constraint"; 340 return "?"; 341 } 342 public String toSystem(TypeDerivationRule code) { 343 return code.getSystem(); 344 } 345 } 346 347 @Block() 348 public static class StructureDefinitionContactComponent extends BackboneElement implements IBaseBackboneElement { 349 /** 350 * The name of an individual to contact regarding the structure definition. 351 */ 352 @Child(name = "name", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=true) 353 @Description(shortDefinition="Name of an individual to contact", formalDefinition="The name of an individual to contact regarding the structure definition." ) 354 protected StringType name; 355 356 /** 357 * Contact details for individual (if a name was provided) or the publisher. 358 */ 359 @Child(name = "telecom", type = {ContactPoint.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 360 @Description(shortDefinition="Contact details for individual or publisher", formalDefinition="Contact details for individual (if a name was provided) or the publisher." ) 361 protected List<ContactPoint> telecom; 362 363 private static final long serialVersionUID = -1179697803L; 364 365 /** 366 * Constructor 367 */ 368 public StructureDefinitionContactComponent() { 369 super(); 370 } 371 372 /** 373 * @return {@link #name} (The name of an individual to contact regarding the structure definition.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 374 */ 375 public StringType getNameElement() { 376 if (this.name == null) 377 if (Configuration.errorOnAutoCreate()) 378 throw new Error("Attempt to auto-create StructureDefinitionContactComponent.name"); 379 else if (Configuration.doAutoCreate()) 380 this.name = new StringType(); // bb 381 return this.name; 382 } 383 384 public boolean hasNameElement() { 385 return this.name != null && !this.name.isEmpty(); 386 } 387 388 public boolean hasName() { 389 return this.name != null && !this.name.isEmpty(); 390 } 391 392 /** 393 * @param value {@link #name} (The name of an individual to contact regarding the structure definition.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 394 */ 395 public StructureDefinitionContactComponent setNameElement(StringType value) { 396 this.name = value; 397 return this; 398 } 399 400 /** 401 * @return The name of an individual to contact regarding the structure definition. 402 */ 403 public String getName() { 404 return this.name == null ? null : this.name.getValue(); 405 } 406 407 /** 408 * @param value The name of an individual to contact regarding the structure definition. 409 */ 410 public StructureDefinitionContactComponent setName(String value) { 411 if (Utilities.noString(value)) 412 this.name = null; 413 else { 414 if (this.name == null) 415 this.name = new StringType(); 416 this.name.setValue(value); 417 } 418 return this; 419 } 420 421 /** 422 * @return {@link #telecom} (Contact details for individual (if a name was provided) or the publisher.) 423 */ 424 public List<ContactPoint> getTelecom() { 425 if (this.telecom == null) 426 this.telecom = new ArrayList<ContactPoint>(); 427 return this.telecom; 428 } 429 430 public boolean hasTelecom() { 431 if (this.telecom == null) 432 return false; 433 for (ContactPoint item : this.telecom) 434 if (!item.isEmpty()) 435 return true; 436 return false; 437 } 438 439 /** 440 * @return {@link #telecom} (Contact details for individual (if a name was provided) or the publisher.) 441 */ 442 // syntactic sugar 443 public ContactPoint addTelecom() { //3 444 ContactPoint t = new ContactPoint(); 445 if (this.telecom == null) 446 this.telecom = new ArrayList<ContactPoint>(); 447 this.telecom.add(t); 448 return t; 449 } 450 451 // syntactic sugar 452 public StructureDefinitionContactComponent addTelecom(ContactPoint t) { //3 453 if (t == null) 454 return this; 455 if (this.telecom == null) 456 this.telecom = new ArrayList<ContactPoint>(); 457 this.telecom.add(t); 458 return this; 459 } 460 461 protected void listChildren(List<Property> childrenList) { 462 super.listChildren(childrenList); 463 childrenList.add(new Property("name", "string", "The name of an individual to contact regarding the structure definition.", 0, java.lang.Integer.MAX_VALUE, name)); 464 childrenList.add(new Property("telecom", "ContactPoint", "Contact details for individual (if a name was provided) or the publisher.", 0, java.lang.Integer.MAX_VALUE, telecom)); 465 } 466 467 @Override 468 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 469 switch (hash) { 470 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 471 case -1429363305: /*telecom*/ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint 472 default: return super.getProperty(hash, name, checkValid); 473 } 474 475 } 476 477 @Override 478 public void setProperty(int hash, String name, Base value) throws FHIRException { 479 switch (hash) { 480 case 3373707: // name 481 this.name = castToString(value); // StringType 482 break; 483 case -1429363305: // telecom 484 this.getTelecom().add(castToContactPoint(value)); // ContactPoint 485 break; 486 default: super.setProperty(hash, name, value); 487 } 488 489 } 490 491 @Override 492 public void setProperty(String name, Base value) throws FHIRException { 493 if (name.equals("name")) 494 this.name = castToString(value); // StringType 495 else if (name.equals("telecom")) 496 this.getTelecom().add(castToContactPoint(value)); 497 else 498 super.setProperty(name, value); 499 } 500 501 @Override 502 public Base makeProperty(int hash, String name) throws FHIRException { 503 switch (hash) { 504 case 3373707: throw new FHIRException("Cannot make property name as it is not a complex type"); // StringType 505 case -1429363305: return addTelecom(); // ContactPoint 506 default: return super.makeProperty(hash, name); 507 } 508 509 } 510 511 @Override 512 public Base addChild(String name) throws FHIRException { 513 if (name.equals("name")) { 514 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.name"); 515 } 516 else if (name.equals("telecom")) { 517 return addTelecom(); 518 } 519 else 520 return super.addChild(name); 521 } 522 523 public StructureDefinitionContactComponent copy() { 524 StructureDefinitionContactComponent dst = new StructureDefinitionContactComponent(); 525 copyValues(dst); 526 dst.name = name == null ? null : name.copy(); 527 if (telecom != null) { 528 dst.telecom = new ArrayList<ContactPoint>(); 529 for (ContactPoint i : telecom) 530 dst.telecom.add(i.copy()); 531 }; 532 return dst; 533 } 534 535 @Override 536 public boolean equalsDeep(Base other) { 537 if (!super.equalsDeep(other)) 538 return false; 539 if (!(other instanceof StructureDefinitionContactComponent)) 540 return false; 541 StructureDefinitionContactComponent o = (StructureDefinitionContactComponent) other; 542 return compareDeep(name, o.name, true) && compareDeep(telecom, o.telecom, true); 543 } 544 545 @Override 546 public boolean equalsShallow(Base other) { 547 if (!super.equalsShallow(other)) 548 return false; 549 if (!(other instanceof StructureDefinitionContactComponent)) 550 return false; 551 StructureDefinitionContactComponent o = (StructureDefinitionContactComponent) other; 552 return compareValues(name, o.name, true); 553 } 554 555 public boolean isEmpty() { 556 return super.isEmpty() && (name == null || name.isEmpty()) && (telecom == null || telecom.isEmpty()) 557 ; 558 } 559 560 public String fhirType() { 561 return "StructureDefinition.contact"; 562 563 } 564 565 } 566 567 @Block() 568 public static class StructureDefinitionMappingComponent extends BackboneElement implements IBaseBackboneElement { 569 /** 570 * An Internal id that is used to identify this mapping set when specific mappings are made. 571 */ 572 @Child(name = "identity", type = {IdType.class}, order=1, min=1, max=1, modifier=false, summary=false) 573 @Description(shortDefinition="Internal id when this mapping is used", formalDefinition="An Internal id that is used to identify this mapping set when specific mappings are made." ) 574 protected IdType identity; 575 576 /** 577 * An absolute URI that identifies the specification that this mapping is expressed to. 578 */ 579 @Child(name = "uri", type = {UriType.class}, order=2, min=0, max=1, modifier=false, summary=false) 580 @Description(shortDefinition="Identifies what this mapping refers to", formalDefinition="An absolute URI that identifies the specification that this mapping is expressed to." ) 581 protected UriType uri; 582 583 /** 584 * A name for the specification that is being mapped to. 585 */ 586 @Child(name = "name", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false) 587 @Description(shortDefinition="Names what this mapping refers to", formalDefinition="A name for the specification that is being mapped to." ) 588 protected StringType name; 589 590 /** 591 * Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. 592 */ 593 @Child(name = "comments", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false) 594 @Description(shortDefinition="Versions, Issues, Scope limitations etc.", formalDefinition="Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage." ) 595 protected StringType comments; 596 597 private static final long serialVersionUID = 299630820L; 598 599 /** 600 * Constructor 601 */ 602 public StructureDefinitionMappingComponent() { 603 super(); 604 } 605 606 /** 607 * Constructor 608 */ 609 public StructureDefinitionMappingComponent(IdType identity) { 610 super(); 611 this.identity = identity; 612 } 613 614 /** 615 * @return {@link #identity} (An Internal id that is used to identify this mapping set when specific mappings are made.). This is the underlying object with id, value and extensions. The accessor "getIdentity" gives direct access to the value 616 */ 617 public IdType getIdentityElement() { 618 if (this.identity == null) 619 if (Configuration.errorOnAutoCreate()) 620 throw new Error("Attempt to auto-create StructureDefinitionMappingComponent.identity"); 621 else if (Configuration.doAutoCreate()) 622 this.identity = new IdType(); // bb 623 return this.identity; 624 } 625 626 public boolean hasIdentityElement() { 627 return this.identity != null && !this.identity.isEmpty(); 628 } 629 630 public boolean hasIdentity() { 631 return this.identity != null && !this.identity.isEmpty(); 632 } 633 634 /** 635 * @param value {@link #identity} (An Internal id that is used to identify this mapping set when specific mappings are made.). This is the underlying object with id, value and extensions. The accessor "getIdentity" gives direct access to the value 636 */ 637 public StructureDefinitionMappingComponent setIdentityElement(IdType value) { 638 this.identity = value; 639 return this; 640 } 641 642 /** 643 * @return An Internal id that is used to identify this mapping set when specific mappings are made. 644 */ 645 public String getIdentity() { 646 return this.identity == null ? null : this.identity.getValue(); 647 } 648 649 /** 650 * @param value An Internal id that is used to identify this mapping set when specific mappings are made. 651 */ 652 public StructureDefinitionMappingComponent setIdentity(String value) { 653 if (this.identity == null) 654 this.identity = new IdType(); 655 this.identity.setValue(value); 656 return this; 657 } 658 659 /** 660 * @return {@link #uri} (An absolute URI that identifies the specification that this mapping is expressed to.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value 661 */ 662 public UriType getUriElement() { 663 if (this.uri == null) 664 if (Configuration.errorOnAutoCreate()) 665 throw new Error("Attempt to auto-create StructureDefinitionMappingComponent.uri"); 666 else if (Configuration.doAutoCreate()) 667 this.uri = new UriType(); // bb 668 return this.uri; 669 } 670 671 public boolean hasUriElement() { 672 return this.uri != null && !this.uri.isEmpty(); 673 } 674 675 public boolean hasUri() { 676 return this.uri != null && !this.uri.isEmpty(); 677 } 678 679 /** 680 * @param value {@link #uri} (An absolute URI that identifies the specification that this mapping is expressed to.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value 681 */ 682 public StructureDefinitionMappingComponent setUriElement(UriType value) { 683 this.uri = value; 684 return this; 685 } 686 687 /** 688 * @return An absolute URI that identifies the specification that this mapping is expressed to. 689 */ 690 public String getUri() { 691 return this.uri == null ? null : this.uri.getValue(); 692 } 693 694 /** 695 * @param value An absolute URI that identifies the specification that this mapping is expressed to. 696 */ 697 public StructureDefinitionMappingComponent setUri(String value) { 698 if (Utilities.noString(value)) 699 this.uri = null; 700 else { 701 if (this.uri == null) 702 this.uri = new UriType(); 703 this.uri.setValue(value); 704 } 705 return this; 706 } 707 708 /** 709 * @return {@link #name} (A name for the specification that is being mapped to.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 710 */ 711 public StringType getNameElement() { 712 if (this.name == null) 713 if (Configuration.errorOnAutoCreate()) 714 throw new Error("Attempt to auto-create StructureDefinitionMappingComponent.name"); 715 else if (Configuration.doAutoCreate()) 716 this.name = new StringType(); // bb 717 return this.name; 718 } 719 720 public boolean hasNameElement() { 721 return this.name != null && !this.name.isEmpty(); 722 } 723 724 public boolean hasName() { 725 return this.name != null && !this.name.isEmpty(); 726 } 727 728 /** 729 * @param value {@link #name} (A name for the specification that is being mapped to.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 730 */ 731 public StructureDefinitionMappingComponent setNameElement(StringType value) { 732 this.name = value; 733 return this; 734 } 735 736 /** 737 * @return A name for the specification that is being mapped to. 738 */ 739 public String getName() { 740 return this.name == null ? null : this.name.getValue(); 741 } 742 743 /** 744 * @param value A name for the specification that is being mapped to. 745 */ 746 public StructureDefinitionMappingComponent setName(String value) { 747 if (Utilities.noString(value)) 748 this.name = null; 749 else { 750 if (this.name == null) 751 this.name = new StringType(); 752 this.name.setValue(value); 753 } 754 return this; 755 } 756 757 /** 758 * @return {@link #comments} (Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value 759 */ 760 public StringType getCommentsElement() { 761 if (this.comments == null) 762 if (Configuration.errorOnAutoCreate()) 763 throw new Error("Attempt to auto-create StructureDefinitionMappingComponent.comments"); 764 else if (Configuration.doAutoCreate()) 765 this.comments = new StringType(); // bb 766 return this.comments; 767 } 768 769 public boolean hasCommentsElement() { 770 return this.comments != null && !this.comments.isEmpty(); 771 } 772 773 public boolean hasComments() { 774 return this.comments != null && !this.comments.isEmpty(); 775 } 776 777 /** 778 * @param value {@link #comments} (Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value 779 */ 780 public StructureDefinitionMappingComponent setCommentsElement(StringType value) { 781 this.comments = value; 782 return this; 783 } 784 785 /** 786 * @return Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. 787 */ 788 public String getComments() { 789 return this.comments == null ? null : this.comments.getValue(); 790 } 791 792 /** 793 * @param value Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. 794 */ 795 public StructureDefinitionMappingComponent setComments(String value) { 796 if (Utilities.noString(value)) 797 this.comments = null; 798 else { 799 if (this.comments == null) 800 this.comments = new StringType(); 801 this.comments.setValue(value); 802 } 803 return this; 804 } 805 806 protected void listChildren(List<Property> childrenList) { 807 super.listChildren(childrenList); 808 childrenList.add(new Property("identity", "id", "An Internal id that is used to identify this mapping set when specific mappings are made.", 0, java.lang.Integer.MAX_VALUE, identity)); 809 childrenList.add(new Property("uri", "uri", "An absolute URI that identifies the specification that this mapping is expressed to.", 0, java.lang.Integer.MAX_VALUE, uri)); 810 childrenList.add(new Property("name", "string", "A name for the specification that is being mapped to.", 0, java.lang.Integer.MAX_VALUE, name)); 811 childrenList.add(new Property("comments", "string", "Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.", 0, java.lang.Integer.MAX_VALUE, comments)); 812 } 813 814 @Override 815 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 816 switch (hash) { 817 case -135761730: /*identity*/ return this.identity == null ? new Base[0] : new Base[] {this.identity}; // IdType 818 case 116076: /*uri*/ return this.uri == null ? new Base[0] : new Base[] {this.uri}; // UriType 819 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 820 case -602415628: /*comments*/ return this.comments == null ? new Base[0] : new Base[] {this.comments}; // StringType 821 default: return super.getProperty(hash, name, checkValid); 822 } 823 824 } 825 826 @Override 827 public void setProperty(int hash, String name, Base value) throws FHIRException { 828 switch (hash) { 829 case -135761730: // identity 830 this.identity = castToId(value); // IdType 831 break; 832 case 116076: // uri 833 this.uri = castToUri(value); // UriType 834 break; 835 case 3373707: // name 836 this.name = castToString(value); // StringType 837 break; 838 case -602415628: // comments 839 this.comments = castToString(value); // StringType 840 break; 841 default: super.setProperty(hash, name, value); 842 } 843 844 } 845 846 @Override 847 public void setProperty(String name, Base value) throws FHIRException { 848 if (name.equals("identity")) 849 this.identity = castToId(value); // IdType 850 else if (name.equals("uri")) 851 this.uri = castToUri(value); // UriType 852 else if (name.equals("name")) 853 this.name = castToString(value); // StringType 854 else if (name.equals("comments")) 855 this.comments = castToString(value); // StringType 856 else 857 super.setProperty(name, value); 858 } 859 860 @Override 861 public Base makeProperty(int hash, String name) throws FHIRException { 862 switch (hash) { 863 case -135761730: throw new FHIRException("Cannot make property identity as it is not a complex type"); // IdType 864 case 116076: throw new FHIRException("Cannot make property uri as it is not a complex type"); // UriType 865 case 3373707: throw new FHIRException("Cannot make property name as it is not a complex type"); // StringType 866 case -602415628: throw new FHIRException("Cannot make property comments as it is not a complex type"); // StringType 867 default: return super.makeProperty(hash, name); 868 } 869 870 } 871 872 @Override 873 public Base addChild(String name) throws FHIRException { 874 if (name.equals("identity")) { 875 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.identity"); 876 } 877 else if (name.equals("uri")) { 878 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.uri"); 879 } 880 else if (name.equals("name")) { 881 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.name"); 882 } 883 else if (name.equals("comments")) { 884 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.comments"); 885 } 886 else 887 return super.addChild(name); 888 } 889 890 public StructureDefinitionMappingComponent copy() { 891 StructureDefinitionMappingComponent dst = new StructureDefinitionMappingComponent(); 892 copyValues(dst); 893 dst.identity = identity == null ? null : identity.copy(); 894 dst.uri = uri == null ? null : uri.copy(); 895 dst.name = name == null ? null : name.copy(); 896 dst.comments = comments == null ? null : comments.copy(); 897 return dst; 898 } 899 900 @Override 901 public boolean equalsDeep(Base other) { 902 if (!super.equalsDeep(other)) 903 return false; 904 if (!(other instanceof StructureDefinitionMappingComponent)) 905 return false; 906 StructureDefinitionMappingComponent o = (StructureDefinitionMappingComponent) other; 907 return compareDeep(identity, o.identity, true) && compareDeep(uri, o.uri, true) && compareDeep(name, o.name, true) 908 && compareDeep(comments, o.comments, true); 909 } 910 911 @Override 912 public boolean equalsShallow(Base other) { 913 if (!super.equalsShallow(other)) 914 return false; 915 if (!(other instanceof StructureDefinitionMappingComponent)) 916 return false; 917 StructureDefinitionMappingComponent o = (StructureDefinitionMappingComponent) other; 918 return compareValues(identity, o.identity, true) && compareValues(uri, o.uri, true) && compareValues(name, o.name, true) 919 && compareValues(comments, o.comments, true); 920 } 921 922 public boolean isEmpty() { 923 return super.isEmpty() && (identity == null || identity.isEmpty()) && (uri == null || uri.isEmpty()) 924 && (name == null || name.isEmpty()) && (comments == null || comments.isEmpty()); 925 } 926 927 public String fhirType() { 928 return "StructureDefinition.mapping"; 929 930 } 931 932 } 933 934 @Block() 935 public static class StructureDefinitionSnapshotComponent extends BackboneElement implements IBaseBackboneElement { 936 /** 937 * Captures constraints on each element within the resource. 938 */ 939 @Child(name = "element", type = {ElementDefinition.class}, order=1, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 940 @Description(shortDefinition="Definition of elements in the resource (if no StructureDefinition)", formalDefinition="Captures constraints on each element within the resource." ) 941 protected List<ElementDefinition> element; 942 943 private static final long serialVersionUID = 53896641L; 944 945 /** 946 * Constructor 947 */ 948 public StructureDefinitionSnapshotComponent() { 949 super(); 950 } 951 952 /** 953 * @return {@link #element} (Captures constraints on each element within the resource.) 954 */ 955 public List<ElementDefinition> getElement() { 956 if (this.element == null) 957 this.element = new ArrayList<ElementDefinition>(); 958 return this.element; 959 } 960 961 public boolean hasElement() { 962 if (this.element == null) 963 return false; 964 for (ElementDefinition item : this.element) 965 if (!item.isEmpty()) 966 return true; 967 return false; 968 } 969 970 /** 971 * @return {@link #element} (Captures constraints on each element within the resource.) 972 */ 973 // syntactic sugar 974 public ElementDefinition addElement() { //3 975 ElementDefinition t = new ElementDefinition(); 976 if (this.element == null) 977 this.element = new ArrayList<ElementDefinition>(); 978 this.element.add(t); 979 return t; 980 } 981 982 // syntactic sugar 983 public StructureDefinitionSnapshotComponent addElement(ElementDefinition t) { //3 984 if (t == null) 985 return this; 986 if (this.element == null) 987 this.element = new ArrayList<ElementDefinition>(); 988 this.element.add(t); 989 return this; 990 } 991 992 protected void listChildren(List<Property> childrenList) { 993 super.listChildren(childrenList); 994 childrenList.add(new Property("element", "ElementDefinition", "Captures constraints on each element within the resource.", 0, java.lang.Integer.MAX_VALUE, element)); 995 } 996 997 @Override 998 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 999 switch (hash) { 1000 case -1662836996: /*element*/ return this.element == null ? new Base[0] : this.element.toArray(new Base[this.element.size()]); // ElementDefinition 1001 default: return super.getProperty(hash, name, checkValid); 1002 } 1003 1004 } 1005 1006 @Override 1007 public void setProperty(int hash, String name, Base value) throws FHIRException { 1008 switch (hash) { 1009 case -1662836996: // element 1010 this.getElement().add(castToElementDefinition(value)); // ElementDefinition 1011 break; 1012 default: super.setProperty(hash, name, value); 1013 } 1014 1015 } 1016 1017 @Override 1018 public void setProperty(String name, Base value) throws FHIRException { 1019 if (name.equals("element")) 1020 this.getElement().add(castToElementDefinition(value)); 1021 else 1022 super.setProperty(name, value); 1023 } 1024 1025 @Override 1026 public Base makeProperty(int hash, String name) throws FHIRException { 1027 switch (hash) { 1028 case -1662836996: return addElement(); // ElementDefinition 1029 default: return super.makeProperty(hash, name); 1030 } 1031 1032 } 1033 1034 @Override 1035 public Base addChild(String name) throws FHIRException { 1036 if (name.equals("element")) { 1037 return addElement(); 1038 } 1039 else 1040 return super.addChild(name); 1041 } 1042 1043 public StructureDefinitionSnapshotComponent copy() { 1044 StructureDefinitionSnapshotComponent dst = new StructureDefinitionSnapshotComponent(); 1045 copyValues(dst); 1046 if (element != null) { 1047 dst.element = new ArrayList<ElementDefinition>(); 1048 for (ElementDefinition i : element) 1049 dst.element.add(i.copy()); 1050 }; 1051 return dst; 1052 } 1053 1054 @Override 1055 public boolean equalsDeep(Base other) { 1056 if (!super.equalsDeep(other)) 1057 return false; 1058 if (!(other instanceof StructureDefinitionSnapshotComponent)) 1059 return false; 1060 StructureDefinitionSnapshotComponent o = (StructureDefinitionSnapshotComponent) other; 1061 return compareDeep(element, o.element, true); 1062 } 1063 1064 @Override 1065 public boolean equalsShallow(Base other) { 1066 if (!super.equalsShallow(other)) 1067 return false; 1068 if (!(other instanceof StructureDefinitionSnapshotComponent)) 1069 return false; 1070 StructureDefinitionSnapshotComponent o = (StructureDefinitionSnapshotComponent) other; 1071 return true; 1072 } 1073 1074 public boolean isEmpty() { 1075 return super.isEmpty() && (element == null || element.isEmpty()); 1076 } 1077 1078 public String fhirType() { 1079 return "StructureDefinition.snapshot"; 1080 1081 } 1082 1083 } 1084 1085 @Block() 1086 public static class StructureDefinitionDifferentialComponent extends BackboneElement implements IBaseBackboneElement { 1087 /** 1088 * Captures constraints on each element within the resource. 1089 */ 1090 @Child(name = "element", type = {ElementDefinition.class}, order=1, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1091 @Description(shortDefinition="Definition of elements in the resource (if no StructureDefinition)", formalDefinition="Captures constraints on each element within the resource." ) 1092 protected List<ElementDefinition> element; 1093 1094 private static final long serialVersionUID = 53896641L; 1095 1096 /** 1097 * Constructor 1098 */ 1099 public StructureDefinitionDifferentialComponent() { 1100 super(); 1101 } 1102 1103 /** 1104 * @return {@link #element} (Captures constraints on each element within the resource.) 1105 */ 1106 public List<ElementDefinition> getElement() { 1107 if (this.element == null) 1108 this.element = new ArrayList<ElementDefinition>(); 1109 return this.element; 1110 } 1111 1112 public boolean hasElement() { 1113 if (this.element == null) 1114 return false; 1115 for (ElementDefinition item : this.element) 1116 if (!item.isEmpty()) 1117 return true; 1118 return false; 1119 } 1120 1121 /** 1122 * @return {@link #element} (Captures constraints on each element within the resource.) 1123 */ 1124 // syntactic sugar 1125 public ElementDefinition addElement() { //3 1126 ElementDefinition t = new ElementDefinition(); 1127 if (this.element == null) 1128 this.element = new ArrayList<ElementDefinition>(); 1129 this.element.add(t); 1130 return t; 1131 } 1132 1133 // syntactic sugar 1134 public StructureDefinitionDifferentialComponent addElement(ElementDefinition t) { //3 1135 if (t == null) 1136 return this; 1137 if (this.element == null) 1138 this.element = new ArrayList<ElementDefinition>(); 1139 this.element.add(t); 1140 return this; 1141 } 1142 1143 protected void listChildren(List<Property> childrenList) { 1144 super.listChildren(childrenList); 1145 childrenList.add(new Property("element", "ElementDefinition", "Captures constraints on each element within the resource.", 0, java.lang.Integer.MAX_VALUE, element)); 1146 } 1147 1148 @Override 1149 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1150 switch (hash) { 1151 case -1662836996: /*element*/ return this.element == null ? new Base[0] : this.element.toArray(new Base[this.element.size()]); // ElementDefinition 1152 default: return super.getProperty(hash, name, checkValid); 1153 } 1154 1155 } 1156 1157 @Override 1158 public void setProperty(int hash, String name, Base value) throws FHIRException { 1159 switch (hash) { 1160 case -1662836996: // element 1161 this.getElement().add(castToElementDefinition(value)); // ElementDefinition 1162 break; 1163 default: super.setProperty(hash, name, value); 1164 } 1165 1166 } 1167 1168 @Override 1169 public void setProperty(String name, Base value) throws FHIRException { 1170 if (name.equals("element")) 1171 this.getElement().add(castToElementDefinition(value)); 1172 else 1173 super.setProperty(name, value); 1174 } 1175 1176 @Override 1177 public Base makeProperty(int hash, String name) throws FHIRException { 1178 switch (hash) { 1179 case -1662836996: return addElement(); // ElementDefinition 1180 default: return super.makeProperty(hash, name); 1181 } 1182 1183 } 1184 1185 @Override 1186 public Base addChild(String name) throws FHIRException { 1187 if (name.equals("element")) { 1188 return addElement(); 1189 } 1190 else 1191 return super.addChild(name); 1192 } 1193 1194 public StructureDefinitionDifferentialComponent copy() { 1195 StructureDefinitionDifferentialComponent dst = new StructureDefinitionDifferentialComponent(); 1196 copyValues(dst); 1197 if (element != null) { 1198 dst.element = new ArrayList<ElementDefinition>(); 1199 for (ElementDefinition i : element) 1200 dst.element.add(i.copy()); 1201 }; 1202 return dst; 1203 } 1204 1205 @Override 1206 public boolean equalsDeep(Base other) { 1207 if (!super.equalsDeep(other)) 1208 return false; 1209 if (!(other instanceof StructureDefinitionDifferentialComponent)) 1210 return false; 1211 StructureDefinitionDifferentialComponent o = (StructureDefinitionDifferentialComponent) other; 1212 return compareDeep(element, o.element, true); 1213 } 1214 1215 @Override 1216 public boolean equalsShallow(Base other) { 1217 if (!super.equalsShallow(other)) 1218 return false; 1219 if (!(other instanceof StructureDefinitionDifferentialComponent)) 1220 return false; 1221 StructureDefinitionDifferentialComponent o = (StructureDefinitionDifferentialComponent) other; 1222 return true; 1223 } 1224 1225 public boolean isEmpty() { 1226 return super.isEmpty() && (element == null || element.isEmpty()); 1227 } 1228 1229 public String fhirType() { 1230 return "StructureDefinition.differential"; 1231 1232 } 1233 1234 } 1235 1236 /** 1237 * An absolute URL that is used to identify this structure definition when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this structure definition is (or will be) published. 1238 */ 1239 @Child(name = "url", type = {UriType.class}, order=0, min=1, max=1, modifier=false, summary=true) 1240 @Description(shortDefinition="Absolute URL used to reference this StructureDefinition", formalDefinition="An absolute URL that is used to identify this structure definition when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this structure definition is (or will be) published." ) 1241 protected UriType url; 1242 1243 /** 1244 * Formal identifier that is used to identify this StructureDefinition when it is represented in other formats, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI). 1245 */ 1246 @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1247 @Description(shortDefinition="Other identifiers for the StructureDefinition", formalDefinition="Formal identifier that is used to identify this StructureDefinition when it is represented in other formats, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI)." ) 1248 protected List<Identifier> identifier; 1249 1250 /** 1251 * The identifier that is used to identify this version of the StructureDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the StructureDefinition author manually. 1252 */ 1253 @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true) 1254 @Description(shortDefinition="Logical id for this version of the StructureDefinition", formalDefinition="The identifier that is used to identify this version of the StructureDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the StructureDefinition author manually." ) 1255 protected StringType version; 1256 1257 /** 1258 * A free text natural language name identifying the StructureDefinition. 1259 */ 1260 @Child(name = "name", type = {StringType.class}, order=3, min=1, max=1, modifier=false, summary=true) 1261 @Description(shortDefinition="Informal name for this StructureDefinition", formalDefinition="A free text natural language name identifying the StructureDefinition." ) 1262 protected StringType name; 1263 1264 /** 1265 * Defined so that applications can use this name when displaying the value of the extension to the user. 1266 */ 1267 @Child(name = "display", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true) 1268 @Description(shortDefinition="Use this name when displaying the value", formalDefinition="Defined so that applications can use this name when displaying the value of the extension to the user." ) 1269 protected StringType display; 1270 1271 /** 1272 * The status of the StructureDefinition. 1273 */ 1274 @Child(name = "status", type = {CodeType.class}, order=5, min=1, max=1, modifier=true, summary=true) 1275 @Description(shortDefinition="draft | active | retired", formalDefinition="The status of the StructureDefinition." ) 1276 protected Enumeration<ConformanceResourceStatus> status; 1277 1278 /** 1279 * This StructureDefinition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. 1280 */ 1281 @Child(name = "experimental", type = {BooleanType.class}, order=6, min=0, max=1, modifier=false, summary=true) 1282 @Description(shortDefinition="If for testing purposes, not real usage", formalDefinition="This StructureDefinition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage." ) 1283 protected BooleanType experimental; 1284 1285 /** 1286 * The name of the individual or organization that published the structure definition. 1287 */ 1288 @Child(name = "publisher", type = {StringType.class}, order=7, min=0, max=1, modifier=false, summary=true) 1289 @Description(shortDefinition="Name of the publisher (Organization or individual)", formalDefinition="The name of the individual or organization that published the structure definition." ) 1290 protected StringType publisher; 1291 1292 /** 1293 * Contacts to assist a user in finding and communicating with the publisher. 1294 */ 1295 @Child(name = "contact", type = {}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1296 @Description(shortDefinition="Contact details of the publisher", formalDefinition="Contacts to assist a user in finding and communicating with the publisher." ) 1297 protected List<StructureDefinitionContactComponent> contact; 1298 1299 /** 1300 * The date this version of the structure definition was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the structure definition changes. 1301 */ 1302 @Child(name = "date", type = {DateTimeType.class}, order=9, min=0, max=1, modifier=false, summary=true) 1303 @Description(shortDefinition="Date for this version of the StructureDefinition", formalDefinition="The date this version of the structure definition was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the structure definition changes." ) 1304 protected DateTimeType date; 1305 1306 /** 1307 * A free text natural language description of the StructureDefinition and its use. 1308 */ 1309 @Child(name = "description", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=true) 1310 @Description(shortDefinition="Natural language description of the StructureDefinition", formalDefinition="A free text natural language description of the StructureDefinition and its use." ) 1311 protected StringType description; 1312 1313 /** 1314 * The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of structure definitions. 1315 */ 1316 @Child(name = "useContext", type = {CodeableConcept.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1317 @Description(shortDefinition="Content intends to support these contexts", formalDefinition="The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of structure definitions." ) 1318 protected List<CodeableConcept> useContext; 1319 1320 /** 1321 * Explains why this structure definition is needed and why it's been constrained as it has. 1322 */ 1323 @Child(name = "requirements", type = {StringType.class}, order=12, min=0, max=1, modifier=false, summary=false) 1324 @Description(shortDefinition="Scope and Usage this structure definition is for", formalDefinition="Explains why this structure definition is needed and why it's been constrained as it has." ) 1325 protected StringType requirements; 1326 1327 /** 1328 * A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings. 1329 */ 1330 @Child(name = "copyright", type = {StringType.class}, order=13, min=0, max=1, modifier=false, summary=false) 1331 @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings." ) 1332 protected StringType copyright; 1333 1334 /** 1335 * A set of terms from external terminologies that may be used to assist with indexing and searching of templates. 1336 */ 1337 @Child(name = "code", type = {Coding.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1338 @Description(shortDefinition="Assist with indexing and finding", formalDefinition="A set of terms from external terminologies that may be used to assist with indexing and searching of templates." ) 1339 protected List<Coding> code; 1340 1341 /** 1342 * The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 1.4.0 for this version. 1343 */ 1344 @Child(name = "fhirVersion", type = {IdType.class}, order=15, min=0, max=1, modifier=false, summary=true) 1345 @Description(shortDefinition="FHIR Version this StructureDefinition targets", formalDefinition="The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 1.4.0 for this version." ) 1346 protected IdType fhirVersion; 1347 1348 /** 1349 * An external specification that the content is mapped to. 1350 */ 1351 @Child(name = "mapping", type = {}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1352 @Description(shortDefinition="External specification that the content is mapped to", formalDefinition="An external specification that the content is mapped to." ) 1353 protected List<StructureDefinitionMappingComponent> mapping; 1354 1355 /** 1356 * Defines the kind of structure that this definition is describing. 1357 */ 1358 @Child(name = "kind", type = {CodeType.class}, order=17, min=1, max=1, modifier=false, summary=true) 1359 @Description(shortDefinition="datatype | resource | logical", formalDefinition="Defines the kind of structure that this definition is describing." ) 1360 protected Enumeration<StructureDefinitionKind> kind; 1361 1362 /** 1363 * Whether structure this definition describes is abstract or not - that is, whether an actual exchanged item can ever be of this type. 1364 */ 1365 @Child(name = "abstract", type = {BooleanType.class}, order=18, min=1, max=1, modifier=false, summary=true) 1366 @Description(shortDefinition="Whether the structure is abstract", formalDefinition="Whether structure this definition describes is abstract or not - that is, whether an actual exchanged item can ever be of this type." ) 1367 protected BooleanType abstract_; 1368 1369 /** 1370 * If this is an extension, Identifies the context within FHIR resources where the extension can be used. 1371 */ 1372 @Child(name = "contextType", type = {CodeType.class}, order=19, min=0, max=1, modifier=false, summary=true) 1373 @Description(shortDefinition="resource | datatype | extension", formalDefinition="If this is an extension, Identifies the context within FHIR resources where the extension can be used." ) 1374 protected Enumeration<ExtensionContext> contextType; 1375 1376 /** 1377 * Identifies the types of resource or data type elements to which the extension can be applied. 1378 */ 1379 @Child(name = "context", type = {StringType.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1380 @Description(shortDefinition="Where the extension can be used in instances", formalDefinition="Identifies the types of resource or data type elements to which the extension can be applied." ) 1381 protected List<StringType> context; 1382 1383 /** 1384 * The type of type that this structure is derived from - a data type, an extension, a resource, including abstract ones. If this field is present, it indicates that the structure definition is deriving from this type. If it is not present, then the structure definition is the definition of a base abstract structure. 1385 */ 1386 @Child(name = "baseType", type = {CodeType.class}, order=21, min=0, max=1, modifier=false, summary=true) 1387 @Description(shortDefinition="Any datatype or resource, including abstract ones", formalDefinition="The type of type that this structure is derived from - a data type, an extension, a resource, including abstract ones. If this field is present, it indicates that the structure definition is deriving from this type. If it is not present, then the structure definition is the definition of a base abstract structure." ) 1388 protected CodeType baseType; 1389 1390 /** 1391 * An absolute URI that is the base structure from which this type is derived, either by specialization or constraint. 1392 */ 1393 @Child(name = "baseDefinition", type = {UriType.class}, order=22, min=0, max=1, modifier=false, summary=true) 1394 @Description(shortDefinition="Definition that this type is constrained/specialized from", formalDefinition="An absolute URI that is the base structure from which this type is derived, either by specialization or constraint." ) 1395 protected UriType baseDefinition; 1396 1397 /** 1398 * How the type relates to the baseDefinition. 1399 */ 1400 @Child(name = "derivation", type = {CodeType.class}, order=23, min=0, max=1, modifier=false, summary=true) 1401 @Description(shortDefinition="specialization | constraint - How relates to base definition", formalDefinition="How the type relates to the baseDefinition." ) 1402 protected Enumeration<TypeDerivationRule> derivation; 1403 1404 /** 1405 * A snapshot view is expressed in a stand alone form that can be used and interpreted without considering the base StructureDefinition. 1406 */ 1407 @Child(name = "snapshot", type = {}, order=24, min=0, max=1, modifier=false, summary=false) 1408 @Description(shortDefinition="Snapshot view of the structure", formalDefinition="A snapshot view is expressed in a stand alone form that can be used and interpreted without considering the base StructureDefinition." ) 1409 protected StructureDefinitionSnapshotComponent snapshot; 1410 1411 /** 1412 * A differential view is expressed relative to the base StructureDefinition - a statement of differences that it applies. 1413 */ 1414 @Child(name = "differential", type = {}, order=25, min=0, max=1, modifier=false, summary=false) 1415 @Description(shortDefinition="Differential view of the structure", formalDefinition="A differential view is expressed relative to the base StructureDefinition - a statement of differences that it applies." ) 1416 protected StructureDefinitionDifferentialComponent differential; 1417 1418 private static final long serialVersionUID = -1505153076L; 1419 1420 /** 1421 * Constructor 1422 */ 1423 public StructureDefinition() { 1424 super(); 1425 } 1426 1427 /** 1428 * Constructor 1429 */ 1430 public StructureDefinition(UriType url, StringType name, Enumeration<ConformanceResourceStatus> status, Enumeration<StructureDefinitionKind> kind, BooleanType abstract_) { 1431 super(); 1432 this.url = url; 1433 this.name = name; 1434 this.status = status; 1435 this.kind = kind; 1436 this.abstract_ = abstract_; 1437 } 1438 1439 /** 1440 * @return {@link #url} (An absolute URL that is used to identify this structure definition when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this structure definition is (or will be) published.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 1441 */ 1442 public UriType getUrlElement() { 1443 if (this.url == null) 1444 if (Configuration.errorOnAutoCreate()) 1445 throw new Error("Attempt to auto-create StructureDefinition.url"); 1446 else if (Configuration.doAutoCreate()) 1447 this.url = new UriType(); // bb 1448 return this.url; 1449 } 1450 1451 public boolean hasUrlElement() { 1452 return this.url != null && !this.url.isEmpty(); 1453 } 1454 1455 public boolean hasUrl() { 1456 return this.url != null && !this.url.isEmpty(); 1457 } 1458 1459 /** 1460 * @param value {@link #url} (An absolute URL that is used to identify this structure definition when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this structure definition is (or will be) published.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 1461 */ 1462 public StructureDefinition setUrlElement(UriType value) { 1463 this.url = value; 1464 return this; 1465 } 1466 1467 /** 1468 * @return An absolute URL that is used to identify this structure definition when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this structure definition is (or will be) published. 1469 */ 1470 public String getUrl() { 1471 return this.url == null ? null : this.url.getValue(); 1472 } 1473 1474 /** 1475 * @param value An absolute URL that is used to identify this structure definition when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this structure definition is (or will be) published. 1476 */ 1477 public StructureDefinition setUrl(String value) { 1478 if (this.url == null) 1479 this.url = new UriType(); 1480 this.url.setValue(value); 1481 return this; 1482 } 1483 1484 /** 1485 * @return {@link #identifier} (Formal identifier that is used to identify this StructureDefinition when it is represented in other formats, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI).) 1486 */ 1487 public List<Identifier> getIdentifier() { 1488 if (this.identifier == null) 1489 this.identifier = new ArrayList<Identifier>(); 1490 return this.identifier; 1491 } 1492 1493 public boolean hasIdentifier() { 1494 if (this.identifier == null) 1495 return false; 1496 for (Identifier item : this.identifier) 1497 if (!item.isEmpty()) 1498 return true; 1499 return false; 1500 } 1501 1502 /** 1503 * @return {@link #identifier} (Formal identifier that is used to identify this StructureDefinition when it is represented in other formats, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI).) 1504 */ 1505 // syntactic sugar 1506 public Identifier addIdentifier() { //3 1507 Identifier t = new Identifier(); 1508 if (this.identifier == null) 1509 this.identifier = new ArrayList<Identifier>(); 1510 this.identifier.add(t); 1511 return t; 1512 } 1513 1514 // syntactic sugar 1515 public StructureDefinition addIdentifier(Identifier t) { //3 1516 if (t == null) 1517 return this; 1518 if (this.identifier == null) 1519 this.identifier = new ArrayList<Identifier>(); 1520 this.identifier.add(t); 1521 return this; 1522 } 1523 1524 /** 1525 * @return {@link #version} (The identifier that is used to identify this version of the StructureDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the StructureDefinition author manually.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 1526 */ 1527 public StringType getVersionElement() { 1528 if (this.version == null) 1529 if (Configuration.errorOnAutoCreate()) 1530 throw new Error("Attempt to auto-create StructureDefinition.version"); 1531 else if (Configuration.doAutoCreate()) 1532 this.version = new StringType(); // bb 1533 return this.version; 1534 } 1535 1536 public boolean hasVersionElement() { 1537 return this.version != null && !this.version.isEmpty(); 1538 } 1539 1540 public boolean hasVersion() { 1541 return this.version != null && !this.version.isEmpty(); 1542 } 1543 1544 /** 1545 * @param value {@link #version} (The identifier that is used to identify this version of the StructureDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the StructureDefinition author manually.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 1546 */ 1547 public StructureDefinition setVersionElement(StringType value) { 1548 this.version = value; 1549 return this; 1550 } 1551 1552 /** 1553 * @return The identifier that is used to identify this version of the StructureDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the StructureDefinition author manually. 1554 */ 1555 public String getVersion() { 1556 return this.version == null ? null : this.version.getValue(); 1557 } 1558 1559 /** 1560 * @param value The identifier that is used to identify this version of the StructureDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the StructureDefinition author manually. 1561 */ 1562 public StructureDefinition setVersion(String value) { 1563 if (Utilities.noString(value)) 1564 this.version = null; 1565 else { 1566 if (this.version == null) 1567 this.version = new StringType(); 1568 this.version.setValue(value); 1569 } 1570 return this; 1571 } 1572 1573 /** 1574 * @return {@link #name} (A free text natural language name identifying the StructureDefinition.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 1575 */ 1576 public StringType getNameElement() { 1577 if (this.name == null) 1578 if (Configuration.errorOnAutoCreate()) 1579 throw new Error("Attempt to auto-create StructureDefinition.name"); 1580 else if (Configuration.doAutoCreate()) 1581 this.name = new StringType(); // bb 1582 return this.name; 1583 } 1584 1585 public boolean hasNameElement() { 1586 return this.name != null && !this.name.isEmpty(); 1587 } 1588 1589 public boolean hasName() { 1590 return this.name != null && !this.name.isEmpty(); 1591 } 1592 1593 /** 1594 * @param value {@link #name} (A free text natural language name identifying the StructureDefinition.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 1595 */ 1596 public StructureDefinition setNameElement(StringType value) { 1597 this.name = value; 1598 return this; 1599 } 1600 1601 /** 1602 * @return A free text natural language name identifying the StructureDefinition. 1603 */ 1604 public String getName() { 1605 return this.name == null ? null : this.name.getValue(); 1606 } 1607 1608 /** 1609 * @param value A free text natural language name identifying the StructureDefinition. 1610 */ 1611 public StructureDefinition setName(String value) { 1612 if (this.name == null) 1613 this.name = new StringType(); 1614 this.name.setValue(value); 1615 return this; 1616 } 1617 1618 /** 1619 * @return {@link #display} (Defined so that applications can use this name when displaying the value of the extension to the user.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 1620 */ 1621 public StringType getDisplayElement() { 1622 if (this.display == null) 1623 if (Configuration.errorOnAutoCreate()) 1624 throw new Error("Attempt to auto-create StructureDefinition.display"); 1625 else if (Configuration.doAutoCreate()) 1626 this.display = new StringType(); // bb 1627 return this.display; 1628 } 1629 1630 public boolean hasDisplayElement() { 1631 return this.display != null && !this.display.isEmpty(); 1632 } 1633 1634 public boolean hasDisplay() { 1635 return this.display != null && !this.display.isEmpty(); 1636 } 1637 1638 /** 1639 * @param value {@link #display} (Defined so that applications can use this name when displaying the value of the extension to the user.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 1640 */ 1641 public StructureDefinition setDisplayElement(StringType value) { 1642 this.display = value; 1643 return this; 1644 } 1645 1646 /** 1647 * @return Defined so that applications can use this name when displaying the value of the extension to the user. 1648 */ 1649 public String getDisplay() { 1650 return this.display == null ? null : this.display.getValue(); 1651 } 1652 1653 /** 1654 * @param value Defined so that applications can use this name when displaying the value of the extension to the user. 1655 */ 1656 public StructureDefinition setDisplay(String value) { 1657 if (Utilities.noString(value)) 1658 this.display = null; 1659 else { 1660 if (this.display == null) 1661 this.display = new StringType(); 1662 this.display.setValue(value); 1663 } 1664 return this; 1665 } 1666 1667 /** 1668 * @return {@link #status} (The status of the StructureDefinition.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1669 */ 1670 public Enumeration<ConformanceResourceStatus> getStatusElement() { 1671 if (this.status == null) 1672 if (Configuration.errorOnAutoCreate()) 1673 throw new Error("Attempt to auto-create StructureDefinition.status"); 1674 else if (Configuration.doAutoCreate()) 1675 this.status = new Enumeration<ConformanceResourceStatus>(new ConformanceResourceStatusEnumFactory()); // bb 1676 return this.status; 1677 } 1678 1679 public boolean hasStatusElement() { 1680 return this.status != null && !this.status.isEmpty(); 1681 } 1682 1683 public boolean hasStatus() { 1684 return this.status != null && !this.status.isEmpty(); 1685 } 1686 1687 /** 1688 * @param value {@link #status} (The status of the StructureDefinition.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1689 */ 1690 public StructureDefinition setStatusElement(Enumeration<ConformanceResourceStatus> value) { 1691 this.status = value; 1692 return this; 1693 } 1694 1695 /** 1696 * @return The status of the StructureDefinition. 1697 */ 1698 public ConformanceResourceStatus getStatus() { 1699 return this.status == null ? null : this.status.getValue(); 1700 } 1701 1702 /** 1703 * @param value The status of the StructureDefinition. 1704 */ 1705 public StructureDefinition setStatus(ConformanceResourceStatus value) { 1706 if (this.status == null) 1707 this.status = new Enumeration<ConformanceResourceStatus>(new ConformanceResourceStatusEnumFactory()); 1708 this.status.setValue(value); 1709 return this; 1710 } 1711 1712 /** 1713 * @return {@link #experimental} (This StructureDefinition was 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 1714 */ 1715 public BooleanType getExperimentalElement() { 1716 if (this.experimental == null) 1717 if (Configuration.errorOnAutoCreate()) 1718 throw new Error("Attempt to auto-create StructureDefinition.experimental"); 1719 else if (Configuration.doAutoCreate()) 1720 this.experimental = new BooleanType(); // bb 1721 return this.experimental; 1722 } 1723 1724 public boolean hasExperimentalElement() { 1725 return this.experimental != null && !this.experimental.isEmpty(); 1726 } 1727 1728 public boolean hasExperimental() { 1729 return this.experimental != null && !this.experimental.isEmpty(); 1730 } 1731 1732 /** 1733 * @param value {@link #experimental} (This StructureDefinition was 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 1734 */ 1735 public StructureDefinition setExperimentalElement(BooleanType value) { 1736 this.experimental = value; 1737 return this; 1738 } 1739 1740 /** 1741 * @return This StructureDefinition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. 1742 */ 1743 public boolean getExperimental() { 1744 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 1745 } 1746 1747 /** 1748 * @param value This StructureDefinition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. 1749 */ 1750 public StructureDefinition setExperimental(boolean value) { 1751 if (this.experimental == null) 1752 this.experimental = new BooleanType(); 1753 this.experimental.setValue(value); 1754 return this; 1755 } 1756 1757 /** 1758 * @return {@link #publisher} (The name of the individual or organization that published the structure definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 1759 */ 1760 public StringType getPublisherElement() { 1761 if (this.publisher == null) 1762 if (Configuration.errorOnAutoCreate()) 1763 throw new Error("Attempt to auto-create StructureDefinition.publisher"); 1764 else if (Configuration.doAutoCreate()) 1765 this.publisher = new StringType(); // bb 1766 return this.publisher; 1767 } 1768 1769 public boolean hasPublisherElement() { 1770 return this.publisher != null && !this.publisher.isEmpty(); 1771 } 1772 1773 public boolean hasPublisher() { 1774 return this.publisher != null && !this.publisher.isEmpty(); 1775 } 1776 1777 /** 1778 * @param value {@link #publisher} (The name of the individual or organization that published the structure definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 1779 */ 1780 public StructureDefinition setPublisherElement(StringType value) { 1781 this.publisher = value; 1782 return this; 1783 } 1784 1785 /** 1786 * @return The name of the individual or organization that published the structure definition. 1787 */ 1788 public String getPublisher() { 1789 return this.publisher == null ? null : this.publisher.getValue(); 1790 } 1791 1792 /** 1793 * @param value The name of the individual or organization that published the structure definition. 1794 */ 1795 public StructureDefinition setPublisher(String value) { 1796 if (Utilities.noString(value)) 1797 this.publisher = null; 1798 else { 1799 if (this.publisher == null) 1800 this.publisher = new StringType(); 1801 this.publisher.setValue(value); 1802 } 1803 return this; 1804 } 1805 1806 /** 1807 * @return {@link #contact} (Contacts to assist a user in finding and communicating with the publisher.) 1808 */ 1809 public List<StructureDefinitionContactComponent> getContact() { 1810 if (this.contact == null) 1811 this.contact = new ArrayList<StructureDefinitionContactComponent>(); 1812 return this.contact; 1813 } 1814 1815 public boolean hasContact() { 1816 if (this.contact == null) 1817 return false; 1818 for (StructureDefinitionContactComponent item : this.contact) 1819 if (!item.isEmpty()) 1820 return true; 1821 return false; 1822 } 1823 1824 /** 1825 * @return {@link #contact} (Contacts to assist a user in finding and communicating with the publisher.) 1826 */ 1827 // syntactic sugar 1828 public StructureDefinitionContactComponent addContact() { //3 1829 StructureDefinitionContactComponent t = new StructureDefinitionContactComponent(); 1830 if (this.contact == null) 1831 this.contact = new ArrayList<StructureDefinitionContactComponent>(); 1832 this.contact.add(t); 1833 return t; 1834 } 1835 1836 // syntactic sugar 1837 public StructureDefinition addContact(StructureDefinitionContactComponent t) { //3 1838 if (t == null) 1839 return this; 1840 if (this.contact == null) 1841 this.contact = new ArrayList<StructureDefinitionContactComponent>(); 1842 this.contact.add(t); 1843 return this; 1844 } 1845 1846 /** 1847 * @return {@link #date} (The date this version of the structure definition was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the structure definition changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 1848 */ 1849 public DateTimeType getDateElement() { 1850 if (this.date == null) 1851 if (Configuration.errorOnAutoCreate()) 1852 throw new Error("Attempt to auto-create StructureDefinition.date"); 1853 else if (Configuration.doAutoCreate()) 1854 this.date = new DateTimeType(); // bb 1855 return this.date; 1856 } 1857 1858 public boolean hasDateElement() { 1859 return this.date != null && !this.date.isEmpty(); 1860 } 1861 1862 public boolean hasDate() { 1863 return this.date != null && !this.date.isEmpty(); 1864 } 1865 1866 /** 1867 * @param value {@link #date} (The date this version of the structure definition was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the structure definition changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 1868 */ 1869 public StructureDefinition setDateElement(DateTimeType value) { 1870 this.date = value; 1871 return this; 1872 } 1873 1874 /** 1875 * @return The date this version of the structure definition was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the structure definition changes. 1876 */ 1877 public Date getDate() { 1878 return this.date == null ? null : this.date.getValue(); 1879 } 1880 1881 /** 1882 * @param value The date this version of the structure definition was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the structure definition changes. 1883 */ 1884 public StructureDefinition setDate(Date value) { 1885 if (value == null) 1886 this.date = null; 1887 else { 1888 if (this.date == null) 1889 this.date = new DateTimeType(); 1890 this.date.setValue(value); 1891 } 1892 return this; 1893 } 1894 1895 /** 1896 * @return {@link #description} (A free text natural language description of the StructureDefinition and its use.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1897 */ 1898 public StringType getDescriptionElement() { 1899 if (this.description == null) 1900 if (Configuration.errorOnAutoCreate()) 1901 throw new Error("Attempt to auto-create StructureDefinition.description"); 1902 else if (Configuration.doAutoCreate()) 1903 this.description = new StringType(); // bb 1904 return this.description; 1905 } 1906 1907 public boolean hasDescriptionElement() { 1908 return this.description != null && !this.description.isEmpty(); 1909 } 1910 1911 public boolean hasDescription() { 1912 return this.description != null && !this.description.isEmpty(); 1913 } 1914 1915 /** 1916 * @param value {@link #description} (A free text natural language description of the StructureDefinition and its use.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1917 */ 1918 public StructureDefinition setDescriptionElement(StringType value) { 1919 this.description = value; 1920 return this; 1921 } 1922 1923 /** 1924 * @return A free text natural language description of the StructureDefinition and its use. 1925 */ 1926 public String getDescription() { 1927 return this.description == null ? null : this.description.getValue(); 1928 } 1929 1930 /** 1931 * @param value A free text natural language description of the StructureDefinition and its use. 1932 */ 1933 public StructureDefinition setDescription(String value) { 1934 if (Utilities.noString(value)) 1935 this.description = null; 1936 else { 1937 if (this.description == null) 1938 this.description = new StringType(); 1939 this.description.setValue(value); 1940 } 1941 return this; 1942 } 1943 1944 /** 1945 * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of structure definitions.) 1946 */ 1947 public List<CodeableConcept> getUseContext() { 1948 if (this.useContext == null) 1949 this.useContext = new ArrayList<CodeableConcept>(); 1950 return this.useContext; 1951 } 1952 1953 public boolean hasUseContext() { 1954 if (this.useContext == null) 1955 return false; 1956 for (CodeableConcept item : this.useContext) 1957 if (!item.isEmpty()) 1958 return true; 1959 return false; 1960 } 1961 1962 /** 1963 * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of structure definitions.) 1964 */ 1965 // syntactic sugar 1966 public CodeableConcept addUseContext() { //3 1967 CodeableConcept t = new CodeableConcept(); 1968 if (this.useContext == null) 1969 this.useContext = new ArrayList<CodeableConcept>(); 1970 this.useContext.add(t); 1971 return t; 1972 } 1973 1974 // syntactic sugar 1975 public StructureDefinition addUseContext(CodeableConcept t) { //3 1976 if (t == null) 1977 return this; 1978 if (this.useContext == null) 1979 this.useContext = new ArrayList<CodeableConcept>(); 1980 this.useContext.add(t); 1981 return this; 1982 } 1983 1984 /** 1985 * @return {@link #requirements} (Explains why this structure definition is needed and why it's been constrained as it has.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value 1986 */ 1987 public StringType getRequirementsElement() { 1988 if (this.requirements == null) 1989 if (Configuration.errorOnAutoCreate()) 1990 throw new Error("Attempt to auto-create StructureDefinition.requirements"); 1991 else if (Configuration.doAutoCreate()) 1992 this.requirements = new StringType(); // bb 1993 return this.requirements; 1994 } 1995 1996 public boolean hasRequirementsElement() { 1997 return this.requirements != null && !this.requirements.isEmpty(); 1998 } 1999 2000 public boolean hasRequirements() { 2001 return this.requirements != null && !this.requirements.isEmpty(); 2002 } 2003 2004 /** 2005 * @param value {@link #requirements} (Explains why this structure definition is needed and why it's been constrained as it has.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value 2006 */ 2007 public StructureDefinition setRequirementsElement(StringType value) { 2008 this.requirements = value; 2009 return this; 2010 } 2011 2012 /** 2013 * @return Explains why this structure definition is needed and why it's been constrained as it has. 2014 */ 2015 public String getRequirements() { 2016 return this.requirements == null ? null : this.requirements.getValue(); 2017 } 2018 2019 /** 2020 * @param value Explains why this structure definition is needed and why it's been constrained as it has. 2021 */ 2022 public StructureDefinition setRequirements(String value) { 2023 if (Utilities.noString(value)) 2024 this.requirements = null; 2025 else { 2026 if (this.requirements == null) 2027 this.requirements = new StringType(); 2028 this.requirements.setValue(value); 2029 } 2030 return this; 2031 } 2032 2033 /** 2034 * @return {@link #copyright} (A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 2035 */ 2036 public StringType getCopyrightElement() { 2037 if (this.copyright == null) 2038 if (Configuration.errorOnAutoCreate()) 2039 throw new Error("Attempt to auto-create StructureDefinition.copyright"); 2040 else if (Configuration.doAutoCreate()) 2041 this.copyright = new StringType(); // bb 2042 return this.copyright; 2043 } 2044 2045 public boolean hasCopyrightElement() { 2046 return this.copyright != null && !this.copyright.isEmpty(); 2047 } 2048 2049 public boolean hasCopyright() { 2050 return this.copyright != null && !this.copyright.isEmpty(); 2051 } 2052 2053 /** 2054 * @param value {@link #copyright} (A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 2055 */ 2056 public StructureDefinition setCopyrightElement(StringType value) { 2057 this.copyright = value; 2058 return this; 2059 } 2060 2061 /** 2062 * @return A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings. 2063 */ 2064 public String getCopyright() { 2065 return this.copyright == null ? null : this.copyright.getValue(); 2066 } 2067 2068 /** 2069 * @param value A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings. 2070 */ 2071 public StructureDefinition setCopyright(String value) { 2072 if (Utilities.noString(value)) 2073 this.copyright = null; 2074 else { 2075 if (this.copyright == null) 2076 this.copyright = new StringType(); 2077 this.copyright.setValue(value); 2078 } 2079 return this; 2080 } 2081 2082 /** 2083 * @return {@link #code} (A set of terms from external terminologies that may be used to assist with indexing and searching of templates.) 2084 */ 2085 public List<Coding> getCode() { 2086 if (this.code == null) 2087 this.code = new ArrayList<Coding>(); 2088 return this.code; 2089 } 2090 2091 public boolean hasCode() { 2092 if (this.code == null) 2093 return false; 2094 for (Coding item : this.code) 2095 if (!item.isEmpty()) 2096 return true; 2097 return false; 2098 } 2099 2100 /** 2101 * @return {@link #code} (A set of terms from external terminologies that may be used to assist with indexing and searching of templates.) 2102 */ 2103 // syntactic sugar 2104 public Coding addCode() { //3 2105 Coding t = new Coding(); 2106 if (this.code == null) 2107 this.code = new ArrayList<Coding>(); 2108 this.code.add(t); 2109 return t; 2110 } 2111 2112 // syntactic sugar 2113 public StructureDefinition addCode(Coding t) { //3 2114 if (t == null) 2115 return this; 2116 if (this.code == null) 2117 this.code = new ArrayList<Coding>(); 2118 this.code.add(t); 2119 return this; 2120 } 2121 2122 /** 2123 * @return {@link #fhirVersion} (The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 1.4.0 for this version.). This is the underlying object with id, value and extensions. The accessor "getFhirVersion" gives direct access to the value 2124 */ 2125 public IdType getFhirVersionElement() { 2126 if (this.fhirVersion == null) 2127 if (Configuration.errorOnAutoCreate()) 2128 throw new Error("Attempt to auto-create StructureDefinition.fhirVersion"); 2129 else if (Configuration.doAutoCreate()) 2130 this.fhirVersion = new IdType(); // bb 2131 return this.fhirVersion; 2132 } 2133 2134 public boolean hasFhirVersionElement() { 2135 return this.fhirVersion != null && !this.fhirVersion.isEmpty(); 2136 } 2137 2138 public boolean hasFhirVersion() { 2139 return this.fhirVersion != null && !this.fhirVersion.isEmpty(); 2140 } 2141 2142 /** 2143 * @param value {@link #fhirVersion} (The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 1.4.0 for this version.). This is the underlying object with id, value and extensions. The accessor "getFhirVersion" gives direct access to the value 2144 */ 2145 public StructureDefinition setFhirVersionElement(IdType value) { 2146 this.fhirVersion = value; 2147 return this; 2148 } 2149 2150 /** 2151 * @return The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 1.4.0 for this version. 2152 */ 2153 public String getFhirVersion() { 2154 return this.fhirVersion == null ? null : this.fhirVersion.getValue(); 2155 } 2156 2157 /** 2158 * @param value The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 1.4.0 for this version. 2159 */ 2160 public StructureDefinition setFhirVersion(String value) { 2161 if (Utilities.noString(value)) 2162 this.fhirVersion = null; 2163 else { 2164 if (this.fhirVersion == null) 2165 this.fhirVersion = new IdType(); 2166 this.fhirVersion.setValue(value); 2167 } 2168 return this; 2169 } 2170 2171 /** 2172 * @return {@link #mapping} (An external specification that the content is mapped to.) 2173 */ 2174 public List<StructureDefinitionMappingComponent> getMapping() { 2175 if (this.mapping == null) 2176 this.mapping = new ArrayList<StructureDefinitionMappingComponent>(); 2177 return this.mapping; 2178 } 2179 2180 public boolean hasMapping() { 2181 if (this.mapping == null) 2182 return false; 2183 for (StructureDefinitionMappingComponent item : this.mapping) 2184 if (!item.isEmpty()) 2185 return true; 2186 return false; 2187 } 2188 2189 /** 2190 * @return {@link #mapping} (An external specification that the content is mapped to.) 2191 */ 2192 // syntactic sugar 2193 public StructureDefinitionMappingComponent addMapping() { //3 2194 StructureDefinitionMappingComponent t = new StructureDefinitionMappingComponent(); 2195 if (this.mapping == null) 2196 this.mapping = new ArrayList<StructureDefinitionMappingComponent>(); 2197 this.mapping.add(t); 2198 return t; 2199 } 2200 2201 // syntactic sugar 2202 public StructureDefinition addMapping(StructureDefinitionMappingComponent t) { //3 2203 if (t == null) 2204 return this; 2205 if (this.mapping == null) 2206 this.mapping = new ArrayList<StructureDefinitionMappingComponent>(); 2207 this.mapping.add(t); 2208 return this; 2209 } 2210 2211 /** 2212 * @return {@link #kind} (Defines the kind of structure that this definition is describing.). This is the underlying object with id, value and extensions. The accessor "getKind" gives direct access to the value 2213 */ 2214 public Enumeration<StructureDefinitionKind> getKindElement() { 2215 if (this.kind == null) 2216 if (Configuration.errorOnAutoCreate()) 2217 throw new Error("Attempt to auto-create StructureDefinition.kind"); 2218 else if (Configuration.doAutoCreate()) 2219 this.kind = new Enumeration<StructureDefinitionKind>(new StructureDefinitionKindEnumFactory()); // bb 2220 return this.kind; 2221 } 2222 2223 public boolean hasKindElement() { 2224 return this.kind != null && !this.kind.isEmpty(); 2225 } 2226 2227 public boolean hasKind() { 2228 return this.kind != null && !this.kind.isEmpty(); 2229 } 2230 2231 /** 2232 * @param value {@link #kind} (Defines the kind of structure that this definition is describing.). This is the underlying object with id, value and extensions. The accessor "getKind" gives direct access to the value 2233 */ 2234 public StructureDefinition setKindElement(Enumeration<StructureDefinitionKind> value) { 2235 this.kind = value; 2236 return this; 2237 } 2238 2239 /** 2240 * @return Defines the kind of structure that this definition is describing. 2241 */ 2242 public StructureDefinitionKind getKind() { 2243 return this.kind == null ? null : this.kind.getValue(); 2244 } 2245 2246 /** 2247 * @param value Defines the kind of structure that this definition is describing. 2248 */ 2249 public StructureDefinition setKind(StructureDefinitionKind value) { 2250 if (this.kind == null) 2251 this.kind = new Enumeration<StructureDefinitionKind>(new StructureDefinitionKindEnumFactory()); 2252 this.kind.setValue(value); 2253 return this; 2254 } 2255 2256 /** 2257 * @return {@link #abstract_} (Whether structure this definition describes is abstract or not - that is, whether an actual exchanged item can ever be of this type.). This is the underlying object with id, value and extensions. The accessor "getAbstract" gives direct access to the value 2258 */ 2259 public BooleanType getAbstractElement() { 2260 if (this.abstract_ == null) 2261 if (Configuration.errorOnAutoCreate()) 2262 throw new Error("Attempt to auto-create StructureDefinition.abstract_"); 2263 else if (Configuration.doAutoCreate()) 2264 this.abstract_ = new BooleanType(); // bb 2265 return this.abstract_; 2266 } 2267 2268 public boolean hasAbstractElement() { 2269 return this.abstract_ != null && !this.abstract_.isEmpty(); 2270 } 2271 2272 public boolean hasAbstract() { 2273 return this.abstract_ != null && !this.abstract_.isEmpty(); 2274 } 2275 2276 /** 2277 * @param value {@link #abstract_} (Whether structure this definition describes is abstract or not - that is, whether an actual exchanged item can ever be of this type.). This is the underlying object with id, value and extensions. The accessor "getAbstract" gives direct access to the value 2278 */ 2279 public StructureDefinition setAbstractElement(BooleanType value) { 2280 this.abstract_ = value; 2281 return this; 2282 } 2283 2284 /** 2285 * @return Whether structure this definition describes is abstract or not - that is, whether an actual exchanged item can ever be of this type. 2286 */ 2287 public boolean getAbstract() { 2288 return this.abstract_ == null || this.abstract_.isEmpty() ? false : this.abstract_.getValue(); 2289 } 2290 2291 /** 2292 * @param value Whether structure this definition describes is abstract or not - that is, whether an actual exchanged item can ever be of this type. 2293 */ 2294 public StructureDefinition setAbstract(boolean value) { 2295 if (this.abstract_ == null) 2296 this.abstract_ = new BooleanType(); 2297 this.abstract_.setValue(value); 2298 return this; 2299 } 2300 2301 /** 2302 * @return {@link #contextType} (If this is an extension, Identifies the context within FHIR resources where the extension can be used.). This is the underlying object with id, value and extensions. The accessor "getContextType" gives direct access to the value 2303 */ 2304 public Enumeration<ExtensionContext> getContextTypeElement() { 2305 if (this.contextType == null) 2306 if (Configuration.errorOnAutoCreate()) 2307 throw new Error("Attempt to auto-create StructureDefinition.contextType"); 2308 else if (Configuration.doAutoCreate()) 2309 this.contextType = new Enumeration<ExtensionContext>(new ExtensionContextEnumFactory()); // bb 2310 return this.contextType; 2311 } 2312 2313 public boolean hasContextTypeElement() { 2314 return this.contextType != null && !this.contextType.isEmpty(); 2315 } 2316 2317 public boolean hasContextType() { 2318 return this.contextType != null && !this.contextType.isEmpty(); 2319 } 2320 2321 /** 2322 * @param value {@link #contextType} (If this is an extension, Identifies the context within FHIR resources where the extension can be used.). This is the underlying object with id, value and extensions. The accessor "getContextType" gives direct access to the value 2323 */ 2324 public StructureDefinition setContextTypeElement(Enumeration<ExtensionContext> value) { 2325 this.contextType = value; 2326 return this; 2327 } 2328 2329 /** 2330 * @return If this is an extension, Identifies the context within FHIR resources where the extension can be used. 2331 */ 2332 public ExtensionContext getContextType() { 2333 return this.contextType == null ? null : this.contextType.getValue(); 2334 } 2335 2336 /** 2337 * @param value If this is an extension, Identifies the context within FHIR resources where the extension can be used. 2338 */ 2339 public StructureDefinition setContextType(ExtensionContext value) { 2340 if (value == null) 2341 this.contextType = null; 2342 else { 2343 if (this.contextType == null) 2344 this.contextType = new Enumeration<ExtensionContext>(new ExtensionContextEnumFactory()); 2345 this.contextType.setValue(value); 2346 } 2347 return this; 2348 } 2349 2350 /** 2351 * @return {@link #context} (Identifies the types of resource or data type elements to which the extension can be applied.) 2352 */ 2353 public List<StringType> getContext() { 2354 if (this.context == null) 2355 this.context = new ArrayList<StringType>(); 2356 return this.context; 2357 } 2358 2359 public boolean hasContext() { 2360 if (this.context == null) 2361 return false; 2362 for (StringType item : this.context) 2363 if (!item.isEmpty()) 2364 return true; 2365 return false; 2366 } 2367 2368 /** 2369 * @return {@link #context} (Identifies the types of resource or data type elements to which the extension can be applied.) 2370 */ 2371 // syntactic sugar 2372 public StringType addContextElement() {//2 2373 StringType t = new StringType(); 2374 if (this.context == null) 2375 this.context = new ArrayList<StringType>(); 2376 this.context.add(t); 2377 return t; 2378 } 2379 2380 /** 2381 * @param value {@link #context} (Identifies the types of resource or data type elements to which the extension can be applied.) 2382 */ 2383 public StructureDefinition addContext(String value) { //1 2384 StringType t = new StringType(); 2385 t.setValue(value); 2386 if (this.context == null) 2387 this.context = new ArrayList<StringType>(); 2388 this.context.add(t); 2389 return this; 2390 } 2391 2392 /** 2393 * @param value {@link #context} (Identifies the types of resource or data type elements to which the extension can be applied.) 2394 */ 2395 public boolean hasContext(String value) { 2396 if (this.context == null) 2397 return false; 2398 for (StringType v : this.context) 2399 if (v.equals(value)) // string 2400 return true; 2401 return false; 2402 } 2403 2404 /** 2405 * @return {@link #baseType} (The type of type that this structure is derived from - a data type, an extension, a resource, including abstract ones. If this field is present, it indicates that the structure definition is deriving from this type. If it is not present, then the structure definition is the definition of a base abstract structure.). This is the underlying object with id, value and extensions. The accessor "getBaseType" gives direct access to the value 2406 */ 2407 public CodeType getBaseTypeElement() { 2408 if (this.baseType == null) 2409 if (Configuration.errorOnAutoCreate()) 2410 throw new Error("Attempt to auto-create StructureDefinition.baseType"); 2411 else if (Configuration.doAutoCreate()) 2412 this.baseType = new CodeType(); // bb 2413 return this.baseType; 2414 } 2415 2416 public boolean hasBaseTypeElement() { 2417 return this.baseType != null && !this.baseType.isEmpty(); 2418 } 2419 2420 public boolean hasBaseType() { 2421 return this.baseType != null && !this.baseType.isEmpty(); 2422 } 2423 2424 /** 2425 * @param value {@link #baseType} (The type of type that this structure is derived from - a data type, an extension, a resource, including abstract ones. If this field is present, it indicates that the structure definition is deriving from this type. If it is not present, then the structure definition is the definition of a base abstract structure.). This is the underlying object with id, value and extensions. The accessor "getBaseType" gives direct access to the value 2426 */ 2427 public StructureDefinition setBaseTypeElement(CodeType value) { 2428 this.baseType = value; 2429 return this; 2430 } 2431 2432 /** 2433 * @return The type of type that this structure is derived from - a data type, an extension, a resource, including abstract ones. If this field is present, it indicates that the structure definition is deriving from this type. If it is not present, then the structure definition is the definition of a base abstract structure. 2434 */ 2435 public String getBaseType() { 2436 return this.baseType == null ? null : this.baseType.getValue(); 2437 } 2438 2439 /** 2440 * @param value The type of type that this structure is derived from - a data type, an extension, a resource, including abstract ones. If this field is present, it indicates that the structure definition is deriving from this type. If it is not present, then the structure definition is the definition of a base abstract structure. 2441 */ 2442 public StructureDefinition setBaseType(String value) { 2443 if (Utilities.noString(value)) 2444 this.baseType = null; 2445 else { 2446 if (this.baseType == null) 2447 this.baseType = new CodeType(); 2448 this.baseType.setValue(value); 2449 } 2450 return this; 2451 } 2452 2453 /** 2454 * @return {@link #baseDefinition} (An absolute URI that is the base structure from which this type is derived, either by specialization or constraint.). This is the underlying object with id, value and extensions. The accessor "getBaseDefinition" gives direct access to the value 2455 */ 2456 public UriType getBaseDefinitionElement() { 2457 if (this.baseDefinition == null) 2458 if (Configuration.errorOnAutoCreate()) 2459 throw new Error("Attempt to auto-create StructureDefinition.baseDefinition"); 2460 else if (Configuration.doAutoCreate()) 2461 this.baseDefinition = new UriType(); // bb 2462 return this.baseDefinition; 2463 } 2464 2465 public boolean hasBaseDefinitionElement() { 2466 return this.baseDefinition != null && !this.baseDefinition.isEmpty(); 2467 } 2468 2469 public boolean hasBaseDefinition() { 2470 return this.baseDefinition != null && !this.baseDefinition.isEmpty(); 2471 } 2472 2473 /** 2474 * @param value {@link #baseDefinition} (An absolute URI that is the base structure from which this type is derived, either by specialization or constraint.). This is the underlying object with id, value and extensions. The accessor "getBaseDefinition" gives direct access to the value 2475 */ 2476 public StructureDefinition setBaseDefinitionElement(UriType value) { 2477 this.baseDefinition = value; 2478 return this; 2479 } 2480 2481 /** 2482 * @return An absolute URI that is the base structure from which this type is derived, either by specialization or constraint. 2483 */ 2484 public String getBaseDefinition() { 2485 return this.baseDefinition == null ? null : this.baseDefinition.getValue(); 2486 } 2487 2488 /** 2489 * @param value An absolute URI that is the base structure from which this type is derived, either by specialization or constraint. 2490 */ 2491 public StructureDefinition setBaseDefinition(String value) { 2492 if (Utilities.noString(value)) 2493 this.baseDefinition = null; 2494 else { 2495 if (this.baseDefinition == null) 2496 this.baseDefinition = new UriType(); 2497 this.baseDefinition.setValue(value); 2498 } 2499 return this; 2500 } 2501 2502 /** 2503 * @return {@link #derivation} (How the type relates to the baseDefinition.). This is the underlying object with id, value and extensions. The accessor "getDerivation" gives direct access to the value 2504 */ 2505 public Enumeration<TypeDerivationRule> getDerivationElement() { 2506 if (this.derivation == null) 2507 if (Configuration.errorOnAutoCreate()) 2508 throw new Error("Attempt to auto-create StructureDefinition.derivation"); 2509 else if (Configuration.doAutoCreate()) 2510 this.derivation = new Enumeration<TypeDerivationRule>(new TypeDerivationRuleEnumFactory()); // bb 2511 return this.derivation; 2512 } 2513 2514 public boolean hasDerivationElement() { 2515 return this.derivation != null && !this.derivation.isEmpty(); 2516 } 2517 2518 public boolean hasDerivation() { 2519 return this.derivation != null && !this.derivation.isEmpty(); 2520 } 2521 2522 /** 2523 * @param value {@link #derivation} (How the type relates to the baseDefinition.). This is the underlying object with id, value and extensions. The accessor "getDerivation" gives direct access to the value 2524 */ 2525 public StructureDefinition setDerivationElement(Enumeration<TypeDerivationRule> value) { 2526 this.derivation = value; 2527 return this; 2528 } 2529 2530 /** 2531 * @return How the type relates to the baseDefinition. 2532 */ 2533 public TypeDerivationRule getDerivation() { 2534 return this.derivation == null ? null : this.derivation.getValue(); 2535 } 2536 2537 /** 2538 * @param value How the type relates to the baseDefinition. 2539 */ 2540 public StructureDefinition setDerivation(TypeDerivationRule value) { 2541 if (value == null) 2542 this.derivation = null; 2543 else { 2544 if (this.derivation == null) 2545 this.derivation = new Enumeration<TypeDerivationRule>(new TypeDerivationRuleEnumFactory()); 2546 this.derivation.setValue(value); 2547 } 2548 return this; 2549 } 2550 2551 /** 2552 * @return {@link #snapshot} (A snapshot view is expressed in a stand alone form that can be used and interpreted without considering the base StructureDefinition.) 2553 */ 2554 public StructureDefinitionSnapshotComponent getSnapshot() { 2555 if (this.snapshot == null) 2556 if (Configuration.errorOnAutoCreate()) 2557 throw new Error("Attempt to auto-create StructureDefinition.snapshot"); 2558 else if (Configuration.doAutoCreate()) 2559 this.snapshot = new StructureDefinitionSnapshotComponent(); // cc 2560 return this.snapshot; 2561 } 2562 2563 public boolean hasSnapshot() { 2564 return this.snapshot != null && !this.snapshot.isEmpty(); 2565 } 2566 2567 /** 2568 * @param value {@link #snapshot} (A snapshot view is expressed in a stand alone form that can be used and interpreted without considering the base StructureDefinition.) 2569 */ 2570 public StructureDefinition setSnapshot(StructureDefinitionSnapshotComponent value) { 2571 this.snapshot = value; 2572 return this; 2573 } 2574 2575 /** 2576 * @return {@link #differential} (A differential view is expressed relative to the base StructureDefinition - a statement of differences that it applies.) 2577 */ 2578 public StructureDefinitionDifferentialComponent getDifferential() { 2579 if (this.differential == null) 2580 if (Configuration.errorOnAutoCreate()) 2581 throw new Error("Attempt to auto-create StructureDefinition.differential"); 2582 else if (Configuration.doAutoCreate()) 2583 this.differential = new StructureDefinitionDifferentialComponent(); // cc 2584 return this.differential; 2585 } 2586 2587 public boolean hasDifferential() { 2588 return this.differential != null && !this.differential.isEmpty(); 2589 } 2590 2591 /** 2592 * @param value {@link #differential} (A differential view is expressed relative to the base StructureDefinition - a statement of differences that it applies.) 2593 */ 2594 public StructureDefinition setDifferential(StructureDefinitionDifferentialComponent value) { 2595 this.differential = value; 2596 return this; 2597 } 2598 2599 protected void listChildren(List<Property> childrenList) { 2600 super.listChildren(childrenList); 2601 childrenList.add(new Property("url", "uri", "An absolute URL that is used to identify this structure definition when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this structure definition is (or will be) published.", 0, java.lang.Integer.MAX_VALUE, url)); 2602 childrenList.add(new Property("identifier", "Identifier", "Formal identifier that is used to identify this StructureDefinition when it is represented in other formats, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI).", 0, java.lang.Integer.MAX_VALUE, identifier)); 2603 childrenList.add(new Property("version", "string", "The identifier that is used to identify this version of the StructureDefinition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the StructureDefinition author manually.", 0, java.lang.Integer.MAX_VALUE, version)); 2604 childrenList.add(new Property("name", "string", "A free text natural language name identifying the StructureDefinition.", 0, java.lang.Integer.MAX_VALUE, name)); 2605 childrenList.add(new Property("display", "string", "Defined so that applications can use this name when displaying the value of the extension to the user.", 0, java.lang.Integer.MAX_VALUE, display)); 2606 childrenList.add(new Property("status", "code", "The status of the StructureDefinition.", 0, java.lang.Integer.MAX_VALUE, status)); 2607 childrenList.add(new Property("experimental", "boolean", "This StructureDefinition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.", 0, java.lang.Integer.MAX_VALUE, experimental)); 2608 childrenList.add(new Property("publisher", "string", "The name of the individual or organization that published the structure definition.", 0, java.lang.Integer.MAX_VALUE, publisher)); 2609 childrenList.add(new Property("contact", "", "Contacts to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact)); 2610 childrenList.add(new Property("date", "dateTime", "The date this version of the structure definition was published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the structure definition changes.", 0, java.lang.Integer.MAX_VALUE, date)); 2611 childrenList.add(new Property("description", "string", "A free text natural language description of the StructureDefinition and its use.", 0, java.lang.Integer.MAX_VALUE, description)); 2612 childrenList.add(new Property("useContext", "CodeableConcept", "The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of structure definitions.", 0, java.lang.Integer.MAX_VALUE, useContext)); 2613 childrenList.add(new Property("requirements", "string", "Explains why this structure definition is needed and why it's been constrained as it has.", 0, java.lang.Integer.MAX_VALUE, requirements)); 2614 childrenList.add(new Property("copyright", "string", "A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the details of the constraints and mappings.", 0, java.lang.Integer.MAX_VALUE, copyright)); 2615 childrenList.add(new Property("code", "Coding", "A set of terms from external terminologies that may be used to assist with indexing and searching of templates.", 0, java.lang.Integer.MAX_VALUE, code)); 2616 childrenList.add(new Property("fhirVersion", "id", "The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 1.4.0 for this version.", 0, java.lang.Integer.MAX_VALUE, fhirVersion)); 2617 childrenList.add(new Property("mapping", "", "An external specification that the content is mapped to.", 0, java.lang.Integer.MAX_VALUE, mapping)); 2618 childrenList.add(new Property("kind", "code", "Defines the kind of structure that this definition is describing.", 0, java.lang.Integer.MAX_VALUE, kind)); 2619 childrenList.add(new Property("abstract", "boolean", "Whether structure this definition describes is abstract or not - that is, whether an actual exchanged item can ever be of this type.", 0, java.lang.Integer.MAX_VALUE, abstract_)); 2620 childrenList.add(new Property("contextType", "code", "If this is an extension, Identifies the context within FHIR resources where the extension can be used.", 0, java.lang.Integer.MAX_VALUE, contextType)); 2621 childrenList.add(new Property("context", "string", "Identifies the types of resource or data type elements to which the extension can be applied.", 0, java.lang.Integer.MAX_VALUE, context)); 2622 childrenList.add(new Property("baseType", "code", "The type of type that this structure is derived from - a data type, an extension, a resource, including abstract ones. If this field is present, it indicates that the structure definition is deriving from this type. If it is not present, then the structure definition is the definition of a base abstract structure.", 0, java.lang.Integer.MAX_VALUE, baseType)); 2623 childrenList.add(new Property("baseDefinition", "uri", "An absolute URI that is the base structure from which this type is derived, either by specialization or constraint.", 0, java.lang.Integer.MAX_VALUE, baseDefinition)); 2624 childrenList.add(new Property("derivation", "code", "How the type relates to the baseDefinition.", 0, java.lang.Integer.MAX_VALUE, derivation)); 2625 childrenList.add(new Property("snapshot", "", "A snapshot view is expressed in a stand alone form that can be used and interpreted without considering the base StructureDefinition.", 0, java.lang.Integer.MAX_VALUE, snapshot)); 2626 childrenList.add(new Property("differential", "", "A differential view is expressed relative to the base StructureDefinition - a statement of differences that it applies.", 0, java.lang.Integer.MAX_VALUE, differential)); 2627 } 2628 2629 @Override 2630 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2631 switch (hash) { 2632 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 2633 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2634 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 2635 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 2636 case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType 2637 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ConformanceResourceStatus> 2638 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 2639 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 2640 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // StructureDefinitionContactComponent 2641 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 2642 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType 2643 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // CodeableConcept 2644 case -1619874672: /*requirements*/ return this.requirements == null ? new Base[0] : new Base[] {this.requirements}; // StringType 2645 case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // StringType 2646 case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // Coding 2647 case 461006061: /*fhirVersion*/ return this.fhirVersion == null ? new Base[0] : new Base[] {this.fhirVersion}; // IdType 2648 case 837556430: /*mapping*/ return this.mapping == null ? new Base[0] : this.mapping.toArray(new Base[this.mapping.size()]); // StructureDefinitionMappingComponent 2649 case 3292052: /*kind*/ return this.kind == null ? new Base[0] : new Base[] {this.kind}; // Enumeration<StructureDefinitionKind> 2650 case 1732898850: /*abstract*/ return this.abstract_ == null ? new Base[0] : new Base[] {this.abstract_}; // BooleanType 2651 case -102839927: /*contextType*/ return this.contextType == null ? new Base[0] : new Base[] {this.contextType}; // Enumeration<ExtensionContext> 2652 case 951530927: /*context*/ return this.context == null ? new Base[0] : this.context.toArray(new Base[this.context.size()]); // StringType 2653 case -1721484885: /*baseType*/ return this.baseType == null ? new Base[0] : new Base[] {this.baseType}; // CodeType 2654 case 1139771140: /*baseDefinition*/ return this.baseDefinition == null ? new Base[0] : new Base[] {this.baseDefinition}; // UriType 2655 case -1353885513: /*derivation*/ return this.derivation == null ? new Base[0] : new Base[] {this.derivation}; // Enumeration<TypeDerivationRule> 2656 case 284874180: /*snapshot*/ return this.snapshot == null ? new Base[0] : new Base[] {this.snapshot}; // StructureDefinitionSnapshotComponent 2657 case -1196150917: /*differential*/ return this.differential == null ? new Base[0] : new Base[] {this.differential}; // StructureDefinitionDifferentialComponent 2658 default: return super.getProperty(hash, name, checkValid); 2659 } 2660 2661 } 2662 2663 @Override 2664 public void setProperty(int hash, String name, Base value) throws FHIRException { 2665 switch (hash) { 2666 case 116079: // url 2667 this.url = castToUri(value); // UriType 2668 break; 2669 case -1618432855: // identifier 2670 this.getIdentifier().add(castToIdentifier(value)); // Identifier 2671 break; 2672 case 351608024: // version 2673 this.version = castToString(value); // StringType 2674 break; 2675 case 3373707: // name 2676 this.name = castToString(value); // StringType 2677 break; 2678 case 1671764162: // display 2679 this.display = castToString(value); // StringType 2680 break; 2681 case -892481550: // status 2682 this.status = new ConformanceResourceStatusEnumFactory().fromType(value); // Enumeration<ConformanceResourceStatus> 2683 break; 2684 case -404562712: // experimental 2685 this.experimental = castToBoolean(value); // BooleanType 2686 break; 2687 case 1447404028: // publisher 2688 this.publisher = castToString(value); // StringType 2689 break; 2690 case 951526432: // contact 2691 this.getContact().add((StructureDefinitionContactComponent) value); // StructureDefinitionContactComponent 2692 break; 2693 case 3076014: // date 2694 this.date = castToDateTime(value); // DateTimeType 2695 break; 2696 case -1724546052: // description 2697 this.description = castToString(value); // StringType 2698 break; 2699 case -669707736: // useContext 2700 this.getUseContext().add(castToCodeableConcept(value)); // CodeableConcept 2701 break; 2702 case -1619874672: // requirements 2703 this.requirements = castToString(value); // StringType 2704 break; 2705 case 1522889671: // copyright 2706 this.copyright = castToString(value); // StringType 2707 break; 2708 case 3059181: // code 2709 this.getCode().add(castToCoding(value)); // Coding 2710 break; 2711 case 461006061: // fhirVersion 2712 this.fhirVersion = castToId(value); // IdType 2713 break; 2714 case 837556430: // mapping 2715 this.getMapping().add((StructureDefinitionMappingComponent) value); // StructureDefinitionMappingComponent 2716 break; 2717 case 3292052: // kind 2718 this.kind = new StructureDefinitionKindEnumFactory().fromType(value); // Enumeration<StructureDefinitionKind> 2719 break; 2720 case 1732898850: // abstract 2721 this.abstract_ = castToBoolean(value); // BooleanType 2722 break; 2723 case -102839927: // contextType 2724 this.contextType = new ExtensionContextEnumFactory().fromType(value); // Enumeration<ExtensionContext> 2725 break; 2726 case 951530927: // context 2727 this.getContext().add(castToString(value)); // StringType 2728 break; 2729 case -1721484885: // baseType 2730 this.baseType = castToCode(value); // CodeType 2731 break; 2732 case 1139771140: // baseDefinition 2733 this.baseDefinition = castToUri(value); // UriType 2734 break; 2735 case -1353885513: // derivation 2736 this.derivation = new TypeDerivationRuleEnumFactory().fromType(value); // Enumeration<TypeDerivationRule> 2737 break; 2738 case 284874180: // snapshot 2739 this.snapshot = (StructureDefinitionSnapshotComponent) value; // StructureDefinitionSnapshotComponent 2740 break; 2741 case -1196150917: // differential 2742 this.differential = (StructureDefinitionDifferentialComponent) value; // StructureDefinitionDifferentialComponent 2743 break; 2744 default: super.setProperty(hash, name, value); 2745 } 2746 2747 } 2748 2749 @Override 2750 public void setProperty(String name, Base value) throws FHIRException { 2751 if (name.equals("url")) 2752 this.url = castToUri(value); // UriType 2753 else if (name.equals("identifier")) 2754 this.getIdentifier().add(castToIdentifier(value)); 2755 else if (name.equals("version")) 2756 this.version = castToString(value); // StringType 2757 else if (name.equals("name")) 2758 this.name = castToString(value); // StringType 2759 else if (name.equals("display")) 2760 this.display = castToString(value); // StringType 2761 else if (name.equals("status")) 2762 this.status = new ConformanceResourceStatusEnumFactory().fromType(value); // Enumeration<ConformanceResourceStatus> 2763 else if (name.equals("experimental")) 2764 this.experimental = castToBoolean(value); // BooleanType 2765 else if (name.equals("publisher")) 2766 this.publisher = castToString(value); // StringType 2767 else if (name.equals("contact")) 2768 this.getContact().add((StructureDefinitionContactComponent) value); 2769 else if (name.equals("date")) 2770 this.date = castToDateTime(value); // DateTimeType 2771 else if (name.equals("description")) 2772 this.description = castToString(value); // StringType 2773 else if (name.equals("useContext")) 2774 this.getUseContext().add(castToCodeableConcept(value)); 2775 else if (name.equals("requirements")) 2776 this.requirements = castToString(value); // StringType 2777 else if (name.equals("copyright")) 2778 this.copyright = castToString(value); // StringType 2779 else if (name.equals("code")) 2780 this.getCode().add(castToCoding(value)); 2781 else if (name.equals("fhirVersion")) 2782 this.fhirVersion = castToId(value); // IdType 2783 else if (name.equals("mapping")) 2784 this.getMapping().add((StructureDefinitionMappingComponent) value); 2785 else if (name.equals("kind")) 2786 this.kind = new StructureDefinitionKindEnumFactory().fromType(value); // Enumeration<StructureDefinitionKind> 2787 else if (name.equals("abstract")) 2788 this.abstract_ = castToBoolean(value); // BooleanType 2789 else if (name.equals("contextType")) 2790 this.contextType = new ExtensionContextEnumFactory().fromType(value); // Enumeration<ExtensionContext> 2791 else if (name.equals("context")) 2792 this.getContext().add(castToString(value)); 2793 else if (name.equals("baseType")) 2794 this.baseType = castToCode(value); // CodeType 2795 else if (name.equals("baseDefinition")) 2796 this.baseDefinition = castToUri(value); // UriType 2797 else if (name.equals("derivation")) 2798 this.derivation = new TypeDerivationRuleEnumFactory().fromType(value); // Enumeration<TypeDerivationRule> 2799 else if (name.equals("snapshot")) 2800 this.snapshot = (StructureDefinitionSnapshotComponent) value; // StructureDefinitionSnapshotComponent 2801 else if (name.equals("differential")) 2802 this.differential = (StructureDefinitionDifferentialComponent) value; // StructureDefinitionDifferentialComponent 2803 else 2804 super.setProperty(name, value); 2805 } 2806 2807 @Override 2808 public Base makeProperty(int hash, String name) throws FHIRException { 2809 switch (hash) { 2810 case 116079: throw new FHIRException("Cannot make property url as it is not a complex type"); // UriType 2811 case -1618432855: return addIdentifier(); // Identifier 2812 case 351608024: throw new FHIRException("Cannot make property version as it is not a complex type"); // StringType 2813 case 3373707: throw new FHIRException("Cannot make property name as it is not a complex type"); // StringType 2814 case 1671764162: throw new FHIRException("Cannot make property display as it is not a complex type"); // StringType 2815 case -892481550: throw new FHIRException("Cannot make property status as it is not a complex type"); // Enumeration<ConformanceResourceStatus> 2816 case -404562712: throw new FHIRException("Cannot make property experimental as it is not a complex type"); // BooleanType 2817 case 1447404028: throw new FHIRException("Cannot make property publisher as it is not a complex type"); // StringType 2818 case 951526432: return addContact(); // StructureDefinitionContactComponent 2819 case 3076014: throw new FHIRException("Cannot make property date as it is not a complex type"); // DateTimeType 2820 case -1724546052: throw new FHIRException("Cannot make property description as it is not a complex type"); // StringType 2821 case -669707736: return addUseContext(); // CodeableConcept 2822 case -1619874672: throw new FHIRException("Cannot make property requirements as it is not a complex type"); // StringType 2823 case 1522889671: throw new FHIRException("Cannot make property copyright as it is not a complex type"); // StringType 2824 case 3059181: return addCode(); // Coding 2825 case 461006061: throw new FHIRException("Cannot make property fhirVersion as it is not a complex type"); // IdType 2826 case 837556430: return addMapping(); // StructureDefinitionMappingComponent 2827 case 3292052: throw new FHIRException("Cannot make property kind as it is not a complex type"); // Enumeration<StructureDefinitionKind> 2828 case 1732898850: throw new FHIRException("Cannot make property abstract as it is not a complex type"); // BooleanType 2829 case -102839927: throw new FHIRException("Cannot make property contextType as it is not a complex type"); // Enumeration<ExtensionContext> 2830 case 951530927: throw new FHIRException("Cannot make property context as it is not a complex type"); // StringType 2831 case -1721484885: throw new FHIRException("Cannot make property baseType as it is not a complex type"); // CodeType 2832 case 1139771140: throw new FHIRException("Cannot make property baseDefinition as it is not a complex type"); // UriType 2833 case -1353885513: throw new FHIRException("Cannot make property derivation as it is not a complex type"); // Enumeration<TypeDerivationRule> 2834 case 284874180: return getSnapshot(); // StructureDefinitionSnapshotComponent 2835 case -1196150917: return getDifferential(); // StructureDefinitionDifferentialComponent 2836 default: return super.makeProperty(hash, name); 2837 } 2838 2839 } 2840 2841 @Override 2842 public Base addChild(String name) throws FHIRException { 2843 if (name.equals("url")) { 2844 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.url"); 2845 } 2846 else if (name.equals("identifier")) { 2847 return addIdentifier(); 2848 } 2849 else if (name.equals("version")) { 2850 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.version"); 2851 } 2852 else if (name.equals("name")) { 2853 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.name"); 2854 } 2855 else if (name.equals("display")) { 2856 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.display"); 2857 } 2858 else if (name.equals("status")) { 2859 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.status"); 2860 } 2861 else if (name.equals("experimental")) { 2862 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.experimental"); 2863 } 2864 else if (name.equals("publisher")) { 2865 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.publisher"); 2866 } 2867 else if (name.equals("contact")) { 2868 return addContact(); 2869 } 2870 else if (name.equals("date")) { 2871 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.date"); 2872 } 2873 else if (name.equals("description")) { 2874 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.description"); 2875 } 2876 else if (name.equals("useContext")) { 2877 return addUseContext(); 2878 } 2879 else if (name.equals("requirements")) { 2880 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.requirements"); 2881 } 2882 else if (name.equals("copyright")) { 2883 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.copyright"); 2884 } 2885 else if (name.equals("code")) { 2886 return addCode(); 2887 } 2888 else if (name.equals("fhirVersion")) { 2889 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.fhirVersion"); 2890 } 2891 else if (name.equals("mapping")) { 2892 return addMapping(); 2893 } 2894 else if (name.equals("kind")) { 2895 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.kind"); 2896 } 2897 else if (name.equals("abstract")) { 2898 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.abstract"); 2899 } 2900 else if (name.equals("contextType")) { 2901 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.contextType"); 2902 } 2903 else if (name.equals("context")) { 2904 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.context"); 2905 } 2906 else if (name.equals("baseType")) { 2907 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.baseType"); 2908 } 2909 else if (name.equals("baseDefinition")) { 2910 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.baseDefinition"); 2911 } 2912 else if (name.equals("derivation")) { 2913 throw new FHIRException("Cannot call addChild on a primitive type StructureDefinition.derivation"); 2914 } 2915 else if (name.equals("snapshot")) { 2916 this.snapshot = new StructureDefinitionSnapshotComponent(); 2917 return this.snapshot; 2918 } 2919 else if (name.equals("differential")) { 2920 this.differential = new StructureDefinitionDifferentialComponent(); 2921 return this.differential; 2922 } 2923 else 2924 return super.addChild(name); 2925 } 2926 2927 public String fhirType() { 2928 return "StructureDefinition"; 2929 2930 } 2931 2932 public StructureDefinition copy() { 2933 StructureDefinition dst = new StructureDefinition(); 2934 copyValues(dst); 2935 dst.url = url == null ? null : url.copy(); 2936 if (identifier != null) { 2937 dst.identifier = new ArrayList<Identifier>(); 2938 for (Identifier i : identifier) 2939 dst.identifier.add(i.copy()); 2940 }; 2941 dst.version = version == null ? null : version.copy(); 2942 dst.name = name == null ? null : name.copy(); 2943 dst.display = display == null ? null : display.copy(); 2944 dst.status = status == null ? null : status.copy(); 2945 dst.experimental = experimental == null ? null : experimental.copy(); 2946 dst.publisher = publisher == null ? null : publisher.copy(); 2947 if (contact != null) { 2948 dst.contact = new ArrayList<StructureDefinitionContactComponent>(); 2949 for (StructureDefinitionContactComponent i : contact) 2950 dst.contact.add(i.copy()); 2951 }; 2952 dst.date = date == null ? null : date.copy(); 2953 dst.description = description == null ? null : description.copy(); 2954 if (useContext != null) { 2955 dst.useContext = new ArrayList<CodeableConcept>(); 2956 for (CodeableConcept i : useContext) 2957 dst.useContext.add(i.copy()); 2958 }; 2959 dst.requirements = requirements == null ? null : requirements.copy(); 2960 dst.copyright = copyright == null ? null : copyright.copy(); 2961 if (code != null) { 2962 dst.code = new ArrayList<Coding>(); 2963 for (Coding i : code) 2964 dst.code.add(i.copy()); 2965 }; 2966 dst.fhirVersion = fhirVersion == null ? null : fhirVersion.copy(); 2967 if (mapping != null) { 2968 dst.mapping = new ArrayList<StructureDefinitionMappingComponent>(); 2969 for (StructureDefinitionMappingComponent i : mapping) 2970 dst.mapping.add(i.copy()); 2971 }; 2972 dst.kind = kind == null ? null : kind.copy(); 2973 dst.abstract_ = abstract_ == null ? null : abstract_.copy(); 2974 dst.contextType = contextType == null ? null : contextType.copy(); 2975 if (context != null) { 2976 dst.context = new ArrayList<StringType>(); 2977 for (StringType i : context) 2978 dst.context.add(i.copy()); 2979 }; 2980 dst.baseType = baseType == null ? null : baseType.copy(); 2981 dst.baseDefinition = baseDefinition == null ? null : baseDefinition.copy(); 2982 dst.derivation = derivation == null ? null : derivation.copy(); 2983 dst.snapshot = snapshot == null ? null : snapshot.copy(); 2984 dst.differential = differential == null ? null : differential.copy(); 2985 return dst; 2986 } 2987 2988 protected StructureDefinition typedCopy() { 2989 return copy(); 2990 } 2991 2992 @Override 2993 public boolean equalsDeep(Base other) { 2994 if (!super.equalsDeep(other)) 2995 return false; 2996 if (!(other instanceof StructureDefinition)) 2997 return false; 2998 StructureDefinition o = (StructureDefinition) other; 2999 return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true) 3000 && compareDeep(name, o.name, true) && compareDeep(display, o.display, true) && compareDeep(status, o.status, true) 3001 && compareDeep(experimental, o.experimental, true) && compareDeep(publisher, o.publisher, true) 3002 && compareDeep(contact, o.contact, true) && compareDeep(date, o.date, true) && compareDeep(description, o.description, true) 3003 && compareDeep(useContext, o.useContext, true) && compareDeep(requirements, o.requirements, true) 3004 && compareDeep(copyright, o.copyright, true) && compareDeep(code, o.code, true) && compareDeep(fhirVersion, o.fhirVersion, true) 3005 && compareDeep(mapping, o.mapping, true) && compareDeep(kind, o.kind, true) && compareDeep(abstract_, o.abstract_, true) 3006 && compareDeep(contextType, o.contextType, true) && compareDeep(context, o.context, true) && compareDeep(baseType, o.baseType, true) 3007 && compareDeep(baseDefinition, o.baseDefinition, true) && compareDeep(derivation, o.derivation, true) 3008 && compareDeep(snapshot, o.snapshot, true) && compareDeep(differential, o.differential, true); 3009 } 3010 3011 @Override 3012 public boolean equalsShallow(Base other) { 3013 if (!super.equalsShallow(other)) 3014 return false; 3015 if (!(other instanceof StructureDefinition)) 3016 return false; 3017 StructureDefinition o = (StructureDefinition) other; 3018 return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true) 3019 && compareValues(display, o.display, true) && compareValues(status, o.status, true) && compareValues(experimental, o.experimental, true) 3020 && compareValues(publisher, o.publisher, true) && compareValues(date, o.date, true) && compareValues(description, o.description, true) 3021 && compareValues(requirements, o.requirements, true) && compareValues(copyright, o.copyright, true) 3022 && compareValues(fhirVersion, o.fhirVersion, true) && compareValues(kind, o.kind, true) && compareValues(abstract_, o.abstract_, true) 3023 && compareValues(contextType, o.contextType, true) && compareValues(context, o.context, true) && compareValues(baseType, o.baseType, true) 3024 && compareValues(baseDefinition, o.baseDefinition, true) && compareValues(derivation, o.derivation, true) 3025 ; 3026 } 3027 3028 public boolean isEmpty() { 3029 return super.isEmpty() && (url == null || url.isEmpty()) && (identifier == null || identifier.isEmpty()) 3030 && (version == null || version.isEmpty()) && (name == null || name.isEmpty()) && (display == null || display.isEmpty()) 3031 && (status == null || status.isEmpty()) && (experimental == null || experimental.isEmpty()) 3032 && (publisher == null || publisher.isEmpty()) && (contact == null || contact.isEmpty()) && (date == null || date.isEmpty()) 3033 && (description == null || description.isEmpty()) && (useContext == null || useContext.isEmpty()) 3034 && (requirements == null || requirements.isEmpty()) && (copyright == null || copyright.isEmpty()) 3035 && (code == null || code.isEmpty()) && (fhirVersion == null || fhirVersion.isEmpty()) && (mapping == null || mapping.isEmpty()) 3036 && (kind == null || kind.isEmpty()) && (abstract_ == null || abstract_.isEmpty()) && (contextType == null || contextType.isEmpty()) 3037 && (context == null || context.isEmpty()) && (baseType == null || baseType.isEmpty()) && (baseDefinition == null || baseDefinition.isEmpty()) 3038 && (derivation == null || derivation.isEmpty()) && (snapshot == null || snapshot.isEmpty()) 3039 && (differential == null || differential.isEmpty()); 3040 } 3041 3042 @Override 3043 public ResourceType getResourceType() { 3044 return ResourceType.StructureDefinition; 3045 } 3046 3047 /** 3048 * Search parameter: <b>abstract</b> 3049 * <p> 3050 * Description: <b>Whether the structure is abstract</b><br> 3051 * Type: <b>token</b><br> 3052 * Path: <b>StructureDefinition.abstract</b><br> 3053 * </p> 3054 */ 3055 @SearchParamDefinition(name="abstract", path="StructureDefinition.abstract", description="Whether the structure is abstract", type="token" ) 3056 public static final String SP_ABSTRACT = "abstract"; 3057 /** 3058 * <b>Fluent Client</b> search parameter constant for <b>abstract</b> 3059 * <p> 3060 * Description: <b>Whether the structure is abstract</b><br> 3061 * Type: <b>token</b><br> 3062 * Path: <b>StructureDefinition.abstract</b><br> 3063 * </p> 3064 */ 3065 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ABSTRACT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ABSTRACT); 3066 3067 /** 3068 * Search parameter: <b>status</b> 3069 * <p> 3070 * Description: <b>The current status of the profile</b><br> 3071 * Type: <b>token</b><br> 3072 * Path: <b>StructureDefinition.status</b><br> 3073 * </p> 3074 */ 3075 @SearchParamDefinition(name="status", path="StructureDefinition.status", description="The current status of the profile", type="token" ) 3076 public static final String SP_STATUS = "status"; 3077 /** 3078 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3079 * <p> 3080 * Description: <b>The current status of the profile</b><br> 3081 * Type: <b>token</b><br> 3082 * Path: <b>StructureDefinition.status</b><br> 3083 * </p> 3084 */ 3085 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 3086 3087 /** 3088 * Search parameter: <b>experimental</b> 3089 * <p> 3090 * Description: <b>If for testing purposes, not real usage</b><br> 3091 * Type: <b>token</b><br> 3092 * Path: <b>StructureDefinition.experimental</b><br> 3093 * </p> 3094 */ 3095 @SearchParamDefinition(name="experimental", path="StructureDefinition.experimental", description="If for testing purposes, not real usage", type="token" ) 3096 public static final String SP_EXPERIMENTAL = "experimental"; 3097 /** 3098 * <b>Fluent Client</b> search parameter constant for <b>experimental</b> 3099 * <p> 3100 * Description: <b>If for testing purposes, not real usage</b><br> 3101 * Type: <b>token</b><br> 3102 * Path: <b>StructureDefinition.experimental</b><br> 3103 * </p> 3104 */ 3105 public static final ca.uhn.fhir.rest.gclient.TokenClientParam EXPERIMENTAL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EXPERIMENTAL); 3106 3107 /** 3108 * Search parameter: <b>display</b> 3109 * <p> 3110 * Description: <b>Use this name when displaying the value</b><br> 3111 * Type: <b>string</b><br> 3112 * Path: <b>StructureDefinition.display</b><br> 3113 * </p> 3114 */ 3115 @SearchParamDefinition(name="display", path="StructureDefinition.display", description="Use this name when displaying the value", type="string" ) 3116 public static final String SP_DISPLAY = "display"; 3117 /** 3118 * <b>Fluent Client</b> search parameter constant for <b>display</b> 3119 * <p> 3120 * Description: <b>Use this name when displaying the value</b><br> 3121 * Type: <b>string</b><br> 3122 * Path: <b>StructureDefinition.display</b><br> 3123 * </p> 3124 */ 3125 public static final ca.uhn.fhir.rest.gclient.StringClientParam DISPLAY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DISPLAY); 3126 3127 /** 3128 * Search parameter: <b>ext-context</b> 3129 * <p> 3130 * Description: <b>Where the extension can be used in instances</b><br> 3131 * Type: <b>string</b><br> 3132 * Path: <b>StructureDefinition.context</b><br> 3133 * </p> 3134 */ 3135 @SearchParamDefinition(name="ext-context", path="StructureDefinition.context", description="Where the extension can be used in instances", type="string" ) 3136 public static final String SP_EXT_CONTEXT = "ext-context"; 3137 /** 3138 * <b>Fluent Client</b> search parameter constant for <b>ext-context</b> 3139 * <p> 3140 * Description: <b>Where the extension can be used in instances</b><br> 3141 * Type: <b>string</b><br> 3142 * Path: <b>StructureDefinition.context</b><br> 3143 * </p> 3144 */ 3145 public static final ca.uhn.fhir.rest.gclient.StringClientParam EXT_CONTEXT = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_EXT_CONTEXT); 3146 3147 /** 3148 * Search parameter: <b>code</b> 3149 * <p> 3150 * Description: <b>A code for the profile</b><br> 3151 * Type: <b>token</b><br> 3152 * Path: <b>StructureDefinition.code</b><br> 3153 * </p> 3154 */ 3155 @SearchParamDefinition(name="code", path="StructureDefinition.code", description="A code for the profile", type="token" ) 3156 public static final String SP_CODE = "code"; 3157 /** 3158 * <b>Fluent Client</b> search parameter constant for <b>code</b> 3159 * <p> 3160 * Description: <b>A code for the profile</b><br> 3161 * Type: <b>token</b><br> 3162 * Path: <b>StructureDefinition.code</b><br> 3163 * </p> 3164 */ 3165 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 3166 3167 /** 3168 * Search parameter: <b>date</b> 3169 * <p> 3170 * Description: <b>The profile publication date</b><br> 3171 * Type: <b>date</b><br> 3172 * Path: <b>StructureDefinition.date</b><br> 3173 * </p> 3174 */ 3175 @SearchParamDefinition(name="date", path="StructureDefinition.date", description="The profile publication date", type="date" ) 3176 public static final String SP_DATE = "date"; 3177 /** 3178 * <b>Fluent Client</b> search parameter constant for <b>date</b> 3179 * <p> 3180 * Description: <b>The profile publication date</b><br> 3181 * Type: <b>date</b><br> 3182 * Path: <b>StructureDefinition.date</b><br> 3183 * </p> 3184 */ 3185 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 3186 3187 /** 3188 * Search parameter: <b>type</b> 3189 * <p> 3190 * Description: <b>Any datatype or resource, including abstract ones</b><br> 3191 * Type: <b>token</b><br> 3192 * Path: <b>StructureDefinition.baseType</b><br> 3193 * </p> 3194 */ 3195 @SearchParamDefinition(name="type", path="StructureDefinition.baseType", description="Any datatype or resource, including abstract ones", type="token" ) 3196 public static final String SP_TYPE = "type"; 3197 /** 3198 * <b>Fluent Client</b> search parameter constant for <b>type</b> 3199 * <p> 3200 * Description: <b>Any datatype or resource, including abstract ones</b><br> 3201 * Type: <b>token</b><br> 3202 * Path: <b>StructureDefinition.baseType</b><br> 3203 * </p> 3204 */ 3205 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 3206 3207 /** 3208 * Search parameter: <b>url</b> 3209 * <p> 3210 * Description: <b>Absolute URL used to reference this StructureDefinition</b><br> 3211 * Type: <b>uri</b><br> 3212 * Path: <b>StructureDefinition.url</b><br> 3213 * </p> 3214 */ 3215 @SearchParamDefinition(name="url", path="StructureDefinition.url", description="Absolute URL used to reference this StructureDefinition", type="uri" ) 3216 public static final String SP_URL = "url"; 3217 /** 3218 * <b>Fluent Client</b> search parameter constant for <b>url</b> 3219 * <p> 3220 * Description: <b>Absolute URL used to reference this StructureDefinition</b><br> 3221 * Type: <b>uri</b><br> 3222 * Path: <b>StructureDefinition.url</b><br> 3223 * </p> 3224 */ 3225 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 3226 3227 /** 3228 * Search parameter: <b>kind</b> 3229 * <p> 3230 * Description: <b>datatype | resource | logical</b><br> 3231 * Type: <b>token</b><br> 3232 * Path: <b>StructureDefinition.kind</b><br> 3233 * </p> 3234 */ 3235 @SearchParamDefinition(name="kind", path="StructureDefinition.kind", description="datatype | resource | logical", type="token" ) 3236 public static final String SP_KIND = "kind"; 3237 /** 3238 * <b>Fluent Client</b> search parameter constant for <b>kind</b> 3239 * <p> 3240 * Description: <b>datatype | resource | logical</b><br> 3241 * Type: <b>token</b><br> 3242 * Path: <b>StructureDefinition.kind</b><br> 3243 * </p> 3244 */ 3245 public static final ca.uhn.fhir.rest.gclient.TokenClientParam KIND = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_KIND); 3246 3247 /** 3248 * Search parameter: <b>version</b> 3249 * <p> 3250 * Description: <b>The version identifier of the profile</b><br> 3251 * Type: <b>token</b><br> 3252 * Path: <b>StructureDefinition.version</b><br> 3253 * </p> 3254 */ 3255 @SearchParamDefinition(name="version", path="StructureDefinition.version", description="The version identifier of the profile", type="token" ) 3256 public static final String SP_VERSION = "version"; 3257 /** 3258 * <b>Fluent Client</b> search parameter constant for <b>version</b> 3259 * <p> 3260 * Description: <b>The version identifier of the profile</b><br> 3261 * Type: <b>token</b><br> 3262 * Path: <b>StructureDefinition.version</b><br> 3263 * </p> 3264 */ 3265 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 3266 3267 /** 3268 * Search parameter: <b>publisher</b> 3269 * <p> 3270 * Description: <b>Name of the publisher of the profile</b><br> 3271 * Type: <b>string</b><br> 3272 * Path: <b>StructureDefinition.publisher</b><br> 3273 * </p> 3274 */ 3275 @SearchParamDefinition(name="publisher", path="StructureDefinition.publisher", description="Name of the publisher of the profile", type="string" ) 3276 public static final String SP_PUBLISHER = "publisher"; 3277 /** 3278 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 3279 * <p> 3280 * Description: <b>Name of the publisher of the profile</b><br> 3281 * Type: <b>string</b><br> 3282 * Path: <b>StructureDefinition.publisher</b><br> 3283 * </p> 3284 */ 3285 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 3286 3287 /** 3288 * Search parameter: <b>derivation</b> 3289 * <p> 3290 * Description: <b>specialization | constraint - How relates to base definition</b><br> 3291 * Type: <b>token</b><br> 3292 * Path: <b>StructureDefinition.derivation</b><br> 3293 * </p> 3294 */ 3295 @SearchParamDefinition(name="derivation", path="StructureDefinition.derivation", description="specialization | constraint - How relates to base definition", type="token" ) 3296 public static final String SP_DERIVATION = "derivation"; 3297 /** 3298 * <b>Fluent Client</b> search parameter constant for <b>derivation</b> 3299 * <p> 3300 * Description: <b>specialization | constraint - How relates to base definition</b><br> 3301 * Type: <b>token</b><br> 3302 * Path: <b>StructureDefinition.derivation</b><br> 3303 * </p> 3304 */ 3305 public static final ca.uhn.fhir.rest.gclient.TokenClientParam DERIVATION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_DERIVATION); 3306 3307 /** 3308 * Search parameter: <b>base-path</b> 3309 * <p> 3310 * Description: <b>Path that identifies the base element</b><br> 3311 * Type: <b>token</b><br> 3312 * Path: <b>StructureDefinition.snapshot.element.base.path, StructureDefinition.differential.element.base.path</b><br> 3313 * </p> 3314 */ 3315 @SearchParamDefinition(name="base-path", path="StructureDefinition.snapshot.element.base.path | StructureDefinition.differential.element.base.path", description="Path that identifies the base element", type="token" ) 3316 public static final String SP_BASE_PATH = "base-path"; 3317 /** 3318 * <b>Fluent Client</b> search parameter constant for <b>base-path</b> 3319 * <p> 3320 * Description: <b>Path that identifies the base element</b><br> 3321 * Type: <b>token</b><br> 3322 * Path: <b>StructureDefinition.snapshot.element.base.path, StructureDefinition.differential.element.base.path</b><br> 3323 * </p> 3324 */ 3325 public static final ca.uhn.fhir.rest.gclient.TokenClientParam BASE_PATH = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_BASE_PATH); 3326 3327 /** 3328 * Search parameter: <b>valueset</b> 3329 * <p> 3330 * Description: <b>A vocabulary binding reference</b><br> 3331 * Type: <b>reference</b><br> 3332 * Path: <b>StructureDefinition.snapshot.element.binding.valueSet[x]</b><br> 3333 * </p> 3334 */ 3335 @SearchParamDefinition(name="valueset", path="StructureDefinition.snapshot.element.binding.valueSet", description="A vocabulary binding reference", type="reference" ) 3336 public static final String SP_VALUESET = "valueset"; 3337 /** 3338 * <b>Fluent Client</b> search parameter constant for <b>valueset</b> 3339 * <p> 3340 * Description: <b>A vocabulary binding reference</b><br> 3341 * Type: <b>reference</b><br> 3342 * Path: <b>StructureDefinition.snapshot.element.binding.valueSet[x]</b><br> 3343 * </p> 3344 */ 3345 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam VALUESET = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_VALUESET); 3346 3347/** 3348 * Constant for fluent queries to be used to add include statements. Specifies 3349 * the path value of "<b>StructureDefinition:valueset</b>". 3350 */ 3351 public static final ca.uhn.fhir.model.api.Include INCLUDE_VALUESET = new ca.uhn.fhir.model.api.Include("StructureDefinition:valueset").toLocked(); 3352 3353 /** 3354 * Search parameter: <b>context-type</b> 3355 * <p> 3356 * Description: <b>resource | datatype | extension</b><br> 3357 * Type: <b>token</b><br> 3358 * Path: <b>StructureDefinition.contextType</b><br> 3359 * </p> 3360 */ 3361 @SearchParamDefinition(name="context-type", path="StructureDefinition.contextType", description="resource | datatype | extension", type="token" ) 3362 public static final String SP_CONTEXT_TYPE = "context-type"; 3363 /** 3364 * <b>Fluent Client</b> search parameter constant for <b>context-type</b> 3365 * <p> 3366 * Description: <b>resource | datatype | extension</b><br> 3367 * Type: <b>token</b><br> 3368 * Path: <b>StructureDefinition.contextType</b><br> 3369 * </p> 3370 */ 3371 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE); 3372 3373 /** 3374 * Search parameter: <b>description</b> 3375 * <p> 3376 * Description: <b>Text search in the description of the profile</b><br> 3377 * Type: <b>string</b><br> 3378 * Path: <b>StructureDefinition.description</b><br> 3379 * </p> 3380 */ 3381 @SearchParamDefinition(name="description", path="StructureDefinition.description", description="Text search in the description of the profile", type="string" ) 3382 public static final String SP_DESCRIPTION = "description"; 3383 /** 3384 * <b>Fluent Client</b> search parameter constant for <b>description</b> 3385 * <p> 3386 * Description: <b>Text search in the description of the profile</b><br> 3387 * Type: <b>string</b><br> 3388 * Path: <b>StructureDefinition.description</b><br> 3389 * </p> 3390 */ 3391 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 3392 3393 /** 3394 * Search parameter: <b>name</b> 3395 * <p> 3396 * Description: <b>Name of the profile</b><br> 3397 * Type: <b>string</b><br> 3398 * Path: <b>StructureDefinition.name</b><br> 3399 * </p> 3400 */ 3401 @SearchParamDefinition(name="name", path="StructureDefinition.name", description="Name of the profile", type="string" ) 3402 public static final String SP_NAME = "name"; 3403 /** 3404 * <b>Fluent Client</b> search parameter constant for <b>name</b> 3405 * <p> 3406 * Description: <b>Name of the profile</b><br> 3407 * Type: <b>string</b><br> 3408 * Path: <b>StructureDefinition.name</b><br> 3409 * </p> 3410 */ 3411 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 3412 3413 /** 3414 * Search parameter: <b>base</b> 3415 * <p> 3416 * Description: <b>Definition that this type is constrained/specialized from</b><br> 3417 * Type: <b>uri</b><br> 3418 * Path: <b>StructureDefinition.baseDefinition</b><br> 3419 * </p> 3420 */ 3421 @SearchParamDefinition(name="base", path="StructureDefinition.baseDefinition", description="Definition that this type is constrained/specialized from", type="uri" ) 3422 public static final String SP_BASE = "base"; 3423 /** 3424 * <b>Fluent Client</b> search parameter constant for <b>base</b> 3425 * <p> 3426 * Description: <b>Definition that this type is constrained/specialized from</b><br> 3427 * Type: <b>uri</b><br> 3428 * Path: <b>StructureDefinition.baseDefinition</b><br> 3429 * </p> 3430 */ 3431 public static final ca.uhn.fhir.rest.gclient.UriClientParam BASE = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_BASE); 3432 3433 /** 3434 * Search parameter: <b>context</b> 3435 * <p> 3436 * Description: <b>A use context assigned to the structure</b><br> 3437 * Type: <b>token</b><br> 3438 * Path: <b>StructureDefinition.useContext</b><br> 3439 * </p> 3440 */ 3441 @SearchParamDefinition(name="context", path="StructureDefinition.useContext", description="A use context assigned to the structure", type="token" ) 3442 public static final String SP_CONTEXT = "context"; 3443 /** 3444 * <b>Fluent Client</b> search parameter constant for <b>context</b> 3445 * <p> 3446 * Description: <b>A use context assigned to the structure</b><br> 3447 * Type: <b>token</b><br> 3448 * Path: <b>StructureDefinition.useContext</b><br> 3449 * </p> 3450 */ 3451 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT); 3452 3453 /** 3454 * Search parameter: <b>path</b> 3455 * <p> 3456 * Description: <b>A path that is constrained in the profile</b><br> 3457 * Type: <b>token</b><br> 3458 * Path: <b>StructureDefinition.snapshot.element.path, StructureDefinition.differential.element.path</b><br> 3459 * </p> 3460 */ 3461 @SearchParamDefinition(name="path", path="StructureDefinition.snapshot.element.path | StructureDefinition.differential.element.path", description="A path that is constrained in the profile", type="token" ) 3462 public static final String SP_PATH = "path"; 3463 /** 3464 * <b>Fluent Client</b> search parameter constant for <b>path</b> 3465 * <p> 3466 * Description: <b>A path that is constrained in the profile</b><br> 3467 * Type: <b>token</b><br> 3468 * Path: <b>StructureDefinition.snapshot.element.path, StructureDefinition.differential.element.path</b><br> 3469 * </p> 3470 */ 3471 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PATH = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PATH); 3472 3473 /** 3474 * Search parameter: <b>identifier</b> 3475 * <p> 3476 * Description: <b>The identifier of the profile</b><br> 3477 * Type: <b>token</b><br> 3478 * Path: <b>StructureDefinition.identifier</b><br> 3479 * </p> 3480 */ 3481 @SearchParamDefinition(name="identifier", path="StructureDefinition.identifier", description="The identifier of the profile", type="token" ) 3482 public static final String SP_IDENTIFIER = "identifier"; 3483 /** 3484 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 3485 * <p> 3486 * Description: <b>The identifier of the profile</b><br> 3487 * Type: <b>token</b><br> 3488 * Path: <b>StructureDefinition.identifier</b><br> 3489 * </p> 3490 */ 3491 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 3492 3493 3494} 3495