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