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