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