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