001package org.hl7.fhir.dstu3.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Mon, Apr 17, 2017 17:38-0400 for FHIR v3.0.1 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import org.hl7.fhir.dstu3.model.Enumerations.*; 038import ca.uhn.fhir.model.api.annotation.ResourceDef; 039import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 040import ca.uhn.fhir.model.api.annotation.Child; 041import ca.uhn.fhir.model.api.annotation.ChildOrder; 042import ca.uhn.fhir.model.api.annotation.Description; 043import ca.uhn.fhir.model.api.annotation.Block; 044import org.hl7.fhir.instance.model.api.*; 045import org.hl7.fhir.exceptions.FHIRException; 046/** 047 * A search parameter that defines a named search item that can be used to search/filter on a resource. 048 */ 049@ResourceDef(name="SearchParameter", profile="http://hl7.org/fhir/Profile/SearchParameter") 050@ChildOrder(names={"url", "version", "name", "status", "experimental", "date", "publisher", "contact", "useContext", "jurisdiction", "purpose", "code", "base", "type", "derivedFrom", "description", "expression", "xpath", "xpathUsage", "target", "comparator", "modifier", "chain", "component"}) 051public class SearchParameter extends MetadataResource { 052 053 public enum XPathUsageType { 054 /** 055 * The search parameter is derived directly from the selected nodes based on the type definitions. 056 */ 057 NORMAL, 058 /** 059 * The search parameter is derived by a phonetic transform from the selected nodes. 060 */ 061 PHONETIC, 062 /** 063 * The search parameter is based on a spatial transform of the selected nodes. 064 */ 065 NEARBY, 066 /** 067 * The search parameter is based on a spatial transform of the selected nodes, using physical distance from the middle. 068 */ 069 DISTANCE, 070 /** 071 * The interpretation of the xpath statement is unknown (and can't be automated). 072 */ 073 OTHER, 074 /** 075 * added to help the parsers with the generic types 076 */ 077 NULL; 078 public static XPathUsageType fromCode(String codeString) throws FHIRException { 079 if (codeString == null || "".equals(codeString)) 080 return null; 081 if ("normal".equals(codeString)) 082 return NORMAL; 083 if ("phonetic".equals(codeString)) 084 return PHONETIC; 085 if ("nearby".equals(codeString)) 086 return NEARBY; 087 if ("distance".equals(codeString)) 088 return DISTANCE; 089 if ("other".equals(codeString)) 090 return OTHER; 091 if (Configuration.isAcceptInvalidEnums()) 092 return null; 093 else 094 throw new FHIRException("Unknown XPathUsageType code '"+codeString+"'"); 095 } 096 public String toCode() { 097 switch (this) { 098 case NORMAL: return "normal"; 099 case PHONETIC: return "phonetic"; 100 case NEARBY: return "nearby"; 101 case DISTANCE: return "distance"; 102 case OTHER: return "other"; 103 default: return "?"; 104 } 105 } 106 public String getSystem() { 107 switch (this) { 108 case NORMAL: return "http://hl7.org/fhir/search-xpath-usage"; 109 case PHONETIC: return "http://hl7.org/fhir/search-xpath-usage"; 110 case NEARBY: return "http://hl7.org/fhir/search-xpath-usage"; 111 case DISTANCE: return "http://hl7.org/fhir/search-xpath-usage"; 112 case OTHER: return "http://hl7.org/fhir/search-xpath-usage"; 113 default: return "?"; 114 } 115 } 116 public String getDefinition() { 117 switch (this) { 118 case NORMAL: return "The search parameter is derived directly from the selected nodes based on the type definitions."; 119 case PHONETIC: return "The search parameter is derived by a phonetic transform from the selected nodes."; 120 case NEARBY: return "The search parameter is based on a spatial transform of the selected nodes."; 121 case DISTANCE: return "The search parameter is based on a spatial transform of the selected nodes, using physical distance from the middle."; 122 case OTHER: return "The interpretation of the xpath statement is unknown (and can't be automated)."; 123 default: return "?"; 124 } 125 } 126 public String getDisplay() { 127 switch (this) { 128 case NORMAL: return "Normal"; 129 case PHONETIC: return "Phonetic"; 130 case NEARBY: return "Nearby"; 131 case DISTANCE: return "Distance"; 132 case OTHER: return "Other"; 133 default: return "?"; 134 } 135 } 136 } 137 138 public static class XPathUsageTypeEnumFactory implements EnumFactory<XPathUsageType> { 139 public XPathUsageType fromCode(String codeString) throws IllegalArgumentException { 140 if (codeString == null || "".equals(codeString)) 141 if (codeString == null || "".equals(codeString)) 142 return null; 143 if ("normal".equals(codeString)) 144 return XPathUsageType.NORMAL; 145 if ("phonetic".equals(codeString)) 146 return XPathUsageType.PHONETIC; 147 if ("nearby".equals(codeString)) 148 return XPathUsageType.NEARBY; 149 if ("distance".equals(codeString)) 150 return XPathUsageType.DISTANCE; 151 if ("other".equals(codeString)) 152 return XPathUsageType.OTHER; 153 throw new IllegalArgumentException("Unknown XPathUsageType code '"+codeString+"'"); 154 } 155 public Enumeration<XPathUsageType> fromType(Base code) throws FHIRException { 156 if (code == null) 157 return null; 158 if (code.isEmpty()) 159 return new Enumeration<XPathUsageType>(this); 160 String codeString = ((PrimitiveType) code).asStringValue(); 161 if (codeString == null || "".equals(codeString)) 162 return null; 163 if ("normal".equals(codeString)) 164 return new Enumeration<XPathUsageType>(this, XPathUsageType.NORMAL); 165 if ("phonetic".equals(codeString)) 166 return new Enumeration<XPathUsageType>(this, XPathUsageType.PHONETIC); 167 if ("nearby".equals(codeString)) 168 return new Enumeration<XPathUsageType>(this, XPathUsageType.NEARBY); 169 if ("distance".equals(codeString)) 170 return new Enumeration<XPathUsageType>(this, XPathUsageType.DISTANCE); 171 if ("other".equals(codeString)) 172 return new Enumeration<XPathUsageType>(this, XPathUsageType.OTHER); 173 throw new FHIRException("Unknown XPathUsageType code '"+codeString+"'"); 174 } 175 public String toCode(XPathUsageType code) { 176 if (code == XPathUsageType.NORMAL) 177 return "normal"; 178 if (code == XPathUsageType.PHONETIC) 179 return "phonetic"; 180 if (code == XPathUsageType.NEARBY) 181 return "nearby"; 182 if (code == XPathUsageType.DISTANCE) 183 return "distance"; 184 if (code == XPathUsageType.OTHER) 185 return "other"; 186 return "?"; 187 } 188 public String toSystem(XPathUsageType code) { 189 return code.getSystem(); 190 } 191 } 192 193 public enum SearchComparator { 194 /** 195 * the value for the parameter in the resource is equal to the provided value 196 */ 197 EQ, 198 /** 199 * the value for the parameter in the resource is not equal to the provided value 200 */ 201 NE, 202 /** 203 * the value for the parameter in the resource is greater than the provided value 204 */ 205 GT, 206 /** 207 * the value for the parameter in the resource is less than the provided value 208 */ 209 LT, 210 /** 211 * the value for the parameter in the resource is greater or equal to the provided value 212 */ 213 GE, 214 /** 215 * the value for the parameter in the resource is less or equal to the provided value 216 */ 217 LE, 218 /** 219 * the value for the parameter in the resource starts after the provided value 220 */ 221 SA, 222 /** 223 * the value for the parameter in the resource ends before the provided value 224 */ 225 EB, 226 /** 227 * the value for the parameter in the resource is approximately the same to the provided value. 228 */ 229 AP, 230 /** 231 * added to help the parsers with the generic types 232 */ 233 NULL; 234 public static SearchComparator fromCode(String codeString) throws FHIRException { 235 if (codeString == null || "".equals(codeString)) 236 return null; 237 if ("eq".equals(codeString)) 238 return EQ; 239 if ("ne".equals(codeString)) 240 return NE; 241 if ("gt".equals(codeString)) 242 return GT; 243 if ("lt".equals(codeString)) 244 return LT; 245 if ("ge".equals(codeString)) 246 return GE; 247 if ("le".equals(codeString)) 248 return LE; 249 if ("sa".equals(codeString)) 250 return SA; 251 if ("eb".equals(codeString)) 252 return EB; 253 if ("ap".equals(codeString)) 254 return AP; 255 if (Configuration.isAcceptInvalidEnums()) 256 return null; 257 else 258 throw new FHIRException("Unknown SearchComparator code '"+codeString+"'"); 259 } 260 public String toCode() { 261 switch (this) { 262 case EQ: return "eq"; 263 case NE: return "ne"; 264 case GT: return "gt"; 265 case LT: return "lt"; 266 case GE: return "ge"; 267 case LE: return "le"; 268 case SA: return "sa"; 269 case EB: return "eb"; 270 case AP: return "ap"; 271 default: return "?"; 272 } 273 } 274 public String getSystem() { 275 switch (this) { 276 case EQ: return "http://hl7.org/fhir/search-comparator"; 277 case NE: return "http://hl7.org/fhir/search-comparator"; 278 case GT: return "http://hl7.org/fhir/search-comparator"; 279 case LT: return "http://hl7.org/fhir/search-comparator"; 280 case GE: return "http://hl7.org/fhir/search-comparator"; 281 case LE: return "http://hl7.org/fhir/search-comparator"; 282 case SA: return "http://hl7.org/fhir/search-comparator"; 283 case EB: return "http://hl7.org/fhir/search-comparator"; 284 case AP: return "http://hl7.org/fhir/search-comparator"; 285 default: return "?"; 286 } 287 } 288 public String getDefinition() { 289 switch (this) { 290 case EQ: return "the value for the parameter in the resource is equal to the provided value"; 291 case NE: return "the value for the parameter in the resource is not equal to the provided value"; 292 case GT: return "the value for the parameter in the resource is greater than the provided value"; 293 case LT: return "the value for the parameter in the resource is less than the provided value"; 294 case GE: return "the value for the parameter in the resource is greater or equal to the provided value"; 295 case LE: return "the value for the parameter in the resource is less or equal to the provided value"; 296 case SA: return "the value for the parameter in the resource starts after the provided value"; 297 case EB: return "the value for the parameter in the resource ends before the provided value"; 298 case AP: return "the value for the parameter in the resource is approximately the same to the provided value."; 299 default: return "?"; 300 } 301 } 302 public String getDisplay() { 303 switch (this) { 304 case EQ: return "Equals"; 305 case NE: return "Not Equals"; 306 case GT: return "Greater Than"; 307 case LT: return "Less Then"; 308 case GE: return "Greater or Equals"; 309 case LE: return "Less of Equal"; 310 case SA: return "Starts After"; 311 case EB: return "Ends Before"; 312 case AP: return "Approximately"; 313 default: return "?"; 314 } 315 } 316 } 317 318 public static class SearchComparatorEnumFactory implements EnumFactory<SearchComparator> { 319 public SearchComparator fromCode(String codeString) throws IllegalArgumentException { 320 if (codeString == null || "".equals(codeString)) 321 if (codeString == null || "".equals(codeString)) 322 return null; 323 if ("eq".equals(codeString)) 324 return SearchComparator.EQ; 325 if ("ne".equals(codeString)) 326 return SearchComparator.NE; 327 if ("gt".equals(codeString)) 328 return SearchComparator.GT; 329 if ("lt".equals(codeString)) 330 return SearchComparator.LT; 331 if ("ge".equals(codeString)) 332 return SearchComparator.GE; 333 if ("le".equals(codeString)) 334 return SearchComparator.LE; 335 if ("sa".equals(codeString)) 336 return SearchComparator.SA; 337 if ("eb".equals(codeString)) 338 return SearchComparator.EB; 339 if ("ap".equals(codeString)) 340 return SearchComparator.AP; 341 throw new IllegalArgumentException("Unknown SearchComparator code '"+codeString+"'"); 342 } 343 public Enumeration<SearchComparator> fromType(Base code) throws FHIRException { 344 if (code == null) 345 return null; 346 if (code.isEmpty()) 347 return new Enumeration<SearchComparator>(this); 348 String codeString = ((PrimitiveType) code).asStringValue(); 349 if (codeString == null || "".equals(codeString)) 350 return null; 351 if ("eq".equals(codeString)) 352 return new Enumeration<SearchComparator>(this, SearchComparator.EQ); 353 if ("ne".equals(codeString)) 354 return new Enumeration<SearchComparator>(this, SearchComparator.NE); 355 if ("gt".equals(codeString)) 356 return new Enumeration<SearchComparator>(this, SearchComparator.GT); 357 if ("lt".equals(codeString)) 358 return new Enumeration<SearchComparator>(this, SearchComparator.LT); 359 if ("ge".equals(codeString)) 360 return new Enumeration<SearchComparator>(this, SearchComparator.GE); 361 if ("le".equals(codeString)) 362 return new Enumeration<SearchComparator>(this, SearchComparator.LE); 363 if ("sa".equals(codeString)) 364 return new Enumeration<SearchComparator>(this, SearchComparator.SA); 365 if ("eb".equals(codeString)) 366 return new Enumeration<SearchComparator>(this, SearchComparator.EB); 367 if ("ap".equals(codeString)) 368 return new Enumeration<SearchComparator>(this, SearchComparator.AP); 369 throw new FHIRException("Unknown SearchComparator code '"+codeString+"'"); 370 } 371 public String toCode(SearchComparator code) { 372 if (code == SearchComparator.EQ) 373 return "eq"; 374 if (code == SearchComparator.NE) 375 return "ne"; 376 if (code == SearchComparator.GT) 377 return "gt"; 378 if (code == SearchComparator.LT) 379 return "lt"; 380 if (code == SearchComparator.GE) 381 return "ge"; 382 if (code == SearchComparator.LE) 383 return "le"; 384 if (code == SearchComparator.SA) 385 return "sa"; 386 if (code == SearchComparator.EB) 387 return "eb"; 388 if (code == SearchComparator.AP) 389 return "ap"; 390 return "?"; 391 } 392 public String toSystem(SearchComparator code) { 393 return code.getSystem(); 394 } 395 } 396 397 public enum SearchModifierCode { 398 /** 399 * The search parameter returns resources that have a value or not. 400 */ 401 MISSING, 402 /** 403 * The search parameter returns resources that have a value that exactly matches the supplied parameter (the whole string, including casing and accents). 404 */ 405 EXACT, 406 /** 407 * The search parameter returns resources that include the supplied parameter value anywhere within the field being searched. 408 */ 409 CONTAINS, 410 /** 411 * The search parameter returns resources that do not contain a match. 412 */ 413 NOT, 414 /** 415 * The search parameter is processed as a string that searches text associated with the code/value - either CodeableConcept.text, Coding.display, or Identifier.type.text. 416 */ 417 TEXT, 418 /** 419 * The search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the coding is in the specified value set. 420 */ 421 IN, 422 /** 423 * The search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the coding is not in the specified value set. 424 */ 425 NOTIN, 426 /** 427 * The search parameter tests whether the value in a resource is subsumed by the specified value (is-a, or hierarchical relationships). 428 */ 429 BELOW, 430 /** 431 * The search parameter tests whether the value in a resource subsumes the specified value (is-a, or hierarchical relationships). 432 */ 433 ABOVE, 434 /** 435 * The search parameter only applies to the Resource Type specified as a modifier (e.g. the modifier is not actually :type, but :Patient etc.). 436 */ 437 TYPE, 438 /** 439 * added to help the parsers with the generic types 440 */ 441 NULL; 442 public static SearchModifierCode fromCode(String codeString) throws FHIRException { 443 if (codeString == null || "".equals(codeString)) 444 return null; 445 if ("missing".equals(codeString)) 446 return MISSING; 447 if ("exact".equals(codeString)) 448 return EXACT; 449 if ("contains".equals(codeString)) 450 return CONTAINS; 451 if ("not".equals(codeString)) 452 return NOT; 453 if ("text".equals(codeString)) 454 return TEXT; 455 if ("in".equals(codeString)) 456 return IN; 457 if ("not-in".equals(codeString)) 458 return NOTIN; 459 if ("below".equals(codeString)) 460 return BELOW; 461 if ("above".equals(codeString)) 462 return ABOVE; 463 if ("type".equals(codeString)) 464 return TYPE; 465 if (Configuration.isAcceptInvalidEnums()) 466 return null; 467 else 468 throw new FHIRException("Unknown SearchModifierCode code '"+codeString+"'"); 469 } 470 public String toCode() { 471 switch (this) { 472 case MISSING: return "missing"; 473 case EXACT: return "exact"; 474 case CONTAINS: return "contains"; 475 case NOT: return "not"; 476 case TEXT: return "text"; 477 case IN: return "in"; 478 case NOTIN: return "not-in"; 479 case BELOW: return "below"; 480 case ABOVE: return "above"; 481 case TYPE: return "type"; 482 default: return "?"; 483 } 484 } 485 public String getSystem() { 486 switch (this) { 487 case MISSING: return "http://hl7.org/fhir/search-modifier-code"; 488 case EXACT: return "http://hl7.org/fhir/search-modifier-code"; 489 case CONTAINS: return "http://hl7.org/fhir/search-modifier-code"; 490 case NOT: return "http://hl7.org/fhir/search-modifier-code"; 491 case TEXT: return "http://hl7.org/fhir/search-modifier-code"; 492 case IN: return "http://hl7.org/fhir/search-modifier-code"; 493 case NOTIN: return "http://hl7.org/fhir/search-modifier-code"; 494 case BELOW: return "http://hl7.org/fhir/search-modifier-code"; 495 case ABOVE: return "http://hl7.org/fhir/search-modifier-code"; 496 case TYPE: return "http://hl7.org/fhir/search-modifier-code"; 497 default: return "?"; 498 } 499 } 500 public String getDefinition() { 501 switch (this) { 502 case MISSING: return "The search parameter returns resources that have a value or not."; 503 case EXACT: return "The search parameter returns resources that have a value that exactly matches the supplied parameter (the whole string, including casing and accents)."; 504 case CONTAINS: return "The search parameter returns resources that include the supplied parameter value anywhere within the field being searched."; 505 case NOT: return "The search parameter returns resources that do not contain a match."; 506 case TEXT: return "The search parameter is processed as a string that searches text associated with the code/value - either CodeableConcept.text, Coding.display, or Identifier.type.text."; 507 case IN: return "The search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the coding is in the specified value set."; 508 case NOTIN: return "The search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the coding is not in the specified value set."; 509 case BELOW: return "The search parameter tests whether the value in a resource is subsumed by the specified value (is-a, or hierarchical relationships)."; 510 case ABOVE: return "The search parameter tests whether the value in a resource subsumes the specified value (is-a, or hierarchical relationships)."; 511 case TYPE: return "The search parameter only applies to the Resource Type specified as a modifier (e.g. the modifier is not actually :type, but :Patient etc.)."; 512 default: return "?"; 513 } 514 } 515 public String getDisplay() { 516 switch (this) { 517 case MISSING: return "Missing"; 518 case EXACT: return "Exact"; 519 case CONTAINS: return "Contains"; 520 case NOT: return "Not"; 521 case TEXT: return "Text"; 522 case IN: return "In"; 523 case NOTIN: return "Not In"; 524 case BELOW: return "Below"; 525 case ABOVE: return "Above"; 526 case TYPE: return "Type"; 527 default: return "?"; 528 } 529 } 530 } 531 532 public static class SearchModifierCodeEnumFactory implements EnumFactory<SearchModifierCode> { 533 public SearchModifierCode fromCode(String codeString) throws IllegalArgumentException { 534 if (codeString == null || "".equals(codeString)) 535 if (codeString == null || "".equals(codeString)) 536 return null; 537 if ("missing".equals(codeString)) 538 return SearchModifierCode.MISSING; 539 if ("exact".equals(codeString)) 540 return SearchModifierCode.EXACT; 541 if ("contains".equals(codeString)) 542 return SearchModifierCode.CONTAINS; 543 if ("not".equals(codeString)) 544 return SearchModifierCode.NOT; 545 if ("text".equals(codeString)) 546 return SearchModifierCode.TEXT; 547 if ("in".equals(codeString)) 548 return SearchModifierCode.IN; 549 if ("not-in".equals(codeString)) 550 return SearchModifierCode.NOTIN; 551 if ("below".equals(codeString)) 552 return SearchModifierCode.BELOW; 553 if ("above".equals(codeString)) 554 return SearchModifierCode.ABOVE; 555 if ("type".equals(codeString)) 556 return SearchModifierCode.TYPE; 557 throw new IllegalArgumentException("Unknown SearchModifierCode code '"+codeString+"'"); 558 } 559 public Enumeration<SearchModifierCode> fromType(Base code) throws FHIRException { 560 if (code == null) 561 return null; 562 if (code.isEmpty()) 563 return new Enumeration<SearchModifierCode>(this); 564 String codeString = ((PrimitiveType) code).asStringValue(); 565 if (codeString == null || "".equals(codeString)) 566 return null; 567 if ("missing".equals(codeString)) 568 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.MISSING); 569 if ("exact".equals(codeString)) 570 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.EXACT); 571 if ("contains".equals(codeString)) 572 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.CONTAINS); 573 if ("not".equals(codeString)) 574 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.NOT); 575 if ("text".equals(codeString)) 576 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.TEXT); 577 if ("in".equals(codeString)) 578 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.IN); 579 if ("not-in".equals(codeString)) 580 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.NOTIN); 581 if ("below".equals(codeString)) 582 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.BELOW); 583 if ("above".equals(codeString)) 584 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.ABOVE); 585 if ("type".equals(codeString)) 586 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.TYPE); 587 throw new FHIRException("Unknown SearchModifierCode code '"+codeString+"'"); 588 } 589 public String toCode(SearchModifierCode code) { 590 if (code == SearchModifierCode.MISSING) 591 return "missing"; 592 if (code == SearchModifierCode.EXACT) 593 return "exact"; 594 if (code == SearchModifierCode.CONTAINS) 595 return "contains"; 596 if (code == SearchModifierCode.NOT) 597 return "not"; 598 if (code == SearchModifierCode.TEXT) 599 return "text"; 600 if (code == SearchModifierCode.IN) 601 return "in"; 602 if (code == SearchModifierCode.NOTIN) 603 return "not-in"; 604 if (code == SearchModifierCode.BELOW) 605 return "below"; 606 if (code == SearchModifierCode.ABOVE) 607 return "above"; 608 if (code == SearchModifierCode.TYPE) 609 return "type"; 610 return "?"; 611 } 612 public String toSystem(SearchModifierCode code) { 613 return code.getSystem(); 614 } 615 } 616 617 @Block() 618 public static class SearchParameterComponentComponent extends BackboneElement implements IBaseBackboneElement { 619 /** 620 * The definition of the search parameter that describes this part. 621 */ 622 @Child(name = "definition", type = {SearchParameter.class}, order=1, min=1, max=1, modifier=false, summary=false) 623 @Description(shortDefinition="Defines how the part works", formalDefinition="The definition of the search parameter that describes this part." ) 624 protected Reference definition; 625 626 /** 627 * The actual object that is the target of the reference (The definition of the search parameter that describes this part.) 628 */ 629 protected SearchParameter definitionTarget; 630 631 /** 632 * A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression. 633 */ 634 @Child(name = "expression", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false) 635 @Description(shortDefinition="Subexpression relative to main expression", formalDefinition="A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression." ) 636 protected StringType expression; 637 638 private static final long serialVersionUID = -1105563614L; 639 640 /** 641 * Constructor 642 */ 643 public SearchParameterComponentComponent() { 644 super(); 645 } 646 647 /** 648 * Constructor 649 */ 650 public SearchParameterComponentComponent(Reference definition, StringType expression) { 651 super(); 652 this.definition = definition; 653 this.expression = expression; 654 } 655 656 /** 657 * @return {@link #definition} (The definition of the search parameter that describes this part.) 658 */ 659 public Reference getDefinition() { 660 if (this.definition == null) 661 if (Configuration.errorOnAutoCreate()) 662 throw new Error("Attempt to auto-create SearchParameterComponentComponent.definition"); 663 else if (Configuration.doAutoCreate()) 664 this.definition = new Reference(); // cc 665 return this.definition; 666 } 667 668 public boolean hasDefinition() { 669 return this.definition != null && !this.definition.isEmpty(); 670 } 671 672 /** 673 * @param value {@link #definition} (The definition of the search parameter that describes this part.) 674 */ 675 public SearchParameterComponentComponent setDefinition(Reference value) { 676 this.definition = value; 677 return this; 678 } 679 680 /** 681 * @return {@link #definition} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The definition of the search parameter that describes this part.) 682 */ 683 public SearchParameter getDefinitionTarget() { 684 if (this.definitionTarget == null) 685 if (Configuration.errorOnAutoCreate()) 686 throw new Error("Attempt to auto-create SearchParameterComponentComponent.definition"); 687 else if (Configuration.doAutoCreate()) 688 this.definitionTarget = new SearchParameter(); // aa 689 return this.definitionTarget; 690 } 691 692 /** 693 * @param value {@link #definition} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The definition of the search parameter that describes this part.) 694 */ 695 public SearchParameterComponentComponent setDefinitionTarget(SearchParameter value) { 696 this.definitionTarget = value; 697 return this; 698 } 699 700 /** 701 * @return {@link #expression} (A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression.). This is the underlying object with id, value and extensions. The accessor "getExpression" gives direct access to the value 702 */ 703 public StringType getExpressionElement() { 704 if (this.expression == null) 705 if (Configuration.errorOnAutoCreate()) 706 throw new Error("Attempt to auto-create SearchParameterComponentComponent.expression"); 707 else if (Configuration.doAutoCreate()) 708 this.expression = new StringType(); // bb 709 return this.expression; 710 } 711 712 public boolean hasExpressionElement() { 713 return this.expression != null && !this.expression.isEmpty(); 714 } 715 716 public boolean hasExpression() { 717 return this.expression != null && !this.expression.isEmpty(); 718 } 719 720 /** 721 * @param value {@link #expression} (A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression.). This is the underlying object with id, value and extensions. The accessor "getExpression" gives direct access to the value 722 */ 723 public SearchParameterComponentComponent setExpressionElement(StringType value) { 724 this.expression = value; 725 return this; 726 } 727 728 /** 729 * @return A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression. 730 */ 731 public String getExpression() { 732 return this.expression == null ? null : this.expression.getValue(); 733 } 734 735 /** 736 * @param value A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression. 737 */ 738 public SearchParameterComponentComponent setExpression(String value) { 739 if (this.expression == null) 740 this.expression = new StringType(); 741 this.expression.setValue(value); 742 return this; 743 } 744 745 protected void listChildren(List<Property> childrenList) { 746 super.listChildren(childrenList); 747 childrenList.add(new Property("definition", "Reference(SearchParameter)", "The definition of the search parameter that describes this part.", 0, java.lang.Integer.MAX_VALUE, definition)); 748 childrenList.add(new Property("expression", "string", "A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression.", 0, java.lang.Integer.MAX_VALUE, expression)); 749 } 750 751 @Override 752 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 753 switch (hash) { 754 case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : new Base[] {this.definition}; // Reference 755 case -1795452264: /*expression*/ return this.expression == null ? new Base[0] : new Base[] {this.expression}; // StringType 756 default: return super.getProperty(hash, name, checkValid); 757 } 758 759 } 760 761 @Override 762 public Base setProperty(int hash, String name, Base value) throws FHIRException { 763 switch (hash) { 764 case -1014418093: // definition 765 this.definition = castToReference(value); // Reference 766 return value; 767 case -1795452264: // expression 768 this.expression = castToString(value); // StringType 769 return value; 770 default: return super.setProperty(hash, name, value); 771 } 772 773 } 774 775 @Override 776 public Base setProperty(String name, Base value) throws FHIRException { 777 if (name.equals("definition")) { 778 this.definition = castToReference(value); // Reference 779 } else if (name.equals("expression")) { 780 this.expression = castToString(value); // StringType 781 } else 782 return super.setProperty(name, value); 783 return value; 784 } 785 786 @Override 787 public Base makeProperty(int hash, String name) throws FHIRException { 788 switch (hash) { 789 case -1014418093: return getDefinition(); 790 case -1795452264: return getExpressionElement(); 791 default: return super.makeProperty(hash, name); 792 } 793 794 } 795 796 @Override 797 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 798 switch (hash) { 799 case -1014418093: /*definition*/ return new String[] {"Reference"}; 800 case -1795452264: /*expression*/ return new String[] {"string"}; 801 default: return super.getTypesForProperty(hash, name); 802 } 803 804 } 805 806 @Override 807 public Base addChild(String name) throws FHIRException { 808 if (name.equals("definition")) { 809 this.definition = new Reference(); 810 return this.definition; 811 } 812 else if (name.equals("expression")) { 813 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.expression"); 814 } 815 else 816 return super.addChild(name); 817 } 818 819 public SearchParameterComponentComponent copy() { 820 SearchParameterComponentComponent dst = new SearchParameterComponentComponent(); 821 copyValues(dst); 822 dst.definition = definition == null ? null : definition.copy(); 823 dst.expression = expression == null ? null : expression.copy(); 824 return dst; 825 } 826 827 @Override 828 public boolean equalsDeep(Base other) { 829 if (!super.equalsDeep(other)) 830 return false; 831 if (!(other instanceof SearchParameterComponentComponent)) 832 return false; 833 SearchParameterComponentComponent o = (SearchParameterComponentComponent) other; 834 return compareDeep(definition, o.definition, true) && compareDeep(expression, o.expression, true) 835 ; 836 } 837 838 @Override 839 public boolean equalsShallow(Base other) { 840 if (!super.equalsShallow(other)) 841 return false; 842 if (!(other instanceof SearchParameterComponentComponent)) 843 return false; 844 SearchParameterComponentComponent o = (SearchParameterComponentComponent) other; 845 return compareValues(expression, o.expression, true); 846 } 847 848 public boolean isEmpty() { 849 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(definition, expression); 850 } 851 852 public String fhirType() { 853 return "SearchParameter.component"; 854 855 } 856 857 } 858 859 /** 860 * Explaination of why this search parameter is needed and why it has been designed as it has. 861 */ 862 @Child(name = "purpose", type = {MarkdownType.class}, order=0, min=0, max=1, modifier=false, summary=false) 863 @Description(shortDefinition="Why this search parameter is defined", formalDefinition="Explaination of why this search parameter is needed and why it has been designed as it has." ) 864 protected MarkdownType purpose; 865 866 /** 867 * The code used in the URL or the parameter name in a parameters resource for this search parameter. 868 */ 869 @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true) 870 @Description(shortDefinition="Code used in URL", formalDefinition="The code used in the URL or the parameter name in a parameters resource for this search parameter." ) 871 protected CodeType code; 872 873 /** 874 * The base resource type(s) that this search parameter can be used against. 875 */ 876 @Child(name = "base", type = {CodeType.class}, order=2, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 877 @Description(shortDefinition="The resource type(s) this search parameter applies to", formalDefinition="The base resource type(s) that this search parameter can be used against." ) 878 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types") 879 protected List<CodeType> base; 880 881 /** 882 * The type of value a search parameter refers to, and how the content is interpreted. 883 */ 884 @Child(name = "type", type = {CodeType.class}, order=3, min=1, max=1, modifier=false, summary=true) 885 @Description(shortDefinition="number | date | string | token | reference | composite | quantity | uri", formalDefinition="The type of value a search parameter refers to, and how the content is interpreted." ) 886 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-param-type") 887 protected Enumeration<SearchParamType> type; 888 889 /** 890 * Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. I.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter. 891 */ 892 @Child(name = "derivedFrom", type = {UriType.class}, order=4, min=0, max=1, modifier=false, summary=false) 893 @Description(shortDefinition="Original Definition for the search parameter", formalDefinition="Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. I.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter." ) 894 protected UriType derivedFrom; 895 896 /** 897 * A FHIRPath expression that returns a set of elements for the search parameter. 898 */ 899 @Child(name = "expression", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=false) 900 @Description(shortDefinition="FHIRPath expression that extracts the values", formalDefinition="A FHIRPath expression that returns a set of elements for the search parameter." ) 901 protected StringType expression; 902 903 /** 904 * An XPath expression that returns a set of elements for the search parameter. 905 */ 906 @Child(name = "xpath", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false) 907 @Description(shortDefinition="XPath that extracts the values", formalDefinition="An XPath expression that returns a set of elements for the search parameter." ) 908 protected StringType xpath; 909 910 /** 911 * How the search parameter relates to the set of elements returned by evaluating the xpath query. 912 */ 913 @Child(name = "xpathUsage", type = {CodeType.class}, order=7, min=0, max=1, modifier=false, summary=false) 914 @Description(shortDefinition="normal | phonetic | nearby | distance | other", formalDefinition="How the search parameter relates to the set of elements returned by evaluating the xpath query." ) 915 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-xpath-usage") 916 protected Enumeration<XPathUsageType> xpathUsage; 917 918 /** 919 * Types of resource (if a resource is referenced). 920 */ 921 @Child(name = "target", type = {CodeType.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 922 @Description(shortDefinition="Types of resource (if a resource reference)", formalDefinition="Types of resource (if a resource is referenced)." ) 923 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types") 924 protected List<CodeType> target; 925 926 /** 927 * Comparators supported for the search parameter. 928 */ 929 @Child(name = "comparator", type = {CodeType.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 930 @Description(shortDefinition="eq | ne | gt | lt | ge | le | sa | eb | ap", formalDefinition="Comparators supported for the search parameter." ) 931 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-comparator") 932 protected List<Enumeration<SearchComparator>> comparator; 933 934 /** 935 * A modifier supported for the search parameter. 936 */ 937 @Child(name = "modifier", type = {CodeType.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 938 @Description(shortDefinition="missing | exact | contains | not | text | in | not-in | below | above | type", formalDefinition="A modifier supported for the search parameter." ) 939 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-modifier-code") 940 protected List<Enumeration<SearchModifierCode>> modifier; 941 942 /** 943 * Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference, and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type. 944 */ 945 @Child(name = "chain", type = {StringType.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 946 @Description(shortDefinition="Chained names supported", formalDefinition="Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference, and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type." ) 947 protected List<StringType> chain; 948 949 /** 950 * Used to define the parts of a composite search parameter. 951 */ 952 @Child(name = "component", type = {}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 953 @Description(shortDefinition="For Composite resources to define the parts", formalDefinition="Used to define the parts of a composite search parameter." ) 954 protected List<SearchParameterComponentComponent> component; 955 956 private static final long serialVersionUID = -769368159L; 957 958 /** 959 * Constructor 960 */ 961 public SearchParameter() { 962 super(); 963 } 964 965 /** 966 * Constructor 967 */ 968 public SearchParameter(UriType url, StringType name, Enumeration<PublicationStatus> status, CodeType code, Enumeration<SearchParamType> type, MarkdownType description) { 969 super(); 970 this.url = url; 971 this.name = name; 972 this.status = status; 973 this.code = code; 974 this.type = type; 975 this.description = description; 976 } 977 978 /** 979 * @return {@link #url} (An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this search parameter is (or will be) published. The URL SHOULD include the major version of the search parameter. For more information see [Technical and Business Versions](resource.html#versions).). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 980 */ 981 public UriType getUrlElement() { 982 if (this.url == null) 983 if (Configuration.errorOnAutoCreate()) 984 throw new Error("Attempt to auto-create SearchParameter.url"); 985 else if (Configuration.doAutoCreate()) 986 this.url = new UriType(); // bb 987 return this.url; 988 } 989 990 public boolean hasUrlElement() { 991 return this.url != null && !this.url.isEmpty(); 992 } 993 994 public boolean hasUrl() { 995 return this.url != null && !this.url.isEmpty(); 996 } 997 998 /** 999 * @param value {@link #url} (An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this search parameter is (or will be) published. The URL SHOULD include the major version of the search parameter. For more information see [Technical and Business Versions](resource.html#versions).). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 1000 */ 1001 public SearchParameter setUrlElement(UriType value) { 1002 this.url = value; 1003 return this; 1004 } 1005 1006 /** 1007 * @return An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this search parameter is (or will be) published. The URL SHOULD include the major version of the search parameter. For more information see [Technical and Business Versions](resource.html#versions). 1008 */ 1009 public String getUrl() { 1010 return this.url == null ? null : this.url.getValue(); 1011 } 1012 1013 /** 1014 * @param value An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this search parameter is (or will be) published. The URL SHOULD include the major version of the search parameter. For more information see [Technical and Business Versions](resource.html#versions). 1015 */ 1016 public SearchParameter setUrl(String value) { 1017 if (this.url == null) 1018 this.url = new UriType(); 1019 this.url.setValue(value); 1020 return this; 1021 } 1022 1023 /** 1024 * @return {@link #version} (The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 1025 */ 1026 public StringType getVersionElement() { 1027 if (this.version == null) 1028 if (Configuration.errorOnAutoCreate()) 1029 throw new Error("Attempt to auto-create SearchParameter.version"); 1030 else if (Configuration.doAutoCreate()) 1031 this.version = new StringType(); // bb 1032 return this.version; 1033 } 1034 1035 public boolean hasVersionElement() { 1036 return this.version != null && !this.version.isEmpty(); 1037 } 1038 1039 public boolean hasVersion() { 1040 return this.version != null && !this.version.isEmpty(); 1041 } 1042 1043 /** 1044 * @param value {@link #version} (The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 1045 */ 1046 public SearchParameter setVersionElement(StringType value) { 1047 this.version = value; 1048 return this; 1049 } 1050 1051 /** 1052 * @return The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. 1053 */ 1054 public String getVersion() { 1055 return this.version == null ? null : this.version.getValue(); 1056 } 1057 1058 /** 1059 * @param value The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. 1060 */ 1061 public SearchParameter setVersion(String value) { 1062 if (Utilities.noString(value)) 1063 this.version = null; 1064 else { 1065 if (this.version == null) 1066 this.version = new StringType(); 1067 this.version.setValue(value); 1068 } 1069 return this; 1070 } 1071 1072 /** 1073 * @return {@link #name} (A natural language name identifying the search parameter. 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 1074 */ 1075 public StringType getNameElement() { 1076 if (this.name == null) 1077 if (Configuration.errorOnAutoCreate()) 1078 throw new Error("Attempt to auto-create SearchParameter.name"); 1079 else if (Configuration.doAutoCreate()) 1080 this.name = new StringType(); // bb 1081 return this.name; 1082 } 1083 1084 public boolean hasNameElement() { 1085 return this.name != null && !this.name.isEmpty(); 1086 } 1087 1088 public boolean hasName() { 1089 return this.name != null && !this.name.isEmpty(); 1090 } 1091 1092 /** 1093 * @param value {@link #name} (A natural language name identifying the search parameter. 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 1094 */ 1095 public SearchParameter setNameElement(StringType value) { 1096 this.name = value; 1097 return this; 1098 } 1099 1100 /** 1101 * @return A natural language name identifying the search parameter. This name should be usable as an identifier for the module by machine processing applications such as code generation. 1102 */ 1103 public String getName() { 1104 return this.name == null ? null : this.name.getValue(); 1105 } 1106 1107 /** 1108 * @param value A natural language name identifying the search parameter. This name should be usable as an identifier for the module by machine processing applications such as code generation. 1109 */ 1110 public SearchParameter setName(String value) { 1111 if (this.name == null) 1112 this.name = new StringType(); 1113 this.name.setValue(value); 1114 return this; 1115 } 1116 1117 /** 1118 * @return {@link #status} (The status of this search parameter. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1119 */ 1120 public Enumeration<PublicationStatus> getStatusElement() { 1121 if (this.status == null) 1122 if (Configuration.errorOnAutoCreate()) 1123 throw new Error("Attempt to auto-create SearchParameter.status"); 1124 else if (Configuration.doAutoCreate()) 1125 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 1126 return this.status; 1127 } 1128 1129 public boolean hasStatusElement() { 1130 return this.status != null && !this.status.isEmpty(); 1131 } 1132 1133 public boolean hasStatus() { 1134 return this.status != null && !this.status.isEmpty(); 1135 } 1136 1137 /** 1138 * @param value {@link #status} (The status of this search parameter. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1139 */ 1140 public SearchParameter setStatusElement(Enumeration<PublicationStatus> value) { 1141 this.status = value; 1142 return this; 1143 } 1144 1145 /** 1146 * @return The status of this search parameter. Enables tracking the life-cycle of the content. 1147 */ 1148 public PublicationStatus getStatus() { 1149 return this.status == null ? null : this.status.getValue(); 1150 } 1151 1152 /** 1153 * @param value The status of this search parameter. Enables tracking the life-cycle of the content. 1154 */ 1155 public SearchParameter setStatus(PublicationStatus value) { 1156 if (this.status == null) 1157 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 1158 this.status.setValue(value); 1159 return this; 1160 } 1161 1162 /** 1163 * @return {@link #experimental} (A boolean value to indicate that this search parameter 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 1164 */ 1165 public BooleanType getExperimentalElement() { 1166 if (this.experimental == null) 1167 if (Configuration.errorOnAutoCreate()) 1168 throw new Error("Attempt to auto-create SearchParameter.experimental"); 1169 else if (Configuration.doAutoCreate()) 1170 this.experimental = new BooleanType(); // bb 1171 return this.experimental; 1172 } 1173 1174 public boolean hasExperimentalElement() { 1175 return this.experimental != null && !this.experimental.isEmpty(); 1176 } 1177 1178 public boolean hasExperimental() { 1179 return this.experimental != null && !this.experimental.isEmpty(); 1180 } 1181 1182 /** 1183 * @param value {@link #experimental} (A boolean value to indicate that this search parameter 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 1184 */ 1185 public SearchParameter setExperimentalElement(BooleanType value) { 1186 this.experimental = value; 1187 return this; 1188 } 1189 1190 /** 1191 * @return A boolean value to indicate that this search parameter is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. 1192 */ 1193 public boolean getExperimental() { 1194 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 1195 } 1196 1197 /** 1198 * @param value A boolean value to indicate that this search parameter is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. 1199 */ 1200 public SearchParameter setExperimental(boolean value) { 1201 if (this.experimental == null) 1202 this.experimental = new BooleanType(); 1203 this.experimental.setValue(value); 1204 return this; 1205 } 1206 1207 /** 1208 * @return {@link #date} (The date (and optionally time) when the search parameter was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 1209 */ 1210 public DateTimeType getDateElement() { 1211 if (this.date == null) 1212 if (Configuration.errorOnAutoCreate()) 1213 throw new Error("Attempt to auto-create SearchParameter.date"); 1214 else if (Configuration.doAutoCreate()) 1215 this.date = new DateTimeType(); // bb 1216 return this.date; 1217 } 1218 1219 public boolean hasDateElement() { 1220 return this.date != null && !this.date.isEmpty(); 1221 } 1222 1223 public boolean hasDate() { 1224 return this.date != null && !this.date.isEmpty(); 1225 } 1226 1227 /** 1228 * @param value {@link #date} (The date (and optionally time) when the search parameter was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 1229 */ 1230 public SearchParameter setDateElement(DateTimeType value) { 1231 this.date = value; 1232 return this; 1233 } 1234 1235 /** 1236 * @return The date (and optionally time) when the search parameter was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes. 1237 */ 1238 public Date getDate() { 1239 return this.date == null ? null : this.date.getValue(); 1240 } 1241 1242 /** 1243 * @param value The date (and optionally time) when the search parameter was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes. 1244 */ 1245 public SearchParameter setDate(Date value) { 1246 if (value == null) 1247 this.date = null; 1248 else { 1249 if (this.date == null) 1250 this.date = new DateTimeType(); 1251 this.date.setValue(value); 1252 } 1253 return this; 1254 } 1255 1256 /** 1257 * @return {@link #publisher} (The name of the individual or organization that published the search parameter.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 1258 */ 1259 public StringType getPublisherElement() { 1260 if (this.publisher == null) 1261 if (Configuration.errorOnAutoCreate()) 1262 throw new Error("Attempt to auto-create SearchParameter.publisher"); 1263 else if (Configuration.doAutoCreate()) 1264 this.publisher = new StringType(); // bb 1265 return this.publisher; 1266 } 1267 1268 public boolean hasPublisherElement() { 1269 return this.publisher != null && !this.publisher.isEmpty(); 1270 } 1271 1272 public boolean hasPublisher() { 1273 return this.publisher != null && !this.publisher.isEmpty(); 1274 } 1275 1276 /** 1277 * @param value {@link #publisher} (The name of the individual or organization that published the search parameter.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 1278 */ 1279 public SearchParameter setPublisherElement(StringType value) { 1280 this.publisher = value; 1281 return this; 1282 } 1283 1284 /** 1285 * @return The name of the individual or organization that published the search parameter. 1286 */ 1287 public String getPublisher() { 1288 return this.publisher == null ? null : this.publisher.getValue(); 1289 } 1290 1291 /** 1292 * @param value The name of the individual or organization that published the search parameter. 1293 */ 1294 public SearchParameter setPublisher(String value) { 1295 if (Utilities.noString(value)) 1296 this.publisher = null; 1297 else { 1298 if (this.publisher == null) 1299 this.publisher = new StringType(); 1300 this.publisher.setValue(value); 1301 } 1302 return this; 1303 } 1304 1305 /** 1306 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 1307 */ 1308 public List<ContactDetail> getContact() { 1309 if (this.contact == null) 1310 this.contact = new ArrayList<ContactDetail>(); 1311 return this.contact; 1312 } 1313 1314 /** 1315 * @return Returns a reference to <code>this</code> for easy method chaining 1316 */ 1317 public SearchParameter setContact(List<ContactDetail> theContact) { 1318 this.contact = theContact; 1319 return this; 1320 } 1321 1322 public boolean hasContact() { 1323 if (this.contact == null) 1324 return false; 1325 for (ContactDetail item : this.contact) 1326 if (!item.isEmpty()) 1327 return true; 1328 return false; 1329 } 1330 1331 public ContactDetail addContact() { //3 1332 ContactDetail t = new ContactDetail(); 1333 if (this.contact == null) 1334 this.contact = new ArrayList<ContactDetail>(); 1335 this.contact.add(t); 1336 return t; 1337 } 1338 1339 public SearchParameter addContact(ContactDetail t) { //3 1340 if (t == null) 1341 return this; 1342 if (this.contact == null) 1343 this.contact = new ArrayList<ContactDetail>(); 1344 this.contact.add(t); 1345 return this; 1346 } 1347 1348 /** 1349 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 1350 */ 1351 public ContactDetail getContactFirstRep() { 1352 if (getContact().isEmpty()) { 1353 addContact(); 1354 } 1355 return getContact().get(0); 1356 } 1357 1358 /** 1359 * @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 for appropriate search parameter instances.) 1360 */ 1361 public List<UsageContext> getUseContext() { 1362 if (this.useContext == null) 1363 this.useContext = new ArrayList<UsageContext>(); 1364 return this.useContext; 1365 } 1366 1367 /** 1368 * @return Returns a reference to <code>this</code> for easy method chaining 1369 */ 1370 public SearchParameter setUseContext(List<UsageContext> theUseContext) { 1371 this.useContext = theUseContext; 1372 return this; 1373 } 1374 1375 public boolean hasUseContext() { 1376 if (this.useContext == null) 1377 return false; 1378 for (UsageContext item : this.useContext) 1379 if (!item.isEmpty()) 1380 return true; 1381 return false; 1382 } 1383 1384 public UsageContext addUseContext() { //3 1385 UsageContext t = new UsageContext(); 1386 if (this.useContext == null) 1387 this.useContext = new ArrayList<UsageContext>(); 1388 this.useContext.add(t); 1389 return t; 1390 } 1391 1392 public SearchParameter addUseContext(UsageContext t) { //3 1393 if (t == null) 1394 return this; 1395 if (this.useContext == null) 1396 this.useContext = new ArrayList<UsageContext>(); 1397 this.useContext.add(t); 1398 return this; 1399 } 1400 1401 /** 1402 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist 1403 */ 1404 public UsageContext getUseContextFirstRep() { 1405 if (getUseContext().isEmpty()) { 1406 addUseContext(); 1407 } 1408 return getUseContext().get(0); 1409 } 1410 1411 /** 1412 * @return {@link #jurisdiction} (A legal or geographic region in which the search parameter is intended to be used.) 1413 */ 1414 public List<CodeableConcept> getJurisdiction() { 1415 if (this.jurisdiction == null) 1416 this.jurisdiction = new ArrayList<CodeableConcept>(); 1417 return this.jurisdiction; 1418 } 1419 1420 /** 1421 * @return Returns a reference to <code>this</code> for easy method chaining 1422 */ 1423 public SearchParameter setJurisdiction(List<CodeableConcept> theJurisdiction) { 1424 this.jurisdiction = theJurisdiction; 1425 return this; 1426 } 1427 1428 public boolean hasJurisdiction() { 1429 if (this.jurisdiction == null) 1430 return false; 1431 for (CodeableConcept item : this.jurisdiction) 1432 if (!item.isEmpty()) 1433 return true; 1434 return false; 1435 } 1436 1437 public CodeableConcept addJurisdiction() { //3 1438 CodeableConcept t = new CodeableConcept(); 1439 if (this.jurisdiction == null) 1440 this.jurisdiction = new ArrayList<CodeableConcept>(); 1441 this.jurisdiction.add(t); 1442 return t; 1443 } 1444 1445 public SearchParameter addJurisdiction(CodeableConcept t) { //3 1446 if (t == null) 1447 return this; 1448 if (this.jurisdiction == null) 1449 this.jurisdiction = new ArrayList<CodeableConcept>(); 1450 this.jurisdiction.add(t); 1451 return this; 1452 } 1453 1454 /** 1455 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist 1456 */ 1457 public CodeableConcept getJurisdictionFirstRep() { 1458 if (getJurisdiction().isEmpty()) { 1459 addJurisdiction(); 1460 } 1461 return getJurisdiction().get(0); 1462 } 1463 1464 /** 1465 * @return {@link #purpose} (Explaination of why this search parameter 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 1466 */ 1467 public MarkdownType getPurposeElement() { 1468 if (this.purpose == null) 1469 if (Configuration.errorOnAutoCreate()) 1470 throw new Error("Attempt to auto-create SearchParameter.purpose"); 1471 else if (Configuration.doAutoCreate()) 1472 this.purpose = new MarkdownType(); // bb 1473 return this.purpose; 1474 } 1475 1476 public boolean hasPurposeElement() { 1477 return this.purpose != null && !this.purpose.isEmpty(); 1478 } 1479 1480 public boolean hasPurpose() { 1481 return this.purpose != null && !this.purpose.isEmpty(); 1482 } 1483 1484 /** 1485 * @param value {@link #purpose} (Explaination of why this search parameter 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 1486 */ 1487 public SearchParameter setPurposeElement(MarkdownType value) { 1488 this.purpose = value; 1489 return this; 1490 } 1491 1492 /** 1493 * @return Explaination of why this search parameter is needed and why it has been designed as it has. 1494 */ 1495 public String getPurpose() { 1496 return this.purpose == null ? null : this.purpose.getValue(); 1497 } 1498 1499 /** 1500 * @param value Explaination of why this search parameter is needed and why it has been designed as it has. 1501 */ 1502 public SearchParameter setPurpose(String value) { 1503 if (value == null) 1504 this.purpose = null; 1505 else { 1506 if (this.purpose == null) 1507 this.purpose = new MarkdownType(); 1508 this.purpose.setValue(value); 1509 } 1510 return this; 1511 } 1512 1513 /** 1514 * @return {@link #code} (The code used in the URL or the parameter name in a parameters resource for this search parameter.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 1515 */ 1516 public CodeType getCodeElement() { 1517 if (this.code == null) 1518 if (Configuration.errorOnAutoCreate()) 1519 throw new Error("Attempt to auto-create SearchParameter.code"); 1520 else if (Configuration.doAutoCreate()) 1521 this.code = new CodeType(); // bb 1522 return this.code; 1523 } 1524 1525 public boolean hasCodeElement() { 1526 return this.code != null && !this.code.isEmpty(); 1527 } 1528 1529 public boolean hasCode() { 1530 return this.code != null && !this.code.isEmpty(); 1531 } 1532 1533 /** 1534 * @param value {@link #code} (The code used in the URL or the parameter name in a parameters resource for this search parameter.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 1535 */ 1536 public SearchParameter setCodeElement(CodeType value) { 1537 this.code = value; 1538 return this; 1539 } 1540 1541 /** 1542 * @return The code used in the URL or the parameter name in a parameters resource for this search parameter. 1543 */ 1544 public String getCode() { 1545 return this.code == null ? null : this.code.getValue(); 1546 } 1547 1548 /** 1549 * @param value The code used in the URL or the parameter name in a parameters resource for this search parameter. 1550 */ 1551 public SearchParameter setCode(String value) { 1552 if (this.code == null) 1553 this.code = new CodeType(); 1554 this.code.setValue(value); 1555 return this; 1556 } 1557 1558 /** 1559 * @return {@link #base} (The base resource type(s) that this search parameter can be used against.) 1560 */ 1561 public List<CodeType> getBase() { 1562 if (this.base == null) 1563 this.base = new ArrayList<CodeType>(); 1564 return this.base; 1565 } 1566 1567 /** 1568 * @return Returns a reference to <code>this</code> for easy method chaining 1569 */ 1570 public SearchParameter setBase(List<CodeType> theBase) { 1571 this.base = theBase; 1572 return this; 1573 } 1574 1575 public boolean hasBase() { 1576 if (this.base == null) 1577 return false; 1578 for (CodeType item : this.base) 1579 if (!item.isEmpty()) 1580 return true; 1581 return false; 1582 } 1583 1584 /** 1585 * @return {@link #base} (The base resource type(s) that this search parameter can be used against.) 1586 */ 1587 public CodeType addBaseElement() {//2 1588 CodeType t = new CodeType(); 1589 if (this.base == null) 1590 this.base = new ArrayList<CodeType>(); 1591 this.base.add(t); 1592 return t; 1593 } 1594 1595 /** 1596 * @param value {@link #base} (The base resource type(s) that this search parameter can be used against.) 1597 */ 1598 public SearchParameter addBase(String value) { //1 1599 CodeType t = new CodeType(); 1600 t.setValue(value); 1601 if (this.base == null) 1602 this.base = new ArrayList<CodeType>(); 1603 this.base.add(t); 1604 return this; 1605 } 1606 1607 /** 1608 * @param value {@link #base} (The base resource type(s) that this search parameter can be used against.) 1609 */ 1610 public boolean hasBase(String value) { 1611 if (this.base == null) 1612 return false; 1613 for (CodeType v : this.base) 1614 if (v.equals(value)) // code 1615 return true; 1616 return false; 1617 } 1618 1619 /** 1620 * @return {@link #type} (The type of value a search parameter refers to, and how the content is interpreted.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1621 */ 1622 public Enumeration<SearchParamType> getTypeElement() { 1623 if (this.type == null) 1624 if (Configuration.errorOnAutoCreate()) 1625 throw new Error("Attempt to auto-create SearchParameter.type"); 1626 else if (Configuration.doAutoCreate()) 1627 this.type = new Enumeration<SearchParamType>(new SearchParamTypeEnumFactory()); // bb 1628 return this.type; 1629 } 1630 1631 public boolean hasTypeElement() { 1632 return this.type != null && !this.type.isEmpty(); 1633 } 1634 1635 public boolean hasType() { 1636 return this.type != null && !this.type.isEmpty(); 1637 } 1638 1639 /** 1640 * @param value {@link #type} (The type of value a search parameter refers to, and how the content is interpreted.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1641 */ 1642 public SearchParameter setTypeElement(Enumeration<SearchParamType> value) { 1643 this.type = value; 1644 return this; 1645 } 1646 1647 /** 1648 * @return The type of value a search parameter refers to, and how the content is interpreted. 1649 */ 1650 public SearchParamType getType() { 1651 return this.type == null ? null : this.type.getValue(); 1652 } 1653 1654 /** 1655 * @param value The type of value a search parameter refers to, and how the content is interpreted. 1656 */ 1657 public SearchParameter setType(SearchParamType value) { 1658 if (this.type == null) 1659 this.type = new Enumeration<SearchParamType>(new SearchParamTypeEnumFactory()); 1660 this.type.setValue(value); 1661 return this; 1662 } 1663 1664 /** 1665 * @return {@link #derivedFrom} (Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. I.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter.). This is the underlying object with id, value and extensions. The accessor "getDerivedFrom" gives direct access to the value 1666 */ 1667 public UriType getDerivedFromElement() { 1668 if (this.derivedFrom == null) 1669 if (Configuration.errorOnAutoCreate()) 1670 throw new Error("Attempt to auto-create SearchParameter.derivedFrom"); 1671 else if (Configuration.doAutoCreate()) 1672 this.derivedFrom = new UriType(); // bb 1673 return this.derivedFrom; 1674 } 1675 1676 public boolean hasDerivedFromElement() { 1677 return this.derivedFrom != null && !this.derivedFrom.isEmpty(); 1678 } 1679 1680 public boolean hasDerivedFrom() { 1681 return this.derivedFrom != null && !this.derivedFrom.isEmpty(); 1682 } 1683 1684 /** 1685 * @param value {@link #derivedFrom} (Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. I.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter.). This is the underlying object with id, value and extensions. The accessor "getDerivedFrom" gives direct access to the value 1686 */ 1687 public SearchParameter setDerivedFromElement(UriType value) { 1688 this.derivedFrom = value; 1689 return this; 1690 } 1691 1692 /** 1693 * @return Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. I.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter. 1694 */ 1695 public String getDerivedFrom() { 1696 return this.derivedFrom == null ? null : this.derivedFrom.getValue(); 1697 } 1698 1699 /** 1700 * @param value Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. I.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter. 1701 */ 1702 public SearchParameter setDerivedFrom(String value) { 1703 if (Utilities.noString(value)) 1704 this.derivedFrom = null; 1705 else { 1706 if (this.derivedFrom == null) 1707 this.derivedFrom = new UriType(); 1708 this.derivedFrom.setValue(value); 1709 } 1710 return this; 1711 } 1712 1713 /** 1714 * @return {@link #description} (A free text natural language description of the search parameter from a consumer's perspective. and how it used.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1715 */ 1716 public MarkdownType getDescriptionElement() { 1717 if (this.description == null) 1718 if (Configuration.errorOnAutoCreate()) 1719 throw new Error("Attempt to auto-create SearchParameter.description"); 1720 else if (Configuration.doAutoCreate()) 1721 this.description = new MarkdownType(); // bb 1722 return this.description; 1723 } 1724 1725 public boolean hasDescriptionElement() { 1726 return this.description != null && !this.description.isEmpty(); 1727 } 1728 1729 public boolean hasDescription() { 1730 return this.description != null && !this.description.isEmpty(); 1731 } 1732 1733 /** 1734 * @param value {@link #description} (A free text natural language description of the search parameter from a consumer's perspective. and how it used.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1735 */ 1736 public SearchParameter setDescriptionElement(MarkdownType value) { 1737 this.description = value; 1738 return this; 1739 } 1740 1741 /** 1742 * @return A free text natural language description of the search parameter from a consumer's perspective. and how it used. 1743 */ 1744 public String getDescription() { 1745 return this.description == null ? null : this.description.getValue(); 1746 } 1747 1748 /** 1749 * @param value A free text natural language description of the search parameter from a consumer's perspective. and how it used. 1750 */ 1751 public SearchParameter setDescription(String value) { 1752 if (this.description == null) 1753 this.description = new MarkdownType(); 1754 this.description.setValue(value); 1755 return this; 1756 } 1757 1758 /** 1759 * @return {@link #expression} (A FHIRPath expression that returns a set of elements for the search parameter.). This is the underlying object with id, value and extensions. The accessor "getExpression" gives direct access to the value 1760 */ 1761 public StringType getExpressionElement() { 1762 if (this.expression == null) 1763 if (Configuration.errorOnAutoCreate()) 1764 throw new Error("Attempt to auto-create SearchParameter.expression"); 1765 else if (Configuration.doAutoCreate()) 1766 this.expression = new StringType(); // bb 1767 return this.expression; 1768 } 1769 1770 public boolean hasExpressionElement() { 1771 return this.expression != null && !this.expression.isEmpty(); 1772 } 1773 1774 public boolean hasExpression() { 1775 return this.expression != null && !this.expression.isEmpty(); 1776 } 1777 1778 /** 1779 * @param value {@link #expression} (A FHIRPath expression that returns a set of elements for the search parameter.). This is the underlying object with id, value and extensions. The accessor "getExpression" gives direct access to the value 1780 */ 1781 public SearchParameter setExpressionElement(StringType value) { 1782 this.expression = value; 1783 return this; 1784 } 1785 1786 /** 1787 * @return A FHIRPath expression that returns a set of elements for the search parameter. 1788 */ 1789 public String getExpression() { 1790 return this.expression == null ? null : this.expression.getValue(); 1791 } 1792 1793 /** 1794 * @param value A FHIRPath expression that returns a set of elements for the search parameter. 1795 */ 1796 public SearchParameter setExpression(String value) { 1797 if (Utilities.noString(value)) 1798 this.expression = null; 1799 else { 1800 if (this.expression == null) 1801 this.expression = new StringType(); 1802 this.expression.setValue(value); 1803 } 1804 return this; 1805 } 1806 1807 /** 1808 * @return {@link #xpath} (An XPath expression that returns a set of elements for the search parameter.). This is the underlying object with id, value and extensions. The accessor "getXpath" gives direct access to the value 1809 */ 1810 public StringType getXpathElement() { 1811 if (this.xpath == null) 1812 if (Configuration.errorOnAutoCreate()) 1813 throw new Error("Attempt to auto-create SearchParameter.xpath"); 1814 else if (Configuration.doAutoCreate()) 1815 this.xpath = new StringType(); // bb 1816 return this.xpath; 1817 } 1818 1819 public boolean hasXpathElement() { 1820 return this.xpath != null && !this.xpath.isEmpty(); 1821 } 1822 1823 public boolean hasXpath() { 1824 return this.xpath != null && !this.xpath.isEmpty(); 1825 } 1826 1827 /** 1828 * @param value {@link #xpath} (An XPath expression that returns a set of elements for the search parameter.). This is the underlying object with id, value and extensions. The accessor "getXpath" gives direct access to the value 1829 */ 1830 public SearchParameter setXpathElement(StringType value) { 1831 this.xpath = value; 1832 return this; 1833 } 1834 1835 /** 1836 * @return An XPath expression that returns a set of elements for the search parameter. 1837 */ 1838 public String getXpath() { 1839 return this.xpath == null ? null : this.xpath.getValue(); 1840 } 1841 1842 /** 1843 * @param value An XPath expression that returns a set of elements for the search parameter. 1844 */ 1845 public SearchParameter setXpath(String value) { 1846 if (Utilities.noString(value)) 1847 this.xpath = null; 1848 else { 1849 if (this.xpath == null) 1850 this.xpath = new StringType(); 1851 this.xpath.setValue(value); 1852 } 1853 return this; 1854 } 1855 1856 /** 1857 * @return {@link #xpathUsage} (How the search parameter relates to the set of elements returned by evaluating the xpath query.). This is the underlying object with id, value and extensions. The accessor "getXpathUsage" gives direct access to the value 1858 */ 1859 public Enumeration<XPathUsageType> getXpathUsageElement() { 1860 if (this.xpathUsage == null) 1861 if (Configuration.errorOnAutoCreate()) 1862 throw new Error("Attempt to auto-create SearchParameter.xpathUsage"); 1863 else if (Configuration.doAutoCreate()) 1864 this.xpathUsage = new Enumeration<XPathUsageType>(new XPathUsageTypeEnumFactory()); // bb 1865 return this.xpathUsage; 1866 } 1867 1868 public boolean hasXpathUsageElement() { 1869 return this.xpathUsage != null && !this.xpathUsage.isEmpty(); 1870 } 1871 1872 public boolean hasXpathUsage() { 1873 return this.xpathUsage != null && !this.xpathUsage.isEmpty(); 1874 } 1875 1876 /** 1877 * @param value {@link #xpathUsage} (How the search parameter relates to the set of elements returned by evaluating the xpath query.). This is the underlying object with id, value and extensions. The accessor "getXpathUsage" gives direct access to the value 1878 */ 1879 public SearchParameter setXpathUsageElement(Enumeration<XPathUsageType> value) { 1880 this.xpathUsage = value; 1881 return this; 1882 } 1883 1884 /** 1885 * @return How the search parameter relates to the set of elements returned by evaluating the xpath query. 1886 */ 1887 public XPathUsageType getXpathUsage() { 1888 return this.xpathUsage == null ? null : this.xpathUsage.getValue(); 1889 } 1890 1891 /** 1892 * @param value How the search parameter relates to the set of elements returned by evaluating the xpath query. 1893 */ 1894 public SearchParameter setXpathUsage(XPathUsageType value) { 1895 if (value == null) 1896 this.xpathUsage = null; 1897 else { 1898 if (this.xpathUsage == null) 1899 this.xpathUsage = new Enumeration<XPathUsageType>(new XPathUsageTypeEnumFactory()); 1900 this.xpathUsage.setValue(value); 1901 } 1902 return this; 1903 } 1904 1905 /** 1906 * @return {@link #target} (Types of resource (if a resource is referenced).) 1907 */ 1908 public List<CodeType> getTarget() { 1909 if (this.target == null) 1910 this.target = new ArrayList<CodeType>(); 1911 return this.target; 1912 } 1913 1914 /** 1915 * @return Returns a reference to <code>this</code> for easy method chaining 1916 */ 1917 public SearchParameter setTarget(List<CodeType> theTarget) { 1918 this.target = theTarget; 1919 return this; 1920 } 1921 1922 public boolean hasTarget() { 1923 if (this.target == null) 1924 return false; 1925 for (CodeType item : this.target) 1926 if (!item.isEmpty()) 1927 return true; 1928 return false; 1929 } 1930 1931 /** 1932 * @return {@link #target} (Types of resource (if a resource is referenced).) 1933 */ 1934 public CodeType addTargetElement() {//2 1935 CodeType t = new CodeType(); 1936 if (this.target == null) 1937 this.target = new ArrayList<CodeType>(); 1938 this.target.add(t); 1939 return t; 1940 } 1941 1942 /** 1943 * @param value {@link #target} (Types of resource (if a resource is referenced).) 1944 */ 1945 public SearchParameter addTarget(String value) { //1 1946 CodeType t = new CodeType(); 1947 t.setValue(value); 1948 if (this.target == null) 1949 this.target = new ArrayList<CodeType>(); 1950 this.target.add(t); 1951 return this; 1952 } 1953 1954 /** 1955 * @param value {@link #target} (Types of resource (if a resource is referenced).) 1956 */ 1957 public boolean hasTarget(String value) { 1958 if (this.target == null) 1959 return false; 1960 for (CodeType v : this.target) 1961 if (v.equals(value)) // code 1962 return true; 1963 return false; 1964 } 1965 1966 /** 1967 * @return {@link #comparator} (Comparators supported for the search parameter.) 1968 */ 1969 public List<Enumeration<SearchComparator>> getComparator() { 1970 if (this.comparator == null) 1971 this.comparator = new ArrayList<Enumeration<SearchComparator>>(); 1972 return this.comparator; 1973 } 1974 1975 /** 1976 * @return Returns a reference to <code>this</code> for easy method chaining 1977 */ 1978 public SearchParameter setComparator(List<Enumeration<SearchComparator>> theComparator) { 1979 this.comparator = theComparator; 1980 return this; 1981 } 1982 1983 public boolean hasComparator() { 1984 if (this.comparator == null) 1985 return false; 1986 for (Enumeration<SearchComparator> item : this.comparator) 1987 if (!item.isEmpty()) 1988 return true; 1989 return false; 1990 } 1991 1992 /** 1993 * @return {@link #comparator} (Comparators supported for the search parameter.) 1994 */ 1995 public Enumeration<SearchComparator> addComparatorElement() {//2 1996 Enumeration<SearchComparator> t = new Enumeration<SearchComparator>(new SearchComparatorEnumFactory()); 1997 if (this.comparator == null) 1998 this.comparator = new ArrayList<Enumeration<SearchComparator>>(); 1999 this.comparator.add(t); 2000 return t; 2001 } 2002 2003 /** 2004 * @param value {@link #comparator} (Comparators supported for the search parameter.) 2005 */ 2006 public SearchParameter addComparator(SearchComparator value) { //1 2007 Enumeration<SearchComparator> t = new Enumeration<SearchComparator>(new SearchComparatorEnumFactory()); 2008 t.setValue(value); 2009 if (this.comparator == null) 2010 this.comparator = new ArrayList<Enumeration<SearchComparator>>(); 2011 this.comparator.add(t); 2012 return this; 2013 } 2014 2015 /** 2016 * @param value {@link #comparator} (Comparators supported for the search parameter.) 2017 */ 2018 public boolean hasComparator(SearchComparator value) { 2019 if (this.comparator == null) 2020 return false; 2021 for (Enumeration<SearchComparator> v : this.comparator) 2022 if (v.getValue().equals(value)) // code 2023 return true; 2024 return false; 2025 } 2026 2027 /** 2028 * @return {@link #modifier} (A modifier supported for the search parameter.) 2029 */ 2030 public List<Enumeration<SearchModifierCode>> getModifier() { 2031 if (this.modifier == null) 2032 this.modifier = new ArrayList<Enumeration<SearchModifierCode>>(); 2033 return this.modifier; 2034 } 2035 2036 /** 2037 * @return Returns a reference to <code>this</code> for easy method chaining 2038 */ 2039 public SearchParameter setModifier(List<Enumeration<SearchModifierCode>> theModifier) { 2040 this.modifier = theModifier; 2041 return this; 2042 } 2043 2044 public boolean hasModifier() { 2045 if (this.modifier == null) 2046 return false; 2047 for (Enumeration<SearchModifierCode> item : this.modifier) 2048 if (!item.isEmpty()) 2049 return true; 2050 return false; 2051 } 2052 2053 /** 2054 * @return {@link #modifier} (A modifier supported for the search parameter.) 2055 */ 2056 public Enumeration<SearchModifierCode> addModifierElement() {//2 2057 Enumeration<SearchModifierCode> t = new Enumeration<SearchModifierCode>(new SearchModifierCodeEnumFactory()); 2058 if (this.modifier == null) 2059 this.modifier = new ArrayList<Enumeration<SearchModifierCode>>(); 2060 this.modifier.add(t); 2061 return t; 2062 } 2063 2064 /** 2065 * @param value {@link #modifier} (A modifier supported for the search parameter.) 2066 */ 2067 public SearchParameter addModifier(SearchModifierCode value) { //1 2068 Enumeration<SearchModifierCode> t = new Enumeration<SearchModifierCode>(new SearchModifierCodeEnumFactory()); 2069 t.setValue(value); 2070 if (this.modifier == null) 2071 this.modifier = new ArrayList<Enumeration<SearchModifierCode>>(); 2072 this.modifier.add(t); 2073 return this; 2074 } 2075 2076 /** 2077 * @param value {@link #modifier} (A modifier supported for the search parameter.) 2078 */ 2079 public boolean hasModifier(SearchModifierCode value) { 2080 if (this.modifier == null) 2081 return false; 2082 for (Enumeration<SearchModifierCode> v : this.modifier) 2083 if (v.getValue().equals(value)) // code 2084 return true; 2085 return false; 2086 } 2087 2088 /** 2089 * @return {@link #chain} (Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference, and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.) 2090 */ 2091 public List<StringType> getChain() { 2092 if (this.chain == null) 2093 this.chain = new ArrayList<StringType>(); 2094 return this.chain; 2095 } 2096 2097 /** 2098 * @return Returns a reference to <code>this</code> for easy method chaining 2099 */ 2100 public SearchParameter setChain(List<StringType> theChain) { 2101 this.chain = theChain; 2102 return this; 2103 } 2104 2105 public boolean hasChain() { 2106 if (this.chain == null) 2107 return false; 2108 for (StringType item : this.chain) 2109 if (!item.isEmpty()) 2110 return true; 2111 return false; 2112 } 2113 2114 /** 2115 * @return {@link #chain} (Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference, and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.) 2116 */ 2117 public StringType addChainElement() {//2 2118 StringType t = new StringType(); 2119 if (this.chain == null) 2120 this.chain = new ArrayList<StringType>(); 2121 this.chain.add(t); 2122 return t; 2123 } 2124 2125 /** 2126 * @param value {@link #chain} (Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference, and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.) 2127 */ 2128 public SearchParameter addChain(String value) { //1 2129 StringType t = new StringType(); 2130 t.setValue(value); 2131 if (this.chain == null) 2132 this.chain = new ArrayList<StringType>(); 2133 this.chain.add(t); 2134 return this; 2135 } 2136 2137 /** 2138 * @param value {@link #chain} (Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference, and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.) 2139 */ 2140 public boolean hasChain(String value) { 2141 if (this.chain == null) 2142 return false; 2143 for (StringType v : this.chain) 2144 if (v.equals(value)) // string 2145 return true; 2146 return false; 2147 } 2148 2149 /** 2150 * @return {@link #component} (Used to define the parts of a composite search parameter.) 2151 */ 2152 public List<SearchParameterComponentComponent> getComponent() { 2153 if (this.component == null) 2154 this.component = new ArrayList<SearchParameterComponentComponent>(); 2155 return this.component; 2156 } 2157 2158 /** 2159 * @return Returns a reference to <code>this</code> for easy method chaining 2160 */ 2161 public SearchParameter setComponent(List<SearchParameterComponentComponent> theComponent) { 2162 this.component = theComponent; 2163 return this; 2164 } 2165 2166 public boolean hasComponent() { 2167 if (this.component == null) 2168 return false; 2169 for (SearchParameterComponentComponent item : this.component) 2170 if (!item.isEmpty()) 2171 return true; 2172 return false; 2173 } 2174 2175 public SearchParameterComponentComponent addComponent() { //3 2176 SearchParameterComponentComponent t = new SearchParameterComponentComponent(); 2177 if (this.component == null) 2178 this.component = new ArrayList<SearchParameterComponentComponent>(); 2179 this.component.add(t); 2180 return t; 2181 } 2182 2183 public SearchParameter addComponent(SearchParameterComponentComponent t) { //3 2184 if (t == null) 2185 return this; 2186 if (this.component == null) 2187 this.component = new ArrayList<SearchParameterComponentComponent>(); 2188 this.component.add(t); 2189 return this; 2190 } 2191 2192 /** 2193 * @return The first repetition of repeating field {@link #component}, creating it if it does not already exist 2194 */ 2195 public SearchParameterComponentComponent getComponentFirstRep() { 2196 if (getComponent().isEmpty()) { 2197 addComponent(); 2198 } 2199 return getComponent().get(0); 2200 } 2201 2202 protected void listChildren(List<Property> childrenList) { 2203 super.listChildren(childrenList); 2204 childrenList.add(new Property("url", "uri", "An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this search parameter is (or will be) published. The URL SHOULD include the major version of the search parameter. For more information see [Technical and Business Versions](resource.html#versions).", 0, java.lang.Integer.MAX_VALUE, url)); 2205 childrenList.add(new Property("version", "string", "The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, java.lang.Integer.MAX_VALUE, version)); 2206 childrenList.add(new Property("name", "string", "A natural language name identifying the search parameter. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, java.lang.Integer.MAX_VALUE, name)); 2207 childrenList.add(new Property("status", "code", "The status of this search parameter. Enables tracking the life-cycle of the content.", 0, java.lang.Integer.MAX_VALUE, status)); 2208 childrenList.add(new Property("experimental", "boolean", "A boolean value to indicate that this search parameter is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.", 0, java.lang.Integer.MAX_VALUE, experimental)); 2209 childrenList.add(new Property("date", "dateTime", "The date (and optionally time) when the search parameter was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the search parameter changes.", 0, java.lang.Integer.MAX_VALUE, date)); 2210 childrenList.add(new Property("publisher", "string", "The name of the individual or organization that published the search parameter.", 0, java.lang.Integer.MAX_VALUE, publisher)); 2211 childrenList.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)); 2212 childrenList.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 for appropriate search parameter instances.", 0, java.lang.Integer.MAX_VALUE, useContext)); 2213 childrenList.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the search parameter is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction)); 2214 childrenList.add(new Property("purpose", "markdown", "Explaination of why this search parameter is needed and why it has been designed as it has.", 0, java.lang.Integer.MAX_VALUE, purpose)); 2215 childrenList.add(new Property("code", "code", "The code used in the URL or the parameter name in a parameters resource for this search parameter.", 0, java.lang.Integer.MAX_VALUE, code)); 2216 childrenList.add(new Property("base", "code", "The base resource type(s) that this search parameter can be used against.", 0, java.lang.Integer.MAX_VALUE, base)); 2217 childrenList.add(new Property("type", "code", "The type of value a search parameter refers to, and how the content is interpreted.", 0, java.lang.Integer.MAX_VALUE, type)); 2218 childrenList.add(new Property("derivedFrom", "uri", "Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. I.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter.", 0, java.lang.Integer.MAX_VALUE, derivedFrom)); 2219 childrenList.add(new Property("description", "markdown", "A free text natural language description of the search parameter from a consumer's perspective. and how it used.", 0, java.lang.Integer.MAX_VALUE, description)); 2220 childrenList.add(new Property("expression", "string", "A FHIRPath expression that returns a set of elements for the search parameter.", 0, java.lang.Integer.MAX_VALUE, expression)); 2221 childrenList.add(new Property("xpath", "string", "An XPath expression that returns a set of elements for the search parameter.", 0, java.lang.Integer.MAX_VALUE, xpath)); 2222 childrenList.add(new Property("xpathUsage", "code", "How the search parameter relates to the set of elements returned by evaluating the xpath query.", 0, java.lang.Integer.MAX_VALUE, xpathUsage)); 2223 childrenList.add(new Property("target", "code", "Types of resource (if a resource is referenced).", 0, java.lang.Integer.MAX_VALUE, target)); 2224 childrenList.add(new Property("comparator", "code", "Comparators supported for the search parameter.", 0, java.lang.Integer.MAX_VALUE, comparator)); 2225 childrenList.add(new Property("modifier", "code", "A modifier supported for the search parameter.", 0, java.lang.Integer.MAX_VALUE, modifier)); 2226 childrenList.add(new Property("chain", "string", "Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference, and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.", 0, java.lang.Integer.MAX_VALUE, chain)); 2227 childrenList.add(new Property("component", "", "Used to define the parts of a composite search parameter.", 0, java.lang.Integer.MAX_VALUE, component)); 2228 } 2229 2230 @Override 2231 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2232 switch (hash) { 2233 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 2234 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 2235 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 2236 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 2237 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 2238 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 2239 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 2240 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 2241 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 2242 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 2243 case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType 2244 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType 2245 case 3016401: /*base*/ return this.base == null ? new Base[0] : this.base.toArray(new Base[this.base.size()]); // CodeType 2246 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<SearchParamType> 2247 case 1077922663: /*derivedFrom*/ return this.derivedFrom == null ? new Base[0] : new Base[] {this.derivedFrom}; // UriType 2248 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 2249 case -1795452264: /*expression*/ return this.expression == null ? new Base[0] : new Base[] {this.expression}; // StringType 2250 case 114256029: /*xpath*/ return this.xpath == null ? new Base[0] : new Base[] {this.xpath}; // StringType 2251 case 1801322244: /*xpathUsage*/ return this.xpathUsage == null ? new Base[0] : new Base[] {this.xpathUsage}; // Enumeration<XPathUsageType> 2252 case -880905839: /*target*/ return this.target == null ? new Base[0] : this.target.toArray(new Base[this.target.size()]); // CodeType 2253 case -844673834: /*comparator*/ return this.comparator == null ? new Base[0] : this.comparator.toArray(new Base[this.comparator.size()]); // Enumeration<SearchComparator> 2254 case -615513385: /*modifier*/ return this.modifier == null ? new Base[0] : this.modifier.toArray(new Base[this.modifier.size()]); // Enumeration<SearchModifierCode> 2255 case 94623425: /*chain*/ return this.chain == null ? new Base[0] : this.chain.toArray(new Base[this.chain.size()]); // StringType 2256 case -1399907075: /*component*/ return this.component == null ? new Base[0] : this.component.toArray(new Base[this.component.size()]); // SearchParameterComponentComponent 2257 default: return super.getProperty(hash, name, checkValid); 2258 } 2259 2260 } 2261 2262 @Override 2263 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2264 switch (hash) { 2265 case 116079: // url 2266 this.url = castToUri(value); // UriType 2267 return value; 2268 case 351608024: // version 2269 this.version = castToString(value); // StringType 2270 return value; 2271 case 3373707: // name 2272 this.name = castToString(value); // StringType 2273 return value; 2274 case -892481550: // status 2275 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 2276 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 2277 return value; 2278 case -404562712: // experimental 2279 this.experimental = castToBoolean(value); // BooleanType 2280 return value; 2281 case 3076014: // date 2282 this.date = castToDateTime(value); // DateTimeType 2283 return value; 2284 case 1447404028: // publisher 2285 this.publisher = castToString(value); // StringType 2286 return value; 2287 case 951526432: // contact 2288 this.getContact().add(castToContactDetail(value)); // ContactDetail 2289 return value; 2290 case -669707736: // useContext 2291 this.getUseContext().add(castToUsageContext(value)); // UsageContext 2292 return value; 2293 case -507075711: // jurisdiction 2294 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 2295 return value; 2296 case -220463842: // purpose 2297 this.purpose = castToMarkdown(value); // MarkdownType 2298 return value; 2299 case 3059181: // code 2300 this.code = castToCode(value); // CodeType 2301 return value; 2302 case 3016401: // base 2303 this.getBase().add(castToCode(value)); // CodeType 2304 return value; 2305 case 3575610: // type 2306 value = new SearchParamTypeEnumFactory().fromType(castToCode(value)); 2307 this.type = (Enumeration) value; // Enumeration<SearchParamType> 2308 return value; 2309 case 1077922663: // derivedFrom 2310 this.derivedFrom = castToUri(value); // UriType 2311 return value; 2312 case -1724546052: // description 2313 this.description = castToMarkdown(value); // MarkdownType 2314 return value; 2315 case -1795452264: // expression 2316 this.expression = castToString(value); // StringType 2317 return value; 2318 case 114256029: // xpath 2319 this.xpath = castToString(value); // StringType 2320 return value; 2321 case 1801322244: // xpathUsage 2322 value = new XPathUsageTypeEnumFactory().fromType(castToCode(value)); 2323 this.xpathUsage = (Enumeration) value; // Enumeration<XPathUsageType> 2324 return value; 2325 case -880905839: // target 2326 this.getTarget().add(castToCode(value)); // CodeType 2327 return value; 2328 case -844673834: // comparator 2329 value = new SearchComparatorEnumFactory().fromType(castToCode(value)); 2330 this.getComparator().add((Enumeration) value); // Enumeration<SearchComparator> 2331 return value; 2332 case -615513385: // modifier 2333 value = new SearchModifierCodeEnumFactory().fromType(castToCode(value)); 2334 this.getModifier().add((Enumeration) value); // Enumeration<SearchModifierCode> 2335 return value; 2336 case 94623425: // chain 2337 this.getChain().add(castToString(value)); // StringType 2338 return value; 2339 case -1399907075: // component 2340 this.getComponent().add((SearchParameterComponentComponent) value); // SearchParameterComponentComponent 2341 return value; 2342 default: return super.setProperty(hash, name, value); 2343 } 2344 2345 } 2346 2347 @Override 2348 public Base setProperty(String name, Base value) throws FHIRException { 2349 if (name.equals("url")) { 2350 this.url = castToUri(value); // UriType 2351 } else if (name.equals("version")) { 2352 this.version = castToString(value); // StringType 2353 } else if (name.equals("name")) { 2354 this.name = castToString(value); // StringType 2355 } else if (name.equals("status")) { 2356 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 2357 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 2358 } else if (name.equals("experimental")) { 2359 this.experimental = castToBoolean(value); // BooleanType 2360 } else if (name.equals("date")) { 2361 this.date = castToDateTime(value); // DateTimeType 2362 } else if (name.equals("publisher")) { 2363 this.publisher = castToString(value); // StringType 2364 } else if (name.equals("contact")) { 2365 this.getContact().add(castToContactDetail(value)); 2366 } else if (name.equals("useContext")) { 2367 this.getUseContext().add(castToUsageContext(value)); 2368 } else if (name.equals("jurisdiction")) { 2369 this.getJurisdiction().add(castToCodeableConcept(value)); 2370 } else if (name.equals("purpose")) { 2371 this.purpose = castToMarkdown(value); // MarkdownType 2372 } else if (name.equals("code")) { 2373 this.code = castToCode(value); // CodeType 2374 } else if (name.equals("base")) { 2375 this.getBase().add(castToCode(value)); 2376 } else if (name.equals("type")) { 2377 value = new SearchParamTypeEnumFactory().fromType(castToCode(value)); 2378 this.type = (Enumeration) value; // Enumeration<SearchParamType> 2379 } else if (name.equals("derivedFrom")) { 2380 this.derivedFrom = castToUri(value); // UriType 2381 } else if (name.equals("description")) { 2382 this.description = castToMarkdown(value); // MarkdownType 2383 } else if (name.equals("expression")) { 2384 this.expression = castToString(value); // StringType 2385 } else if (name.equals("xpath")) { 2386 this.xpath = castToString(value); // StringType 2387 } else if (name.equals("xpathUsage")) { 2388 value = new XPathUsageTypeEnumFactory().fromType(castToCode(value)); 2389 this.xpathUsage = (Enumeration) value; // Enumeration<XPathUsageType> 2390 } else if (name.equals("target")) { 2391 this.getTarget().add(castToCode(value)); 2392 } else if (name.equals("comparator")) { 2393 value = new SearchComparatorEnumFactory().fromType(castToCode(value)); 2394 this.getComparator().add((Enumeration) value); 2395 } else if (name.equals("modifier")) { 2396 value = new SearchModifierCodeEnumFactory().fromType(castToCode(value)); 2397 this.getModifier().add((Enumeration) value); 2398 } else if (name.equals("chain")) { 2399 this.getChain().add(castToString(value)); 2400 } else if (name.equals("component")) { 2401 this.getComponent().add((SearchParameterComponentComponent) value); 2402 } else 2403 return super.setProperty(name, value); 2404 return value; 2405 } 2406 2407 @Override 2408 public Base makeProperty(int hash, String name) throws FHIRException { 2409 switch (hash) { 2410 case 116079: return getUrlElement(); 2411 case 351608024: return getVersionElement(); 2412 case 3373707: return getNameElement(); 2413 case -892481550: return getStatusElement(); 2414 case -404562712: return getExperimentalElement(); 2415 case 3076014: return getDateElement(); 2416 case 1447404028: return getPublisherElement(); 2417 case 951526432: return addContact(); 2418 case -669707736: return addUseContext(); 2419 case -507075711: return addJurisdiction(); 2420 case -220463842: return getPurposeElement(); 2421 case 3059181: return getCodeElement(); 2422 case 3016401: return addBaseElement(); 2423 case 3575610: return getTypeElement(); 2424 case 1077922663: return getDerivedFromElement(); 2425 case -1724546052: return getDescriptionElement(); 2426 case -1795452264: return getExpressionElement(); 2427 case 114256029: return getXpathElement(); 2428 case 1801322244: return getXpathUsageElement(); 2429 case -880905839: return addTargetElement(); 2430 case -844673834: return addComparatorElement(); 2431 case -615513385: return addModifierElement(); 2432 case 94623425: return addChainElement(); 2433 case -1399907075: return addComponent(); 2434 default: return super.makeProperty(hash, name); 2435 } 2436 2437 } 2438 2439 @Override 2440 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2441 switch (hash) { 2442 case 116079: /*url*/ return new String[] {"uri"}; 2443 case 351608024: /*version*/ return new String[] {"string"}; 2444 case 3373707: /*name*/ return new String[] {"string"}; 2445 case -892481550: /*status*/ return new String[] {"code"}; 2446 case -404562712: /*experimental*/ return new String[] {"boolean"}; 2447 case 3076014: /*date*/ return new String[] {"dateTime"}; 2448 case 1447404028: /*publisher*/ return new String[] {"string"}; 2449 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 2450 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 2451 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 2452 case -220463842: /*purpose*/ return new String[] {"markdown"}; 2453 case 3059181: /*code*/ return new String[] {"code"}; 2454 case 3016401: /*base*/ return new String[] {"code"}; 2455 case 3575610: /*type*/ return new String[] {"code"}; 2456 case 1077922663: /*derivedFrom*/ return new String[] {"uri"}; 2457 case -1724546052: /*description*/ return new String[] {"markdown"}; 2458 case -1795452264: /*expression*/ return new String[] {"string"}; 2459 case 114256029: /*xpath*/ return new String[] {"string"}; 2460 case 1801322244: /*xpathUsage*/ return new String[] {"code"}; 2461 case -880905839: /*target*/ return new String[] {"code"}; 2462 case -844673834: /*comparator*/ return new String[] {"code"}; 2463 case -615513385: /*modifier*/ return new String[] {"code"}; 2464 case 94623425: /*chain*/ return new String[] {"string"}; 2465 case -1399907075: /*component*/ return new String[] {}; 2466 default: return super.getTypesForProperty(hash, name); 2467 } 2468 2469 } 2470 2471 @Override 2472 public Base addChild(String name) throws FHIRException { 2473 if (name.equals("url")) { 2474 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.url"); 2475 } 2476 else if (name.equals("version")) { 2477 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.version"); 2478 } 2479 else if (name.equals("name")) { 2480 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.name"); 2481 } 2482 else if (name.equals("status")) { 2483 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.status"); 2484 } 2485 else if (name.equals("experimental")) { 2486 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.experimental"); 2487 } 2488 else if (name.equals("date")) { 2489 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.date"); 2490 } 2491 else if (name.equals("publisher")) { 2492 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.publisher"); 2493 } 2494 else if (name.equals("contact")) { 2495 return addContact(); 2496 } 2497 else if (name.equals("useContext")) { 2498 return addUseContext(); 2499 } 2500 else if (name.equals("jurisdiction")) { 2501 return addJurisdiction(); 2502 } 2503 else if (name.equals("purpose")) { 2504 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.purpose"); 2505 } 2506 else if (name.equals("code")) { 2507 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.code"); 2508 } 2509 else if (name.equals("base")) { 2510 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.base"); 2511 } 2512 else if (name.equals("type")) { 2513 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.type"); 2514 } 2515 else if (name.equals("derivedFrom")) { 2516 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.derivedFrom"); 2517 } 2518 else if (name.equals("description")) { 2519 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.description"); 2520 } 2521 else if (name.equals("expression")) { 2522 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.expression"); 2523 } 2524 else if (name.equals("xpath")) { 2525 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.xpath"); 2526 } 2527 else if (name.equals("xpathUsage")) { 2528 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.xpathUsage"); 2529 } 2530 else if (name.equals("target")) { 2531 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.target"); 2532 } 2533 else if (name.equals("comparator")) { 2534 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.comparator"); 2535 } 2536 else if (name.equals("modifier")) { 2537 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.modifier"); 2538 } 2539 else if (name.equals("chain")) { 2540 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.chain"); 2541 } 2542 else if (name.equals("component")) { 2543 return addComponent(); 2544 } 2545 else 2546 return super.addChild(name); 2547 } 2548 2549 public String fhirType() { 2550 return "SearchParameter"; 2551 2552 } 2553 2554 public SearchParameter copy() { 2555 SearchParameter dst = new SearchParameter(); 2556 copyValues(dst); 2557 dst.url = url == null ? null : url.copy(); 2558 dst.version = version == null ? null : version.copy(); 2559 dst.name = name == null ? null : name.copy(); 2560 dst.status = status == null ? null : status.copy(); 2561 dst.experimental = experimental == null ? null : experimental.copy(); 2562 dst.date = date == null ? null : date.copy(); 2563 dst.publisher = publisher == null ? null : publisher.copy(); 2564 if (contact != null) { 2565 dst.contact = new ArrayList<ContactDetail>(); 2566 for (ContactDetail i : contact) 2567 dst.contact.add(i.copy()); 2568 }; 2569 if (useContext != null) { 2570 dst.useContext = new ArrayList<UsageContext>(); 2571 for (UsageContext i : useContext) 2572 dst.useContext.add(i.copy()); 2573 }; 2574 if (jurisdiction != null) { 2575 dst.jurisdiction = new ArrayList<CodeableConcept>(); 2576 for (CodeableConcept i : jurisdiction) 2577 dst.jurisdiction.add(i.copy()); 2578 }; 2579 dst.purpose = purpose == null ? null : purpose.copy(); 2580 dst.code = code == null ? null : code.copy(); 2581 if (base != null) { 2582 dst.base = new ArrayList<CodeType>(); 2583 for (CodeType i : base) 2584 dst.base.add(i.copy()); 2585 }; 2586 dst.type = type == null ? null : type.copy(); 2587 dst.derivedFrom = derivedFrom == null ? null : derivedFrom.copy(); 2588 dst.description = description == null ? null : description.copy(); 2589 dst.expression = expression == null ? null : expression.copy(); 2590 dst.xpath = xpath == null ? null : xpath.copy(); 2591 dst.xpathUsage = xpathUsage == null ? null : xpathUsage.copy(); 2592 if (target != null) { 2593 dst.target = new ArrayList<CodeType>(); 2594 for (CodeType i : target) 2595 dst.target.add(i.copy()); 2596 }; 2597 if (comparator != null) { 2598 dst.comparator = new ArrayList<Enumeration<SearchComparator>>(); 2599 for (Enumeration<SearchComparator> i : comparator) 2600 dst.comparator.add(i.copy()); 2601 }; 2602 if (modifier != null) { 2603 dst.modifier = new ArrayList<Enumeration<SearchModifierCode>>(); 2604 for (Enumeration<SearchModifierCode> i : modifier) 2605 dst.modifier.add(i.copy()); 2606 }; 2607 if (chain != null) { 2608 dst.chain = new ArrayList<StringType>(); 2609 for (StringType i : chain) 2610 dst.chain.add(i.copy()); 2611 }; 2612 if (component != null) { 2613 dst.component = new ArrayList<SearchParameterComponentComponent>(); 2614 for (SearchParameterComponentComponent i : component) 2615 dst.component.add(i.copy()); 2616 }; 2617 return dst; 2618 } 2619 2620 protected SearchParameter typedCopy() { 2621 return copy(); 2622 } 2623 2624 @Override 2625 public boolean equalsDeep(Base other) { 2626 if (!super.equalsDeep(other)) 2627 return false; 2628 if (!(other instanceof SearchParameter)) 2629 return false; 2630 SearchParameter o = (SearchParameter) other; 2631 return compareDeep(purpose, o.purpose, true) && compareDeep(code, o.code, true) && compareDeep(base, o.base, true) 2632 && compareDeep(type, o.type, true) && compareDeep(derivedFrom, o.derivedFrom, true) && compareDeep(expression, o.expression, true) 2633 && compareDeep(xpath, o.xpath, true) && compareDeep(xpathUsage, o.xpathUsage, true) && compareDeep(target, o.target, true) 2634 && compareDeep(comparator, o.comparator, true) && compareDeep(modifier, o.modifier, true) && compareDeep(chain, o.chain, true) 2635 && compareDeep(component, o.component, true); 2636 } 2637 2638 @Override 2639 public boolean equalsShallow(Base other) { 2640 if (!super.equalsShallow(other)) 2641 return false; 2642 if (!(other instanceof SearchParameter)) 2643 return false; 2644 SearchParameter o = (SearchParameter) other; 2645 return compareValues(purpose, o.purpose, true) && compareValues(code, o.code, true) && compareValues(base, o.base, true) 2646 && compareValues(type, o.type, true) && compareValues(derivedFrom, o.derivedFrom, true) && compareValues(expression, o.expression, true) 2647 && compareValues(xpath, o.xpath, true) && compareValues(xpathUsage, o.xpathUsage, true) && compareValues(target, o.target, true) 2648 && compareValues(comparator, o.comparator, true) && compareValues(modifier, o.modifier, true) && compareValues(chain, o.chain, true) 2649 ; 2650 } 2651 2652 public boolean isEmpty() { 2653 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(purpose, code, base, type 2654 , derivedFrom, expression, xpath, xpathUsage, target, comparator, modifier, chain 2655 , component); 2656 } 2657 2658 @Override 2659 public ResourceType getResourceType() { 2660 return ResourceType.SearchParameter; 2661 } 2662 2663 /** 2664 * Search parameter: <b>date</b> 2665 * <p> 2666 * Description: <b>The search parameter publication date</b><br> 2667 * Type: <b>date</b><br> 2668 * Path: <b>SearchParameter.date</b><br> 2669 * </p> 2670 */ 2671 @SearchParamDefinition(name="date", path="SearchParameter.date", description="The search parameter publication date", type="date" ) 2672 public static final String SP_DATE = "date"; 2673 /** 2674 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2675 * <p> 2676 * Description: <b>The search parameter publication date</b><br> 2677 * Type: <b>date</b><br> 2678 * Path: <b>SearchParameter.date</b><br> 2679 * </p> 2680 */ 2681 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 2682 2683 /** 2684 * Search parameter: <b>code</b> 2685 * <p> 2686 * Description: <b>Code used in URL</b><br> 2687 * Type: <b>token</b><br> 2688 * Path: <b>SearchParameter.code</b><br> 2689 * </p> 2690 */ 2691 @SearchParamDefinition(name="code", path="SearchParameter.code", description="Code used in URL", type="token" ) 2692 public static final String SP_CODE = "code"; 2693 /** 2694 * <b>Fluent Client</b> search parameter constant for <b>code</b> 2695 * <p> 2696 * Description: <b>Code used in URL</b><br> 2697 * Type: <b>token</b><br> 2698 * Path: <b>SearchParameter.code</b><br> 2699 * </p> 2700 */ 2701 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 2702 2703 /** 2704 * Search parameter: <b>jurisdiction</b> 2705 * <p> 2706 * Description: <b>Intended jurisdiction for the search parameter</b><br> 2707 * Type: <b>token</b><br> 2708 * Path: <b>SearchParameter.jurisdiction</b><br> 2709 * </p> 2710 */ 2711 @SearchParamDefinition(name="jurisdiction", path="SearchParameter.jurisdiction", description="Intended jurisdiction for the search parameter", type="token" ) 2712 public static final String SP_JURISDICTION = "jurisdiction"; 2713 /** 2714 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 2715 * <p> 2716 * Description: <b>Intended jurisdiction for the search parameter</b><br> 2717 * Type: <b>token</b><br> 2718 * Path: <b>SearchParameter.jurisdiction</b><br> 2719 * </p> 2720 */ 2721 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 2722 2723 /** 2724 * Search parameter: <b>description</b> 2725 * <p> 2726 * Description: <b>The description of the search parameter</b><br> 2727 * Type: <b>string</b><br> 2728 * Path: <b>SearchParameter.description</b><br> 2729 * </p> 2730 */ 2731 @SearchParamDefinition(name="description", path="SearchParameter.description", description="The description of the search parameter", type="string" ) 2732 public static final String SP_DESCRIPTION = "description"; 2733 /** 2734 * <b>Fluent Client</b> search parameter constant for <b>description</b> 2735 * <p> 2736 * Description: <b>The description of the search parameter</b><br> 2737 * Type: <b>string</b><br> 2738 * Path: <b>SearchParameter.description</b><br> 2739 * </p> 2740 */ 2741 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 2742 2743 /** 2744 * Search parameter: <b>derived-from</b> 2745 * <p> 2746 * Description: <b>Original Definition for the search parameter</b><br> 2747 * Type: <b>uri</b><br> 2748 * Path: <b>SearchParameter.derivedFrom</b><br> 2749 * </p> 2750 */ 2751 @SearchParamDefinition(name="derived-from", path="SearchParameter.derivedFrom", description="Original Definition for the search parameter", type="uri" ) 2752 public static final String SP_DERIVED_FROM = "derived-from"; 2753 /** 2754 * <b>Fluent Client</b> search parameter constant for <b>derived-from</b> 2755 * <p> 2756 * Description: <b>Original Definition for the search parameter</b><br> 2757 * Type: <b>uri</b><br> 2758 * Path: <b>SearchParameter.derivedFrom</b><br> 2759 * </p> 2760 */ 2761 public static final ca.uhn.fhir.rest.gclient.UriClientParam DERIVED_FROM = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_DERIVED_FROM); 2762 2763 /** 2764 * Search parameter: <b>type</b> 2765 * <p> 2766 * Description: <b>number | date | string | token | reference | composite | quantity | uri</b><br> 2767 * Type: <b>token</b><br> 2768 * Path: <b>SearchParameter.type</b><br> 2769 * </p> 2770 */ 2771 @SearchParamDefinition(name="type", path="SearchParameter.type", description="number | date | string | token | reference | composite | quantity | uri", type="token" ) 2772 public static final String SP_TYPE = "type"; 2773 /** 2774 * <b>Fluent Client</b> search parameter constant for <b>type</b> 2775 * <p> 2776 * Description: <b>number | date | string | token | reference | composite | quantity | uri</b><br> 2777 * Type: <b>token</b><br> 2778 * Path: <b>SearchParameter.type</b><br> 2779 * </p> 2780 */ 2781 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 2782 2783 /** 2784 * Search parameter: <b>version</b> 2785 * <p> 2786 * Description: <b>The business version of the search parameter</b><br> 2787 * Type: <b>token</b><br> 2788 * Path: <b>SearchParameter.version</b><br> 2789 * </p> 2790 */ 2791 @SearchParamDefinition(name="version", path="SearchParameter.version", description="The business version of the search parameter", type="token" ) 2792 public static final String SP_VERSION = "version"; 2793 /** 2794 * <b>Fluent Client</b> search parameter constant for <b>version</b> 2795 * <p> 2796 * Description: <b>The business version of the search parameter</b><br> 2797 * Type: <b>token</b><br> 2798 * Path: <b>SearchParameter.version</b><br> 2799 * </p> 2800 */ 2801 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 2802 2803 /** 2804 * Search parameter: <b>url</b> 2805 * <p> 2806 * Description: <b>The uri that identifies the search parameter</b><br> 2807 * Type: <b>uri</b><br> 2808 * Path: <b>SearchParameter.url</b><br> 2809 * </p> 2810 */ 2811 @SearchParamDefinition(name="url", path="SearchParameter.url", description="The uri that identifies the search parameter", type="uri" ) 2812 public static final String SP_URL = "url"; 2813 /** 2814 * <b>Fluent Client</b> search parameter constant for <b>url</b> 2815 * <p> 2816 * Description: <b>The uri that identifies the search parameter</b><br> 2817 * Type: <b>uri</b><br> 2818 * Path: <b>SearchParameter.url</b><br> 2819 * </p> 2820 */ 2821 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 2822 2823 /** 2824 * Search parameter: <b>target</b> 2825 * <p> 2826 * Description: <b>Types of resource (if a resource reference)</b><br> 2827 * Type: <b>token</b><br> 2828 * Path: <b>SearchParameter.target</b><br> 2829 * </p> 2830 */ 2831 @SearchParamDefinition(name="target", path="SearchParameter.target", description="Types of resource (if a resource reference)", type="token" ) 2832 public static final String SP_TARGET = "target"; 2833 /** 2834 * <b>Fluent Client</b> search parameter constant for <b>target</b> 2835 * <p> 2836 * Description: <b>Types of resource (if a resource reference)</b><br> 2837 * Type: <b>token</b><br> 2838 * Path: <b>SearchParameter.target</b><br> 2839 * </p> 2840 */ 2841 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TARGET = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TARGET); 2842 2843 /** 2844 * Search parameter: <b>component</b> 2845 * <p> 2846 * Description: <b>Defines how the part works</b><br> 2847 * Type: <b>reference</b><br> 2848 * Path: <b>SearchParameter.component.definition</b><br> 2849 * </p> 2850 */ 2851 @SearchParamDefinition(name="component", path="SearchParameter.component.definition", description="Defines how the part works", type="reference", target={SearchParameter.class } ) 2852 public static final String SP_COMPONENT = "component"; 2853 /** 2854 * <b>Fluent Client</b> search parameter constant for <b>component</b> 2855 * <p> 2856 * Description: <b>Defines how the part works</b><br> 2857 * Type: <b>reference</b><br> 2858 * Path: <b>SearchParameter.component.definition</b><br> 2859 * </p> 2860 */ 2861 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam COMPONENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_COMPONENT); 2862 2863/** 2864 * Constant for fluent queries to be used to add include statements. Specifies 2865 * the path value of "<b>SearchParameter:component</b>". 2866 */ 2867 public static final ca.uhn.fhir.model.api.Include INCLUDE_COMPONENT = new ca.uhn.fhir.model.api.Include("SearchParameter:component").toLocked(); 2868 2869 /** 2870 * Search parameter: <b>name</b> 2871 * <p> 2872 * Description: <b>Computationally friendly name of the search parameter</b><br> 2873 * Type: <b>string</b><br> 2874 * Path: <b>SearchParameter.name</b><br> 2875 * </p> 2876 */ 2877 @SearchParamDefinition(name="name", path="SearchParameter.name", description="Computationally friendly name of the search parameter", type="string" ) 2878 public static final String SP_NAME = "name"; 2879 /** 2880 * <b>Fluent Client</b> search parameter constant for <b>name</b> 2881 * <p> 2882 * Description: <b>Computationally friendly name of the search parameter</b><br> 2883 * Type: <b>string</b><br> 2884 * Path: <b>SearchParameter.name</b><br> 2885 * </p> 2886 */ 2887 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 2888 2889 /** 2890 * Search parameter: <b>publisher</b> 2891 * <p> 2892 * Description: <b>Name of the publisher of the search parameter</b><br> 2893 * Type: <b>string</b><br> 2894 * Path: <b>SearchParameter.publisher</b><br> 2895 * </p> 2896 */ 2897 @SearchParamDefinition(name="publisher", path="SearchParameter.publisher", description="Name of the publisher of the search parameter", type="string" ) 2898 public static final String SP_PUBLISHER = "publisher"; 2899 /** 2900 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 2901 * <p> 2902 * Description: <b>Name of the publisher of the search parameter</b><br> 2903 * Type: <b>string</b><br> 2904 * Path: <b>SearchParameter.publisher</b><br> 2905 * </p> 2906 */ 2907 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 2908 2909 /** 2910 * Search parameter: <b>status</b> 2911 * <p> 2912 * Description: <b>The current status of the search parameter</b><br> 2913 * Type: <b>token</b><br> 2914 * Path: <b>SearchParameter.status</b><br> 2915 * </p> 2916 */ 2917 @SearchParamDefinition(name="status", path="SearchParameter.status", description="The current status of the search parameter", type="token" ) 2918 public static final String SP_STATUS = "status"; 2919 /** 2920 * <b>Fluent Client</b> search parameter constant for <b>status</b> 2921 * <p> 2922 * Description: <b>The current status of the search parameter</b><br> 2923 * Type: <b>token</b><br> 2924 * Path: <b>SearchParameter.status</b><br> 2925 * </p> 2926 */ 2927 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 2928 2929 /** 2930 * Search parameter: <b>base</b> 2931 * <p> 2932 * Description: <b>The resource type(s) this search parameter applies to</b><br> 2933 * Type: <b>token</b><br> 2934 * Path: <b>SearchParameter.base</b><br> 2935 * </p> 2936 */ 2937 @SearchParamDefinition(name="base", path="SearchParameter.base", description="The resource type(s) this search parameter applies to", type="token" ) 2938 public static final String SP_BASE = "base"; 2939 /** 2940 * <b>Fluent Client</b> search parameter constant for <b>base</b> 2941 * <p> 2942 * Description: <b>The resource type(s) this search parameter applies to</b><br> 2943 * Type: <b>token</b><br> 2944 * Path: <b>SearchParameter.base</b><br> 2945 * </p> 2946 */ 2947 public static final ca.uhn.fhir.rest.gclient.TokenClientParam BASE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_BASE); 2948 2949 2950} 2951