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