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