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