001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1 033import java.util.ArrayList; 034import java.util.List; 035 036import org.hl7.fhir.exceptions.FHIRException; 037import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 038import org.hl7.fhir.instance.model.api.IBaseParameters; 039 040import ca.uhn.fhir.model.api.annotation.Block; 041import ca.uhn.fhir.model.api.annotation.Child; 042import ca.uhn.fhir.model.api.annotation.Description; 043import ca.uhn.fhir.model.api.annotation.ResourceDef; 044 045/** 046 * This resource is a non-persisted resource used to pass information into and 047 * back from an [operation](operations.html). It has no other use, and there is 048 * no RESTful endpoint associated with it. 049 */ 050@ResourceDef(name = "Parameters", profile = "http://hl7.org/fhir/StructureDefinition/Parameters") 051public class Parameters extends Resource implements IBaseParameters { 052 053 @Block() 054 public static class ParametersParameterComponent extends BackboneElement implements IBaseBackboneElement { 055 /** 056 * The name of the parameter (reference to the operation definition). 057 */ 058 @Child(name = "name", type = { StringType.class }, order = 1, min = 1, max = 1, modifier = false, summary = true) 059 @Description(shortDefinition = "Name from the definition", formalDefinition = "The name of the parameter (reference to the operation definition).") 060 protected StringType name; 061 062 /** 063 * If the parameter is a data type. 064 */ 065 @Child(name = "value", type = {}, order = 2, min = 0, max = 1, modifier = false, summary = true) 066 @Description(shortDefinition = "If parameter is a data type", formalDefinition = "If the parameter is a data type.") 067 protected org.hl7.fhir.r4.model.Type value; 068 069 /** 070 * If the parameter is a whole resource. 071 */ 072 @Child(name = "resource", type = { Resource.class }, order = 3, min = 0, max = 1, modifier = false, summary = true) 073 @Description(shortDefinition = "If parameter is a whole resource", formalDefinition = "If the parameter is a whole resource.") 074 protected Resource resource; 075 076 /** 077 * A named part of a multi-part parameter. 078 */ 079 @Child(name = "part", type = { 080 ParametersParameterComponent.class }, order = 4, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 081 @Description(shortDefinition = "Named part of a multi-part parameter", formalDefinition = "A named part of a multi-part parameter.") 082 protected List<ParametersParameterComponent> part; 083 084 private static final long serialVersionUID = -1265707999L; 085 086 /** 087 * Constructor 088 */ 089 public ParametersParameterComponent() { 090 super(); 091 } 092 093 /** 094 * Constructor 095 */ 096 public ParametersParameterComponent(StringType name) { 097 super(); 098 this.name = name; 099 } 100 101 /** 102 * @return {@link #name} (The name of the parameter (reference to the operation 103 * definition).). This is the underlying object with id, value and 104 * extensions. The accessor "getName" gives direct access to the value 105 */ 106 public StringType getNameElement() { 107 if (this.name == null) 108 if (Configuration.errorOnAutoCreate()) 109 throw new Error("Attempt to auto-create ParametersParameterComponent.name"); 110 else if (Configuration.doAutoCreate()) 111 this.name = new StringType(); // bb 112 return this.name; 113 } 114 115 public boolean hasNameElement() { 116 return this.name != null && !this.name.isEmpty(); 117 } 118 119 public boolean hasName() { 120 return this.name != null && !this.name.isEmpty(); 121 } 122 123 /** 124 * @param value {@link #name} (The name of the parameter (reference to the 125 * operation definition).). This is the underlying object with id, 126 * value and extensions. The accessor "getName" gives direct access 127 * to the value 128 */ 129 public ParametersParameterComponent setNameElement(StringType value) { 130 this.name = value; 131 return this; 132 } 133 134 /** 135 * @return The name of the parameter (reference to the operation definition). 136 */ 137 public String getName() { 138 return this.name == null ? null : this.name.getValue(); 139 } 140 141 /** 142 * @param value The name of the parameter (reference to the operation 143 * definition). 144 */ 145 public ParametersParameterComponent setName(String value) { 146 if (this.name == null) 147 this.name = new StringType(); 148 this.name.setValue(value); 149 return this; 150 } 151 152 /** 153 * @return {@link #value} (If the parameter is a data type.) 154 */ 155 public org.hl7.fhir.r4.model.Type getValue() { 156 return this.value; 157 } 158 159 public boolean hasValue() { 160 return this.value != null && !this.value.isEmpty(); 161 } 162 163 /** 164 * @param value {@link #value} (If the parameter is a data type.) 165 */ 166 public ParametersParameterComponent setValue(org.hl7.fhir.r4.model.Type value) { 167 this.value = value; 168 return this; 169 } 170 171 /** 172 * @return {@link #resource} (If the parameter is a whole resource.) 173 */ 174 public Resource getResource() { 175 return this.resource; 176 } 177 178 public boolean hasResource() { 179 return this.resource != null && !this.resource.isEmpty(); 180 } 181 182 /** 183 * @param value {@link #resource} (If the parameter is a whole resource.) 184 */ 185 public ParametersParameterComponent setResource(Resource value) { 186 this.resource = value; 187 return this; 188 } 189 190 /** 191 * @return {@link #part} (A named part of a multi-part parameter.) 192 */ 193 public List<ParametersParameterComponent> getPart() { 194 if (this.part == null) 195 this.part = new ArrayList<ParametersParameterComponent>(); 196 return this.part; 197 } 198 199 /** 200 * @return Returns a reference to <code>this</code> for easy method chaining 201 */ 202 public ParametersParameterComponent setPart(List<ParametersParameterComponent> thePart) { 203 this.part = thePart; 204 return this; 205 } 206 207 public boolean hasPart() { 208 if (this.part == null) 209 return false; 210 for (ParametersParameterComponent item : this.part) 211 if (!item.isEmpty()) 212 return true; 213 return false; 214 } 215 216 public ParametersParameterComponent addPart() { // 3 217 ParametersParameterComponent t = new ParametersParameterComponent(); 218 if (this.part == null) 219 this.part = new ArrayList<ParametersParameterComponent>(); 220 this.part.add(t); 221 return t; 222 } 223 224 public ParametersParameterComponent addPart(ParametersParameterComponent t) { // 3 225 if (t == null) 226 return this; 227 if (this.part == null) 228 this.part = new ArrayList<ParametersParameterComponent>(); 229 this.part.add(t); 230 return this; 231 } 232 233 /** 234 * @return The first repetition of repeating field {@link #part}, creating it if 235 * it does not already exist 236 */ 237 public ParametersParameterComponent getPartFirstRep() { 238 if (getPart().isEmpty()) { 239 addPart(); 240 } 241 return getPart().get(0); 242 } 243 244 protected void listChildren(List<Property> children) { 245 super.listChildren(children); 246 children.add(new Property("name", "string", "The name of the parameter (reference to the operation definition).", 247 0, 1, name)); 248 children.add(new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value)); 249 children.add(new Property("resource", "Resource", "If the parameter is a whole resource.", 0, 1, resource)); 250 children.add(new Property("part", "@Parameters.parameter", "A named part of a multi-part parameter.", 0, 251 java.lang.Integer.MAX_VALUE, part)); 252 } 253 254 @Override 255 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 256 switch (_hash) { 257 case 3373707: 258 /* name */ return new Property("name", "string", 259 "The name of the parameter (reference to the operation definition).", 0, 1, name); 260 case -1410166417: 261 /* value[x] */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 262 case 111972721: 263 /* value */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 264 case -1535024575: 265 /* valueBase64Binary */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 266 case 733421943: 267 /* valueBoolean */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 268 case -786218365: 269 /* valueCanonical */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 270 case -766209282: 271 /* valueCode */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 272 case -766192449: 273 /* valueDate */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 274 case 1047929900: 275 /* valueDateTime */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 276 case -2083993440: 277 /* valueDecimal */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 278 case 231604844: 279 /* valueId */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 280 case -1668687056: 281 /* valueInstant */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 282 case -1668204915: 283 /* valueInteger */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 284 case -497880704: 285 /* valueMarkdown */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 286 case -1410178407: 287 /* valueOid */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 288 case -1249932027: 289 /* valuePositiveInt */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 290 case -1424603934: 291 /* valueString */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 292 case -765708322: 293 /* valueTime */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 294 case 26529417: 295 /* valueUnsignedInt */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 296 case -1410172357: 297 /* valueUri */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 298 case -1410172354: 299 /* valueUrl */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 300 case -765667124: 301 /* valueUuid */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 302 case -478981821: 303 /* valueAddress */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 304 case -67108992: 305 /* valueAnnotation */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 306 case -475566732: 307 /* valueAttachment */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 308 case 924902896: 309 /* valueCodeableConcept */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, 310 value); 311 case -1887705029: 312 /* valueCoding */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 313 case 944904545: 314 /* valueContactPoint */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 315 case -2026205465: 316 /* valueHumanName */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 317 case -130498310: 318 /* valueIdentifier */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 319 case -1524344174: 320 /* valuePeriod */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 321 case -2029823716: 322 /* valueQuantity */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 323 case 2030761548: 324 /* valueRange */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 325 case 2030767386: 326 /* valueRatio */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 327 case 1755241690: 328 /* valueReference */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 329 case -962229101: 330 /* valueSampledData */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 331 case -540985785: 332 /* valueSignature */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 333 case -1406282469: 334 /* valueTiming */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 335 case -1858636920: 336 /* valueDosage */ return new Property("value[x]", "*", "If the parameter is a data type.", 0, 1, value); 337 case -341064690: 338 /* resource */ return new Property("resource", "Resource", "If the parameter is a whole resource.", 0, 1, 339 resource); 340 case 3433459: 341 /* part */ return new Property("part", "@Parameters.parameter", "A named part of a multi-part parameter.", 0, 342 java.lang.Integer.MAX_VALUE, part); 343 default: 344 return super.getNamedProperty(_hash, _name, _checkValid); 345 } 346 347 } 348 349 @Override 350 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 351 switch (hash) { 352 case 3373707: 353 /* name */ return this.name == null ? new Base[0] : new Base[] { this.name }; // StringType 354 case 111972721: 355 /* value */ return this.value == null ? new Base[0] : new Base[] { this.value }; // org.hl7.fhir.r4.model.Type 356 case -341064690: 357 /* resource */ return this.resource == null ? new Base[0] : new Base[] { this.resource }; // Resource 358 case 3433459: 359 /* part */ return this.part == null ? new Base[0] : this.part.toArray(new Base[this.part.size()]); // ParametersParameterComponent 360 default: 361 return super.getProperty(hash, name, checkValid); 362 } 363 364 } 365 366 @Override 367 public Base setProperty(int hash, String name, Base value) throws FHIRException { 368 switch (hash) { 369 case 3373707: // name 370 this.name = castToString(value); // StringType 371 return value; 372 case 111972721: // value 373 this.value = castToType(value); // org.hl7.fhir.r4.model.Type 374 return value; 375 case -341064690: // resource 376 this.resource = castToResource(value); // Resource 377 return value; 378 case 3433459: // part 379 this.getPart().add((ParametersParameterComponent) value); // ParametersParameterComponent 380 return value; 381 default: 382 return super.setProperty(hash, name, value); 383 } 384 385 } 386 387 @Override 388 public Base setProperty(String name, Base value) throws FHIRException { 389 if (name.equals("name")) { 390 this.name = castToString(value); // StringType 391 } else if (name.equals("value[x]")) { 392 this.value = castToType(value); // org.hl7.fhir.r4.model.Type 393 } else if (name.equals("resource")) { 394 this.resource = castToResource(value); // Resource 395 } else if (name.equals("part")) { 396 this.getPart().add((ParametersParameterComponent) value); 397 } else 398 return super.setProperty(name, value); 399 return value; 400 } 401 402 @Override 403 public Base makeProperty(int hash, String name) throws FHIRException { 404 switch (hash) { 405 case 3373707: 406 return getNameElement(); 407 case -1410166417: 408 return getValue(); 409 case 111972721: 410 return getValue(); 411 case -341064690: 412 throw new FHIRException("Cannot make property resource as it is not a complex type"); // Resource 413 case 3433459: 414 return addPart(); 415 default: 416 return super.makeProperty(hash, name); 417 } 418 419 } 420 421 @Override 422 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 423 switch (hash) { 424 case 3373707: 425 /* name */ return new String[] { "string" }; 426 case 111972721: 427 /* value */ return new String[] { "*" }; 428 case -341064690: 429 /* resource */ return new String[] { "Resource" }; 430 case 3433459: 431 /* part */ return new String[] { "@Parameters.parameter" }; 432 default: 433 return super.getTypesForProperty(hash, name); 434 } 435 436 } 437 438 @Override 439 public Base addChild(String name) throws FHIRException { 440 if (name.equals("name")) { 441 throw new FHIRException("Cannot call addChild on a singleton property Parameters.name"); 442 } else if (name.equals("valueBase64Binary")) { 443 this.value = new Base64BinaryType(); 444 return this.value; 445 } else if (name.equals("valueBoolean")) { 446 this.value = new BooleanType(); 447 return this.value; 448 } else if (name.equals("valueCanonical")) { 449 this.value = new CanonicalType(); 450 return this.value; 451 } else if (name.equals("valueCode")) { 452 this.value = new CodeType(); 453 return this.value; 454 } else if (name.equals("valueDate")) { 455 this.value = new DateType(); 456 return this.value; 457 } else if (name.equals("valueDateTime")) { 458 this.value = new DateTimeType(); 459 return this.value; 460 } else if (name.equals("valueDecimal")) { 461 this.value = new DecimalType(); 462 return this.value; 463 } else if (name.equals("valueId")) { 464 this.value = new IdType(); 465 return this.value; 466 } else if (name.equals("valueInstant")) { 467 this.value = new InstantType(); 468 return this.value; 469 } else if (name.equals("valueInteger")) { 470 this.value = new IntegerType(); 471 return this.value; 472 } else if (name.equals("valueMarkdown")) { 473 this.value = new MarkdownType(); 474 return this.value; 475 } else if (name.equals("valueOid")) { 476 this.value = new OidType(); 477 return this.value; 478 } else if (name.equals("valuePositiveInt")) { 479 this.value = new PositiveIntType(); 480 return this.value; 481 } else if (name.equals("valueString")) { 482 this.value = new StringType(); 483 return this.value; 484 } else if (name.equals("valueTime")) { 485 this.value = new TimeType(); 486 return this.value; 487 } else if (name.equals("valueUnsignedInt")) { 488 this.value = new UnsignedIntType(); 489 return this.value; 490 } else if (name.equals("valueUri")) { 491 this.value = new UriType(); 492 return this.value; 493 } else if (name.equals("valueUrl")) { 494 this.value = new UrlType(); 495 return this.value; 496 } else if (name.equals("valueUuid")) { 497 this.value = new UuidType(); 498 return this.value; 499 } else if (name.equals("valueAddress")) { 500 this.value = new Address(); 501 return this.value; 502 } else if (name.equals("valueAge")) { 503 this.value = new Age(); 504 return this.value; 505 } else if (name.equals("valueAnnotation")) { 506 this.value = new Annotation(); 507 return this.value; 508 } else if (name.equals("valueAttachment")) { 509 this.value = new Attachment(); 510 return this.value; 511 } else if (name.equals("valueCodeableConcept")) { 512 this.value = new CodeableConcept(); 513 return this.value; 514 } else if (name.equals("valueCoding")) { 515 this.value = new Coding(); 516 return this.value; 517 } else if (name.equals("valueContactPoint")) { 518 this.value = new ContactPoint(); 519 return this.value; 520 } else if (name.equals("valueCount")) { 521 this.value = new Count(); 522 return this.value; 523 } else if (name.equals("valueDistance")) { 524 this.value = new Distance(); 525 return this.value; 526 } else if (name.equals("valueDuration")) { 527 this.value = new Duration(); 528 return this.value; 529 } else if (name.equals("valueHumanName")) { 530 this.value = new HumanName(); 531 return this.value; 532 } else if (name.equals("valueIdentifier")) { 533 this.value = new Identifier(); 534 return this.value; 535 } else if (name.equals("valueMoney")) { 536 this.value = new Money(); 537 return this.value; 538 } else if (name.equals("valuePeriod")) { 539 this.value = new Period(); 540 return this.value; 541 } else if (name.equals("valueQuantity")) { 542 this.value = new Quantity(); 543 return this.value; 544 } else if (name.equals("valueRange")) { 545 this.value = new Range(); 546 return this.value; 547 } else if (name.equals("valueRatio")) { 548 this.value = new Ratio(); 549 return this.value; 550 } else if (name.equals("valueReference")) { 551 this.value = new Reference(); 552 return this.value; 553 } else if (name.equals("valueSampledData")) { 554 this.value = new SampledData(); 555 return this.value; 556 } else if (name.equals("valueSignature")) { 557 this.value = new Signature(); 558 return this.value; 559 } else if (name.equals("valueTiming")) { 560 this.value = new Timing(); 561 return this.value; 562 } else if (name.equals("valueContactDetail")) { 563 this.value = new ContactDetail(); 564 return this.value; 565 } else if (name.equals("valueContributor")) { 566 this.value = new Contributor(); 567 return this.value; 568 } else if (name.equals("valueDataRequirement")) { 569 this.value = new DataRequirement(); 570 return this.value; 571 } else if (name.equals("valueExpression")) { 572 this.value = new Expression(); 573 return this.value; 574 } else if (name.equals("valueParameterDefinition")) { 575 this.value = new ParameterDefinition(); 576 return this.value; 577 } else if (name.equals("valueRelatedArtifact")) { 578 this.value = new RelatedArtifact(); 579 return this.value; 580 } else if (name.equals("valueTriggerDefinition")) { 581 this.value = new TriggerDefinition(); 582 return this.value; 583 } else if (name.equals("valueUsageContext")) { 584 this.value = new UsageContext(); 585 return this.value; 586 } else if (name.equals("valueDosage")) { 587 this.value = new Dosage(); 588 return this.value; 589 } else if (name.equals("valueMeta")) { 590 this.value = new Meta(); 591 return this.value; 592 } else if (name.equals("resource")) { 593 throw new FHIRException("Cannot call addChild on an abstract type Parameters.resource"); 594 } else if (name.equals("part")) { 595 return addPart(); 596 } else 597 return super.addChild(name); 598 } 599 600 public ParametersParameterComponent copy() { 601 ParametersParameterComponent dst = new ParametersParameterComponent(); 602 copyValues(dst); 603 return dst; 604 } 605 606 public void copyValues(ParametersParameterComponent dst) { 607 super.copyValues(dst); 608 dst.name = name == null ? null : name.copy(); 609 dst.value = value == null ? null : value.copy(); 610 dst.resource = resource == null ? null : resource.copy(); 611 if (part != null) { 612 dst.part = new ArrayList<ParametersParameterComponent>(); 613 for (ParametersParameterComponent i : part) 614 dst.part.add(i.copy()); 615 } 616 ; 617 } 618 619 @Override 620 public boolean equalsDeep(Base other_) { 621 if (!super.equalsDeep(other_)) 622 return false; 623 if (!(other_ instanceof ParametersParameterComponent)) 624 return false; 625 ParametersParameterComponent o = (ParametersParameterComponent) other_; 626 return compareDeep(name, o.name, true) && compareDeep(value, o.value, true) 627 && compareDeep(resource, o.resource, true) && compareDeep(part, o.part, true); 628 } 629 630 @Override 631 public boolean equalsShallow(Base other_) { 632 if (!super.equalsShallow(other_)) 633 return false; 634 if (!(other_ instanceof ParametersParameterComponent)) 635 return false; 636 ParametersParameterComponent o = (ParametersParameterComponent) other_; 637 return compareValues(name, o.name, true); 638 } 639 640 public boolean isEmpty() { 641 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, value, resource, part); 642 } 643 644 public String fhirType() { 645 return "Parameters.parameter"; 646 647 } 648 649 } 650 651 /** 652 * A parameter passed to or received from the operation. 653 */ 654 @Child(name = "parameter", type = {}, order = 0, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 655 @Description(shortDefinition = "Operation Parameter", formalDefinition = "A parameter passed to or received from the operation.") 656 protected List<ParametersParameterComponent> parameter; 657 658 private static final long serialVersionUID = -1495940293L; 659 660 /** 661 * Constructor 662 */ 663 public Parameters() { 664 super(); 665 } 666 667 /** 668 * @return {@link #parameter} (A parameter passed to or received from the 669 * operation.) 670 */ 671 public List<ParametersParameterComponent> getParameter() { 672 if (this.parameter == null) 673 this.parameter = new ArrayList<ParametersParameterComponent>(); 674 return this.parameter; 675 } 676 677 /** 678 * @return Returns a reference to <code>this</code> for easy method chaining 679 */ 680 public Parameters setParameter(List<ParametersParameterComponent> theParameter) { 681 this.parameter = theParameter; 682 return this; 683 } 684 685 public boolean hasParameter() { 686 if (this.parameter == null) 687 return false; 688 for (ParametersParameterComponent item : this.parameter) 689 if (!item.isEmpty()) 690 return true; 691 return false; 692 } 693 694 public ParametersParameterComponent addParameter() { // 3 695 ParametersParameterComponent t = new ParametersParameterComponent(); 696 if (this.parameter == null) 697 this.parameter = new ArrayList<ParametersParameterComponent>(); 698 this.parameter.add(t); 699 return t; 700 } 701 702 public Parameters addParameter(ParametersParameterComponent t) { // 3 703 if (t == null) 704 return this; 705 if (this.parameter == null) 706 this.parameter = new ArrayList<ParametersParameterComponent>(); 707 this.parameter.add(t); 708 return this; 709 } 710 711 /** 712 * @return The first repetition of repeating field {@link #parameter}, creating 713 * it if it does not already exist 714 */ 715 public ParametersParameterComponent getParameterFirstRep() { 716 if (getParameter().isEmpty()) { 717 addParameter(); 718 } 719 return getParameter().get(0); 720 } 721 722 protected void listChildren(List<Property> children) { 723 super.listChildren(children); 724 children.add(new Property("parameter", "", "A parameter passed to or received from the operation.", 0, 725 java.lang.Integer.MAX_VALUE, parameter)); 726 } 727 728 @Override 729 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 730 switch (_hash) { 731 case 1954460585: 732 /* parameter */ return new Property("parameter", "", "A parameter passed to or received from the operation.", 0, 733 java.lang.Integer.MAX_VALUE, parameter); 734 default: 735 return super.getNamedProperty(_hash, _name, _checkValid); 736 } 737 738 } 739 740 @Override 741 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 742 switch (hash) { 743 case 1954460585: 744 /* parameter */ return this.parameter == null ? new Base[0] 745 : this.parameter.toArray(new Base[this.parameter.size()]); // ParametersParameterComponent 746 default: 747 return super.getProperty(hash, name, checkValid); 748 } 749 750 } 751 752 @Override 753 public Base setProperty(int hash, String name, Base value) throws FHIRException { 754 switch (hash) { 755 case 1954460585: // parameter 756 this.getParameter().add((ParametersParameterComponent) value); // ParametersParameterComponent 757 return value; 758 default: 759 return super.setProperty(hash, name, value); 760 } 761 762 } 763 764 @Override 765 public Base setProperty(String name, Base value) throws FHIRException { 766 if (name.equals("parameter")) { 767 this.getParameter().add((ParametersParameterComponent) value); 768 } else 769 return super.setProperty(name, value); 770 return value; 771 } 772 773 @Override 774 public Base makeProperty(int hash, String name) throws FHIRException { 775 switch (hash) { 776 case 1954460585: 777 return addParameter(); 778 default: 779 return super.makeProperty(hash, name); 780 } 781 782 } 783 784 @Override 785 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 786 switch (hash) { 787 case 1954460585: 788 /* parameter */ return new String[] {}; 789 default: 790 return super.getTypesForProperty(hash, name); 791 } 792 793 } 794 795 @Override 796 public Base addChild(String name) throws FHIRException { 797 if (name.equals("parameter")) { 798 return addParameter(); 799 } else 800 return super.addChild(name); 801 } 802 803 public String fhirType() { 804 return "Parameters"; 805 806 } 807 808 public Parameters copy() { 809 Parameters dst = new Parameters(); 810 copyValues(dst); 811 return dst; 812 } 813 814 public void copyValues(Parameters dst) { 815 super.copyValues(dst); 816 if (parameter != null) { 817 dst.parameter = new ArrayList<ParametersParameterComponent>(); 818 for (ParametersParameterComponent i : parameter) 819 dst.parameter.add(i.copy()); 820 } 821 ; 822 } 823 824 protected Parameters typedCopy() { 825 return copy(); 826 } 827 828 @Override 829 public boolean equalsDeep(Base other_) { 830 if (!super.equalsDeep(other_)) 831 return false; 832 if (!(other_ instanceof Parameters)) 833 return false; 834 Parameters o = (Parameters) other_; 835 return compareDeep(parameter, o.parameter, true); 836 } 837 838 @Override 839 public boolean equalsShallow(Base other_) { 840 if (!super.equalsShallow(other_)) 841 return false; 842 if (!(other_ instanceof Parameters)) 843 return false; 844 Parameters o = (Parameters) other_; 845 return true; 846 } 847 848 public boolean isEmpty() { 849 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(parameter); 850 } 851 852 @Override 853 public ResourceType getResourceType() { 854 return ResourceType.Parameters; 855 } 856 857// added from java-adornments.txt: 858 859 public Parameters addParameter(String name, boolean b) { 860 addParameter().setName(name).setValue(new BooleanType(b)); 861 return this; 862 } 863 864 public Parameters addParameter(String name, String s) { 865 if (s != null) 866 addParameter().setName(name).setValue(new StringType(s)); 867 return this; 868 } 869 870 public Parameters addParameter(String name, Type v) { 871 if (v != null) 872 addParameter().setName(name).setValue(v); 873 return this; 874 } 875 876 public Parameters setParameter(String name, boolean b) { 877 for (ParametersParameterComponent p : getParameter()) { 878 if (p.getName().equals(name)) { 879 p.setValue(new BooleanType(b)); 880 return this; 881 } 882 } 883 addParameter().setName(name).setValue(new BooleanType(b)); 884 return this; 885 } 886 887 public Parameters setParameter(String name, String s) { 888 if (s != null) { 889 for (ParametersParameterComponent p : getParameter()) { 890 if (p.getName().equals(name)) { 891 p.setValue(new StringType(s)); 892 return this; 893 } 894 } 895 addParameter().setName(name).setValue(new StringType(s)); 896 } 897 return this; 898 } 899 900 public Parameters setParameter(String name, Type v) { 901 if (v != null) { 902 for (ParametersParameterComponent p : getParameter()) { 903 if (p.getName().equals(name)) { 904 p.setValue(v); 905 return this; 906 } 907 } 908 addParameter().setName(name).setValue(v); 909 } 910 return this; 911 } 912 913 public boolean hasParameterValue(String name) { 914 for (ParametersParameterComponent p : getParameter()) { 915 if (p.getName().equals(name) && p.hasValue()) 916 return true; 917 } 918 return false; 919 } 920 921 public boolean hasParameter(String name) { 922 for (ParametersParameterComponent p : getParameter()) { 923 if (p.getName().equals(name)) 924 return true; 925 } 926 return false; 927 } 928 929 public Type getParameterValue(String name) { 930 for (ParametersParameterComponent p : getParameter()) { 931 if (p.getName().equals(name)) 932 return p.getValue(); 933 } 934 return null; 935 } 936 937 public ParametersParameterComponent getParameter(String name) { 938 for (ParametersParameterComponent p : getParameter()) { 939 if (p.getName().equals(name)) 940 return p; 941 } 942 return null; 943 } 944 945 public List<Type> getParameterValues(String name) { 946 List<Type> res = new ArrayList<Type>(); 947 for (ParametersParameterComponent p : getParameter()) { 948 if (p.getName().equals(name)) 949 res.add(p.getValue()); 950 } 951 return res; 952 } 953 954 public List<ParametersParameterComponent> getParameters(String name) { 955 List<ParametersParameterComponent> res = new ArrayList<ParametersParameterComponent>(); 956 for (ParametersParameterComponent p : getParameter()) { 957 if (p.getName().equals(name)) 958 res.add(p); 959 } 960 return res; 961 } 962 963 public boolean getParameterBool(String name) { 964 for (ParametersParameterComponent p : getParameter()) { 965 if (p.getName().equals(name)) { 966 if (p.getValue() instanceof BooleanType) 967 return ((BooleanType) p.getValue()).booleanValue(); 968 boolean ok = Boolean.getBoolean(p.getValue().primitiveValue()); 969 return ok; 970 } 971 } 972 return false; 973 } 974 975// end addition 976 977}