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