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